Bunun iki yolu vardır, saf vimscript yolu ve wc
yolu.
Saf vim yolu
Bunu yapmak için arama ve değiştirme komutunu kullanabilirsiniz. Örneğin:
:%s/\<\w\{-}\>//gn
Bunun yaptığı, verilen bir kalıbı bir şeyle değiştirmek yerine, sadece kalıbın oluşumlarını sayar. Bu n
bayrak yüzünden . Belirli bir bölümdeki kelimeleri saymak için (bu durumda 5-15 arasındaki satırlar), şöyle bir şey yapabilirsiniz:
:5,15s/\<\w\{-}\>//gn
Bu, bir seçimin içeriğini bir kayıt defterine alma ihtiyacını ortadan kaldırır. Nelerin yerleştirilebileceğine ilişkin daha fazla olasılık görmek 5-15
için yardım konusunu okuyun cmdline-ranges
. Bunu sık sık yapmak istiyorsanız, muhtemelen bir eşleme (veya komut) oluşturmak iyidir. Ayrıca, hlsearch
etkinleştirdiyseniz, :nohlsearch
vurgulamayı temizlemek için daha sonra çalıştırmak isteyebilirsiniz .
wc
yol
Aynı şey başarılabilir wc
. Aynı şekilde komutu cmdline-ranges
içeren alanı seçmek için :s
kullanabilirsiniz, bunları harici komutlarla kullanabilirsiniz. Örneğin:
:5,15!wc -w
Bu wc
komut 5 ile 15 arasındaki satırları komut aracılığıyla çalıştırır . Bunun dezavantajı, bu satır aralığını komutun çıktısıyla değiştirmesidir. Düğmesine basarak bu değişikliği geri alabilirsiniz u
. Ayrıca, vimscript çözümünün farklı dillerde çalışmayabileceğine dikkat edin, çünkü \w
normalde diğer dillerdeki kelime karakterleri ile eşleşmez. wc
bundan daha iyisini yapabilir \w
. Ayrıca, bunu daha hızlı yapmak için süslü bir komut:
command -range=% -addr=lines WordCount execute '<count>!wc -w' | .y a | undo | echo @a
Bu kaydın clobbers olduğunu unutmayın a
.
Not
Bunun g<C-g>
tuş kombinasyonu ile görsel modda da gerçekleştirilebileceği anlaşılmaktadır . Bunun açıklaması için Carpetsmoker'ın cevabına bakınız.