【问题标题】:tmux send-keys syntaxtmux 发送密钥语法
【发布时间】:2013-10-11 08:40:43
【问题描述】:

在 tmux 手册页上,我没有找到关于它如何命名键的参考。

例如,要将 ctrl + r 发送到 tmux,您可以这样做:

tmux send-keys C-r

然后发送 esc

tmux send-keys Escape

是否有一个列表可以将键盘键映射到 tmux sendkeys 期望您如何命名它们?我有一种感觉,我错过了一个备忘录,它使用 some-long-forgotten-program's 语法为方便起见。

注意,这与键绑定无关。

【问题讨论】:

  • 我习惯了 "^r" 是 control+r。这种古怪的替代语法从何而来?

标签: tmux


【解决方案1】:

send-keys 使用的键名与bind-key 使用的键名相同。
来自tmux manpageKey Bindings section

当指定键时,大多数代表自己(例如“A”到 'Z')。 Ctrl 键可能带有前缀“C-”或“^”,而 Alt(元)带有 'M-'。此外,接受以下特殊键名:Up向下向左向右BSpaceBTabDC(删除)、EndEnterEscapeF1 F20HomeIC(插入)、NPage/PageDown/PgDnPPage/PageUp/ PgUp, 空格, 和制表符

虽然它们没有在手册页中列出,但键盘特定键也有特殊名称:KP0KP9KP/KP*KP-KP+、@987654331 @ 和 KPEnter

几个更神秘的密钥名称(BTabICDCNPagePPage)可能来自 terminfo 库。

Emacs 共享使用 C-M- 前缀来指示修饰符的约定(如果早期使用此约定,我不会感到惊讶)。

【讨论】:

  • 有没有办法逃脱这些绑定的键?假设我想发送文字字符串enter - send-keys 所做的是发送命名键“Enter”
  • @ItamarKatz:使用-l(“literal”)标志:send-keys -l Enter将发送五个字母:Entertmux 1.7+;对于以前的版本,将它们分解一下:例如send-keys E nter)。
  • 如果要发送命令并按回车,使用空格分隔它们:send-keys "ls" Enter
  • 发送CTRL + C 来终止 tmux 中的任何运行怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2010-11-18
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多