6

Я хотел бы иметь возможность отображать ключи Emacs (например, C-v/M-v) для прокрутки в tmux вместо стандартного PgUp/PgDown , это возможно? На данный момент не вижу этого в руководстве (извиняюсь, если оно там есть, кажется таким естественным, учитывая остальную часть привязок навигационных клавиш, подобных emacs, которые использует tmux)

1 ответ1

10

По умолчанию таблица привязки ключей 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).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .