Alt-< 和 Alt-> (可能还有其他一些键)在 elink 中不起作用

Alt-< 和 Alt-> (可能还有其他一些键)在 elink 中不起作用

我在 Debian netinstall (7.8) 上的 Openbox 中的 xterm 窗口中运行 elinks (0.12pre5),只需进行很少的更改/安装额外的软件。我更改了一些 elinks 选项,但似乎没有一个选项与此问题相关。特别是,我没有更改任何键绑定。我已经安装了 terminus-fonts 包,以防相关。

根据man elinkskeysAlt+<Alt+>在编辑文本框时应该跳转到当前缓冲区的第一行或最后一行,否则将选项卡向左或向右移动。对我来说,他们这两件事都没有做。编辑文本框时,Alt+ <(即Alt++ )生成字符(1/4 的组合版本),+ (即++ Shift)生成字符(3/4 的组合版本)。我也尝试省略; +给出和+给出。当不编辑文本框时,这些击键似乎都不起作用。,¼Alt>AltShift.¾ShiftAlt,¬Alt.®

在可能相关的注释中,手册页指出,在编辑文本框时,Ctrl+AHome“转到页面/行的开头”和Ctrl+EEnd“转到页面/行的末尾”。事实上,所有四个击键都按预期转到行的开头/结尾,但不会在行之间移动光标,即使重复敲击或按住也是如此。因此,我似乎没有任何方法可以在文本框中一次垂直移动多于一行。

Tab并且Shift+Tab在编辑时似乎也不执行任何操作(我不希望Alt+Tab执行任何操作,因为这可能会被 Openbox 抢占——我希望它是这样!)。我不确定这是否是我关闭 taborder 的结果,我这样做是因为它与某些页面上的编号链接交互不良。

答案1

在过去,男人是真正的男人,女人是真正的女人,半人马座阿尔法星的毛茸茸的小生物是半人马座阿尔法星的毛茸茸的小生物,盎格鲁-撒克逊程序员认为 95 个可打印字符和 33 个控制字符对每个人来说就足够了。字节几乎都是 8 位大,但 7 位就足够了所有角色,因此表示一个字符的每个字节都有一个备用位。许多终端制造商决定充分利用这一备用位。终端通常有一个修饰键来指示“我想调用命令”而不是“我想输入一个字符”,称为。许多终端使用该备用位来指示“Meta 键已按下”。例如,按.发送字节值 46(字符 的 ASCII 码.);按Meta+.发送字节值 46+128 = 174。

然后使用欧洲语言的人们也想使用计算机。他们需要能够用其他字母和带有变音符号的字符书写,而英语和非英语使用者都希望拥有更多的标点符号。所以他们设计了一些扩展 ASCII 以利用第 8 位的字符编码。例如,在 ISO 8859-1 编码(又名 Latin-1)中,字节值 174 对字符 进行编码®。在Meta密钥被编码为设置字节值的第 8 位的终端上,当运行需要以 ISO 8859-1 编码的输入的应用程序时,按Meta+.可有效发送字符®

一些欧洲人开始记住Meta+.将插入®,而Meta+i将插入Meta+ é,等等。但这对那些不想记忆的人没有帮助。幸运的是,还有其他解决方案,例如国家键盘变体(法国人有一个é键,瑞典人有一个å键,等等),死钥匙编写键。无论如何,该解决方案对于想要超过 256 个不同字符的人(例如大多数亚洲语言的使用者)都不起作用。

与此同时,另一种更常见的密钥编码约定Meta出现了:让它在密钥编码之前发送转义字符。例如,Meta+将发送与,.相同的两字节序列Esc.这是当今大多数应用程序所期望的。

Meta密钥设置为第 8 位是一项早已过时的技术决策,但它仍然存在于某些系统的默认配置中。 PC 键盘没有标有 的键,但它们有一个标有相同位置且具有相同预期效果的Meta键,因此无论您在哪里读到“Meta”键,它都适用于“Alt”。Alt

由于历史原因,Xterm 默认设置为Meta第 8 位。要使其发送转义字符,您需要:

  • 将资源设置metaSendsEscapetrue(还有altSendsEscape,但仅当您将资源设置altIsNotMeta为时才适用,这仅在键盘上true同时有Alt和键时才有用);Meta或者
  • 将资源设置eightBitInputfalse(尽管有名称,这不会阻止非 ASCII 输入,这仅确定Meta+character发送的内容)。

将以下任意一行放入文件中~/.Xresources:

XTerm.VT100.eightBitInput: false
XTerm.VT100.metaSendsEscape: true

运行xrdb -merge ~/.Xresources以重新加载该文件。大多数环境都会安排在启动 GUI 时运行此命令;如果您的没有,请将其添加到您的 GUI 登录脚本中。

您还可以在+菜单metaSendsEscape中切换资源(“Meta Sends Escape”)。这仅影响您使用它的 xterm 实例。CtrlLeft-Click

您的其他链接键盘快捷键问题与链接有关,而不是与终端有关。

相关内容