着色bash_completion


9

当我键入grep然后按TAB两次时,bash_completion将列出当前目录中的文件和目录。当我输入首字母时,它也会完成文件名。这非常好,唯一的问题是,当目录包含许多文件和子目录时,它可能会非常混乱且杂乱无章。

如果bash_completion至少可以类似地对目录上色,这将非常有帮助ls -lA

这可能吗?

编辑:

这是我的示例bash_completion配置文件如下所示:

if [[ ${cur} == -* ]] ; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0

else
    _filedir
fi

1
我不知道这是否可能,bash但这是中的默认行为zsh
terdon

1
如果情况不太明显,我正在寻找解决方案bash
Martin Vegter 2014年

您要显示什么文件?
terdon

Answers:


7

当前版本的Bash中没有像这样的开箱即用功能,您可以使用进行此操作zsh,默认情况下该功能就存在。

与完成有关的工具之一称为compgen。您可以修饰它以显示正确着色的命令,但这是一个技巧,实用性不强。

$ compgen -W "$(ls --color=always *)"

这样可以正确列出文件的颜色,但是它是从中获取颜色的ls,因此我不会考虑使用auto_completion

参考文献


请看我的编辑。ls我的bash_completion配置文件中没有任何内容。看起来好像有一个_filedir列出文件的功能。
Martin Vegter 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.