在vim中映射alt + shift +]

BPm*_*BPm 9 vim

我想将Alt+ Shift+ ]Alt+ Shift+ 映射[gtgT(因此它在Mac上运行)

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

map <A-S-]> gt
Run Code Online (Sandbox Code Playgroud)

不知何故]需要逃脱或其他什么

Jar*_*Par 16

你的定义没有错.Vim将正确映射该组合,但它不会以您期望的方式执行.映射本质上说的是

Shift+ Alt被击中时]

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

:map <A-}> gt
:map <A-{> gT
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用...我使用的是 Mac,以防相关。 (2认同)

ste*_*eha 14

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

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

map ^[} gt
Run Code Online (Sandbox Code Playgroud)

(但是有一个实际的Escape角色,而不是一个^[我必须在这里打字),它会起作用.

PS当我尝试这个时,Alt+Shift+[工作正常,但Alt+Shift+]似乎已经在我的vim副本中使用了.我不确定它究竟是做什么但是重新映射它并不适合我.当我输入

:map <A-}>
Run Code Online (Sandbox Code Playgroud)

它打印 No mapping found.