En Vim, ¿cuál es el comando para corregir la sangría de todas las líneas?
Muchas veces copio y pego el código en un terminal remoto y lo arruino todo. Quiero arreglar esto de una sola vez.
vim
vi
indentation
mmcdole
fuente
fuente
Respuestas:
=
, el comando de sangría puede tomar movimientos. Por lo tanto,gg
para obtener el inicio del archivo,=
al guión,G
al final del archivo,gg=G
.fuente
''
(dos comillas simples) te lleva de regreso a donde estabas, así quegg=G''
debes sangrar y luego regresar.Antes de pegar en la terminal, intente
:set paste
y luego una:set nopaste
vez que haya terminado. Esto desactivará la sangría automática, el ajuste de línea y otras características que están estropeando su pegado.editar: Además, debo señalar que, por lo
=
general, se puede obtener un resultado mucho mejor que la sangría utilizando un programa externo. Por ejemplo, corro:%!perltidy
todo el tiempo.astyle
,cindent
, Etc. también pueden ser utilizados. Y, por supuesto, puede asignarlos a una pulsación de tecla y asignar diferentes a la misma pulsación de tecla según el tipo de archivo.fuente
equalprg
opción en un ftplugin para usar un filtro externo para la=
sangría, en lugar de una combinación de teclas personalizada.formatpgm
con ordenado y astyle y luegogq
. Estos son algunos ejemplos de mi.vimrc
:au FileType xml set fp=tidy\ -q\ -i\ -xml
yau FileType java set fp=/usr/local/bin/astyle\ --mode=java\ --indent=tab
Si desea reiniciar el bloque en el que se encuentra sin tener que escribir ningún acorde, puede hacer lo siguiente:
fuente
=aB
cual no moverá el cursor en absoluto.[[=]]
requiere 5 acordes :(El maestro de todos los comandos es
gg=G
¡Esto sangra todo el archivo!
Y a continuación se muestran algunos de los comandos simples y elegantes utilizados para sangrar líneas rápidamente en Vim o gVim.
Para sangrar todas las líneas debajo de la línea actual
Para sangrar la línea actual
Para sangrar
n
líneas debajo de la línea actualPor ejemplo, para sangrar 4 líneas debajo de la línea actual
Para sangrar un bloque de código, vaya a una de las llaves y use el comando
fuente
Puede usar la aplicación / utilidad ordenada para sangrar archivos HTML y XML y funciona bastante bien para sangrar esos archivos.
Prettificar un archivo XML
Prettificar un archivo HTML
fuente
presione escape y luego escriba las combinaciones siguientes rápidamente:
fuente
1G=G
. Eso debería sangrar todas las líneas del archivo.1G
te lleva a la primera línea,=
iniciará la sangría automática y la finalG
te llevará a la última línea del archivo.fuente
1gg=G
:set paste
es tu amiga yo uso masilla y termino copiando código entre ventanas. Antes de activar:set paste
(y:set nopaste
) copiar / pegar me dio ajustes por esa misma razón.fuente
En Vim, usa
:insert
. Esto mantendrá todo su formato y no hará autoindenting. Para obtener más informaciónhelp :insert
.fuente
si no desea usar
:set paste
, haga clic con el botón centralset nopaste
, también puede pegar el contenido del portapapeles:De esa manera no tienes que salir del modo normal. si tiene que pegar
+
o*
depende de cómo seleccionó el texto, vea:help quoteplus
.fuente
vim-autoformat formatea sus archivos fuente usando programas externos específicos para su idioma, por ejemplo, la gema "rbeautify" para archivos Ruby, el paquete npm "js-beautify" para JavaScript.
fuente
Para archivos complejos de C ++, vim no siempre obtiene el formato correcto cuando se usa el
=
comando de filtro de vim . Entonces, para tales situaciones, es mejor usar un formateador externo de C ++ como un estilo (o incrustación ), por ejemplo:La función '=' de Vim usa su formateador interno de manera predeterminada (que no siempre hace las cosas bien) pero también puede configurarlo para que use un formateador externo, como un estilo, configurándolo adecuadamente como se discutió en esta pregunta .
fuente
Para archivos XML, uso este comando
Necesita tener instalado xmllint (paquete libxml2-utils)
(Fuente: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )
fuente
Puede crear una asignación para hacer esto por usted.
Éste sangrará automáticamente todo el archivo y aún mantendrá el cursor en la posición en la que se encuentra:
fuente
Para vi Editor, use: insert. Esto mantendrá todo su formato y no insertará sangría automática. Una vez hecho, presione escape para ver el archivo formateado real; de lo contrario, verá algunos caracteres basura. como ^ I eg:
fuente
Simplemente vaya al modo visual en vim, y seleccione de arriba a abajo líneas después de seleccionar simplemente presione =, Toda la línea seleccionada se sangrará.
fuente
ggvG=
cuando puedesgg=G
? ¿Cuál era el punto de hacer visible el movimiento? Eso se aplica a todas las acciones que toman movimientos.