Скажем, я хочу запустить "эхо привет", когда я нажимаю <leader>T
Как я могу написать сценарий?
Есть ли способ сделать это красиво?
Я думаю о создании собственной команды.
Вы можете сделать это с помощью этой команды:
nnoremap <leader>T :!echo hello<cr>
Или, если вас не волнует вывод:
nnoremap <leader>T :silent !echo hello<cr>
Вы можете поместить это в ваш .vimrc
чтобы при запуске отображалось сопоставление.
У меня есть несколько команд, которые я хочу выполнить для текущего файла. Если вы хотите сначала сохранить какие-либо изменения, а затем передать имя файла в качестве аргумента, вы можете сделать это следующим образом:
nnoremap <leader>T :update<cr>:!cat '%:p'<cr>
где '%:p'
раскрывает полный путь к файлу.
Вы думаете о чем-то вроде этого?
:!echo hello
и чтение содержимого оболочки (в данном случае это ls
commnand):
:r !ls
Вы можете определить команду, используя команду. например, добавьте это в ваш .vimrc:
" define command Hello:
command! Hello echo 'hello world'
Затем вы можете запустить эту команду в командном режиме:
:Hello
Чтобы увидеть более сложные примеры, просто :verbose command COMMAND_NAME
чтобы найти ее определение. например, запустить:
:verbose command NERDTree
Он говорит мне, что команда NERDTree определена в .../nerdtree/plugin/NERD_tree.vim, тогда вы можете узнать, как определяется команда NERDTree.