10

我想让 bash 中的制表符完成更加智能。

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

有没有一种方法可以让我保留一个自动完成忽略的扩展名的平面列表,或者以某种方式为vim定制它,以便当bash命令以vi开头时自动完成只忽略特定的文件扩展名......

任何想法表示赞赏。

谢谢!

4

2 回答 2

12

来自man bash

菲诺尔

执行文件名完成时要忽略的以冒号分隔的后缀列表。后缀与 中的条目之一匹配的FIGNORE文件名将从匹配的文件名列表中排除。一个示例值是".o:~"(在为该变量赋值时需要引用,其中包含波浪号)。

所以,对于你的例子,这可以在你的.bashrc文件 中设置

FIGNORE=".o:~:.fasl"

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

FIGNORE=".o:~:.fasl:$FIGNORE"
于 2012-06-28T04:52:18.707 回答
4

bashcomplete命令似乎是您想要的。

这是“完整”命令视频的Linux 日志链接。这里是关于使用 Bash Complete 命令的后续页面

The links explain it quite well, and here is a related SO Question/Answer: Bash autocompletion across a symbolic link

于 2012-06-28T07:59:51.917 回答