Đây là giải pháp tự động nhất sẽ hoạt động trong các cửa sổ và tab khác nhau có lcd
riêng của chúng (thư mục hiện tại cục bộ).
Vì Vimrc không có khái niệm thiết lập biến loại trừ mỗi cửa sổ hoặc mỗi tab, bạn phải đặt lại các biến loại trừ mỗi lần chạy FufFile
hoặc các hàm liên quan.
Đặt này trong .vimrc
của bạn:
" 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>
Cảm ơn bạn đã trả lời, tôi vẫn học theo cách của tôi xung quanh vim và plugins của nó. – Marco
Khi bạn triển khai một plugin, cũng triển khai tài liệu và chạy ': helptags/path/to/the/doc/folder', gần như tất cả các plugin tốt đều có tài liệu phong nha ở đây! – Benoit
Nhớ '\ v' khi bắt đầu nếu bạn muốn biểu thức chính quy! Cũng sử dụng 'g: fuf_coveragefile_exclude' nếu bạn đang sử dụng' FufCoverageFile'. – robbrit