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 :args
argüman listesini doldurmak için komutu kullanın. Birden fazla dosya isimleri ve hatta globs bile geçebilirsiniz.
Örneğin, :args **/*.rb
o anki dizinde ruby dosyalarını tekrar tekrar arayacaktır. Bunun aynı zamanda Vim'i açmak gibi olduğuna dikkat edin vim **/*.rb
. find
Geç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 :args
kendi başına çalıştırarak görüntüleyebilirsiniz . Listeden dosya eklemek veya silmek isterseniz, sırasıyla :argadd
veya :argdelete
komutlarını kullanabilirsiniz .
Listeden memnun kaldığınızda, artık Vim'in :argdo
argü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
/c
Bir 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, :update
yalnı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 :argdo
ve :bufdo
vardır :windo
ve :tabdo
sırasıyla pencereleri ve sekmeleri o hareket. Daha az sık kullanılırlar ancak bilmeleri yararlıdır.
/c
Bayrak değiştirmeyi onaylamak için kullanmak muhtemelen iyi bir fikir olabilir .