【发布时间】:2018-08-09 16:26:40
【问题描述】:
我是 vim 的新手。我在网上读到,vim 中最好的模糊查找器之一是 fzf。我已经开始使用它了。但是每当我编写命令时:Ag 我都会得到ag is not found。我不知道这是什么意思,也不知道如何解决。
【问题讨论】:
我是 vim 的新手。我在网上读到,vim 中最好的模糊查找器之一是 fzf。我已经开始使用它了。但是每当我编写命令时:Ag 我都会得到ag is not found。我不知道这是什么意思,也不知道如何解决。
【问题讨论】:
要在搜索过程中显示光标下文件的预览窗口,您可以在 .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
【讨论】:
默认情况下,fzf 使用系统的“查找”命令。您可以通过将环境变量 $FZF_DEFAULT_COMMAND 更改为第三方实用程序来更改它。使用这些工具的好处是它们可以观察忽略文件。使用银色搜索器(即 ag),您的默认命令将如下所示:
$echo $FZF_DEFAULT_COMMAND
ag -l --path-to-ignore ~/.ignore --nocolor --hidden -g ""
无论使用什么 FZF 命令,在 shell 中,您都会收集与您的条件匹配的文件名。
FZF+Vim 是 fzf 之外的一个额外插件,提供了一个 :Ag 命令以在 (g)vim 中使用。 :Ag 命令允许您搜索文件的内容,与其 :Files 命令相反,它只搜索文件名。
使用 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)
【讨论】:
你需要安装ag,以防你在mac上:
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
【讨论】: