Я определил функцию для поиска имени файла (<C-P>
) и строку (<C-F>
) из корневого каталога git асинхронно с плагином fzf.vim
(у меня также установлен Ag
). Тем не менее, я не могу манипулировать определением, чтобы игнорировать каталог node_modules
. Сценарий vim слишком сложен для отладки, нет консоли для печати чего-либо.
Есть ли какой-нибудь эксперт по сценарию vim, который может помочь мне разобраться с этим. Большое спасибо заранее
let s:git_path = substitute(system("git rev-parse --show-toplevel 2>/dev/null"), '\n', '', '')
function! s:ag_git_root(query, ...)
if type(a:query) != type('')
return s:warn('Invalid query argument')
endif
let query = empty(a:query) ? '^(?=.)' : a:query
let args = copy(a:000)
let ag_opts = len(args) > 1 && type(args[0]) == s:TYPE.string ? remove(args, 0) : ''
let command = ag_opts . ' ' . fzf#shellescape(query) . ' ' . s:git_path
return call('fzf#vim#ag_raw', insert(args, command, 0))
endfunction
command! -bang -nargs=* A
\ call s:ag_git_root(<q-args>, <bang>0)
command! -bang -nargs=? F
\ call fzf#vim#files(s:git_path, <bang>0)
silent! nmap <C-P> :F<CR>
silent! nmap <C-F> :A<CR>