1

Я попробовал это:

:argdo /pattern

Тем не менее, он просто просматривал все файлы очень быстро и не останавливался в каждом месте, где была найдена строка. Я просто хочу перебрать все места, где находится строка, без замены.

3 ответа3

2

Vim имеет команду :sleep которую вы можете использовать в своей команде, чтобы сделать паузу на несколько секунд в каждом матче. Но лучшим решением, вероятно, было бы использование :vimgrep или даже :vimgrepadd для создания списка быстрых исправлений, включающего каждый файл, который затем можно выполнить самостоятельно с помощью :cnext/:cprev .

0

Вы, вероятно, найдете этот скринкаст очень поучительным.

Более простая (и менее мощная) и относительно неясная (читай :help :ilist) альтернатива:

:argdo ilist foo
:b <bufname>|<line number>
0

Вы можете использовать :vimgrep /pattern/ ## .

Эта команда будет искать в ваших файлах arglist (тот же список, который использует argdo ), загружать совпадения в список quickfix и затем переходить к первому совпадению. Затем вы можете использовать :cn для перехода к следующему совпадению.

Если вы часто используете quickfix, стоит установить vim-unimpaired. Это даст вам сопоставления клавиш для быстрой навигации по списку быстрых исправлений (например, ]q вместо :cn).

Эта страница дает хороший обзор vimgrep и списка быстрых исправлений. http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .