it-swarm.it

Conteggio delle occorrenze in Vim senza contrassegnare il buffer modificato

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?

110
Paul Oyster

Per evitare la sostituzione, lasciare vuoto il secondo motivo e aggiungere il flag "n":

:%s/pattern-here//gn

Questo è descritto come n suggerimento ufficiale .

165
Bruno De Fraine
: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
8
konyak
:!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.

5
Ilya

Il vimscript IndexedSearch migliora i comandi di ricerca di Vim per visualizzare "Alla corrispondenza #N su M corrispondenze".

2
redacted

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

1
Sagar Jain