第 5 章 终端按键绑定

Konsole 如何使用按键绑定

介绍

Konsole 使用 *.keytab 文件将组合键转换为控制字符和转义序列,这些字符和转义序列将发送到 shell 或在 shell 中运行的交互式程序(通常是使用备用屏幕缓冲区的程序,例如:vimlessscreen)。

用户可以使用按键绑定编辑器自定义 Konsole 中的按键绑定设置。可以将组合键配置为向终端发送特定的控制或转义序列。

您可以从菜单项 设置编辑当前配置方案 打开按键绑定编辑器,然后转到 键盘 选项卡。列出了 Konsole 默认情况下附带的按键绑定模式。

组合键和模式

组合键遵循以下模式:

按键(+|-)模式

例如:

Up+Shift+AppScreen
Down+Shift-AppScreen
Space+Ctrl

按键名在 qnampace.h 头文件中定义,删除了 qt::KEY_ 前缀,有关键名的列表,请查看 Qt™ 文档中的 Qt::Key 枚举

模式名称前面的 + 表示模式是 设置;对于修改键,这意味着按下了它,而对于所有其他模式,它意味着特定模式正在生效(i.e. 活动)。例如:+Ctrl 表示组合键只有在按下Ctrl 键时才起作用。

模式名称前面的 - 表示模式是 重置;基本上这与将 + 放在模式名称之前是相反的,因此对于修饰键而言,这意味着该键没有被按下,而对于所有其他模式,这意味着特定模式处于非活动状态。例如:-Ctrl 表示只有在未按下 Ctrlnot 时,组合键才有效。

注意

如果组合键中不存在模式名称,则忽略其状态。

下面列出了支持的按键绑定模式:

Alt, Ctrl, Shift

可以在组合键中使用这些模式中的一个或多个,如果设置了其中任何一个,则组合键将分别使用该修改键;如果重置,则反之亦然

任意修饰符

如果设置了此模式,则组合键使用任何修改键(前三个修改键中的任意一个);如果重置,则反之亦然

Ansi

如果设置了此模式,Konsole 将发送 ANSI 转义和控制序列

如果重置此模式,Konsole 将发送 VT52 转义和控制序列

应用程序屏幕

如果设置了此模式,则组合键将仅影响使用备用屏幕缓冲区的交互式程序

如果重置此模式,则组合键只会在终端使用正常屏幕缓冲区时影响终端

注意

Konsole 使用两个屏幕缓冲区:

  • 正常屏幕缓冲区(默认):允许您向后滚动以查看前面的输出行,这是您通常用来执行命令的默认缓冲区... 等等

  • 备用屏幕缓冲区:当您运行交互程序时,终端切换到此缓冲区(例如:lessvimscreentmux.等等)

键盘

如果设置了此模式,则组合键使用键盘(数字键盘)上的键。此模式对于区分键盘上的键和小键盘上的键很有用。例如,当 Num Lock 设置为 on 时,您可以配置两个单独的键组合,一个使用键盘上标记为 1 的键(通常在 F1 键下),另一个使用键盘上标记为 1 的键。同样的概念也适用当键盘上的 End、Home、光标键...等的 Num Lock OFF 时,

应用程序光标按键

此模式实现 VT100 光标按键模式(DECCKM)。它控制每个光标键()发送的转义序列,具体取决于此模式是设置还是重置

默认情况下,Konsole 遵循 XTerm 行为,将 HomeEnd 键视为相对于 DECCKM 的光标键

应用程序键盘

如果设置了此模式,则组合键仅在键盘处于应用程序模式(DECKPAM)时才起作用

如果重置此模式,则组合键仅在键盘处于数字模式(DECKPNM)时有效

换行

如果设置了此模式,键盘上的 Return (Enter)键将同时发送回车符 "\r" 和换行符 "\n"

如果重置此模式,Return 键将仅发送回车符 "\r"

这同样适用于键盘上的 Enter

此模式模拟 LNM - 换行/新建行模式

请注意,键和模式(设置/重置)的每个组合必须是唯一的。例如,考虑以下两条规则:

  • A+Shift : A

  • a : a

Konsole 如果 not 接受小写字母 a 规则,则必须向该规则添加 -Shift 才能使其工作。

输出字段

在输出字段中,您可以添加您希望 Konsole 在相关组合键被按下时发送到终端的转义序列或控制字符。

您还可以使用以下任意关键字,每个关键字在 Konsole 中都有特殊含义:

  • 向上滚动行:在 shell 历史回滚缓冲区中向上滚动一行

  • 向上滚动页面:在 shell 历史回滚缓冲区中向上滚动一页

  • 向下滚动行:向下滚动 shell 历史回滚缓冲区中的一行

  • 向下滚动页面:在 shell 历史回滚缓冲区中向下滚动一页

  • 向上滚动到顶部:向上滚动到 shell 历史回滚缓冲区的开头

  • 向下滚动到底部:向下滚动到 shell 历史回滚缓冲区的末尾

您还可以将字符串与 C 字符串语法一起使用;您可以使用以下转义序列:

  • \E :转义

  • \\ : 反斜线

  • \" : 双引号

  • \t :制表符

  • \r :回车

  • \n :换行

  • \b :退格键

  • \xHH :其中 HH 是两个十六进制数字

    提示

    这可用于发送 ASCII 控制字符, \x00 它是 NUL 字符

其他系统资源

还有其他可能影响终端按键绑定的系统资源:

  • 有关每个键组合应该发送的预期转义序列和控制字符,请查阅 终端信息termcap 数据库。

  • 您的系统可能还有其他也必须同步的键盘数据库( /etc/inputrc 和 readline 对于 BASH shell),因为它们会影响绑定到组合键的操作(交互)。

进一步阅读

有关转义序列和控制字符的详细信息,请查看以下文档: