Comptage des occurrences dans Vim sans marquer le tampon modifié

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

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

Était-ce utile?

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top