Konsole 使用 *.keytab 文件将组合键转换为控制字符和转义序列,这些字符和转义序列将发送到 shell 或在 shell 中运行的交互式程序(通常是使用备用屏幕缓冲区的程序,例如:vim、less、screen)。
用户可以使用按键绑定编辑器自定义 Konsole 中的按键绑定设置。可以将组合键配置为向终端发送特定的控制或转义序列。
您可以从菜单项 → 打开按键绑定编辑器,然后转到 键盘 选项卡。列出了 Konsole 默认情况下附带的按键绑定模式。
组合键遵循以下模式:
按键(+|-)模式
例如:
Up+Shift+AppScreen Down+Shift-AppScreen Space+Ctrl
按键名在 qnampace.h 头文件中定义,删除了 “qt::KEY_” 前缀,有关键名的列表,请查看 Qt™ 文档中的 Qt::Key 枚举。
模式名称前面的 “+” 表示模式是 设置;对于修改键,这意味着按下了它,而对于所有其他模式,它意味着特定模式正在生效(i.e. 活动)。例如:“+Ctrl” 表示组合键只有在按下Ctrl 键时才起作用。
模式名称前面的 “-” 表示模式是 重置;基本上这与将 “+” 放在模式名称之前是相反的,因此对于修饰键而言,这意味着该键没有被按下,而对于所有其他模式,这意味着特定模式处于非活动状态。例如:“-Ctrl” 表示只有在未按下 Ctrl 键 not 时,组合键才有效。
注意
如果组合键中不存在模式名称,则忽略其状态。
下面列出了支持的按键绑定模式:
- Alt, Ctrl, Shift
可以在组合键中使用这些模式中的一个或多个,如果设置了其中任何一个,则组合键将分别使用该修改键;如果重置,则反之亦然
- 任意修饰符
如果设置了此模式,则组合键使用任何修改键(前三个修改键中的任意一个);如果重置,则反之亦然
- Ansi
如果设置了此模式,Konsole 将发送 ANSI 转义和控制序列
如果重置此模式,Konsole 将发送 VT52 转义和控制序列
- 应用程序屏幕
如果设置了此模式,则组合键将仅影响使用备用屏幕缓冲区的交互式程序
如果重置此模式,则组合键只会在终端使用正常屏幕缓冲区时影响终端
注意
Konsole 使用两个屏幕缓冲区:
正常屏幕缓冲区(默认):允许您向后滚动以查看前面的输出行,这是您通常用来执行命令的默认缓冲区... 等等
备用屏幕缓冲区:当您运行交互程序时,终端切换到此缓冲区(例如:less、vim、screen、tmux.等等)
- 键盘
如果设置了此模式,则组合键使用键盘(数字键盘)上的键。此模式对于区分键盘上的键和小键盘上的键很有用。例如,当 Num Lock 设置为 on 时,您可以配置两个单独的键组合,一个使用键盘上标记为 “1” 的键(通常在 F1 键下),另一个使用键盘上标记为 “1” 的键。同样的概念也适用当键盘上的 End、Home、光标键...等的 Num Lock OFF 时,
- 应用程序光标按键
此模式实现 VT100 光标按键模式(DECCKM)。它控制每个光标键(上、下、右、左)发送的转义序列,具体取决于此模式是设置还是重置
默认情况下,Konsole 遵循 XTerm 行为,将 Home 和 End 键视为相对于 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 字符
还有其他可能影响终端按键绑定的系统资源:
您的系统可能还有其他也必须同步的键盘数据库(如 /etc/inputrc 和 readline 对于 BASH shell),因为它们会影响绑定到组合键的操作(交互)。