使用 Ctrl+[0-9] 在使用 tmux 的窗口之间循环

Joh*_*olt 9 keyboard-shortcuts tmux

我已经开始使用了,tmux但我觉得使用Ctrlb0-9很烦人,因为它使用的频率很高。

如何绑定键盘,以便我只需要Ctrl0-9更改窗口(例如在 Chrome 中)?

我曾尝试在 中配置它.tmux.conf,但没有任何成功。

这是我当前的 .tmux.conf 文件

bind C select-pane -t :.+
set -g status-bg black
set -g status-fg white
Run Code Online (Sandbox Code Playgroud)

Chr*_*sen 11

几个 Control+digit 键击生成了相当标准化的序列,但并不是所有的都这样。

这是我在xterm中发现的有用的内容:

C-1: 1  (i.e. not different form a plain 1 keystroke)
C-2: ^@
C-3: ^[
C-4: ^\
C-5: ^]
C-6: ^^
C-7: ^_
C-8: ^?
C-9: 9  (i.e. plain 9)
C-0: 0  (i.e. plain 0)
Run Code Online (Sandbox Code Playgroud)

iTerm 2中生成相同的序列(尽管这是高度可配置的)。

如果您的终端模拟器生成类似的序列,那么您可以绑定其中的大部分(尽管您需要使用标准的非数字“名称”作为键,例如C-@^@等)。您必须找到一种方法来配置您的终端,以便为任何尚未发送与未修改密钥不同的东西(例如,上面的 1、9 和 0)的任何击键发送某种序列。

然而,在没有前缀 ( bind -n …) 的情况下绑定这些键可能会破坏很多东西。具体来说,^[是Escape字符(几乎在所有终端控制序列中使用),^?通常是Delete字符,^@(如C-Space)通常用于Emacs(-style)编辑等。

可能更好的方法是配置您的终端以发送tmux 1.8 识别的 xterm 样式的“modifyOtherKeys”序列(如果您的xterm支持此功能,tmux 会自动要求这样做):

C-1: ^[[27;5;49~
C-2: ^[[27;5;50~
C-3: ^[[27;5;51~
C-4: ^[[27;5;52~
C-5: ^[[27;5;53~
C-6: ^[[27;5;54~
C-7: ^[[27;5;55~
C-8: ^[[27;5;56~
C-9: ^[[27;5;57~
C-0: ^[[27;5;48~
Run Code Online (Sandbox Code Playgroud)

这些键的tmux名称正好是C-0,等等。

注意:1.8 之前的tmux版本无法识别这些键名和序列。

你会像这样绑定它们(在你的.tmux.conf):

bind-key -n C-0 select-window -t :0
bind-key -n C-1 select-window -t :1
bind-key -n C-2 select-window -t :2
bind-key -n C-3 select-window -t :3
bind-key -n C-4 select-window -t :4
bind-key -n C-5 select-window -t :5
bind-key -n C-6 select-window -t :6
bind-key -n C-7 select-window -t :7
bind-key -n C-8 select-window -t :8
bind-key -n C-9 select-window -t :9
Run Code Online (Sandbox Code Playgroud)