Bunun iki yolu vardır, saf vimscript yolu ve wcyolu.
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 nbayrak 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-15iç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, hlsearchetkinleştirdiyseniz, :nohlsearchvurgulamayı temizlemek için daha sonra çalıştırmak isteyebilirsiniz .
wcyol
Aynı şey başarılabilir wc. Aynı şekilde komutu cmdline-rangesiçeren alanı seçmek için :skullanabilirsiniz, bunları harici komutlarla kullanabilirsiniz. Örneğin:
:5,15!wc -w
Bu wckomut 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ü \wnormalde diğer dillerdeki kelime karakterleri ile eşleşmez. wcbundan 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.