Bash 选项卡完成停止搜索

Bash 选项卡完成停止搜索

当我输入 bash 并按“tab”键自动完成时,有时会花费大量时间。例如,文件 IO 读取目录需要超过 5 秒,因此我必须等待 IO 完成才能继续输入。我感到很沮丧,然后按下 Ctrl-C,这样我就可以重做我正在输入的内容。

Ctrl-C 很不幸,因为我必须重新输入所有内容。我怎样才能告诉 bash 停止尝试满足我的自动完成请求。

$ /long/path/to/some/d     # once I've typed this, I press <TAB>. I now will be
                           # stuck waiting for perhaps 10 seconds. The only thing I
                           # know to do is Ctrl-C. When I press Ctrl-C, I am forced
                           # to retype the original command string.
$

答案1

我刚刚发现这个这里

使用Ctrl+\。它将停止完成并返回到命令行,而不会丢失当前命令。

答案2

如果没有制表符补全,您可能会遇到类似的问题。这不会引入技术差异,即应用相同的解决方案。

一种可能性是在后台启动搜索并将结果写入 FIFO。您可以在超时后从 FIFO 中读取数据 ( read -t 0.3 ...)。

我想我最近在这里看到了一个比 FIFO 更简单的解决方案......但目前我不记得了。read -t也适用于管道,但完成read不会杀死管道的早期部分,并且管道仅在其所有部分完成后才返回。

答案3

在 Ubuntu 16.04 上,点击q对我有用。

看到这个https://unix.stackexchange.com/a/341025/332159

相关内容