Проблема двоякая. Сначала tmux
по умолчанию преобразует клавиши управления стрелками из одного типа escape-последовательности в другой. Поэтому специальные клавиши , такие как controlleftпосылаются vim
без модификатора, например, left. Если вы используете, cat -v
чтобы увидеть различные escape-последовательности, вы можете увидеть что-то вроде этого
^[OD
против этого (вне tmux):
^[[1;5D
Линия
set-window-option -g xterm-keys on
исправляет этот аспект. Другая часть заключается в том, что tmux
по умолчанию используется описание терминала для screen
. Это описание терминала не описывает клавиши со стрелками управления. Эти записи из базы данных терминала будут наиболее подходящими для VTE (gnome-терминал):
Есть и другие, такие как
который будет выбран автоматически при работе в 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
нет. Я проверю и обновлю позже.