我试图在插入模式下按[ctrl] + [分号]来移动到行尾并添加分号。在安装surround插件后,我发现自己做了很多事情。
我尝试过运行此命令
inoremap <c-;> <esc>A;<esc>
但是当我尝试它时,它退出插入模式,进入命令模式。尝试使用另一个修饰符d
也会产生相同的结果。
分号是否可以使用修饰符进行映射? 我做错了什么?
答案 0 :(得分:6)
我没有仔细阅读你的问题,只是看到你的映射带你走出插入模式和最后<esc>
...我的错。
你想映射ctrl+;
vim无法捕获密钥代码。有些键组合无法在vim中映射。 ;
就是其中之一,另一个例子是ctrl+=
。
因此您可能想要选择其他映射。
顺便说一句,您可以尝试在插入模式下按ctrl-v
然后按键组合以查看是否可以使用它。
答案 1 :(得分:5)
根据您的终端,可以设置映射。例如,如果您使用urxvt,则在~/.Xresources
添加:
URxvt.keysym.C-semicolon: \033[;
在~/.vimrc
添加:
map <Esc>[; <C-Semicolon>
map! <Esc>[; <C-Semicolon>
然后你应该能够像这样(未经测试)映射它:
inoremap <c-Semicolon> <Esc>A;<Esc>
我使用它来映射这样的分割窗口移动(这适用于我):
noremap <C-Semicolon> <C-w>l