Comptage des occurrences dans Vim sans marquer le tampon modifié
-
09-06-2019 - |
Question
Pour savoir combien de fois un motif existe dans le tampon courant, je fais:
:%s/pattern-here/pattern-here/g
Il donne le nombre d'occurrences du motif, mais il est évidemment fastidieux et a également pour effet secondaire de définir l'état "modifié".
Existe-t-il un moyen plus élégant de compter?
La solution
Pour éviter la substitution, laissez le deuxième motif vide et ajoutez le drapeau «n»:
:%s/pattern-here//gn
Ceci est décrit comme un conseil officiel .
Autres conseils
: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
:!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.
Le IndexedSearch de vimscript améliore les commandes de recherche de Vim et les affiche. ; À la correspondance #N sur M correspondances ".
Placez le curseur sur le mot que vous voulez compter et exécutez ce qui suit.
:%s/<c-r><c-w>//gn
Voir : h c_ctrl-r_ctrl-w
vimgrep est votre ami ici:
vimgrep pattern %
Affiche:
(1 of 37)