Estoy tratando de usar Vim cada vez más cuando puedo. Uno de mis mayores vínculos entre Vim y un IDE como Aptana es la capacidad de sangrar automáticamente.
¿Hay algún medio de formateo automático de código (HTML, CSS, PHP) para que esté correctamente sangrado?
Si es así, ¿cómo instalas esto en vim? No entiendo mucho los complementos. Traté de revisar este hilo y me confundió más: ¿Cómo cambiar el comportamiento de sangrado automático de vim?
Respuestas:
Para sangrar todo el archivo automáticamente:
Explicado:
gg
- ir al comienzo del archivoG
- ir al final del archivo=
- sangríafuente
gg=G
desde shell sin abrir el archivo?No sé sobre el formato automático del código existente, pero si está escribiendo código y necesita una sangría automática:
:set autoindent
(o:set ai
) activará la sangría automática:set tabwidth=4
(o:set tw=4
) controlará cuántos espacios debe sangrar un código en una pestaña>>
comando sangrará la línea actual. Si lo prefieres con un número, di4>>
que sangrará 4 líneas, comenzando con la línea actual.<<
comando desangrará una líneaEspero que esto te de un buen comienzo.
fuente
={motion}
en modo normal; por ejemplo=G
, sangrará todo el código desde la línea actual hasta el final del archivo.==
sangrará la línea actual.:filetype indent on
)Sangría automática
*.sh
Simplemente agregue las siguientes líneas en
~/.vimrc
fuente
~./vimrc
solo aplicable para vim editor.Este complemento facilita el formateo de su código. Integra formateadores externos y tiene un respaldo en la funcionalidad de sangría de vim.
https://github.com/Chiel92/vim-autoformat
Además, observe la diferencia entre formateo y sangría. La sangría solo corrige el espacio en blanco antes de cada línea, mientras que el formateo también se ocupa de cualquier otra cosa, como el espacio en blanco alrededor de los operadores, etc.
fuente
Cree / edite el
~/.vimrc
archivo y agregue la siguiente línea:fuente
:set autoindent
que habilita la sangría automática solo para el archivo actual. Agregarlo en el.vimrc
archivo habilita la sangría automática de forma permanente.En bash hago esto:
Esto elimina los comentarios y reinventa el script "bash way". no funcionará si el script contiene HEREDOCS pero si hace esto:
funcionará con cualquier script pero todo el script estará sangrado por 4 espacios. ¡siéntase libre de modificar pero cite mi nombre en su script y publíquelo! :RE
fuente
sed
si lo desea:cat script_to_be_reindented.sh | sed 's#^# #g'
(er, bueno, SO markdown está reemplazando los espacios con una pestaña, pero obtiene el punto)El autoformato / sangría de vim funciona bastante bien. Primero, ponga esta línea en su
~/.vimrc
:Luego abra un archivo en vim y escriba
gg=G
(
gg
mueve el cursor a la primera línea.=
ejecuta el comando de sangría.G
le dice al comando de sangría que se ejecute desde aquí hasta la última línea).Si el autoformato se ve realmente mal, como si cada línea se dejara con sangría, ejecute
:scriptnames
y compruebe si.../indent/html.vim
(o cualquier idioma que esté usando) está en la lista. De lo contrario, asegúrese de que~/.vimrc
sea correcto. O si ejecutó:filetype plugin indent on
desde la línea de comando vim, deberá volver a abrir el archivo:e
fuente