Answers:
问题是双重的。首先,tmux
默认情况下,将控制箭头键从一种转义序列转换为另一种。因此,诸如之类的特殊键controlleft将vim
不带修饰符发送到,例如left。如果您cat -v
用来查看不同的转义序列,则可能会看到类似这样的内容
^[OD
与此相对(tmux以外):
^[[1;5D
线
set-window-option -g xterm-keys on
解决该方面。另一部分是tmux
默认情况下使用的终端描述screen
。该终端描述未描述控制箭头键。终端数据库中的这些条目最适合VTE(gnome-terminal):
还有其他的,例如
这将在运行时被自动选择screen
,如果对应的TERM
外是vte
,vte-256color
等 tmux
不执行此自动选择; 您必须修改其配置文件。
顺便说一句,没有“ screen.xterm”条目,因为它会干扰的某些用法screen
。与没有冲突TERM=xterm-new
。
如果您有一个默认的(最小)终端数据库(例如ncurses-base
Debian),则可能没有。更常见的是xterm-256color
,它足够接近vim和tmux。
例如,如果我将其添加到.tmux.conf
文件中,它的行为将与您在vim中期望的一样:
set -g default-terminal "xterm-256color"
进一步阅读:
Control
+Left
在起作用;Control
+Right
不是。稍后再测试和更新。