Per sapere quante volte esiste un modello nel buffer corrente, faccio:
:%s/pattern-here/pattern-here/g
Fornisce il numero di occorrenze del modello, ma è ovviamente ingombrante e ha anche l'effetto collaterale di impostare lo stato "modificato".
C'è un modo più elegante di contare?
Per evitare la sostituzione, lasciare vuoto il secondo motivo e aggiungere il flag "n":
:%s/pattern-here//gn
Questo è descritto come n suggerimento ufficiale .
:help count-items
In VIM 6.3, ecco come lo fai.
:set report=0
:%s/your_Word/&/g # returns the count without substitution
In VIM 7.2, ecco come lo faresti:
:%s/your_Word/&/gn # returns the count, n flag avoids substitution
:!cat %| grep -c "pattern"
Non è esattamente il comando vim, ma ti darà ciò di cui hai bisogno da vim.
Puoi mapparlo al comando se devi usarlo frequentemente.
Il vimscript IndexedSearch migliora i comandi di ricerca di Vim per visualizzare "Alla corrispondenza #N su M corrispondenze".
Posiziona il cursore sulla parola che vuoi contare ed esegui quanto segue.
:%s/<c-r><c-w>//gn
Vedi :h c_ctrl-r_ctrl-w