Come posso contare il numero di parole in un file durante la modifica del file in VIM


21

So che posso usare wcper contare caratteri, parole e righe di file dalla riga di comando .

C'è un modo in cui posso contare il numero di parole mentre sono in vim ?

Risposte:


22

Puoi contare parole e linee all'interno viusando viil proprio contatore:

Premere ge quindi CTRL- g. Quindi la linea di fondo appare ad esempio così:

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

Oppure usa viil metodo per chiamare i comandi della shell:

:w !wc -w

Questo prima chiama il :wcomando save ( ) e poi wc -wmostra l'output. Esempio:

:w !wc -w
344

Press ENTER or type command to continue

Premere Enterper tornare a vi.


In realtà è una descrizione errata del :w !<cmd>costrutto. Scrive il buffer corrente su una pipe connessa al comando. Non è promessa alcuna scrittura separata del buffer corrente su un file. Tuttavia, fa ciò che la domanda ha posto.
— mcepl,

1

Puoi anche provare :!wc %in Vim, anche se conta la dimensione del file su disco, non ciò che è nel buffer di Vim. Questo può o meno essere quello che volevi.


Questo conta ciò che è sul disco (se non altro), non ciò che è nel buffer - quindi se hai modificato il contenuto del buffer dall'ultimo salvataggio o non lo hai salvato, otterrai un conteggio errato (o anche un errore se stai creando un file).
— Stephen Kitt,

Per contro Stephen, questa è una soluzione corretta a "Come posso contare il numero di parole in un file durante la modifica del file in vim", mentre la risposta accettata in senso stretto non lo è (anche se è ambiguo cosa si intendesse o se contasse ).
— Michael Homer,

Divertente che sia simile (meno la -wbandiera per limitare l'output solo a parole) a una risposta di eliminazione del 2014 di D_Bye (che apparentemente lo ha auto-cancellato).
— Jeff Schaller

0

Plugin come vim-airline possono fornire conteggi di parole per un file (e selezioni) come parte di una barra di stato.


Questa risposta non è solo link. Non ho incluso le specifiche di nessun particolare plugin, perché (come dici tu) particolari plugin potrebbero diventare obsoleti.
— Patrick Sanan,

Sono corretto. Tuttavia, in futuro direi che dovresti provare a includere passaggi pertinenti per implementare la soluzione che stai presentando. Grazie!
— kemotep

0

Per coloro che vogliono contare il numero di parole in un determinato pezzo di testo (non l'intero file), utilizzare \S\+regexp.

  1. Seleziona il testo di interesse (modalità visiva)
  2. :s/\S\+//gn

Risultato. Vim ti mostrerà qualcosa del genere:10 matches on 1 line

Quando premi :in modalità visiva, vim antepone il tuo comando con il '<,'>quale significa applicare il comando contro il testo selezionato.

\S\+ cattura le parole, ovvero gruppi di caratteri separati da spazi bianchi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.