bash选项卡完成筛选选项

时间:2012-06-28 04:49:35

标签: bash

我想让bash中的标签完成更加智能化。

假设我有一个带有src文件.lisp的文件夹,以及该文件.fasl的编译版本。我想键入vi filename [tab tab],并且.lisp autocompletes作为唯一选项。也就是说,我不太可能希望vim打开已编译的二进制文件,因此请不要在自动完成选项列表中进行循环。

是否有一种方法可以保留自动完成忽略的扩展列表,或以某种方式为vim自定义,以便自动完成在bash命令以vi开头时仅忽略特定的文件扩展名...

任何想法都表示赞赏。

谢谢!

2 个答案:

答案 0 :(得分:11)

来自man bash

  

FIGNORE

     

以冒号分隔的后缀列表,在执行时要忽略                 文件名完成。后缀与FIGNORE中的一个条目匹配的文件名将从中排除                 匹配的文件名列表。样本值为".o:~"(报价为                 为此变量赋值时需要,包含                 波浪线)。

因此,对于您的示例,可以在.bashrc文件中设置

FIGNORE=".o:~:.fasl"

或者,如果您想保留任何其他网站范围的设置:

FIGNORE=".o:~:.fasl:$FIGNORE"

答案 1 :(得分:4)

bash complete命令似乎就是你想要的。

以下是'complete' command video Linux Journal 链接。这是后续页面More on Using the Bash Complete Command

链接解释得很好,这是一个相关的SO问题/答案:Bash autocompletion across a symbolic link