代码之家  ›  专栏  ›  技术社区  ›  Marco

有没有一种简单的方法可以排除fuzzyfinder搜索的文件?

  •  14
  • Marco  · 技术社区  · 14 年前

    我正在使用fuzzyfinder,我想知道如何指示fuzzyfinder排除它搜索的文件。目前我已经修改了插件代码,但必须有一个更简单的方法。

    我想排除在结果中弹出的.class文件。关于如何指示fuzzyfinder跳过这些文件的任何提示/提示?

    3 回复  |  直到 11 年前
        1
  •  20
  •   ceyko    11 年前
    let g:fuf_file_exclude = '\v\~$|\.o$|\.exe$|\.bak$|\.swp$|\.class$'
    

    使用 :help fuf-options 了解更多详细信息。

        2
  •  5
  •   Brandon    11 年前

    在贝诺特的帮助下:

    "FuzzyFinder should ignore all files in .gitignore
    let ignorefile = ".gitignore"
    if filereadable(ignorefile)
    
      let ignore = '\v\~$'
      for line in readfile(ignorefile)
        let line = substitute(line, '\.', '\\.', 'g')
        let line = substitute(line, '\*', '.*', 'g')
        let ignore .= '|^' . line
      endfor
    
      let g:fuf_coveragefile_exclude = ignore
    endif
    

    到了第八天,上帝被可怕的响声惊醒了,他确实创造了一个剧本来定位他所受的扰乱。于是,他发现了虫子,就把它们闷死了。又一次很好。

        3
  •  1
  •   Neil    11 年前

    这是最自动的解决方案,可以在不同的窗口和选项卡中使用 lcd (本地当前目录)。

    因为VIMRC没有设置排除变量的概念 每个窗口或每个选项卡 ,每次运行时都必须重置排除变量。 FufFile 或相关功能。

    把这个放进你的 .vimrc :

    " FuzzyFinder
    " -----------------------------------------------------------------------------
    function! FufSetIgnore()
    
        let ignorefiles = [ $HOME . "/.gitignore", ".gitignore" ]
        let exclude_vcs = '\.(hg|git|bzr|svn|cvs)'
        let ignore = '\v\~$'
    
        for ignorefile in ignorefiles
    
            if filereadable(ignorefile)
                for line in readfile(ignorefile)
                    if match(line, '^\s*$') == -1 && match(line, '^#') == -1
                        let line = substitute(line, '^/', '', '')
                        let line = substitute(line, '\.', '\\.', 'g')
                        let line = substitute(line, '\*', '.*', 'g')
                        let ignore .= '|^' . line
                    endif
                endfor
            endif
    
            let ignore .= '|^' . exclude_vcs
            let g:fuf_coveragefile_exclude = ignore
            let g:fuf_file_exclude = ignore
            let g:fuf_dir_exclude = ignore
    
        endfor
    endfunction
    
    # Bonus: My custom key mappings for FuzzyFinder
    # Calls the function to set the exclude variables, then runs FuzzyFinder
    nn <Tab>   :call FufSetIgnore() <BAR> :FufFile<CR>
    nn <S-Tab> :call FufSetIgnore() <BAR> :FufFile **/<CR>
    nn <F3>    :call FufSetIgnore() <BAR> :FufFile **/<CR>
    
    推荐文章