映射Alt + left | right以移动选项卡

时间:2012-07-30 14:33:13

标签: vim

理想情况下,我希望<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>可以获得所需的效果。我怎样才能解决这个问题?提前谢谢。

2 个答案:

答案 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>