Conteggio delle occorrenze in Vim senza contrassegnare il buffer modificato

StackOverflow https://stackoverflow.com/questions/70529

  •  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?

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top