如何向终端发送自定义命令?

如何向终端发送自定义命令?

比如说,我想在按下<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 命令是如何定义的。

相关内容