![使用 Ctrl+[0-9] 使用 tmux 在窗口之间循环](https://linux22.com/image/3029/%E4%BD%BF%E7%94%A8%20Ctrl%2B%5B0-9%5D%20%E4%BD%BF%E7%94%A8%20tmux%20%E5%9C%A8%E7%AA%97%E5%8F%A3%E4%B9%8B%E9%97%B4%E5%BE%AA%E7%8E%AF.png)
我已经开始使用了,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”,如下所示:
然后,当某些+不在列表中时(列表上的格式将为),请单击+
符号添加预设,因为 是这种情况,在默认列表中不可用。CtrlNumber^number
^1
选择键盘快捷键时按Ctrl+ ,然后选择“发送转义序列”作为操作。1然后,添加 Chris Johnsen 的转义序列(不带 ^[),它将由 iterm2 操作添加:
稍后,对所有其他控制键重复此过程,编辑那些已经存在的控制键。