我最近安装了bash-completion(通过自制程序)。它现在省略了我希望它显示的完成列表中的文件,并完全省略了有效选项,例如:
[alex@mbp foo]$ ls
bar.csv foo.csv
[alex@mbp foo]$ sh ../dosomething.sh fo<TAB>
((nothing shown))
Run Code Online (Sandbox Code Playgroud)
作为一个重度命令行用户,这是非常烦人的。谁能告诉我如何禁用这种行为?我在文档或谷歌中找不到任何有用的东西。
bash-completion FAQ说:
问:bash 完成代码禁止某些命令在我的环境中具有合法扩展名的文件上完成。我是否必须禁用该命令的完成才能完成我需要的文件?
答:不可以。使用 M-/(用 bash 手册页的话说)尝试在光标左侧的文本上完成文件名。这将规避 bash 完成代码设置的任何文件类型限制。
但这对我来说不是一个可以接受的解决方案 - 我希望“TAB”显示所有文件/目录,无论扩展名是否对文件有效(这就是它在过去 20 年中对我来说运作良好的方式)。
我怎样才能实现这个目标?
我更喜欢.bashrc/.bash_profile设置而不是删除全局完成脚本。以下是我目前包含 bash-completion 的方式(这只是一个普通的自制软件安装):
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
Run Code Online (Sandbox Code Playgroud)
更新:我已经看到了这个Bash 文件名选项卡完成,但它并不完全是我想要的,因为它需要为地球/我的系统上的每个可能的文件扩展名进行太多的手动工作。
小智 5
也为此烦恼,所以我阅读了bash手册。我相信将此作为您的~/.inputrc文件可以实现所需的行为:
TAB: complete-filename
M-/: complete
Run Code Online (Sandbox Code Playgroud)
具有全套规则的常规补全映射到 ,Meta-/仅文件名补全映射到TAB.
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |