2011-08-31 10 views
55

Quiero contar líneas en un rango, no importa qué rango, pero que sea, por ejemplo, un bloque visual. ¿Cuál es la forma más corta de hacerlo? Todo lo que me viene a la mente es algo así como: '<,'>s/.//n pero no creo que sea el camino más corto.Vim - conteo de líneas en el rango seleccionado

Entonces, ¿alguien puede darme una pista? Gracias por adelantado.

Respuesta

99

En el modo visual, pulse gC-g

salida típica:

Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --


Fuente: :he count-items (detectable como: :heTab Tab ...)

+0

¡Genial! Gracias por este consejo, tan pronto como pasen 10 minutos, lo marcaré como una respuesta) Pero es interesante, sin embargo, hay una función en vim. Estoy bastante seguro de que debería haber una función. – shabunc

+0

@shabunc: ¿qué quieres decir con "¿hay alguna función en vim"? ¿Quieres decir algo que puedas ': llamar'? Tu pregunta no mencionó eso. –

+0

funciona exactamente como en otras funciones incorporadas (': h functions';) – shabunc

5

'<,'>s///n es uno de los personajes más corto. :-)

Si solo quiero saber el número de líneas en una selección visual, por lo general solo lo arranco (marque y). Dirá "5 líneas tiradas" o "bloque de 5 líneas tiradas" dependiendo del tipo de selección.

+2

yo también usualmente tirando para ese propósito. Y hoy, de repente, me di cuenta de que es el momento de aprender algo nuevo))) – shabunc

17

Establezca la opción showcmd (:h 'sc'), y nunca tendrá que escribir nada para saber cuántas líneas se seleccionan, al principio, ya que olvidé que configuré esta opción, no entendí el punto de tu pregunta. ^^'

De lo contrario, si desea obtener ese número mediante programación, es simplemente:

:echo line("'>") - line("'<") + 1 

Desde dentro de una gama de funciones, sino que también se puede obtener mediante a:lastline-a:firstline+1. (:h function-range-example)

Cuestiones relacionadas