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

使用 Ctrl+[0-9] 使用 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

答案1

一些 Control+数字击键会生成相当标准化的序列,但并非全部都如此。

这是我在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)

相同的序列生成于iTerm2(尽管这是高度可配置的)。

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

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

可能更好的方法是配置您的终端以发送 xterm 样式的“modifyOtherKeys”序列,多路复用器1.8 识别(如果你的xterm支持这个,多路复用器自动要求发生这种情况):

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~

多路复用器这些键的名称正是C-0等等。

注意:这些键名和序列不能被识别多路复用器1.8 之前的版本。

你可以像这样绑定它们(在你的.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

答案2

@ChrisJohnsen 答案很完美,但是有些人可能需要一些如何设置的帮助第 2 项键以实现此行为。

首先,转到“Iterm2 -> Preferences -> Profiles -> Keys”,如下所示:

Iterm 配置文件配置

然后,当某些+不在列表中时(列表上的格式将为),请单击+符号添加预设,因为 是这种情况,在默认列表中不可用。CtrlNumber^number^1

选择键盘快捷键时按Ctrl+ ,然后选择“发送转义序列”作为操作。1然后,添加 Chris Johnsen 的转义序列(不带 ^[),它将由 iterm2 操作添加:

在此输入图像描述

稍后,对所有其他控制键重复此过程,编辑那些已经存在的控制键。

相关内容