【问题标题】:How to use Ctrl-semicolon for prefix in tmux?如何在 tmux 中使用 Ctrl-分号作为前缀?
【发布时间】:2015-06-06 07:51:34
【问题描述】:

我想使用 Ctrl-分号作为 tmux 的前缀。但是我的 conf 不起作用。

 unbind-key C-b  
 set-option -g prefix C-\; 

我发现了一篇类似的文章。但这不是前缀。 tmux bind semicolon

【问题讨论】:

    标签: tmux


    【解决方案1】:

    终端无法注册Ctrl-; 击键。它只是不是一个有效的字符。如果您查看下面 ascii 表中的控制字符,您会发现 Ctrl-; 不在列表中。

    我在 OS X 上,当我在(终端和“桌面”程序中)键入 Ctrl - ; 时,我听到铃声表示无法识别字符或其他什么。

    至于“最爱”前缀键:从我看到别人的.tmux.conf文件来看,Ctrl-a是最受欢迎的选择。这是有道理的,因为:

    使用Ctrl-a 的缺点是您不能在 bash 或 vim 中使用相同的键,但这很容易通过在 .tmux.conf 中使用以下绑定来解决:

    bind-key 'C-a' send-prefix
    

    这样,按两次Ctrl-a 会将相同的字符发送到底层程序(例如bash 或vim)。

    【讨论】:

    • 绑定“Ctrl+;”在 macOS 中很容易,例如 iTerm 可以做的是让它发送一个终端程序可以理解的唯一转义码。不幸的是,我还不确定如何在 linux/其他终端程序中做到这一点
    【解决方案2】:

    正如其他人所说,您不能绑定到 Ctrl-;,因为它不是有效字符。

    我喜欢这个前缀,因为当 CapsLock 重新映射到 Ctrl 时,它真的很容易按下。

    对于 Linux,我的解决方法是在 xkb 级别将 Ctrl-; 重新映射到 Ctrl-BXkb 是处理键盘布局的 Xorg 子系统。

    我使用的是 us 布局,所以我在第 42 行修改了/usr/share/X11/xkb/symbols/us

    key <AC10> {     [ semicolon,    colon           ]       };
    

    //  key <AC10> {     [ semicolon,    colon           ]       };
    key <AC10> {                                                  
       type="BABEL_CONTROL_LEVEL3",                               
       symbols[Group1]= [ semicolon, colon, b ]                   
    };                                                            
    

    这告诉 Xkb 为AC10(C 行中的第 10 个按钮)在 1 级生成分号(无修饰符),在 2 级生成冒号(移位修饰符)和在 3 级生成 b(Ctrl 修饰符)。

    Xkb 中的Level 3 一般不会被Ctrl 激活,为此我创建了一个新的键类型,我称之为BABEL_CONTROL_LEVEL3。你需要把它的定义放在/usr/share/X11/xkb/types/pc:

    type "BABEL_CONTROL_LEVEL3" {
        modifiers = Shift+Control;
        map[Shift] = Level2;
        map[Control] = Level3;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Control";
    };
    

    您需要重新启动 X 或重新启动。

    对我有帮助的资源列表:

    【讨论】:

      【解决方案3】:

      如果你想使用控制分号,你可以试试 AutoHotkey。

      这是我的 tmux 和自动热键设置。

      Tmux:

      set-option -g prefix 'C-\'
      

      自动热键:

      ^;::
          Send ^{\}
      return
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-12
        • 2023-01-26
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        • 1970-01-01
        相关资源
        最近更新 更多