有些键在控制台(tty)中不起作用,但在终端模拟器中起作用

有些键在控制台(tty)中不起作用,但在终端模拟器中起作用

当我在虚拟终端并打开编辑器时,我可以使用编辑器快捷键,例如CTRL + DownCTRL + Up来选择行(选择块),或者 F5F6来复制/移动所选块。

然而,当我通过控制台(tty、via)登录时CTRL + Alt + F1,这些快捷方式不再起作用。CTRL + DownCTRL + Up简单地用作DownUpF5而不是复制选定的印刷版大写字母E。仅 F6有效(移动选定的块)。

我相信这与我的编辑器()无关joe,而是与控制台/终端的设置有关。

如何在 tty 控制台中使用与在虚拟终端中相同的键。

答案1

该行为与以下无关设置控制台/终端的。相反,它是终端(或终端仿真器)本身的一个功能。

terminfo 数据库的 预定义的能力反映了数千种终端类型的现有实践。如果您仔细阅读预定义功能的列表,您可能会注意到有多个定义转移键,例如

   key_beg                   kbeg   @1   begin key

相对

   key_sbeg                  kBEG   &9   shifted begin key

其他修饰符(例如control.

使长话短说,

  • 作为现代计算机控制台/终端和终端仿真器模型的硬件终端很少使用了除 之外的任何修饰符shift,并且并未普遍使用。
  • 计算机控制台/终端实现往往会滞后于开发,因为它们是内核的一部分,并且那里的创新会干扰稳定性
  • 例如,Linux 和 BSD 控制台(松散地)基于其他终端的现有实践,例如用于 Linux 的 VT220 和用于 BSD 的 SCO(技术上用于后者的 Unix,但记录为 SCO)。过去 20 年来发生了一些变化,主要是 BSD 适应了 xterm 的变化。
  • 改编自 SCO 的 BSD 控制台提供了shift和的组合control以增加可用功能键。 rxvt1994年左右提供了类似的计划。
  • VT220 不会使用control(甚至shift就此而言)修改特殊键。后来的 DEC 终端模型提供了一个选项,该选项于 1999 年在 xterm 中进行了改编,称为电脑风格功能键。
  • 电脑风格xterm 中实现的修饰符超出了shiftand 范围control,添加了altmeta
  • 其他终端开发人员从 xterm 复制了该功能,现在(15 年多后),一些用户将其视为标准。
  • 扩展ncurses 支持特殊键作为“用户定义”功能;没有标准它解决了这个问题(或者实际上,任何功能键组)。

进一步阅读:

相关内容