Игнорировать node_modules с помощью vim-fzf - PullRequest
0 голосов
/ 29 июня 2018

Я определил функцию для поиска имени файла (<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>

1 Ответ

0 голосов
/ 21 июля 2018

Наконец, я нашел способ обойти, заменив fzf#vim#files на :Gfiles

Новая конфигурация silent! nmap <C-P> :GFiles<CR>

<C-F> отображение сохраняется так же, как в ответе.

Недостаток этого решения :GFiles заключается в том, что файлы, не добавленные в git (неотслеживаемые файлы), не включаются в поисковое исследование. Все они могут быть добавлены через git add . -A

Преимущество этого решения в том, что все файлы в .gitignore игнорируются в результатах поиска

...