如何正确使用“完整-G”?

如何正确使用“完整-G”?

我生成了我能想到的最简单的代码来说明我的问题。

假设我希望“foo”命令处理以“.cc”结尾的文件。

complete -G '*.cc' foo

现在假设我当前的目录包含“foo.cc”、“bar.cc”和“blah.cc”。如果我输入“foo”并按 Tab 键,我会得到:

$ foo <tab><tab>
bar.cc   blah.cc  foo.cc   
$ foo 

这是我所期望的。但如果我输入第一个字母“b”并重试:

$ foo b<tab><tab>
bar.cc   blah.cc  foo.cc
$ foo b

它没有像 -W 那样将结果过滤为以“b”开头的结果。

我已经搜索了我能找到的所有内容,但没有找到complete -G符合我要求的示例。我确信这是一件很常见的事情;这里的最佳实践是什么?

答案1

好的,我在中找到了答案如何将模式添加到 bash 补全(用于解压缩)?

执行摘要:“-G”几乎没用。最好的方法是使用“-f”匹配所有文件,然后使用 -X '!*.cc' 排除我不想要的文件。然后“add -o plusdirs”以达到良好的效果。

相关内容