我想让bash中的标签完成更加智能化。
假设我有一个带有src文件.lisp的文件夹,以及该文件.fasl的编译版本。我想键入vi filename [tab tab],并且.lisp autocompletes作为唯一选项。也就是说,我不太可能希望vim打开已编译的二进制文件,因此请不要在自动完成选项列表中进行循环。
是否有一种方法可以保留自动完成忽略的扩展列表,或以某种方式为vim自定义,以便自动完成在bash命令以vi开头时仅忽略特定的文件扩展名...
任何想法都表示赞赏。
谢谢!
答案 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