我想将Alt+ Shift+ ]和Alt+ Shift+ 映射[到gt和gT(因此它在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)
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.