Как искать файл * contents* (grep/ag/rg) с помощью FZF?

когда я запускаю поиск по всему проекту (несколько файлов) через FZF, результаты наводнены линиями, чьи путь соответствует запросу, вытесняя более релевантные результаты, где файл содержание совпали.

например, работает Ag пример из wiki,

ag --nobreak --nonumbers --noheading . | fzf

Я запрос search и получится что-то вроде этого,

  plugin/keybindings.vim:cnoremap <expr> <C-Y> refract#if_incsearch("<C-L>", "<C-Y>")
  plugin/keybindings.vim:cmap            <C-P> <Plug>(refract_incsearch_prev)
  plugin/coherent.vim:set incsearch
  plugin/coherent.vim:setg tags+=./tags;~  " search for tags recursively upwards until ~
  plugin/search.vim:" use it for tab-completion instead depending on context of cmdline
  plugin/search.vim:  autocmd User Hint,listical_next,listical_prev Latitude
  plugin/search.vim:  autocmd User Grepper call hint#prepare_highlights()
  plugin/search.vim:let g:fzf_colors =
  plugin/search.vim:" let g:grepper =
  plugin/search.vim:   <q-args>,
  plugin/search.vim:   <bang>0)
  plugin/search.vim:augroup END
  plugin/search.vim:  autocmd!
  plugin/search.vim:
  plugin/search.vim:
  plugin/search.vim:
  plugin/search.vim:
> plugin/search.vim:
  41/517
> search

что я делаю не так? Когда я запускаю подобное Запрос Ag без FZF, я получаю только результаты, где мой запрос произошел в содержимом файла (что я хочу).

3
задан ivan
06.02.2023 17:58 Количество просмотров материала 2674
Распечатать страницу

1 ответ

Я был недоразумение взаимодействие между AG и fzf, думая, что запрос я набрал как-то прошел через АГ до трубопроводов fzf. Оглядываясь назад, это было глупой ошибкой, поскольку фильтрация-это именно то, что делает fzf, а ag используется просто как способ создания тонн значимых линий.

чтобы получить то, что я хотел из этого, я посмотрел на формат строк, которые генерирует ag, например

plugin/coherent.vim:set incsearch

скажите fzf лечить : в поле разделитель и что он должен ограничить область поиска полями 2, 3, 4,...

ag --nobreak --nonumbers --noheading . | fzf --delimiter=: --nth=2..

это сломается, если любой из обработанных файлов содержит : в их имени файла, но это то, что я не ожидаю слишком часто.

1
отвечен ivan 2023-02-08 01:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх