Я нахожусь в ~/src
. Я могу сделать git grep _pattern_
и получите список всех *.cpp
или *.hpp
файлы, которые соответствуют этому шаблону.
Теперь я хотел бы пройти все файлы, которые соответствуют шаблону и делают редактирования на них. Как я делаю это в Vim? (В основном я хочу, чтобы Vim прошел мой каталог как мерзавец grep, делает и переходят меня в правильные файлы.)
Вы можете использовать один перевернутый запятыми (также функция оболочки Unix), что-то вроде:
vim `git grep --name-only <your expression>`
На бэше можно было бы сделать
vim $(grep -l _pattern_ *.cpp *.hpp)
, но это бэш-функция, а не vim-функция.
Вы могли бы установить параметры GreePPRG и GrepFormat, чтобы запустить Git Git ...
и интерпретировать результат. Это затем позволит вам запустить команду: grep и прочитать результаты в буфер QuickFix - см. : H QuickFix
для получения дополнительной информации. Затем вы можете пройти через них: cnext и: CPREV или: CPREV или: CPREV или: CPREV, чтобы открыть отдельное окно со списком файлов - поместив курсор на имя файла и нажатие возврата откроет этот файл для редактирования.
Преимущество этого над предложениями ZORAN и AMMOQ состоит в том, что он не будет читать файлы в память, пока вы не захотите их редактировать. Их предложение будет загружаться, возможно, сотни файлов в память сразу и может быть кошмаром для управления. Это также перекрестная платформа, поэтому следует работать на окнах без необходимости использовать стороннюю оболочку, такую как Cygwin Bash.
вы можете использовать команду args ex:
:args *.cpp *.hpp
Это откроет все файлы cpp и hpp в текущем каталоге.
Вы также можете использовать любое расширение пути к файлу, доступное для: grep.