将 Tmux 前缀设置为键序列而不是默认键组合

Setting up Tmux prefix to be a key sequence instead of the default key combination

默认情况下,将焦点切换到 Tmux 以输入命令的前缀是 C-b (ctrl + b)。这是一个组合键。相反,我想使用键序列。我想双击 control 键 (C C (ctrl ctrl)).

如何实现?

一般来说,你不能这样做:终端使用 Control 作为 modifier键。重复修饰符无效。

这有几个方面:

  • tmux (like screen) 运行s 在常规终端中。 tmux 是一个 curses 应用程序而 screen 是一个 termcap 应用程序这一事实没有区别,因为它们都用于相同类型的终端。
  • 终端是传统的,因为它们要么是硬件终端,例如 DEC VT100,要么模拟(像)硬件终端。
  • 所有这些("real" 终端和终端仿真器)都设计用于发送字符,例如 US-ASCII(本质上是 POSIX 字符集,以及控制字符)。
  • 为了能够发送这些字符,一些键被分配了 修饰符 的角色。也就是说,它们仅与其他键结合使用以修改发送的值。
  • 修饰符 键的示例包括:ShiftControl NumLock, Alt.
  • 虽然有图形应用程序(例如 xev X Window 应用程序)可以读取键盘上几乎任何键的单独按键和按键事件,但终端仿真器使用结合了这些以及修改键的键盘配置。终端仿真器中的应用程序 运行ning 只能看到按键的效果,经过修改以反映您正在使用的是 shift、control 等修改键。
  • a 少数 特殊情况存在,例如 Linux 控制台,应用程序可以对其进行系统调用以获取一些事件信息。然而,为传统终端编写的应用程序(回到 tmuxscreen)不使用这些特殊情况。这是因为专用信息仅在 某些 终端上可用,而应用程序设计为能够 attach(和 运行 无缝)在任何(传统)终端上)。

关于特殊函数调用,之前已经问过,例如

  • Access Keystrokes in C
  • How to fetch data in a background process in Ubuntu