论坛首页 综合技术论坛

Bash AutoCompletion中对CVS文件夹进行过滤

浏览 2038 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-02  
java开发中,经常可以看到如下的目录结构:
src/com/
        CVS/
           comp1/
                CVS/ 
                xxx/
                    CVS/
                    AAA.java



在使用linux命令时经常因为CVS目录的存在而不能自动完成。

hunk@elf:~/test/src$ cd [TAB]
com/ CVS/




解决方案:
修改 ~/.bashrc, 找到以下代码:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi



在 if block 中加入下面一行命令:

complete -o filenames -o nospace -F _cd -X '?(*/)CVS' cd

修改后的代码如下:
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
    complete -o filenames -o nospace -F _cd -X '?(*/)CVS' cd
fi


还可以根据需要,对其他命令也进行过滤,例如对ls 和cd 两个命令进行过滤:
    complete -o filenames -o nospace -F _cd -X '?(*/)CVS' cd ls
对于vi用以下命令进行过滤:
 complete -f -d -X '?(*/)CVS' vi   

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics