Я использую удобный пакет fzf.vim для интеграции fzf с vim . Поиск файлов работает отлично и полностью заменил плагин CtrlP, но функциональность для файлов grep имеет неприятный побочный эффект: fzf думает автоматически добавляемое имя файла (от ripgrep, но это было бы в случае с ag (silver-searcher) и обычным grep также) является частью строки поиска.
В результате, лучший результат не всегда достигает вершины (или дна в моем случае в зависимости от макета). Вот пример: Результат, который появляется последним в этом случае, должен фактически быть первым, потому что это единственный результат, который совпадает по содержанию (как задумано Rg), а не по имени файла. Эта проблема особенно разочаровывает в больших репозиториях, где нерелевантные результаты могут засорить все ваше пространство поиска.
Я должен также уточнить, что проблема возникает из-за того, что я вызываю :Rg
из ярлыка, поэтому фильтрация выполняется fzf , а не rg (который просто сбрасывает все в fzf).
Эта проблема возникает в реализации :Rg
по умолчанию в комплекте с fzf.vim , а также в моей попытке свернуть мою собственную:
command! -bang -nargs=* Rg
\ call fzf#vim#grep(
\ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
\ <bang>0 ? fzf#vim#with_preview('up:60%')
\ : fzf#vim#with_preview('right:50%:hidden', '?'),
\ <bang>0)
Я не мог понять, как решить эту проблему. Может кто-нибудь помочь?