让 Ctrl+Arrow 在 tmux+urxvt 下工作

让 Ctrl+Arrow 在 tmux+urxvt 下工作

我的 tmux 命令键为 Ca。C-Left/C-Right 在单词之间跳转(或无论它叫什么)在 urxvt 中单独使用时效果很好,但在 urxvt/tmux 下,它会分别打印“5D”和“5C”表示左/右。如何配置 tmux 以使单词跳转有效(在 X 上使用 urxvt 或在 tty 中)?

答案1

将其添加到您的.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 现在将发送与 XTerm 相同的转义序列。

这将确保当您使用.inputrcSSH 连接到远程机器时,字跳转也能正常工作。

要使 urxvt 更像 xterm,请参阅http://www.netswarm.net/misc/urxvt-xtermcompat.txt

答案2

摘录自bash 和 Emacs 中的 Ctrl-left 和 Ctrl-right

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会破坏经过的击键。

答案3

如果你使用 zsh,请将其添加到你的~/.zshrc

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

来自http://clock.co.uk/blog/zsh-ctrl-left-arrow-outputting-5d

答案4

在这里回答:https://superuser.com/a/395273/65499

C-b :set-window-option xterm-keys on

相关内容