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