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

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.


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.


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.