Bunu yapmanın birkaç yolu vardır.
Geçerli Dizin İçinde
Bir proje ağacında arama / değiştirme yapmak istiyorsanız, Vim'in argüman listesini kullanabilirsiniz .
Basitçe Vim'i açın ve :argsargüman listesini doldurmak için komutu kullanın. Birden fazla dosya isimleri ve hatta globs bile geçebilirsiniz.
Örneğin, :args **/*.rbo anki dizinde ruby dosyalarını tekrar tekrar arayacaktır. Bunun aynı zamanda Vim'i açmak gibi olduğuna dikkat edin vim **/*.rb. findGeçerli dizindeki tüm dosyaların bir listesini çalıştırmak için kabuğun komutunu bile kullanabilirsiniz :
:args `find . -type f`
Mevcut arg listesini :argskendi başına çalıştırarak görüntüleyebilirsiniz . Listeden dosya eklemek veya silmek isterseniz, sırasıyla :argaddveya :argdeletekomutlarını kullanabilirsiniz .
Listeden memnun kaldığınızda, artık Vim'in :argdoargüman listesindeki her dosya için bir komut çalıştıran güçlü komutunu kullanabilirsiniz ::argdo %s/search/replace/g
İşte arama için bazı ipuçları (yorumların bazılarına dayanarak):
- Eğer "foo_bar" kelimesini değil, "foo" kelimesini aramak istiyorsanız, sınır kelimesi kullanın. Arama şablonunun etrafındaki
\<ve \>yapısını şöyle kullanın ::argdo %s/\<search\>/foobar/g
/cBir arama terimini değiştirmeden önce Vim'in onay istemesini istiyorsanız, bir arama bayrağı kullanın .
/e"Kalıp bulunamadı" hatalarını atlamak istiyorsanız bir arama bayrağı kullanın .
- Ayrıca arama yaptıktan sonra dosyayı kaydetmeyi seçebilirsiniz:
:argdo %s/search/replace/g | update. Burada, :updateyalnızca değiştirilmişse dosyayı kaydedeceği için kullanılır.
Tamponları aç
Zaten arabellekleriniz açıksa aramayı / değiştirmeyi yapmak istiyorsanız :bufdo, arabellek listenizdeki ( :ls) her dosya için bir komut çalıştıran kullanabilirsiniz .
Komut şuna çok benzer :argdo: :bufdo %s/search/replace/g
Benzer :argdove :bufdovardır :windove :tabdosırasıyla pencereleri ve sekmeleri o hareket. Daha az sık kullanılırlar ancak bilmeleri yararlıdır.
/cBayrak değiştirmeyi onaylamak için kullanmak muhtemelen iyi bir fikir olabilir .