8

理想情况下,我想<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>直接输入命令模式会产生所需的效果。我怎样才能解决这个问题?提前致谢。

4

2 回答 2

20

首先查看终端发送给 vim 的关键代码:

$ sed -n l
^[[1;9D 

在上面的例子中,我运行了 sed 命令并按下了Alt + Left.

^[[1;9D是发送到 vim 的转义序列,因此我们可以将其用于我们的映射。

将此添加到您的 .vimrc

map <Esc>[1;9D :tabn<CR>

现在我们可以循环使用 vim 选项卡Alt + Left

于 2014-06-04T20:59:50.267 回答
6

由于键盘输入在内部处理的方式,不幸的是,今天在大多数终端中这是不可能的,但应该在 GVIM 中工作。某些组合键,如Ctrl+ 非字母无法映射,Ctrl+ 字母与Ctrl+ Shift+ 字母无法区分。这是一个已知的痛点,也是 vim_dev 和 #vim IRC 频道上各种讨论的主题。

作为一种解决方法,请使用不同的键,例如<Leader><Left>/ <Leader><Right>

于 2012-07-30T15:16:42.190 回答