Ti è mai capitato di voler sapere da quante parole è composto un testo? Devi inviare un articolo che richiede un numero minimo di parole per poter essere accettato? Per tutti questi problemi, VIM fornisce una soluzione.
VIM consente di contare il numero di parole presenti all'interno di un file, il numero di ripetizioni di una parola all'interno del testo, e molto altro; il tutto con estrema facilità.
In questo articolo ti mostro come fare.
Conteggio semplice
Per contare il numero di parole all'interno del buffer corrente, digitare
g
ed a seguire Ctrl-g
L'output del comando precedente è:
Col 1 of 0; Line 24 of 24; Word 112 of 112; Char 729 of 729; Byte 734 of 734
L'output oltre a fornire il numero di parole del file (112) ci restituisce anche il numero di caratteri, di linee, e di byte.
Conteggio in porzioni di testo
VIM consente di contare il numero di parole anche di porzioni di testo. Per
contare il numero di parole contenuto all'interno di una selezione testuale,
per prima cosa selezioniamo una porzione di testo (ad esempio digitando il
comando V7j
che evidenzia 8 righe), e successivamente digitiamo g
e
Ctrl-g
.
L'output prodotto è il seguente:
Selected 5 of 37 Lines; 32 of 172 Words; 235 of 1101 Chars; 235 of 1107 Bytes
Conteggio interattivo
Puoi conteggiare il numero di parole interattivamente all'interno della status line
di VIM.
Per aggiungere il conteggio interattivo, inserire all'interno del proprio file
.vimrc
, il seguente frammento di codice:
let g:word_count=wordcount().words
function WordCount()
if has_key(wordcount(),'visual_words')
let g:word_count=wordcount().visual_words."/".wordcount().words
else
let g:word_count=wordcount().cursor_words."/".wordcount().words
endif
return g:word_count
endfunction
La precedente funzione conteggia il numero di parole; per attivare la funzione
sulla status line
, inserire le seguenti linee all'interno del .vimrc
:
set statusline+=\ w:%{WordCount()},
set laststatus=2
Conteggio parole pagina LATEX
Abbiamo visto che VIM consente di contare le parole presenti su un file di
testo. Tuttavia, non sempre i file di testo contengono le parole che sono
realmente stampate a video. Un caso particolare è rappresentato da tutti i
linguaggi di markup, che aggiungono sintassi alle parole per formattarle; tali
formattatori non saranno visibili a video poiché sono utili solo per la fase di
interpretazione e compilazione del testo. Rientrano all'interno di tali file di
markup: html
, xml
, latex
.
Ti mostro come visualizzare le parole stampate da un file latex
partendo dal file sorgente ricco di elementi di markup. Associamo tale
conteggio al pulsante della tastiera <F3>
.
Per conteggiare il numero di parole effettive, utilizzeremo detex
,
programma da riga di comando che si occupa proprio di questo ma solo per i file
latex
.
Per far apparire il conteggio alla pressione del pulsante <F3>
, inserire la
seguente riga nel proprio file .vimrc
:
:map <F3> :w !detex \| wc -w<CR>
Conteggio occorrenze di una stringa
Per contare il numero di occorrenze di una stringa (che può contenere al suo
interno più parole), utilizza il comando di sostituzione :s
con il flag
n
; tale coppia comunica al VIM di contare il numero di hit senza
applicare cambiamenti al file.
Il seguente esempio conta quante volte è presente nel testo la parola ciao
:
:%s/ciao//gn
Il precedente comando può essere richiamato su porzioni limitate di testo utilizzando le opzioni di visualizzazione.
Per contare le parole circondate da spazi possiamo utilizzare:
:%s/[^ ]\+//gn
Referenze
La documentazione di VIM sul tema è presente all'interno dell'help 12.5
.
Conclusioni
In questo articolo hai visto come contare le parole presenti su un testo utilizzando VIM. Hai visto che puoi contare sia le parole effettive che le parole che saranno stampate a video. Le funzionalità presentate sono importanti per tutti coloro necessitano di sapere da quante parole sono composti i propri articoli senza dover installare programmi specifici.