在 Windows 上使用 git bash 时,多次按下 ESC 键,输入会被阻止,经过几秒甚至更长时间后,可能会出现以下信息:
MyHome+tomxue@DESKTOP-I23OD70 MINGW64 /d $ Display all 5486 possibilities? (y or n)
我找出了几个原因和一些解决方案,但都不起作用。如何解决?
在 Windows 上使用 git bash 时,多次按下 ESC 键,输入会被阻止,经过几秒甚至更长时间后,可能会出现以下信息:
MyHome+tomxue@DESKTOP-I23OD70 MINGW64 /d $ Display all 5486 possibilities? (y or n)
我找出了几个原因和一些解决方案,但都不起作用。如何解决?
您看到的提示是 Bash 的Tab 键补全提示,通知您它将提供太多的补全建议。
Bash 的默认键绑定之一是:
即
ESC ESC NUL
,显然它也会在刚刚ESC ESC
按下 即Esc键两次时触发。Esc发送
ESC
字节,该字节与启动各种特殊键的键码的字节相同;例如,Shift-Tab 将发送序列ESC [ Z
,依此类推。我不知道是否ESC ESC NUL
应该是某些特殊键的序列,或者是否\e\e\000
只是 Readline 所说的“连续两次按 Esc”(而不是\e\e
)。无论如何,此键绑定是通过按下来触发的EscEsc,并调用tab 补全,就像按下键(如下所列)
complete
一样执行完全相同的操作。Tabbind -p
"\C-i"
如果您在空输入处调用制表符补全,Bash 将尝试提供系统上所有可能的命令 - 这将需要几秒钟,在此期间 Bash 可能会挂起,因为它正在扫描整个
$PATH
可执行文件。