使用vim-fzf忽略node_modules

ang

我定义了一个函数,用于从git根目录与插件异步搜索文件名(<C-P>)和一个字符串(<C-F>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>
ang

最后,我想出了一种解决方法,将其替换fzf#vim#files:Gfiles

新配置为 silent! nmap <C-P> :GFiles<CR>

<C-F> 映射与问题中的相同。

:GFiles解决方案的缺点是未添加到git文件中(未跟踪的文件)不包括在搜索结果中。它们都可以通过添加git add . -A

该解决方案的优点.gitignore是搜索结果中将忽略其中的所有文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章