我已将vim配置为使用控件+箭头通过在.vimrc中添加以下行来切换标签:
map <F7> :tabp<cr>
map <F8> :tabn<cr>
map <C-up> :tabr<cr>
map <C-down> :tabl<cr>
map <C-left> :tabp<cr>
map <C-right> :tabn<cr>
在屏幕中,<F7>
和<F8>
有效,但控件+箭头却没有...
知道为什么吗?以及如何解决?感谢。
答案 0 :(得分:2)
我不确定它是否可行,但您可以尝试将此代码包含在vimrc
中:
if &term =~ '^screen'
sil! exe "set <xUp>=\e[1;*A"
sil! exe "set <xDown>=\e[1;*B"
sil! exe "set <xRight>=\e[1;*C"
sil! exe "set <xLeft>=\e[1;*D"
endif
我是从here复制的。
如果您使用tmux,您可能还需要在tmux配置文件(xterm-keys
)中启用选项~/.tmux.conf
:
set-option -gw xterm-keys on
在man tmux
中描述:
xterm-keys [on | off]
If this option is set, tmux will generate xterm(1) -style function key sequences; these have a
number included to indicate modifiers such as Shift, Alt or Ctrl. The default is off.
我不知道screen
的等价物是什么。
在Vim之前,某些东西(窗口管理器,终端多路复用器,终端仿真器)也可能正在拦截<C-left>
。
要排除这种可能性,您可以尝试在插入模式下键入<C-left>
,将C-v C-left
字面插入Vim缓冲区,然后查看它显示的内容。在我的计算机上,它显示^[[1;5D
,因此我知道没有任何内容拦截<C-left>
。
如果未显示任何内容,则必须找到拦截<C-left>
的软件并删除其配置中的密钥绑定。