我想将Alt+Shift+]和Alt+Shift+[映射为gt
和gT
(就像在Mac上一样)
我该如何做到这一点?因为如果我只是简单地这样做,它似乎不起作用:
map <A-S-]> gt
不知何故,需要转义或其他处理 ]
我想将Alt+Shift+]和Alt+Shift+[映射为gt
和gT
(就像在Mac上一样)
我该如何做到这一点?因为如果我只是简单地这样做,它似乎不起作用:
map <A-S-]> gt
不知何故,需要转义或其他处理 ]
您的定义没有问题。Vim将正确映射该组合键,但它的实际操作方式可能与您的预期略有不同。这个映射本质上是在说:
当按下 ] 以及 Shift 和 Alt 时
在标准键盘上,当 ] 与 Shift 结合时,将产生 }
。这意味着 Vim 永远不会看到 ] 与 Shift 结合,而只会看到 }
。不过,您可以利用这一点来获得所需的行为。请尝试使用以下映射(假设使用标准 QWERTY 键盘):
:map <A-}> gt
:map <A-{> gT
当你想在vim中重新映射按键时,通常最好进入插入模式,按下Ctrl+V,然后输入你想要重新映射的键。在这种情况下,我得到了一个Escape
字符(Ctrl+[),然后是}
。
我喜欢使用<A-}>
表示法,但你也可以通过编辑.vimrc
文件来解决问题,输入map
文本,然后按下Ctrl+V和Alt+Shift+],然后添加gt
。你将得到一行类似于这样的代码
map ^[} gt
(但要使用实际的Escape
字符,而不是我在这里键入的^
和[
),这样会起作用。
P.S. 当我尝试这样做时,Alt+Shift+[可以正常工作,但Alt+Shift+]似乎已经在我的vim副本中被占用。我不确定它实际上是做什么,但重新映射它对我来说不起作用。当我键入
:map <A-}>
它会打印No mapping found.
Ctrl+V
技巧会给我map <M-}> gt
而不是map ^[} gt
(这是一件好事)。 - Jasha