Pregunta ¿Cómo arreglo la sangría de un archivo completo en Vi?


En Vim, ¿cuál es el comando para corregir la sangría de todas las líneas?

Muchas veces copiaré y pegaré código en un terminal remoto y lo desordenaré todo. Quiero arreglar esto de una sola vez.


570
2018-02-03 05:15


origen


Respuestas:


=, el comando de sangría puede tomar movimientos. Asi que, gg para obtener el inicio del archivo, = para sangrar, G al final del archivo, gg=G.


1090
2018-02-03 05:19



Antes de pegar en la terminal, intente :set paste (y entonces :set nopaste después de que termines). Esto desactivará las funciones de sangría automática, alineación de línea, etc. que están arruinando su pasta.

editar: Además, debo señalar que un resultado mucho mejor que = sangría generalmente puede obtenerse mediante el uso de un programa externo. Por ejemplo, corro :%!perltidy todo el tiempo. astyle, cindent, etc. también se pueden usar. Y, por supuesto, puede asignarlos a un trazo clave y asignar diferentes a la misma pulsación de tecla según el tipo de archivo


115
2018-02-03 05:47



Si quieres reinventar el bloque en el que estás sin tener que escribir ningún acorde, puedes hacer:

[[=]]

27
2018-03-02 03:44



El maestro de todos los comandos es

gg=G

Esto sangra todo el archivo!

A continuación se muestran algunos de los comandos simples y elegantes utilizados para sangrar líneas rápidamente en Vim o gVim.

Para aplicar sangría a todas las líneas debajo de la línea actual

=G

Para sangrar la línea actual

==

Para sangrar n líneas debajo de la línea actual

n==

Por ejemplo, para sangrar 4 líneas debajo de la línea actual

4==

Para sangrar un bloque de código, vaya a uno de los refuerzos y use el comando

=%

19
2017-08-31 10:23



Puede usar la aplicación / utilidad tidy para aplicar sangría a archivos HTML y XML y funciona bastante bien para sangrar esos archivos.

Pretifique un archivo XML

:!tidy -mi -xml %

Pretifique un archivo HTML

:!tidy -mi -html %

17
2017-07-06 08:48



presione escape y escriba a continuación combinaciones rápidas:

gg=G

13
2017-12-02 13:22



1G=G. Eso debería sangrar todas las líneas en el archivo. 1G te lleva a la primera línea, = iniciará el autoguiado y el final G te llevará a la última línea del archivo.


11
2018-02-03 21:17



En Vim, use :insert. Esto mantendrá todo su formato y no hará autoindeferencia. Para más información help :insert.


7
2018-02-03 05:44



:set paste es tu amigo, uso masilla y termino copiando código entre ventanas. Antes de encenderlo :set paste (y :set nopaste) copiar / pegar me dio ajustes por esa misma razón.


7
2018-02-03 21:34