将 MSYS(Bash)自动完成限制到当前目录

将 MSYS(Bash)自动完成限制到当前目录

MSYS我在 Windows 7 上使用,我非常喜欢TABBash 控制台的自动完成功能。但是,该功能似乎会查询 Windows$PATH变量中的所有目录,这需要我大大缩小选择范围。

有没有办法让 bash 只考虑当前目录中的文件?

答案1

在 bash 中(以及据我所知具有自动完成功能的所有其他 shell 中),当您开始输入命令名称并点击 时Tab,shell 将搜索目录中的目录$PATH并返回名称以您输入的内容开头的命令。这样,您就可以运行命令,而不必位于该特定可执行文件所在的同一目录中。这让您的生活变得轻松很多。

如果您只对当前目录中的可执行文件感兴趣,只需./在您输入的名称开头添加一个。./表示当前目录(至少在 *nix 系统上,我不确定他们在移植到 Windows 时是否更改了格式)因此bash将尝试扩展当前目录中的文件名:

$ ls
foo.pl
$ foo <TAB> ## lists many possible completions
$ ./foo <TAB> ## only lists foo.pl

相关内容