比如说,我想在按下<leader>T
我该如何编写脚本?
有没有什么办法可以做得好呢?
我正在考虑创建一个自定义命令。
答案1
您是否正在考虑这样的事情?
:!echo hello
并读取 shell 命令的内容(在本例中为ls
命令):
:r !ls
答案2
你可以用以下命令执行此操作:
nnoremap <leader>T :!echo hello<cr>
或者,如果你不关心输出:
nnoremap <leader>T :silent !echo hello<cr>
您可以将其放入您的中.vimrc
,以便在启动时设置映射。
我有一些想要在当前文件上运行的命令。如果您想先保存任何更改,然后将文件名作为参数传递,您可以这样做:
nnoremap <leader>T :update<cr>:!cat '%:p'<cr>
其中'%:p'
扩展为文件的完整路径。
答案3
您可以使用“command”定义一个命令。例如,将其添加到您的.vimrc:
" define command Hello:
command! Hello echo 'hello world'
然后您可以在命令模式下运行此命令:
:Hello
要查看更复杂的例子,只需运行:verbose command COMMAND_NAME
即可找到其定义。例如运行:
:verbose command NERDTree
它告诉我 NERDTree 命令在 .../nerdtree/plugin/NERD_tree.vim 中定义,然后您可以找到 NERDTree 命令是如何定义的。