假设我在一个文件夹中有三个文件名以 s 开头的文件。
如果我输入 s 并点击Tab,我会听到错误提示音,终端中什么也没有完成。我必须输入足够多的文件名,让终端清楚地知道我想要哪个文件,然后它才会自动完成Tab。
因此,如果我有文件名school
、scuba
和scary
,并且我想打开学校,我必须输入 sch,否则它不会自动完成。我见过一些例子,你输入s
后就可以Tab逐一浏览所有选项。
此功能不可用吗?还是我必须在某处更改设置?
答案1
我相信我已经配置了您想要的解决方案。要使其在 Bash 中工作,请将此行添加到您的/etc/inputrc
(用于全局设置)或~/.inputrc
仅适用于您的用户):
"\e[Z": menu-complete
此行将使您在按下Shift+时Tab,循环显示您所输入内容的可能解决方案。
举例来说,如果您所在的目录有 3 个以 开头的文件s
,则键入echo s
并点击Shift+Tab将循环浏览这 3 个文件。
我发现这个快捷方式在执行时特别有用systemctl status ..
,我只需要输入sctl st
(我有一个别名),然后双击Tab即可循环到status
。
我发现最好还是坚持常规Tab行为,因为在某些情况下你仍然希望让它在 double 上显示可能的完成Tab。
另请注意,如果您刚开始输入文件名,自动完成功能还会查看PATH
.
因此,如果您只键入文件名的开头s
并按下Shift+ Tab,它将循环显示当前目录中的文件名以及PATH
。这就是它的PATH
工作原理。