Получите Ctrl + Arrow для работы под tmux + urxvt

5

Я имею ключ команды tmux как Ca. C-Left / C-Right для перехода между словами (или как там это называется) прекрасно работает только в urxvt, но в urxvt / tmux он выведет '5D' и '5C' для Left / Right соответственно. Как мне настроить tmux, чтобы пропустить слово (или с X на urxvt или в tty)?

stelonix
источник
В какую программу вы вводите C-Left и C-Right? Если это оболочка, то какая это оболочка? Есть ли в его конфигурации привязки (например, bindв bash и bindkeyв zsh )? Какой термин вы используете в своих панелях tmux ?
Крис Джонсен

Ответы:

7

Добавьте это к вашему .Xdefaults

URxvt.keysym.Control-Up:     \033[1;5A
URxvt.keysym.Control-Down:   \033[1;5B
URxvt.keysym.Control-Left:   \033[1;5D
URxvt.keysym.Control-Right:  \033[1;5C

URxvt теперь будет отправлять те же escape-последовательности, что и XTerm.

Это гарантирует, что переход по словам будет работать, даже если вы подключены к удаленной обработке с .inputrcиспользованием SSH.

Чтобы сделать urxvt более похожим на xterm, см. Http://www.netswarm.net/misc/urxvt-xtermcompat.txt.

Доминик Хайдлер
источник
1
Я добавил его ~/.Xresources, запустил cat ~/.Xresources | xrdb -mergeи перезапустил терминал. Работает как шарм.
Mauvm
3

Выдержка из Ctrl-влево и Ctrl-вправо в bash и Emacs :

Sometimes the small things make a big difference. I noticed that the control-left 
and control-right keys weren’t working in bash or Emacs on my FreeBSD box 
accessed over X11.app on OS X. Easily fixed.

.inputrc

    "\e[1;5C": forward-word     # Ctrl+right  => forward word
    "\e[1;5D": backward-word    # Ctrl+left   => backward word

.emacs

    (global-set-key "\M-[1;5C"    'forward-word)  ; Ctrl+right   => forward word
    (global-set-key "\M-[1;5D"    'backward-word) ; Ctrl+left    => backward word
  • Я думаю, вам нужно сделать это в каждой программе и изменить их привязки клавиш.
  • Я не знаю, почему tmuxискажает нажатия клавиш, проходящих через все же.
Александр Бурже
источник
2

Если вы используете zsh, добавьте это в свой ~/.zshrc

bindkey "5C" forward-word
bindkey "5D" backward-word

Получил это от http://clock.co.uk/blog/zsh-ctrl-left-arrow-outputting-5d

Тарраш
источник
Это сработало для меня. Предыдущие посты (.Xresouces, .xinputrc) не делали.
себя