在 vim/vi 中添加自定义键映射的最佳方法是什么? (是否存在用于定制的未绑定键空间?)
我知道您可以使用 .vimrc
文件中的 imap
将自定义键盘映射添加到 vim。我的问题是,如果要创建额外的自定义运算符、动作、命令并将它们映射到按键,添加它们以免与现有绑定冲突的最佳方法是什么?
打个比方,在 emacs 中,很多自定义按键命令都是通过 Cc 序列添加的。更技术性地说,vim 中是否有允许用户自定义的未绑定键?换句话说,是否有免费的密钥空间可供用户使用?
I know you can add custom keymappings to vim with imap
in the .vimrc
file. My question is, if one is to create additional custom operators, motions, commands and map them to keys, what is the best way to add them in so they don't conflict with existing bindings?
An analogy, in emacs, a lot of custom key commands are added via the C-c sequence. To be more technical, are there unbound keys in vim that allow for user customization? In other words, is there a free keyspace available to users?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
:imap
Enter 将显示插入模式映射列表。在我看来,最好的方法是创建自定义命令,它们以大写字母开头,本机命令以小写字母开头。
此外,您可以使用
我使用 , 有些使用 \。例如
:let mapleader = ","
然后,您可以使用前导键将其与其他键组合,例如 ,p 来调用命令,本机或自定义,请参见下文:
:mapp :MyCustomCommand
自定义运动示例。删除光标后的第三个单词。
nnoremapx :normal 2wdw
多个命令可用于创建新、删除和列出映射,这里是工作模式列表,来自
:help map-overview
更多信息
:help map
这是一个示例函数,已转换为自定义命令
现在,下面的两行是等效的
:call MoveLastLines('newFile.txt')
:移动到newFile.txt
:imap
Enter will show a list of your insert mode mappings.In my opinion the best way is creating custom command, they start with uppercase, native ones with lowercase.
Additionally, you can use a
<leader>
I use , some use \.e.g.
:let mapleader = ","
then, you can use the leader to combine it with other keys, like ,p to call a command, native or custom, see below:
:map <leader>p :MyCustomCommand<CR>
A custom motion example. Delete the third word after the cursor.
nnoremap <leader>x :normal 2wdw<CR>
Several commands can be used to create new, remove and list the mappings, here is a list of working modes, from
:help map-overview
further info
:help map
Here's an example function, converted to a custom command
Now, both lines below are equivalent
:call MoveLastLines('newFile.txt')
:MoveTo newFile.txt