10

我想将 ++ 和 ++ 映射Alt到and Shift(所以它就像在 Mac 上一样工作)]AltShift[gtgT

我该怎么做,因为如果我只是这样做似乎不起作用:

map <A-S-]> gt

不知何故]需要逃脱什么的

4

2 回答 2

18

你的定义没有错。Vim 将正确地映射该组合,但它并没有按照您期望的方式进行。该映射本质上说的是

Shift+Alt被击中时]

在标准键盘上,]与 结合使用的字符Shift将产生}. 这意味着 Vim 永远不会看到与组合的]组合,Shift而只会看到}. 您可以利用它来获得您正在寻找的行为。请尝试以下映射(假设标准 QWERTY 键盘)

:map <A-}> gt
:map <A-{> gT
于 2012-07-11T22:50:00.707 回答
16

当您想在 vim 中重新映射键时,通常最好进入插入模式,点击Ctrl+V,然后键入要重新映射的键。在这种情况下,我得到一个Escape字符 ( Ctrl+[),后跟}.

我确实喜欢使用<A-}>符号,但您可以通过编辑.vimrc文件、输入map文本、然后点击Ctrl+V和点击Alt+Shift+]然后添加gt. 你最终会得到像这样的一行

map ^[} gt

(但使用实际Escape字符而不是我必须在这里输入的 a^和 a [)并且它会起作用。

PS 当我尝试这个时,Alt+Shift+[工作正常,但Alt+Shift+]似乎已经在我的 vim 副本中使用。我不确定它到底做了什么,但重新映射它对我不起作用。当我输入

:map <A-}>

它打印No mapping found.

于 2012-07-12T00:22:07.237 回答