我几个星期以来一直在使用Vim,有些事情让我对目前为止的经历感到非常兴奋。首先,我无法将几个键序列映射到命令。
我想将 Ctrl + Shift + Z 映射到:redo<CR>
或者<C-R>
,但是在移位和未移位的控制键序列之间显然Vim is not able to recognize the difference:
Ctrl-b和Ctrl-B是同义词,它们都表示0x02。这不可能 改变了,它又回到了ASCII,它可以追溯到7孔纸带 (不包括平价)。
这对我来说似乎很愚蠢。自7孔纸胶带以来,我们已经走了很长一段路,根据我的经验, MANY 程序识别<C-S-Z>
和<C-Z>
之间的区别。事实上,MacVim甚至认识到了这一点!但在GVim或GNOME终端中没有任何乐趣。有没有解决的办法?也许是一个插件甚至是一些编译时选项?
我遇到问题的另一个关键组合是 Ctrl + ,(控制+逗号)。我不确定我的.vimrc
中是否有错误的配置,或者它是否与Vim存在真正的问题,但是在映射之后我无法让<C-,>
做出响应(例如:{{ 1}})。 FWIW,我将我的领导密钥重新映射到map <C-,> :TComment<CR>
。我做错了吗?或者是否有其他原因导致Vim无法识别;
键组合?
我花了太多时间在谷歌搜索和摆弄关键映射,我即将宣布Vim不像我所认为的那样灵活......我甚至无法得到它配置了我习惯的键映射,其中一些我不愿意重新/忘记,因为它们在我每天使用的其他程序中工作。
答案 0 :(得分:4)
您发布的链接似乎已经回答了有关<C-b>
与<C-B>
的问题。根据{{3}},看起来你对<C-,>
也没有好运,因为这个组合键不在Vim可以检测到的Ctrl-printable-key和弦列表中(可能因为它不是甚至是可打印的ASCII和弦?)。
<C-S-w>
之类的关键组合非常 un-Vim-like ,因为它们会破坏模态编辑器的效率。当然,有时需要<CTRL>
- 转义组合(例如,对于omnicompletion,例如<C-x>
- <C-o>
的插入模式映射),但对于诸如此类的操作不是这种情况。撤消和重做。
对不起,这个回复不会让你满意,但从长远来看,“以Vim的方式做”可以获得很多,而不是试图让Vim屈服于你的意愿。
答案 1 :(得分:0)
尝试将set nocompatable
添加到您的vimrc。没有这个你基本上运行vi比vim更受限制。这应该允许您映射<C-S-r>
或<F11>
或您想要的任何其他内容。
Tjameson是完全正确的。使用它们存在的默认映射要好得多。