【问题标题】:How can I set tmux hotkey as Ctrl-, that is, Ctrl+comma如何设置tmux热键为Ctrl-,即Ctrl+逗号
【发布时间】:2012-04-12 22:19:03
【问题描述】:

我在 Mac OS X 上设置首选 tmux 热键时遇到了一些麻烦。

最常见的调用 tmux 魔法的热键是 CTRL+ACTRL+B。但我宁愿选择其他按键,原因如下: C-a 是“跳到行首”的全局热键; C-b 用于“向后移动一行”和“在 Vim 中向上翻页”。我不想在 tmux 中破坏这些好规则。

所以,我尝试为 tmux 热键设置一些不常用的击键。我选择的是 CTRL-,CTRL-.CTRL- ;

我在我的 .tmux.conf 文件中写下这个语句:

set-option -g prefix C-,

我启动 tmux。哦,它说“坏钥匙”。我用 C- 替换 C-。或 C-;。它也不起作用。

那么,如何将 tmux 热键设置为 CTRL-,

【问题讨论】:

  • 相关超级用户问题:How do I bind the tmux prefix key to C-'?
  • 正是由于您提到的原因,我在屏幕配置中使用了 CTRL-T。我没有在 vim 中使用标签列表。 (CTRL-T - 在 taglist 中向后跳转)

标签: hotkeys comma tmux ctrl


【解决方案1】:

不得不深入研究这个源代码。控制键只能应用于字母、@、空格和? (并且 C-@ 似乎等同于 C 空间)。抱歉,看起来不像 C-,至少在 tmux-1.6 中是可能的。

【讨论】:

  • chepner,感谢您的回答。听起来像个坏消息。这意味着最近没有可用的 REAL 解决方案。我会妥协使用 C-q、C-h 或 C-z。我想应该有一些没有被 emacs、vim 或其他东西占用的击键。
  • 不确定“字母”是什么意思。但是反斜杠是有效的(虽然设置起来很棘手,请参阅superuser.com/q/417236/63972)与 C- 的组合。
【解决方案2】:

逗号、句号或分号都不是标准控制字符。您的终端仿真器可能只发送纯字符,或者在您键入它们时根本不发送;您可以将它们输入cat -v 以查看它发送的内容。

参见维基百科的“ASCII control characters”和“How control characters map to keyboards”。

如果您可以重新配置您的终端仿真器以发送一些其他字符/序列,您应该能够在 tmux 中使用它(例如让您的终端仿真器发送与 C-\ 相同的字符(十六进制1C),并将您的前缀设置为)。

【讨论】:

    【解决方案3】:

    使用 xterm 终端

    1) 当 CTRL-,, CTRL kbd>-.CTRL-; 被按下

    XTerm.VT100.translations: #override \                                                                                                   
        Ctrl<Key>period:    string(0x1b) string("[1;2P") \n\                                                                                
        Ctrl<Key>comma:    string(0x1b) string("[1;2P") \n\                                                                                 
        Ctrl<Key>semicolon:    string(0x1b) string("[1;2P")
    

    运行xrdb ~/.Xresources 来加载这些配置文件。

    2) 更改 ~/.tmux.conf 中的前缀

    set -g prefix F13
    

    3) 触发 xterm 和 tmux

    $ tmux
    

    【讨论】:

    • 这是否会破坏 Ctrl+, 在 Google Chrome 等应用程序中的使用,您可以在其中使用 Ctrl+,Ctrl+. 在 hangouts.google.com 上的对话之间切换?
    • 不,这些配置仅适用于 Xterm
    • 太棒了。将每个组合映射到超过 12 的唯一功能键是否有效且有意义,以便它们可用于其他触发器,而不仅仅是所有发送前缀?
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2021-04-11
    • 2013-03-06
    • 2022-01-02
    相关资源
    最近更新 更多