在我使用的大多数文本编辑器(Emacs、Nano 等)中,Ctrl+Left和Ctrl+Right允许我在文档中一次一个单词地向前和向后跳跃。同样,我通常可以使用Shift+Left和Shift+Right一次选择左右文本一个字符,使用Ctrl+ Shift+Left和Ctrl+ Shift+Right一次选择一个单词,Shift使用 +PgDn和Shift+PgUp一次选择一页,依此类推。无论编辑器是作为本机 X11 应用程序运行还是在 X11 终端仿真器中以文本模式运行(例如,emacs -nw
在 Konsole 或 GNOME 终端窗口中运行 Emacs),这些移动和选择组合键都有效。
但是,当我切换到真实的文本模式控制台(通过Ctrl+ Alt+F1或通过停止我的 X 服务器)并从那里运行编辑器,我发现这些移动和选择组合键不再起作用。例如,Shift+Left和Ctrl+ 的Left行为与 bare 完全相同Left。我不认为这是编辑器本身的问题,因为当我使用 bash 从控制台读取这三个键(或组合键)时,它们都会产生相同的转义码:
$ read
^[[C
$ read
^[[C
$ read
^[[C
标准的剪切/复制/粘贴组合键(Shift+ Del、Ctrl+ Ins、Shift+ Ins)似乎也有同样的问题。
是否可以配置我的文本控制台,以便在常用移动和编辑键上使用Shift、Ctrl和Shift+修饰符发送 Nano 和 Emacs 等编辑器所需的常用代码?Ctrl在 MS-DOS 时代,所有这些组合键在文本模式下都工作得很好,所以我有点惊讶的是,默认情况下它们在我的 GNU/Linux 机器上不起作用。 (如果有什么区别的话,我使用的是 openSUSE 13.2。)