Проблема двоякая. Сначала 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:
Хммм ... Это работает :) Но только частично. Только Control+ Leftработает; Control+ Rightнет. Я проверю и обновлю позже.
Шивамс
1
У вас могут быть какие-то другие обязательства, мешающие контролю + право (учитывая детали, я могу предложить совет).
Томас Дики
Спасибо за предложение :) Я немного исследовал и обнаружил, что действительно некоторые другие сочетания клавиш вызывают помехи. Например, на моем Mac это работает нормально, а в Linux (с использованием Guake) - нет. Тем не менее, я не на станции и не могу получить доступ к своему Linux. Я буду обновлять, когда я решу проблему.
Шивамс
@ Томам Дики: Тем временем, я принимаю ваш ответ, поскольку он действительно решает проблему.
Шивамс
@ThomasDickey Я просто хотел бы сказать: «Go raibh míle maith agat», что на ирландском языке буквально переводится как «Пусть у вас будет тысяча хороших вещей». Большое спасибо за этот ответ. Ты звезда.
Роб
2
Отсюда вы можете отменить привязку комбинации клавиш в бёбу:
Создайте файл ~/.byobu/.tmux.confс помощью (или добавьте, если файл существует):
set-window-option -g xterm-keys on
Затем добавьте следующее ~/.byobu/keybindings.tmux:
Control
+Left
работает;Control
+Right
нет. Я проверю и обновлю позже.Отсюда вы можете отменить привязку комбинации клавиш в бёбу:
Создайте файл
~/.byobu/.tmux.conf
с помощью (или добавьте, если файл существует):Затем добавьте следующее
~/.byobu/keybindings.tmux
:источник