LINUX.ORG.RU

Поиск файлов в vim очень мелденный

 


0

2

Мне бы хотелось не использовать внешних утилит и плагинов, но vimgrep и :e glob :f glob очень медленные. У меня довольно большой проект, приходится ждать по несколько минут пока он найдет нужный файл, хотя ripgrep и fzf.vim находят за пару секунд. Может есть какое-нибудь нативное решение?



Последнее исправление: mishka06 (всего исправлений: 2)

Может есть какое-нибудь нативное решение?

Попробуй так, если вим не слишком старый

https://www.reddit.com/r/vim/comments/1mvzitt/yet_another_simple_fuzzy_file_finder/

Ну и комментом там более быстрый вариант с find/fd/rg.

PS, оригинал https://github.com/habamax/.vim/blob/master/plugin/find.vim

habamax ★★★
()
Последнее исправление: habamax (всего исправлений: 2)

если не хочется внешние зависимости, то только велосипедить собственные команды в vimrc.

Если используешь git, то советую git ls-files | grep ... - это должно очень быстро работать, т.к. в хранилище объектов git уже есть список файлов, надо его просто оттуда достать.

Lrrr ★★★★★
()
Ответ на: комментарий от mishka06

В этом смысл vim. В интеграции с внешними тулзами. Это нативное для vim решение. Если ripgrep быстро ищет - его и надо использовать.

if executable('rg')
    set grepprg=rg\ --vimgrep\ --no-heading\ --smart-case
    set grepformat=%f:%l:%c:%m,%f:%l:%m
endif

Или через плагин, если хочется отдельные команды для поиска через rg.

Belkrr
()
Ответ на: комментарий от mishka06

Это спецолимпиада такая?

У меня как-то был коллега, который хвалился, что он просто несравнимый знаток юникс-вея и вима. Я периодически проходил мимо его рабочего места, и видел, что он использует только несколько однобуквенных команд, типа hjkl, i, o, a. Попробовал подсказать ему, что существует ещё целый класс удобных команд, он отказался под предлогом: «я хочу использовать только минимальный набор команд, который работает везде». Несмотря на то, что даже в самом старом vim, который можно найти в каком-нибудь древнем CentOS, уже поддерживается гораздо больше команд, чем даже я знаю.

Chiffchaff
()
Ответ на: комментарий от mishka06

Ну а цель-то в чём? Я, когда приходится, например, работать на древней Cent OS, тащу за собой ripgrep, fzf и плагины. Я не понимаю, зачем мне приспосабливаться к окружению 15-летней давности, в чём цель?

В мире пишутся новые программы, придумываются новые подходы, потому что очень маловероятно, что однажды придуманное 30-40 лет назад, будет актуально и удобно сегодня. Несмотря, что на ЛОР полно таких консерваторов. Если бы они перфокарты и перфоленты застали, то и сегодня бы ратовали за то, что «писать код на клавиатуре с монитором - моветон - настоящий путь это только пробивать на перфокартах».

Если же это полностью закрытое окружение, куда совершенно однозначно нельзя ничего доустановить, то увы, сочувствую. Но стоит тогда дополнить вопрос этой информацией.

Chiffchaff
()