ultima que numero numerar linea comandos comando borrar vim line-numbers

vim - que - vi numero de linea



Agregue números de línea al código fuente en vim (6)

¿Cómo puedo agregar números de línea a un rango de filas en vim? No como en ": establecer nu": esto solo muestra números, pero no los agrega al archivo.


Con

:%s/^//=line(''.'')/

EDITAR: para resumir los comentarios.

Este comando puede ajustarse tanto como lo desee.

Supongamos que desea agregar números delante de las líneas de una selección visual ( V + mover) y desea que la numeración comience en 42.

:''<,''>s/^//=(line(''.'')-line("''<")+42)/

Si desea agregar una cadena entre el número y el texto anterior de la línea, simplemente concatenar (con . En VimL) a la expresión de número:

:''<,''>s/^//=(line(''.'')-line("''<")+42).'' --> ''/

Si necesita que esto se ordene como texto, es posible que desee rellenar los resultados, lo que se puede hacer utilizando printf para 0001, 0002 ... en lugar de 1, 2 ... por ejemplo:

:%s/^//=printf(''%04d'', line(''.''))/

De todos modos, si quieres más información, simplemente abre vim help:: :h :s y sigue los enlaces ( |subreplace-special| , ..., |submatch()| )


Con el entorno tipo Unix, puede usar cat o awk para generar un número de línea fácilmente, porque vim tiene una interfaz amigable con shell, por lo que todo funciona tanto en vim como en shell.
De Vim Tip28 :

:%!cat -n

o

:%!awk ''{print NR,$0}''

Pero, si usa vim en MS-DOS, de win9x, win2000, pierde estas herramientas. aquí hay una forma muy simple de archivar esto solo por vim:

fu! LineIt() exe ":s/^/".line(".")."/" endf

O bien, una secuencia compuesta con alfabeto es tan fácil como la anterior:

exe "s/^/".nr2char(line("."))."/"

También puedes usar un subst:

:g/^/exe ":s/^/".line(".")."^I/"

También solo puede querer imprimir las líneas sin agregarlas al archivo:

"A veces podría ser útil especialmente editar grandes archivos fuente para imprimir los números de línea en papel.
Para hacerlo, puede usar la opción :set printoptions=number:y para activar y :set printoptions=number:n para desactivar esta función.
Si el número de línea debe imprimirse siempre, coloque el set printoptions=number:y líneas set printoptions=number:y en la vimrc . "


El "VisIncr" es bueno para insertar columnas de incremento de números en general (o letras, fechas, números romanos, etc.). Puede controlar el formato de número, el relleno, etc. Así que inserte un "1" delante de cada línea (a través de :s o :g una inserción de bloque visual), resalte esa columna en el modo de bloque visual y ejecute uno de los comandos del complemento.


En un sistema GNU: con el binario nl externo:

:%!nl


Primero, puede eliminar los números de línea existentes si necesita:

:%s/^[0-9]*//

Luego, puedes agregar números de línea. NR refiere al número de línea actual que comienza en uno, por lo que puede hacer algunas operaciones matemáticas para obtener la numeración que desee. El siguiente comando le da números de línea de cuatro dígitos:

:%!awk ''{print 1000+NR*10,$0}''


cat -n agrega números de línea a su entrada. Puede canalizar el archivo actual a cat -n y reemplazar el buffer actual con lo que imprime a stdout. Afortunadamente, esta solución intrincada tiene menos de 10 caracteres en vim:

:%!cat -n

O bien, si solo desea una subselección, seleccione visualmente el área y escriba esto:

:!cat -n

Eso colocará automáticamente los marcadores de selección visual, y se verá así después de haberlo escrito:

:''<,''>!cat -n

Para borrar los números de línea, recomiendo usar control-v , que le permitirá seleccionar visualmente un rectángulo, luego puede eliminar ese rectángulo con x .