Intereting Posts
Как отключить параллельный запуск в скрипте bash Intel HDI Sound (ThinkPad X60) не работает без диспетчера дисплея Autofs не устанавливает ресурсы при запуске Как я могу удалить текст перед шаблоном (————–) в Linux Ошибка Java с «Не удалось найти основной класс» Графический интерфейс низкого разрешения для Linux на RaspberryPi, используемый в качестве мобильного устройства В чем разница между '.' и «источник» в оболочках? Возможно ли, с `sed` или иначе, применить преобразование регулярных выражений к входному потоку, который не может содержать строки новой строки? что означает $ * в shell Как установить / скомпилировать модуль в Debian без использования полного ядра, только используя уже установленные заголовки ядра Есть ли механизм для запуска «службы» пользователем без полномочий root? CoreOS: запуск пользовательского скрипта, только один раз, во время загрузки Время измерения в скрипте GLIB_GSETTINGS не обнаружено при компиляции расширения gnome Parse du result используя sed

Привязка оболочки tmux alt meta zsh

У меня есть следующие пользовательские сочетания клавиш Zsh для Alt (мета) + клавиши со стрелками влево и вправо с помощью параметра X Iterm2 и + Esc для мета

bindkey "^[^[[D" backward-word bindkey "^[^[[C" forward-word 

Это позволяет перемещаться по слову на оболочке, как в большинстве текстовых редакторов с стрелкой alt.

Однако при запуске сеанса tmux эти привязки просто выводят следующее на экран.

 DCDCDC 

Любая идея, как заставить zsh в tmux принимать привязки.

Escape указывает мета только для комбинаций вида Meta + c, где c – печатный символ или управляющий символ. Большинство терминалов не добавляют экранирующий символ для экранирующих последовательностей, так что вы можете ввести два последовательных экранирующих символа для запуска привязки Escape в приложениях, чтобы экранирующие последовательности не содержали управляющих символов после начального escape-символа.

Чтобы увидеть, какую escape-последовательность отправляет ваш терминал для нажатия клавиши, нажмите Ctrl + V, затем это нажатие, например, Ctrl + V, затем Meta + Left , в приглашении оболочки или в cat . В терминале в готовом режиме и в таких приложениях, как оболочки и Vi, Ctrl + V означает «вставить следующий символ буквально, даже если он является управляющим символом», поэтому Ctrl + V, за которым следует нажатие клавиши, которая отправляет escape-последовательность, приводит к вставке эта escape-последовательность (при условии, что escape-последовательность не содержит управляющего символа, кроме ведущего escape-символа).

Вы, вероятно, увидите что-то вроде этого:

 ^[O1D 

Это означает, что Meta + Left отправляет escape-символ, за которым следуют три символа O1D . Это означает, что вам нужно связывание

 bindkey "^[O1D" backward-word 

Добавьте set-option -g xterm-keys on в tmux.conf или введите :set-option -g xterm-keys on внутри tmux каждый раз.