vim - 使用vim-fzf忽略node_modules

标签 vim gitignore ag fzf

我定义了一个函数,使用<C-P>插件从git根目录异步搜索文件名(<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>

最佳答案

最后,我想出了一种解决方法,将fzf#vim#files替换为:Gfiles新配置为silent! nmap <C-P> :GFiles<CR><C-F>映射与问题中的映射保持相同。
:GFiles解决方案的缺点是未添加到git的文件(未跟踪的文件)不包括在搜索结果中。它们都可以通过git add . -A添加
该解决方案的优点是在搜索结果中忽略了.gitignore中的所有文件

关于vim - 使用vim-fzf忽略node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51093087/

相关文章:

python - 如何在 Windows 上的 gVim 中启用 Python 支持?

python - 总是在异常时调用 python 调试器的好通用方法

gitignore 以及如何忽略公共(public)目录名称及其内容

linux - 银色搜索器 : how to unignore files in the . gitignore?

full-text-search - 具有多个搜索表达式的银搜索器 (ag)?

vim - 禁用文件的合成 html/tidy 检查器

vim - Vundle 插件 : Install concrete version of plugin

android - 在Android Studio 1.3及更高版本中,应该在项目的.gitignore中添加什么?

git - gitignore 全局配置到底有什么作用?

vim - 如何使用 FZF 和 Ag 在 vi​​m 中搜索特定文件类型/扩展名的文本?