当我键入grep然后按TAB两次时,bash_completion将列出当前目录中的文件和目录。当我输入首字母时,它也会完成文件名。这一切都很好,唯一的问题是当目录包含许多文件和子目录时,它可能会非常混乱和无序。
如果bash_completion至少可以对目录进行不同的颜色处理,这将非常有帮助,类似于什么ls -lA。
这可能吗?
这是我的示例bash_completion配置文件的样子:
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
else
_filedir
fi
Run Code Online (Sandbox Code Playgroud)
在当前版本的 Bash 中没有这样的开箱即用功能,您可以使用zsh,它默认存在。
与完成相关的工具之一称为compgen. 您可以使用它来显示正确着色的命令,但这是一个技巧,并没有那么实用。
$ compgen -W "$(ls --color=always *)"
Run Code Online (Sandbox Code Playgroud)
这将正确列出着色的文件,但它从 获取颜色ls,所以我不会考虑使用auto_completion.