【发布时间】:2014-05-16 07:08:53
【问题描述】:
我正在尝试修改 bash 完整属性。
因此,我可以排除命令的文件扩展名:
complete -f -X '*hi' vim
我想指定两个要排除的文件名。我该怎么做?
注意:以下命令不起作用。
complete -f -X '(*hi|*o)' vim
【问题讨论】:
标签: bash bash-completion
我正在尝试修改 bash 完整属性。
因此,我可以排除命令的文件扩展名:
complete -f -X '*hi' vim
我想指定两个要排除的文件名。我该怎么做?
注意:以下命令不起作用。
complete -f -X '(*hi|*o)' vim
【问题讨论】:
标签: bash bash-completion
一种方法是打开Extended Globs。在命令行运行它,或将其添加到您的 .bashrc 以使其永久化:
shopt -s extglob
现在,您的完整命令可能如下所示:
complete -f -X '*.@(hi|o)' vim
引用patterns中的Extended Globs:
@(list): Matches one of the given patterns.
【讨论】:
.o 文件。不过,在提供单个扩展名时效果很好。
bash-completion 包,并且可能通过/etc/bashrc 在您的~/.bashrc 中获取。但是我已经卸载了我的,因为它破坏了正确的expansion of environment variables,例如ls $DIR/somefil<tab>。