当我搜索时:Rg <string>
,它会在 FZF 缓冲区中打开结果。通常文件名没有完全显示在其中。曾经逃脱的结果也消失了。如果需要再次检查相同的单词,我必须进行研究。
但:vim /pattern/g **/*
在 quickfix 中打开结果。有没有办法在快速修复窗口中打开 Rg 结果?如何在 Rg 缓冲区中显示完整的文件名?
当我搜索时:Rg <string>
,它会在 FZF 缓冲区中打开结果。通常文件名没有完全显示在其中。曾经逃脱的结果也消失了。如果需要再次检查相同的单词,我必须进行研究。
但:vim /pattern/g **/*
在 quickfix 中打开结果。有没有办法在快速修复窗口中打开 Rg 结果?如何在 Rg 缓冲区中显示完整的文件名?
:help :grep
你可以告诉 Vim使用什么外部命令:help 'grepprg'
。
我:Rg
在弹出窗口中打开了我的结果,这使我可以使用<Ctrl>j
and循环浏览结果<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)
而且我还想为快速修复列表添加一些快捷方式,以便您可以轻松地循环浏览它们:
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>