Pregunta

Para saber cuántas veces existe un patrón en el búfer actual, hago:

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

Da el número de apariciones del patrón, pero obviamente es engorroso y también tiene el efecto secundario de establecer el estado "cambiado".

¿Existe una forma más elegante de contar?

¿Fue útil?

Solución

Para evitar la sustitución, deje el segundo patrón vacío y agregue la bandera "n":

:%s/pattern-here//gn

Esto se describe como un consejo oficial.

Otros consejos

:help count-items

En VIM 6.3, así es como se hace.

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

En VIM 7.2, así es como lo harías:

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

No es exactamente un comando de vim, pero le dará lo que necesita de vim.
Puede asignarlo al comando si necesita usarlo con frecuencia.

el vimscript Búsqueda indexada mejora los comandos de búsqueda de Vim para mostrar "En la coincidencia #N de M coincidencias".

Coloca el cursor sobre la palabra que deseas contar y ejecuta lo siguiente.

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

Ver :h c_ctrl-r_ctrl-w

vimgrep es tu amigo aquí:

vimgrep pattern %

Muestra:

(1 of 37)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top