Dosyadaki sözcük sayısını vim'de düzenlerken nasıl sayabilirim


21

Komut satırındawc karakterleri, kelimeleri ve dosya satırlarını saymak için kullanabileceğimi biliyorum .

Vim iken kelime sayısını sayabilirim herhangi bir yolu var mı ?

Yanıtlar:


22

İçindeki sözcükleri ve satırları kendi sayacını vikullanarak sayabilirsiniz vi:

gVe sonra CTRL- düğmelerine basın g. Sonra alt satırda bunun gibi bir örnek var:

Col 1 of 11; Line 1 of 106; Word 1 of 344; Byte 1 of 2644

Veya vikabuk komutlarını çağırmak için 's yöntemini kullanın:

:w !wc -w

Bu :wilk önce save ( ) komutunu çağırır ve ardından wc -wçıktıyı gösterir. Örnek:

:w !wc -w
344

Press ENTER or type command to continue

EnterGeri gitmek için tuşuna basın vi.


:w !<cmd>Yapının tanımı yanlış . Geçerli tamponu komuta bağlı bir boruya yazar. Geçerli arabellek bir dosyaya ayrı bir yazma söz verilmez. Yine de, sorduğu şeyi yapar.
mcepl

1

Ayrıca :!wc %, Vim'in arabelleğinde bulunanları değil, diskteki dosyanın boyutunu sayar, ancak Vim'de deneyebilirsiniz . İstediğiniz bu olabilir veya olmayabilir.


Bu, diskte ne varsa (bir şey varsa), arabellekte ne olduğunu saymaz - yani son kaydetmeden bu yana arabellek içeriğini değiştirdiyseniz ya da hiç kaydetmediyseniz, yanlış sayım (veya hatta bir hata bir dosya yaratıyorsunuz).
Stephen Kitt

Kontra Stephen, bu , " Dosyayı vim biçiminde düzenlerken bir dosyadaki sözcük sayısını nasıl sayabilirim?" İfadesi için doğru bir çözümdür , kabul edilen cevap ise kesinlikle konuşma değildir (ne anlama geldiği veya önemli olup olmadığı belirsiz olsa da ).
Michael Homer

Komik olması ( -wçıktıyı sadece sözcüklerle sınırlandırmak için bayrak eksi olarak ) 2014'ten itibaren D_Bye'nin (görünüşe göre kendi kendini silen) silme yanıtına benzemesi.
Jeff Schaller

0

Vim-airline gibi eklentiler bir durum çubuğunun parçası olarak bir dosya (ve seçimler) için kelime sayımı sağlayabilir.


Bu cevap sadece bağlantı değil. Belirli bir eklentinin özelliklerini eklemedim, çünkü (dediğiniz gibi) belirli eklentiler modası geçmiş olabilir.
Patrick Sanan

Düzeltilmiş duruyorum. Ancak ileride, sunduğunuz çözümü uygulamak için gerekli adımları atmaya çalışmanız gerektiğini söyleyebilirim. Teşekkür ederim!
kemotep

0

Belirli bir metin parçasındaki kelimelerin sayısını saymak isteyenler için (bütün dosya değil), \S\+regexp kullanın .

  1. İlgilendiğiniz metni seçin (görsel mod)
  2. :s/\S\+//gn

Sonuç. Vim size böyle bir şey gösterecek:10 matches on 1 line

Eğer vurduğunda :görsel modda, vim ile komutu prepends '<,'>araçları seçili metne karşı komutu uygulamak için hangi.

\S\+ kelimeleri, yani boşlukla ayrılmış karakter gruplarını yakalar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.