web-dev-qa-db-fra.com

Compter les occurrences dans Vim sans marquer le tampon modifié

Afin de savoir combien de fois un motif existe dans le tampon actuel, je fais:

:%s/pattern-here/pattern-here/g

Il donne le nombre d'occurrences du modèle, mais est évidemment lourd et a également pour effet secondaire de définir le statut "modifié".

Existe-t-il une manière plus élégante de compter?

110
Paul Oyster

Pour éviter la substitution, laissez le deuxième motif vide et ajoutez le drapeau "n":

:%s/pattern-here//gn

Ceci est décrit comme n conseil officiel .

165
Bruno De Fraine
:help count-items

Dans VIM 6.3, voici comment procéder.

:set report=0
:%s/your_Word/&/g    # returns the count without substitution

Dans VIM 7.2, voici comment procéder:

:%s/your_Word/&/gn   # returns the count, n flag avoids substitution
8
konyak
:!cat %| grep -c "pattern"

Ce n'est pas exactement la commande vim, mais elle vous donnera ce dont vous avez besoin de vim.
Vous pouvez le mapper à la commande si vous devez l'utiliser fréquemment.

5
Ilya

Le vimscript IndexedSearch améliore les commandes de recherche Vim pour afficher "At match #N sur M matches".

2
redacted

Placez le curseur sur le mot que vous souhaitez compter et exécutez ce qui suit.

:%s/<c-r><c-w>//gn

Voir :h c_ctrl-r_ctrl-w

1
Sagar Jain