我可以在终端中获得更好的制表符补全吗?

我可以在终端中获得更好的制表符补全吗?

假设我在一个文件夹中有三个文件名以 s 开头的文件。

如果我输入 s 并点击Tab,我会听到错误提示音,终端中什么也没有完成。我必须输入足够多的文件名,让终端清楚地知道我想要哪个文件,然后它才会自动完成Tab

因此,如果我有文件名schoolscubascary,并且我想打开学校,我必须输入 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工作原理。

相关内容