14

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

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

4

3 回答 3

20
let g:fuf_file_exclude = '\v\~$|\.o$|\.exe$|\.bak$|\.swp$|\.class$'

使用:help fuf-options以获取更多详细信息。

于 2010-11-09T12:06:51.000 回答
5

在 Benoit 的帮助下:

"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

第八天,上帝被一阵可怕的声音惊醒,他确实创造了一个脚本来定位他所扰乱的对象。于是,他发现了虫子,就把它们击杀了。它再次变得很好。

于 2013-02-01T07:00:03.527 回答
1

这是最自动化的解决方案,可以在具有自己的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>
于 2013-06-26T14:25:39.410 回答