Bash选项卡完成停止搜索


8

当我输入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.
$

您可能需要对此进行研究。ubuntuforums.org/showthread.php?t=1865538
Ramesh

Answers:



0

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

一种可能性是在后台开始搜索并将结果写入FIFO。您可以先从FIFO中读取超时,然后再按(read -t 0.3 ...)。

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


这与问题有什么关系...?
lensovet

@lensovet如果似乎没有办法以请求的方式解决问题(即中止搜索),则提示如何(至少部分地)避免问题对我来说很有用。
Hauke Laging'1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.