我确定这会在某个地方被问到,但我终生都找不到它,而且它不在Vim 文档的“定义命令行命令”部分中。
我想创建一个用户定义的命令,它将foo在当前单词之前插入单词。
(注意:我希望它是一个函数,因为我不相信自己会记住另一个快捷键。我知道如何使用noremap...)
在我的.vimrc补充:
command AddFoo bifoo<esc>w
Run Code Online (Sandbox Code Playgroud)
但是当我输入时,:AddFoo我得到Not an editor command: bifoow.
是否可以有一个发出正常模式命令的功能?
在:normalEx命令允许发出任意正常模式下的命令。
command AddFoo normal! bifoo<esc>w
Run Code Online (Sandbox Code Playgroud)
如果要插入表达式等,则需要使用:execute; 我将再次使用以下示例展示您的示例:help key-notation:
command AddFoo execute "normal! bifoo\<esc>w"
Run Code Online (Sandbox Code Playgroud)
的!后:normal阻止使用自定义映射,如:noremap(VS :map)。