如何在vim + fzf中启用AG

时间:2018-03-01 15:00:19

标签: vim ag fzf

我是vim的新手。我在网上看到vim中最好的模糊查找器之一是fzf。我已经开始使用它了。但每当我写命令时:Ag我得到ag is not found。我不知道它意味着什么,我不知道如何解决它。

3 个答案:

答案 0 :(得分:4)

如果您使用的话,则需要安装ag

brew install the_silver_searcher

作为测试fzf的另一个选项,您还可以使用 ctrl p 使用此地图调用:Files

nnoremap <c-p> :Files<CR>

您可以在致电:Files时使用ripgrep,为此,您需要修改默认FZF_DEFAULT_COMMAND

export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"'

您可以在此处找到更多信息:https://github.com/junegunn/fzf#usage

答案 1 :(得分:4)

  1. 默认情况下,fzf使用系统&#34;查找&#34;命令。您可以通过将env变量$ FZF_DEFAULT_COMMAND更改为第三方实用程序来更改它。使用这些工具的好处是它们会观察忽略文件。使用银色搜索器(即ag),您的默认命令将如下所示:
  2. $echo $FZF_DEFAULT_COMMAND ag -l --path-to-ignore ~/.ignore --nocolor --hidden -g ""

    无论使用何种FZF命令,您都可以在shell中收集符合条件的文件名

    1. 除了fzf之外,FZF + Vim是一个额外的插件,提供了:(g)vim中使用的Ag命令。 :Ag命令允许您搜索文件的内容,而不是它的:Files命令,它只搜索文件名。
    2. 在使用FZF + Vim时,可能需要一些.vimrc自定义。例如,我喜欢的调整是运行选项:Ag具有全屏搜索和预览窗口(使用:Ag!而不是:Ag):

      command! -bang -nargs=* Ag
        \ call fzf#vim#ag(<q-args>,
        \                 <bang>0 ? fzf#vim#with_preview('up:60%')
        \                         : fzf#vim#with_preview('right:50%:hidden', '?'),
        \                 <bang>0)
      

答案 2 :(得分:1)

要在搜索过程中在光标下提供文件预览窗口,可以在下面添加到 .vimrc或init.vim

command! -bang -nargs=* Ag
  \ call fzf#vim#grep(
  \   'ag --column --numbers --noheading --color --smart-case '.shellescape(<q-args>), 1,
  \   fzf#vim#with_preview(), <bang>0)

然后使用:Ag mySearchTerm查看结果并在右侧预览。

为方便起见,您也可以将ctrl-g映射到它:

map <C-g> :Ag