Согласно различным другим обсуждениям, которые я связывал выбирать + & 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
воспроизводит проблему.
bindkey -e
после запуска zsh без .zshrc? В противном случае это не работает даже в обычном терминале.Ответы:
Похоже, я наконец-то нашел ответ! Или скорее обходной путь, так как я все еще не уверен, что именно идет не так.
Явная настройка привязок клавиш для навигации по словам устранила проблему для меня:
Возможно, zsh использует разные сочетания клавиш, основанные на $ TERM.
источник