Windows 上的 git bash:当多次按 ESC 键时,则会被阻止

问题描述 投票:0回答:1

在 Windows 上使用 git bash 时,多次按 ESC 键,则会阻止输入。几秒钟或更长时间后,可能会显示以下信息:

MyHome+tomxue@DESKTOP-I23OD70 MINGW64 /d
$
Display all 5486 possibilities? (y or n)

我找出了几个原因和一些解决方案,但都不起作用。 怎么解决?

windows bash git git-bash
1个回答
0
投票

您看到的提示是 Bash 的 tab-completion 提示,通知您它将提供太多补全建议。

Bash 的默认键绑定之一是:

$ bind -p | grep complete
"\e\e\000": complete

ESC ESC NUL
,显然也会在
ESC ESC
上触发,即按两次 Esc 键。

Esc 发送

ESC
字节,该字节与启动各种特殊键的键码相同;例如Shift-Tab 将发送序列
ESC [ Z
等等。我不知道
ESC ESC NUL
是否应该是某个特殊键的序列,或者
\e\e\000
是否实际上只是 Readline 中的“连续 Esc 两次”(而不是
\e\e
)。

无论如何,此键绑定是通过按 EscEsc 触发的,并调用 tab-completion,因为

complete
与按 Tab 键(由
bind -p
下列出)完全相同的操作
"\C-i"
)。

如果您在空输入处调用制表符补全,Bash 将尝试提供系统上所有可能的命令 - 这将需要几秒钟,在此期间 Bash 可能会挂起,因为它正在扫描整个

$PATH
中的可执行文件.

© www.soinside.com 2019 - 2024. All rights reserved.