sublime - La sangría HTML no funciona en Vim 7.4 compilado, ¿alguna idea?
instalar emmet en vim (4)
A partir de 7.4.52
dentro de vim:
:let g:html_indent_inctags = "html,body,head,tbody"
:call HtmlIndent_CheckUserSettings()
más en .vimrc:
let g:html_indent_inctags = "html,body,head,tbody"
Solo quería agregar esto a un comentario en la respuesta principal, para devolver, después de pasar demasiado tiempo sin obtener la respuesta para trabajar, pero aparentemente no tengo suficiente reputación :(
Al intentar hacer que vim
.html
correctamente los archivos .html
, seguí los ejemplos que se muestran here .
Dado el siguiente archivo index.html
:
<html>
<body>
<p>
text
</p>
</body>
</html>
Intenté abrirlo así (ignorando mi .vimrc
para asegurarme de que no interfiera negativamente)
vim -u NONE index.html
Luego establezco las opciones para habilitar el sangrado automático:
:filetype plugin indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
Y luego sangré todo el archivo con gg=G
, y este es el resultado:
<html>
<body>
<p>
text
</p>
</body>
</html>
html.vim
para asegurarme de que el archivo html.vim
existía, y definitivamente está ahí
$ head -2 ~/.vim/after/ftplugin/html.vim
" Vim syntax file
" Language: HTML
$ head -2 ~/.vim/ftplugin/html.vim
" Vim syntax file
" Language: HTML
Mi versión de vim es 7.4:
$ vim --version | head -1
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 23 2013 16:12:20)
E incluye sangrado inteligente:
$ vim --version | grep smartindent
-ebcdic +mouse +smartindent +xim
¡No sé por qué la sangría no funciona! ¿Alguna pista o idea para investigar más este problema?
FWIW, estoy ejecutando Ubuntu 13.04.
Como se menciona en la respuesta de Cory, la versión actualmente distribuida es Vimscript 2075 . Si vas a esa página de complemento, puedes ver documentadas todas las etiquetas que de forma predeterminada aumentarán la sangría.
Ninguna de las etiquetas que proporcionó en su ejemplo se encuentra en esta lista predeterminada, pero hay muchas.
Como la indentación de HTML está muy abierta a las preferencias del usuario, el mantenedor del complemento ha incluido una opción para agregar o eliminar etiquetas de la lista de etiquetas que aumenta la sangría. Ver: help html-indent, donde sugiere:
You can add further tags with:
:let g:html_indent_inctags = "html,body,head,tbody"
El primer paso de solución de problemas es ejecutar :scriptnames
. Si no ve .../indent/html.vim
, significa que el complemento no está cargado correctamente y que la sangría no funcionará correctamente. Probablemente solo dejará sangría en cada línea. (El problema es que vim no da un error, por lo que parece que la sangría está haciendo un trabajo horrible).
La forma más confiable de hacerlo funcionar es poner esta línea en su ~/.vimrc
.
filetype plugin indent on
A continuación, abra el archivo con vim nuevamente y ejecute :scriptnames
. Debería ver .../indent/html.vim
ahora. Luego, escriba gg=G
para autogramar el archivo completo.
Una nota importante que me hizo tropezar por un tiempo: si no lo pones en ~/.vimrc
y simplemente ~/.vimrc
:filetype plugin indent on
después de que hayas abierto el archivo, tendrás que volver a abrir el archivo nuevamente con :e
. El complemento de sangrado debe cargarse antes de abrir el archivo. Ejecutar :scriptnames
de :scriptnames
para confirmar.
Nota al autoindent
: no necesita preocuparse por la configuración de autoindent
o autoindent
, esas son para otra cosa.
Entre las versiones 7.3 y 7.4, se html.vim
archivo html.vim
incluido en $VIMRUNTIME/indent
. La versión actualmente distribuida es realmente Vimscript # 2075 , y no sangra algunas etiquetas html
por defecto.
Recomiendo la solución de Ben anterior, pero alternativamente puede volver a una versión anterior del archivo distribuido html.vim
.
Para hacer esto, simplemente reemplace el archivo 7.4 html.vim
existente por el de 7.3.
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
tar jxf vim-7.3.tar.bz2
cp vim73/runtime/indent/html.vim ~/.vim/indent/