Wie kann ich die Anzahl der Wörter in einer Datei zählen, während ich die Datei in vim bearbeite?

21

Ich weiß, dass ich wcZeichen, Wörter und Zeilen von Dateien in der Befehlszeile zählen kann .

Kann ich auf irgendeine Weise die Anzahl der Wörter zählen, während ich in der Vim bin ?

Michael Durrant
quelle

Antworten:

22

Sie können Wörter und Zeilen vimit videm eigenen Zähler zählen:

Drücken Sie gund dann CTRL- g. Dann sieht das Fazit zum Beispiel so aus:

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

Oder verwenden Sie vidie Methode von, um Shell-Befehle aufzurufen:

:w !wc -w

Dies ruft zuerst den :wBefehl save ( ) auf wc -wund zeigt dann die Ausgabe an. Beispiel:

:w !wc -w
344

Press ENTER or type command to continue

Drücken Sie Enter, um zu zurückzukehren vi.

Chaos
quelle
Es ist tatsächlich eine falsche Beschreibung des :w !<cmd>Konstrukts. Der aktuelle Puffer wird in eine mit dem Befehl verbundene Pipe geschrieben. Es wird kein separates Schreiben des aktuellen Puffers in eine Datei versprochen. Trotzdem macht es was fragliches.
mcepl
1

Sie können es auch :!wc %in Vim versuchen , obwohl es die Größe der Datei auf der Festplatte zählt, nicht das, was sich in Vims Puffer befindet. Dies kann oder kann nicht das sein, was Sie wollten.

Pranav Suri
quelle
Dies zählt, was sich auf der Festplatte befindet (wenn überhaupt), nicht, was sich im Puffer befindet. Wenn Sie also den Inhalt des Puffers seit dem letzten Speichern geändert oder überhaupt nicht gespeichert haben, erhalten Sie die falsche Anzahl (oder sogar einen Fehler, wenn Sie erstellen eine Datei).
Stephen Kitt
Contra Stephen, dies ist eine richtige Lösung „Wie kann ich die Anzahl der Wörter zählen in einer Datei während der Bearbeitung der Datei in vim“, während die akzeptierte Antwort streng nicht spricht (obwohl es nicht eindeutig ist , was gemeint war oder ob es darauf ankommt ).
Michael Homer
Komisch, dass es ähnlich ist (abzüglich des -wFlags, um die Ausgabe nur auf Wörter zu beschränken) wie eine Löschantwort aus dem Jahr 2014 von D_Bye (der sie anscheinend selbst gelöscht hat).
Jeff Schaller
0

Plugins wie vim-airline können Wortzahlen für eine Datei (und eine Auswahl) als Teil einer Statusleiste bereitstellen.

Patrick Sanan
quelle
Diese Antwort ist nicht nur für Links. Ich habe die Besonderheiten eines bestimmten Plugins nicht angegeben, da (wie Sie sagen) bestimmte Plugins veraltet sein könnten.
Patrick Sanan
Ich stehe korrigiert. Ich würde jedoch sagen, dass Sie in Zukunft versuchen sollten, relevante Schritte zur Implementierung der von Ihnen vorgestellten Lösung einzubeziehen. Vielen Dank!
Kemotep
0

Verwenden Sie \S\+regexp , wenn Sie die Anzahl der Wörter in einem bestimmten Textstück (nicht der gesamten Datei) zählen möchten.

  1. Wählen Sie den gewünschten Text aus (visueller Modus)
  2. :s/\S\+//gn

Ergebnis. Vim zeigt dir so etwas:10 matches on 1 line

Wenn Sie :im visuellen Modus drücken, stellt vim Ihren Befehl voran '<,'>, um den Befehl auf den ausgewählten Text anzuwenden.

\S\+ Erfasst Wörter, dh durch Leerzeichen getrennte Zeichengruppen.

Yuriy Pozniak
quelle