2011-07-12 171 views
0

我一直使用议会专门的几个星期,现在,几件事情都被我的经历很激动至今让我。首先,我无法将几个关键序列映射到命令。VIM/gVim的键位映射

我想映射Ctrl键 + + Ž:redo<CR>或交替<C-R>,但移位和未变换的控制键序列之间显然Vim is not able torecognize the difference

按Ctrl - b和Ctrl-B是同义词,它们都是0x02。这不能被 改变,它可以追溯到ASCII,这可以追溯到7洞纸带 (不包括奇偶校验)。

这完全是愚蠢的我。我们已经来了,因为7孔纸带很长的路要走,在我的经验MANY程序可识别<C-S-Z><C-Z>之间的差异。事实上,MacVim甚至认识到这种差异!但在GVim或GNOME终端中没有喜悦。有没有解决的办法?也许是一个插件甚至一些编译时选项?

对方认为我有麻烦,按组合键是按Ctrl +(控制+逗号)。我不确定在我的.vimrc中是否有配置错误,或者它是Vim的一个实际问题,但映射后我无法回复<C-,>(例如:map <C-,> :TComment<CR>)。 FWIW,我把我的领导钥匙重新映射到;。我做错了吗?还是有其他一些原因,为什么Vim不会识别<C-,>组合键?

我花了太多时间搜索和键入映射关键字,我正在宣布Vim不如我一直相信的那么灵活......我甚至不能使用我习惯的键映射来配置它,其中一些我不愿意重新/忘记,因为它们在我每天使用的其他程序中工作。

+2

为什么不用Vim的方式呢?我做了,而且我发现它更容易。例如,推“u”比Ctrl-z容易得多,“r”比Ctrl-Shift-z容易得多。另外,如果你已经使用了默认的键绑定,那么拿起别人的电脑并使用vim就容易多了。 – tjameson

+8

你做错了。您应该重新映射所有其他程序以使用VIM密钥绑定! – janm

+2

考虑到你的修改器的选择,你可能想试试Emacs:D –

回答

4

看起来您发布的链接已经回答了您对<C-b><C-B>的问题。根据the FAQ,你看起来像<C-,>也不幸运,因为这个组合键不在可以检测到的Ctrl-printable-key和弦列表中(可能因为它甚至不是可打印的ASCII和弦?)。

关键组合如<C-S-w>非常像un-Vim因为它们破坏了模态编辑器的效率。当然有些时候<CTRL>转义组合是必要的(例如,在插入模式的映射如<C-x> - <C-o>为omnicompletion),但是这不是对如撤消和恢复操作的情况下。

我很抱歉,这个答复不能令你满意,但是从长远来看,有很多是从“做Vim的方式”,而不是试图弯曲的Vim你的意愿得到。

+0

Bummer,我对Vim寄予厚望,但这对我来说是一个破坏。我不想将我的大脑重新编程为与标准不同的东西,我希望每个其他程序都像Vim一样行事。坦率地说,让我感到惊讶的是,Vim并不是那里最可配置的编辑器。无论如何,谢谢你提供了一个真实的答案。 – millerdev

0

尝试增加set nocompatable到你的vimrc。没有这个,你基本上运行vi,这比vim更有限。这应该允许您映射<C-S-r><F11>或其他任何你想要的。 Tjameson是完全正确的。使用它们存在的默认映射要好得多。

+0

我不认为'set nocompatible'对''和''的等价性有任何影响;至少不适合我。 –

+0

我做了一些额外的测试,它看起来对ascii字符没有任何影响,但是你可以用shift修饰符映射非ascii字符。例如我映射: 'map :tabnext' 'map :tabprev' 这些确实可以正常工作 –

+0

它似乎为我解决了它.. –