如何将两个Vim命令合并为一个(命令不进行键盘绑定)

Jan*_*fer 2 unix vim text-editor neovim

我发现很少有关于此的Stack Overflow问题,但它们都只涉及:nmapor :noremap命令。我想要一个命令,而不仅仅是键绑定。有什么办法可以做到这一点?

用例:

运行时:make,不会自动保存。所以我想结合:make:w。我想创建一个命令:Compile/ :C:Wmake实现这一目标。

Ing*_*kat 5

有关通过串联Ex命令的一般信息,请|参见:help cmdline-lines

您可以将其应用于交互式命令,映射以及自定义命令中。

请注意,您只需要<bar>在映射中使用特殊设置(避免过早得出映射定义并立即执行其余的操作,这是一个常见的初学者错误:):nnoremap <F1> :write | echo "This causes an error during Vim startup!"<CR>。对于自定义命令,您只需编写即可|,但请记住,哪些命令本身将其视为其参数。

:help line-continuation将有助于处理过长的命令定义。将多个命令移到单独的命令中:help :function也有帮助(但请注意,这会巧妙地更改错误处理)。

论点

如果要传递自定义命令行参数,则可以添加-nargs=*:command定义中,然后通过来在右侧指定插入点<args>。例如,要允许命令:write使用命令,可以使用

:command -nargs=* C w <args> | silent make | redraw!
Run Code Online (Sandbox Code Playgroud)