¿Cómo puedo contar el número de palabras en un archivo mientras edito el archivo en vim

21

Sé que puedo usar wcpara contar caracteres, palabras y líneas de archivos en la línea de comando .

¿Hay alguna forma en que pueda contar la cantidad de palabras mientras estoy en vim ?

Michael Durrant
fuente

Respuestas:

22

Puede contar palabras y líneas dentro viusando viel propio contador:

Presione gy luego CTRL- g. Entonces la línea de fondo se ve, por ejemplo, así:

Col 1 of 11; Line 1 of 106; Word 1 of 344; Byte 1 of 2644

O use viel método para llamar a comandos de shell:

:w !wc -w

Esto llama :wprimero al comando save ( ) y luego wc -wmuestra el resultado. Ejemplo:

:w !wc -w
344

Press ENTER or type command to continue

Presione Enterpara regresar a vi.

caos
fuente
En realidad, es una descripción incorrecta de la :w !<cmd>construcción. Escribe el búfer actual en una tubería conectada al comando. No se promete una escritura separada del búfer actual en un archivo. Sin embargo, hace lo que preguntó.
mcepl
1

También puede probar :!wc %en Vim, aunque cuenta el tamaño del archivo en el disco, no lo que está en el búfer de Vim. Esto puede o no ser lo que quería.

Pranav Suri
fuente
Esto cuenta lo que hay en el disco (si es que hay algo), no lo que hay en el búfer, por lo que si ha cambiado el contenido del búfer desde la última vez que guardó, o no lo guardó en absoluto, obtendrá el recuento incorrecto (o incluso un error si estás creando un archivo).
Stephen Kitt
Contra Stephen, esta es una solución correcta para "¿Cómo puedo contar el número de palabras en un archivo mientras edito el archivo en vim", mientras que la respuesta aceptada estrictamente hablando no lo es (aunque es ambiguo lo que significaba o si es importante? )
Michael Homer
Es curioso que sea similar (menos la -wbandera para restringir la salida solo a palabras) a una respuesta de eliminación de 2014 por D_Bye (que aparentemente se auto eliminó).
Jeff Schaller
0

Los complementos como vim-airline pueden proporcionar recuentos de palabras para un archivo (y selecciones) como parte de una barra de estado.

Patrick Sanan
fuente
Esta respuesta no es solo de enlace. No incluí los detalles de ningún complemento en particular, porque (como usted dice) complementos particulares podrían quedar desactualizados.
Patrick Sanan
Estoy corregido. Sin embargo, diría que en el futuro debe intentar incluir pasos relevantes para implementar la solución que está presentando. ¡Gracias!
kemotep
0

Para aquellos que desean contar el número de palabras en un texto determinado (no en todo el archivo), use \S\+regexp.

  1. Seleccione el texto de interés (modo visual)
  2. :s/\S\+//gn

Resultado. Vim te mostrará algo como esto:10 matches on 1 line

Cuando golpeas :en modo visual, vim antepone tu comando con lo '<,'>que significa aplicar el comando contra el texto seleccionado.

\S\+ captura palabras, es decir, grupos de caracteres separados por espacios en blanco.

Yuriy Pozniak
fuente