在终端窗口中按 Esc 键

在终端窗口中按 Esc 键

在终端中(无论是 UXTerm、Mate Terminal 还是非基于 X/window 系统的终端(不确定它是否有正式名称)就像按Ctrl+ Alt+得到的一样F1),如果按下Up箭头,您可以循环浏览以前执行过的命令的历史记录。

如果你决定要执行完全不同的事情,你必须按Ctrl+U清除该行,正如这里提到的. 在 MS-DOS 或 Windows 命令提示符中,只需按 即可Esc

为什么EscUbuntu 终端中默认未将该键设置为执行与Ctrl+相同的操作U? 有没有办法启用此功能? 我真的不想因为在不同的操作系统中输入而记住不同的快捷键。

(我相信我的问题与我链接到的答案不是重复的,因为那个问题要求在 Ubuntu 中使用等效的快捷键,而我要求一种使用方法Esc或为什么这样设置不是一个好主意。)

答案1

您可以绑定ESC到 Readline 函数unix-line-discard

bind '"\e": unix-line-discard'

要使更改永久生效,请添加命令到~/.xinputrc

printf "bind '\"\\\e\": unix-line-discard'\n" >>~/.xinputrc

来源:~/.xinputrc~/.bashrc

printf 'source ~/.xinputrc\n' >>~/.bashrc

要在当前 shell 中加载更改,请输入~/.xinputrc

source ~/.xinputrc

这是 Bash 的一项功能,因此它可以在任何终端上运行,除非终端劫持了按键ESC本身,例如,如果ESC它是终端特定按键的一部分,在这种情况下您必须在终端中禁用有问题的按键。

另请参阅help bindbind -P以获取可用的 Readline 函数列表以及它们当前绑定的键/击键。

答案2

我知道的唯一方法是展示是否有办法更改按键的链接。也许您使用的终端程序中有这样的设置。

相关内容