Yanıtlar:
:g/xxxx/d
Bu, desenli tüm satırları silecek ve kaçının silindiğini bildirecektir. Onları daha sonra geri almak için geri alın.
Yol
:% s / desen // gn
nBayrağa ihtiyacın var . Kelimeleri saymak için şunu kullanın:
:%s/\i\+/&/gn
ve belirli bir kelime:
:%s/the/&/gn
Bkz count-itemsdokümantasyon bölümüne.
Sadece yazarsanız:
%s/pattern/pattern/g
sonra durum satırı size vi'deki eşleşme sayısını da verecektir.
(Gustavo'nun dediği gibi, ama ek olarak:)
Daha önce yapılan herhangi bir arama için şunları yapabilirsiniz:
:%s///gn
Zaten arama kaydında ( @/) olduğu için bir modele gerek yoktur .
"%" - s/tüm dosyada yap
"g" - global ara (tek satırda birden çok isabet ile)
"n" - herhangi bir değiştirmeyi önler s/- hiçbir şey silinmez! hiçbir şey geri alınmamalıdır!
(bkz: :help s_flagdaha fazla bilgi için)
(Bu şekilde, vim-wikia tip171'de açıklandığı gibi " Görsel olarak seçilmiş metni ara " ile mükemmel çalışır )
kullanım
:% s / desen / \ 0 / g
desen dizesi çok uzun olduğunda ve hepsini tekrar yazmaktan hoşlanmadığınızda.
Kısa cevap :
:% s / aranacak dizge // gn
Öğrenmek için :
VI editöründe aşağıdaki gibi 3 mod vardır

:Eğer gelen giriyoruz Commandiçin Command-linemod. Şimdi ne yazarsanız yazın :CLI'de (Komut Satırı Arayüzü)%stüm satırları belirtir. Aralığın belirtilmesi, %tüm dosyada değişiklik yapmak anlamına gelir. Tüm oluşumların sözdizimi ikame:%s/old-text/new-text/ggsatırdaki tüm oluşumları belirtir. İle gbayrak, tüm hat ikame edilecek yapabilirsiniz. Bu gbayrak kullanılmazsa, yalnızca satırdaki ilk geçtiği yer değiştirilecektir.n oluşum sayısını çıktı olarak belirtir //çift eğik çizgi, eksikliğini temsil eder replacement text. Çünkü sadece bulmak istiyoruz.Olay sayısını aldıktan sonra, Nolayları tek tek görmek için Tuşa basabilirsiniz .
Özellikle 1 ila 10 numaralı satır aralığını bulmak ve saymak için:
: 1,10s / merhaba // gn
%tüm dosya için ,ayrı satır numaralarıyla doldurulduğunu unutmayın . Özellikle 1 ila 10 numaralı satır aralığını bulmak ve değiştirmek için:
: 1,10s / helo / merhaba / gn
Yapmanızı öneririm:
*imlecin altında veya standart ne için bir "sınırlı arama" yapmak için /patternarama.:%s///gnsayısını öğrenmek için kullanın . Veya :%s///ntekrarlanan satırların sayısını elde etmek için kullanabilirsiniz .** Gerçekten birlikte her aramada " N 2 satırda N 1 N ile eşleş" mesajını veren bir eklenti bulabilirdim , ama ne yazık ki.
Not: Çıktının aldatıcı ifadeleriyle kafanızı karıştırmayın. İlk komut size 4 matches on 3 lines, ikincisinin size verebileceği gibi bir şey verebilir 3 matches on 3 lines. Teknik olarak doğru olsa da , ikincisi yanıltıcıdır ve '3 satır eşleşiyor' demelidir. Gördüğünüz gibi, ikinci (yalnızca 'n') biçimini kullanmaya gerçekten hiç gerek yok. Aynı bilgileri daha net ve daha fazlasını 'gn' formunu kullanarak alırsınız.
:g/xxxx/d) korkunç, tehlikeli ve bu sayfadaki diğerlerine göre daha düşük. Lütfen seçimini kaldırın.