是否可以将 Rg 的结果显示到快速修复 window 中?

Is it possible to display result of Rg into quick fix window?

当我搜索 :Rg <string> 时,它会在 FZF 缓冲区中打开结果。通常文件名没有完全显示在其中。也曾经逃过的结果都没有了。如果需要再次检查同一个词,我必须做研究。

:vim /pattern/g **/* 在 quickfix 中打开结果。有什么方法可以在 quickfix window 中打开 Rg 结果?如何在Rg缓冲区中显示完整的文件名?

您可以通过 :help 'grepprg' 告诉 Vim 为 :help :grep 使用什么外部命令。

我在弹出窗口中打开了我的 :Rg 结果,这让我可以使用 <Ctrl>j<Ctrl>k.

循环浏览结果

虽然这是一个单独的选择,因此如果您想将结果保存到快速修复列表,请从 <Tab> 开始,您会注意到名称旁边会出现一个红色指示符。一旦你按下回车键,所有带有指示器的东西都会被放置在快速修复列表中。

我还想提一下我的 Rg 函数

" Ripgrep advanced
function! RipgrepFzf(query, fullscreen)
  let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
  let initial_command = printf(command_fmt, shellescape(a:query))
  let reload_command = printf(command_fmt, '{q}')
  let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
  call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
endfunction

command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)

而且我还想为 quickfix 列表添加一些快捷方式,以便您可以轻松地循环浏览它们:

map <leader>cc :botright cope<cr>
map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg
" Next item on list
map <leader>n :cn<cr>
" Previous item on list
map <leader>p :cp<cr>