Я хотел бы иметь возможность отображать ключи Emacs (например, C-v
/M-v
) для прокрутки в tmux вместо стандартного PgUp
/PgDown
, это возможно? На данный момент не вижу этого в руководстве (извиняюсь, если оно там есть, кажется таким естественным, учитывая остальную часть привязок навигационных клавиш, подобных emacs, которые использует tmux)
1 ответ
По умолчанию таблица привязки ключей emacs-copy
содержит все Cv, Page Down (NPage
) и Space, связанные с page-down
а также Mv и Page Up (PPage
), связанные с page-up
.
Вы можете проверить свои привязки с помощью tmux list-keys -t emacs-copy | grep -i page
.
Если эти привязки отсутствуют, вы можете восстановить их вручную (например, в вашем ~/.tmux.conf
):
bind-key -t emacs-copy C-v page-down
bind-key -t emacs-copy M-v page-up
Но так как они используются по умолчанию, вам нужно будет отследить, где они изменяются / удаляются, прежде чем вы узнаете, куда поместить приведенные выше команды, чтобы сделать их эффективными (они должны появиться после того, как что-либо еще изменило привязки).
Вы уверены, что ваша опция mode-keys
установлена на emacs
? По умолчанию он имеет значение emacs
, но tmux установит для него значение vi
(вместе с status-keys
), если у вас установлена переменная окружения VISUAL и в ее значении есть vi
† , или если у вас не установлен VISUAL, но установлен EDITOR и его значение имеет в нем vi
.
Вы можете проверить ваше глобальное значение mode-keys
с помощью tmux show-options -g -w | grep mode-keys
. У вас также может быть значение mode-keys
для каждого окна (опустите -g
чтобы проверить его значение; вы можете использовать -t
чтобы указать другое окно, если вы не можете запустить команду в самом окне).
Если вы хотите переопределить «автоопределение» и всегда использовать таблицы привязки emacs
, вы можете поместить эти строки в ваш ~/.tmux.conf
:
set-option -g status-keys emacs
set-option -gw mode-keys emacs
† Тест «имеет в нем vi
» на самом деле больше похож на « vi
происходит после последнего /
(или где-либо, если в значении /
не встречается)». Это означает, что значение типа /opt/vital/bin/emacs
не будет считаться как vi
(несмотря на vi
в vital
).