【发布时间】:2010-11-09 11:10:24
【问题描述】:
我正在使用 FuzzyFinder,想知道如何指示 FuzzyFinder 排除它搜索的文件。现在我已经修改了插件代码,但必须有更简单的方法。
我想排除结果中弹出的 .class 文件。关于如何指示 FuzzyFinder 跳过这些文件的任何提示/提示?
【问题讨论】:
标签: vim fuzzyfinder
我正在使用 FuzzyFinder,想知道如何指示 FuzzyFinder 排除它搜索的文件。现在我已经修改了插件代码,但必须有更简单的方法。
我想排除结果中弹出的 .class 文件。关于如何指示 FuzzyFinder 跳过这些文件的任何提示/提示?
【问题讨论】:
标签: vim fuzzyfinder
let g:fuf_file_exclude = '\v\~$|\.o$|\.exe$|\.bak$|\.swp$|\.class$'
使用:help fuf-options了解更多详情。
【讨论】:
:helptags /path/to/the/doc/folder,几乎所有好的插件都在这里有不错的文档!
\v!如果您使用的是FufCoverageFile,也请使用g:fuf_coveragefile_exclude。
在 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
在第八天,上帝被一阵可怕的噪音惊醒,他确实创建了一个脚本来定位他的干扰对象。于是,他发现了虫子,就把它们击杀了。它再次变得很好。
【讨论】:
lcd(本地当前目录)后获取.vimrc,那么这绝对适用于您的.vimrc,但是如果您将选项卡或窗口切换到具有不同lcd 的另一个项目,您必须重新获取您的.vimrc,它会在全局范围内破坏变量。有没有办法用不同的lcds 对每个窗口执行此操作?
g:fuf_file_exclude 和g:fuf_dir_exclude 也设置为ignore 变量。这将使FufFile 和FufDir 按预期工作。
这是最自动化的解决方案,适用于具有自己的lcd(本地当前目录)的不同窗口和选项卡。
由于 Vimrc 没有按窗口或按标签设置排除变量的概念,因此每次运行 FufFile 或相关函数时都必须重置排除变量。 p>
把这个放在你的.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>
【讨论】: