Горячие клавиши не работают в zsh, если для $ TERM установлено значение screen-256color

0

Согласно различным другим обсуждениям, которые я связывал выбирать + & Lt; - в 0x1b 0x62 а также выбирать + - & GT; в 0x1b 0x66, Это прекрасно работает в zsh, но не в tmux.

В тмукс выбирать + & Lt; - выполняет переход назад на каждое слово, но, похоже, также вносит изменения в режим ... при наборе текста s после этого символ под курсором будет удален.

У меня также есть проблемы с CMD + - & GT; ( 0x05 ) а также CMD + & Lt; - ( 0x01 ) - в zsh эти клавиши перемещаются до конца и начала строки, но в tmux это совсем не работает.

Я не думаю, что есть какие-либо сочетания клавиш для этих шестнадцатеричных кодов, поэтому я предполагаю, что что-то теряется на пути от iTerm2 к tmux… Вызов read в zsh напрямую и в tmux выводит одинаковые коды для выбирать привязки, упомянутые выше, но это ничего не выводит для CMD привязки в tmux.

Редактировать:

Я немного поэкспериментировал и обнаружил, что привязки работают нормально при использовании / bin / bash в tmux и ломаются только при использовании zsh в tmux. Я даже протестировал / bin / zsh без загрузки .zshrc, чтобы проверить, не так ли что-то с домашним пивом zsh, но там тоже нарушены привязки. Кажется, что это на самом деле проблема с Zsh.

Редактировать:

Больше экспериментов! Похоже, это связано с переменной окружения $ TERM, для которой мой файл .tmux.conf настроен на «screen-256color» - это кажется правильным, чтобы цвета работали, но как только zsh запустится с этой переменной среды, перестает работать навигация. Бег TERM=screen-256color zsh воспроизводит проблему.

Strayer
источник
Ты использовал bindkey -e после запуска zsh без .zshrc? В противном случае это не работает даже в обычном терминале.
SilverWolf

Ответы:

1

Похоже, я наконец-то нашел ответ! Или скорее обходной путь, так как я все еще не уверен, что именно идет не так.

Явная настройка привязок клавиш для навигации по словам устранила проблему для меня:

bindkey "^[f" forward-word
bindkey "^[b" backward-word

Возможно, zsh использует разные сочетания клавиш, основанные на $ TERM.

Strayer
источник