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
n
Bayrağa ihtiyacın var . Kelimeleri saymak için şunu kullanın:
:%s/\i\+/&/gn
ve belirli bir kelime:
:%s/the/&/gn
Bkz count-items
dokü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_flag
daha 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 Command
için Command-line
mod. Şimdi ne yazarsanız yazın :
CLI'de (Komut Satırı Arayüzü)%s
tü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/g
g
satırdaki tüm oluşumları belirtir. İle g
bayrak, tüm hat ikame edilecek yapabilirsiniz. Bu g
bayrak 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, N
olayları 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 /pattern
arama.:%s///gn
sayısını öğrenmek için kullanın . Veya :%s///n
tekrarlanan 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.