理想情况下,我想<A-left>
执行:tabmove -1
和<A-right>
执行:tabmove +1
. 然而,当我把
nnoremap <A-left> :tabmove -1<cr>
nnoremap <A-right> :tabmove +1<cr>
在我的 .vimrc 和 try or 中,vim 会发出哔哔声并将光标移到我按下的方向上一个字符。但是,:tabmove -1<cr>
直接输入命令模式会产生所需的效果。我怎样才能解决这个问题?提前致谢。
理想情况下,我想<A-left>
执行:tabmove -1
和<A-right>
执行:tabmove +1
. 然而,当我把
nnoremap <A-left> :tabmove -1<cr>
nnoremap <A-right> :tabmove +1<cr>
在我的 .vimrc 和 try or 中,vim 会发出哔哔声并将光标移到我按下的方向上一个字符。但是,:tabmove -1<cr>
直接输入命令模式会产生所需的效果。我怎样才能解决这个问题?提前致谢。
首先查看终端发送给 vim 的关键代码:
$ sed -n l
^[[1;9D
在上面的例子中,我运行了 sed 命令并按下了Alt + Left.
这^[[1;9D
是发送到 vim 的转义序列,因此我们可以将其用于我们的映射。
将此添加到您的 .vimrc
map <Esc>[1;9D :tabn<CR>
现在我们可以循环使用 vim 选项卡Alt + Left
由于键盘输入在内部处理的方式,不幸的是,今天在大多数终端中这是不可能的,但应该在 GVIM 中工作。某些组合键,如Ctrl+ 非字母无法映射,Ctrl+ 字母与Ctrl+ Shift+ 字母无法区分。这是一个已知的痛点,也是 vim_dev 和 #vim IRC 频道上各种讨论的主题。
作为一种解决方法,请使用不同的键,例如<Leader><Left>
/ <Leader><Right>
。