在非 GUI 控制台中启用 CTRL+箭头(alt+B 和 alt+F)的标准方法是什么?

在非 GUI 控制台中启用 CTRL+箭头(alt+B 和 alt+F)的标准方法是什么?

我使用“标准”只是为了以防万一有一些明显的方法,或者此功能是我不知道的更大问题的一部分(例如可能涉及启用相关的快捷方式和功能)。否则我不介意添加我自己的快捷方式。

答案1

如果您的 shell 使用该readline库,以下是我的默认文件中的内容/etc/inputrc

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

仅当未设置环境变量并且主目录中INPUTRC没有任何文件时才会读取此文件。.inputrc

现在,我们必须指示控制台在按下 Ctrl-Left 组合键时发出字符串之一,并在按下 Ctrl-Right 组合键时发出字符串backward-word之一。forward-word

为此,我们必须添加一些特殊的键盘映射/etc/console-setup/remap.inc

# Ctrl + Left arrows key (readline's backward-word)
control keycode 105 = F200
string F200 = "\033[5D"

# Ctrl + Right arrows key (readline's forward-word)
control keycode 106 = F201
string F201 = "\033[5C"

在这里,我借用了两个键符号F200F201(从 的输出中准随机选取dumpkeys --long-info)以存储 期望的序列readlinekeycode 105是向左箭头,keycode 106是向右箭头(这些键码dumpkeys也是通过获得的)。

现在,让我们重建新的键盘映射:

setupcon --save-only

它应该(重新)创建该文件/etc/console-setup/cached.kmap.gz。您可以使用以下命令手动加载它:

loadkeys /etc/console-setup/cached_UTF-8_del.kmap.gz

或者,更好的是,类似于机器启动时:

service console-setup start

2023 年更新

当前的 Debian 版本使用/etc/console-setup/cached_UTF-8_del.kmap.gz而不是/etc/console-setup/cached.kmap.gz.

答案2

对于 Linux 控制台,您可以自定义键盘映射。开始的地方是dumpkeys。这就是标准方法。 Linux 控制台没有适用的标准绑定,但是你当然可以模仿GUI(即xhienne暗示的xterm)。

我没有看到重复的内容,但这些会很有帮助:

相关内容