pegar - Recuento de ocurrencias en Vim sin marcar el buffer cambiado
vim inicio (6)
Para saber cuántas veces existe un patrón en el búfer actual, lo hago:
:%s/pattern-here/pattern-here/g
Proporciona el número de apariciones del patrón, pero obviamente es engorroso y también tiene el efecto secundario de establecer el estado "modificado".
¿Hay una forma más elegante de contar?
Coloque el cursor sobre la palabra que desea contar y ejecute lo siguiente.
:%s/<c-r><c-w>//gn
Ver :h c_ctrl-r_ctrl-w
El vimscript IndexedSearch mejora los comandos de búsqueda de Vim para mostrar "En el partido #N de M coincidencias".
Para evitar la sustitución, deje el segundo patrón vacío y agregue el indicador "n":
:%s/pattern-here//gn
Esto se describe como un consejo oficial .
vimgrep es tu amigo aquí:
vimgrep pattern %
Muestra:
(1 of 37)
:!cat %| grep -c "pattern"
No es exactamente el comando vim, pero le dará lo que necesita de vim.
Puede asignarlo al comando si necesita usarlo con frecuencia.
:help count-items
En VIM 6.3, así es como lo haces.
: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