Você está pensando em algo assim?
:!echo hello
e lendo o conteúdo de um comando shell (neste caso o ls
commnand):
:r !ls
Digamos que eu queira executar "echo hello" quando eu pressionar <leader>T
Como posso escrever o script?
Existe alguma maneira de fazer isso bem?
Estou pensando em criar um comando personalizado.
Você está pensando em algo assim?
:!echo hello
e lendo o conteúdo de um comando shell (neste caso o ls
commnand):
:r !ls
Você pode fazer isso com este comando:
nnoremap <leader>T :!echo hello<cr>
Ou, se você não se importa com a saída:
nnoremap <leader>T :silent !echo hello<cr>
Você pode colocar isso em .vimrc
para que o mapeamento seja definido na inicialização.
Eu tenho alguns comandos que quero executar no arquivo atual. Se você quiser salvar as alterações primeiro e, em seguida, passar o nome do arquivo como um argumento, poderá fazer assim:
nnoremap <leader>T :update<cr>:!cat '%:p'<cr>
onde '%:p'
se expande para o caminho completo para o arquivo.
Você pode definir um comando usando 'comando'. por exemplo. adicione isto ao seu .vimrc:
" define command Hello:
command! Hello echo 'hello world'
Então você pode executar este comando no modo de comando:
:Hello
Para ver exemplos mais complicados, basta executar :verbose command COMMAND_NAME
para encontrar sua definição. por exemplo. executar:
:verbose command NERDTree
Ele me diz que o comando NERDTree está definido em ... / nerdtree / plugin / NERD_tree.vim, então você pode descobrir como o comando NERDTree está definido.