Conteggio delle occorrenze in Vim senza contrassegnare il buffer modificato
-
09-06-2019 - |
Domanda
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 complicato e ha anche l'effetto collaterale di impostare lo stato "modificato".
Esiste un modo più elegante per contare?
Soluzione
Per evitare la sostituzione, lascia vuoto il secondo pattern e aggiungi il flag “n”:
:%s/pattern-here//gn
Questo è descritto come un suggerimento ufficiale.
Altri suggerimenti
:help count-items
In VIM 6.3, ecco come farlo.
: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 viscript Ricerca indicizzata migliora i comandi di ricerca di Vim per visualizzare "At match #N out of Mmatch".
Posiziona il cursore sulla parola che vuoi contare ed esegui quanto segue.
:%s/<c-r><c-w>//gn
Vedere :h c_ctrl-r_ctrl-w
vimgrep è tuo amico qui:
vimgrep pattern %
Spettacoli:
(1 of 37)