如何映射Ctrl +分号以在行尾添加分号?

时间:2014-05-08 15:24:07

标签: vim

我试图在插入模式下按[ctrl] + [分号]来移动到行尾并添加分号。在安装surround插件后,我发现自己做了很多事情。

我尝试过运行此命令

inoremap <c-;> <esc>A;<esc>

但是当我尝试它时,它退出插入模式,进入命令模式。尝试使用另一个修饰符d也会产生相同的结果。

分号是否可以使用修饰符进行映射? 我做错了什么?

2 个答案:

答案 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