我有一个颠覆性的文件夹结构。
有一大堆顶级目录只有 1 个子文件夹。(例如src/com/example
)。通常,当我想 cd 进入示例文件夹时,我可以进入,cd src/<tab><tab>
因为 bash 会填写文件夹名称,因为每个文件夹只有一个,所以它会一直进入。
但是由于该目录结构现在在 svn 中,.svn
每个目录都有一个目录,这意味着我无法快速地进行 cd。
如果我尝试,cd src/<tab>
它会建议.svn
和com
,而不是自动填写com
。
有什么方法可以告诉 bash 永远不要建议将 cd 插入到 .svn 文件夹,这样如果我按 Tab 键完成它就不会包含.svn
?
答案1
我可以给你两个选择。其中任何一个都可以放在你的 中~/.bash_profile
。
Bash 使用一个变量
$FIGNORE
来定义自动完成将忽略的任何后缀。不过,这似乎有一个问题,即它在任何值前都加上前缀*.
。因此,设置如下:export FIGNORE=.svn
只会忽略句点之前有内容的目录。并且:
export FIGNORE=svn
将忽略
.svn
目录和以 结尾的任何其他内容.svn
。买者自负。
您可以阻止所有隐藏文件和目录包含在自动完成中:
bind 'set match-hidden-files off'
但您可能认为这不太合适。