как исключить имя файла из фильтрации fzf после результатов поиска ripgrep? - PullRequest
0 голосов
/ 23 января 2020

Я использую удобный пакет fzf.vim для интеграции fzf с vim . Поиск файлов работает отлично и полностью заменил плагин CtrlP, но функциональность для файлов grep имеет неприятный побочный эффект: fzf думает автоматически добавляемое имя файла (от ripgrep, но это было бы в случае с ag (silver-searcher) и обычным grep также) является частью строки поиска.

В результате, лучший результат не всегда достигает вершины (или дна в моем случае в зависимости от макета). Вот пример: enter image description here Результат, который появляется последним в этом случае, должен фактически быть первым, потому что это единственный результат, который совпадает по содержанию (как задумано 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)

Я не мог понять, как решить эту проблему. Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 24 января 2020

Звучит так, как будто вы хотите, чтобы ваш собственный ярлык ripgrep, вызываемый внутри vim, не возвращал имя файла при поиске, чтобы вы могли использовать результаты поиска по строке.

man rg:

   -I, --no-filename
       Never print the file path with the matched lines. This is the default
       when ripgrep is explicitly instructed to search one file or stdin.
       This flag overrides --with-filename.
...