Ответ 1
let g:fuf_file_exclude = '\v\~$|\.o$|\.exe$|\.bak$|\.swp$|\.class$'
Используйте :help fuf-options
для более подробной информации.
Я использую FuzzyFinder и задавался вопросом, как я могу дать FuzzyFinder указание исключить файлы, которые он ищет. На данный момент я изменил код плагина, но должен быть более простой способ.
Я хочу исключить файлы .class из выскакивания в результате. Любые подсказки/советы о том, как я могу проинструктировать FuzzyFinder пропустить эти файлы?
let g:fuf_file_exclude = '\v\~$|\.o$|\.exe$|\.bak$|\.swp$|\.class$'
Используйте :help fuf-options
для более подробной информации.
С помощью 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
И в восьмой день Бог был пробужден ужасным шумом, и он создал script, чтобы найти предмет его беспокойства. После этого, найдя ошибки, он ударил их. И это было хорошо еще раз.
Это самое автоматическое решение, которое будет работать в разных окнах и вкладках с собственным lcd
(локальным текущим каталогом).
Поскольку у Vimrc не существует понятия установки исключающих переменных для каждого окна или для каждой вкладки, вы должны reset исключать переменные каждый раз при запуске 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>