2011-09-29 16 views
20

Me gustaría vim para ayudarme a sangrar mis archivos xml como mi código C. Sin embargo, cuando usoObteniendo vim para reconocer XML

gg=G 

Simplemente establece todo a la izquierda. ¿Necesito designar una sintaxis? ¿XML es reconocido como un idioma?

Respuesta

24

Ponga

filetype plugin indent on 

en su .vimrc tener Vim identificar archivos .xml como XML automáticamente. Es posible que tenga que poner

set nocompatible 

antes de eso.

Si la extensión del archivo no está .xml, puede hacer que amenaza Vim que como XML mediante el uso de

:set filetype=xml 

Después de hacer eso, autoindention de Vim (y resaltado de sintaxis, y omnicomplete (que en XML simplemente cierra etiquetas, pero eso todavía es algo)) funcionará correctamente para xml.

+1

Ejecutar Vim en modo compatible es como ejecutar VI antiguo ... que es el punto del modo compatible, pero es simplemente triste que eso es lo predeterminado. –

+1

Si está editando FXML en javaFX, el comando ': set filetype = xml' le da una coloración de sintaxis bendecida a su archivo. ¡Dulce! – ncmathsadist

5

Sí, :set syntax=xml debería funcionar. En vim 7.3, esto establece :set indentexpr=XmlIndentGet(v:lnum,1).

Si tiene un archivo de una línea, puede necesitar :%s/\(<[^>]*>\)/\1\r/g, para insertar líneas nuevas después de cada etiqueta (o dividirla de manera diferente).

Entonces, gg=G debería funcionar.

+0

estoy ejecutando una versión muy antigua de Fedora Core :(pegado con vim 7.2, así que no hago obtener sangría automática. – IslandCow

+0

@IslandCow No creo que esto importe. Solo necesitas obtener 'indent/xml.vim' del tiempo de ejecución vim-7.3 si no tienes la función' XmlIndentGet'. No veo nada vim-7.3-specific en este archivo. – ZyX

+0

La sintaxis XML parece funcionar bien en 7.2 en Windows. Como usuario, no debería tener que preocuparse por indentexpr, siempre que la sintaxis sea y correcto deberías estar bien. (Aunque puede probar ': set filetype = xml' en su lugar.) –

0

añadir esta línea a su archivo .vimrc:

:map <Space>fx :%s/\ </\r</g<cr>:%s/\ android/\randroid/g<cr>:g/^$/d<cr>gg=G` 

a formato hacer clic space fx