Я попробовал это:
:argdo /pattern
Тем не менее, он просто просматривал все файлы очень быстро и не останавливался в каждом месте, где была найдена строка. Я просто хочу перебрать все места, где находится строка, без замены.
Я попробовал это:
:argdo /pattern
Тем не менее, он просто просматривал все файлы очень быстро и не останавливался в каждом месте, где была найдена строка. Я просто хочу перебрать все места, где находится строка, без замены.
Vim имеет команду :sleep
которую вы можете использовать в своей команде, чтобы сделать паузу на несколько секунд в каждом матче. Но лучшим решением, вероятно, было бы использование :vimgrep
или даже :vimgrepadd
для создания списка быстрых исправлений, включающего каждый файл, который затем можно выполнить самостоятельно с помощью :cnext
/:cprev
.
Вы, вероятно, найдете этот скринкаст очень поучительным.
Более простая (и менее мощная) и относительно неясная (читай :help :ilist
) альтернатива:
:argdo ilist foo
:b <bufname>|<line number>
Вы можете использовать :vimgrep /pattern/ ##
.
Эта команда будет искать в ваших файлах arglist (тот же список, который использует argdo
), загружать совпадения в список quickfix
и затем переходить к первому совпадению. Затем вы можете использовать :cn
для перехода к следующему совпадению.
Если вы часто используете quickfix, стоит установить vim-unimpaired. Это даст вам сопоставления клавиш для быстрой навигации по списку быстрых исправлений (например, ]q
вместо :cn
).
Эта страница дает хороший обзор vimgrep и списка быстрых исправлений. http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/