Проблема двояка. По-перше, 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ні. Я перевіряю та оновлю пізніше.