阻止 bash tab 补全认为我想进入 .svn 目录

阻止 bash tab 补全认为我想进入 .svn 目录

我有一个颠覆性的文件夹结构。

有一大堆顶级目录只有 1 个子文件夹。(例如src/com/example)。通常,当我想 cd 进入示例文件夹时,我可以进入,cd src/<tab><tab>因为 bash 会填写文件夹名称,因为每个文件夹只有一个,所以它会一直进入。

但是由于该目录结构现在在 svn 中,.svn每个目录都有一个目录,这意味着我无法快速地进行 cd。

如果我尝试,cd src/<tab>它会建议.svncom,而不是自动填写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'
    

    但您可能认为这不太合适。

相关内容