当我在 bash 提示符下输入路径时,有时我不记得目录是什么,因此无法增量搜索它们。
readline 有没有办法循环遍历可能性或列出它们?
答案1
完成就是这样做的。按Tab可列出从包含光标的单词部分开始到光标的文件。也就是说,如果光标位于|
in 处xdg-open fo|.pdf
,则按Tab会列出所有以 开头的文件fo
,无论它们.pdf
是否具有扩展名。当您仅键入所需文件的前缀时,这使得补全非常有用。
当您按下时到底会发生什么Tab取决于您的完成设置。默认情况下,您需要按两次才能列出所有可能性,除非光标处的单词是明确的前缀。您可能想要调整读取行设置中~/.inputrc
,特别是set show-all-if-ambiguous on
立即获取完成列表,而不必按Tab两次。
默认情况下,bash 的补全相当愚蠢,并且只补全文件名作为命令的参数。安装bash 完成包(由大多数发行版提供)并放入. /etc/bash_completion
您~/.bashrc
以获得上下文感知的完成。
如果您对 bash 的完成机制不完全满意,请尝试桀骜,它有一个更奇特的系统,包括基于单词的部分(而不仅仅是前缀)或通配符模式来完成的可能性,在菜单中选择完成等。