触发序列

需要一系列按键事件组成的序列来触发的触发器。

Ghostty 支持需要一系列触发器 才能激活动作的键位绑定。例如,你可以要求 先按 ctrl+a 再按 n 来打开新窗口。在其他软件中, 这有时被称为 “leader key”、“key chord”、“key table” 等。

要指定触发器序列,请使用 常规触发语法,并使用 > 字符 分隔序列中的触发器。 示例如下:

keybind = ctrl+a>n=new_window

Warning

如果将序列定义为 ghostty 的命令行参数, 你可能需要给键位绑定加上引号,因为 > 在大多数 shell 中是特殊字符。 示例:ghostty --keybind='ctrl+a>n=new_window'

触发序列有一些特殊处理:

  • Ghostty 将无限期地等待序列中的下一个按键。无法指定超时。 显示前缀键的唯一方法是为该前缀专门分配一个键位绑定来输出该键 (即 ctrl+a>ctrl+a=text:foo),或者按下一个未绑定的键,这会把两个按键都发送给程序。

  • 如果序列中的某个前缀之前已被绑定,则该序列会 覆盖之前的绑定。例如,如果 ctrl+a 绑定到 new_window,而 ctrl+a>n 绑定到 new_tab,那么按下 ctrl+a 将没有任何效果。

  • 在上述基础上,如果之前绑定的序列前缀 被用于新的、非序列绑定,则整个之前绑定的 序列都会被解除绑定。例如,如果你绑定了 ctrl+a>n 和 ctrl+a>t,然后直接绑定 ctrl+a,则 ctrl+a>n 和 ctrl+a>t 都会变为未绑定。

  • 触发序列不允许用于 global: 或以 all: 为前缀的 触发器。这是我们将来可能移除的限制。