2009-06-01 13 views
18

a menudo me encuentro eliminar y añadir secciones XML en los archivos de configuración: server.xmlComentando XML en vim

  • de Tomcat settings.xml
  • Maven

y muchos otros.

¿Hay un complemento/comando vim para que esto sea tan simple?

Respuesta

15

Se puede utilizar una combinación de etiquetas XML a juego, como puede verse en this question y Perl de búsqueda y reemplazo.

Por ejemplo, dado este fragmento:

<TypeDef name="a"> 
    <ArrayType high="14" low="0"> 
    <UndefType type="node"> 
    </UndefType> 
    </ArrayType> 
</TypeDef> 

Coloque el cursor sobre cualquiera de la apertura o el cierre de TypeDef y escriba la siguiente secuencia:

vat:s/^\(.*\)$/<!--\1-->/ 

v - se pone en modo visual
at - selecciona la etiqueta XML completa
:s/^\(.*\)$/<!--\1-->/ - rodea cada línea con '<!--...-->', los delimitadores de comentarios para XML

Como alternativa, puede simplemente eliminar de esta manera:

dat 

d - Eliminar de acuerdo con los siguientes movimientos
at - como antes

+1

Su actualización es muy perspicaz. Puedo usar vat: s/-> // para eliminar comentarios. Gracias. –

+0

+1 para la información 'dat'. Debería obtener aún más si muestra cómo agregar esto a una tecla de acceso directo. –

+1

@ MerlynMorgan-Graham ¿Quiere decir algo como: 'nmap dt dat' – Johann

1

Mejor sería si encontrara un comando que agrega cosas al principio y al final de la selección.

Cuando estoy comentando código Python, estoy haciendo esto:

:2,4s/^/#/g 
+1

Gracias por la respuesta, me apunta en la dirección correcta. ¿Pero cómo voy a agregar '' a la última? –

+0

Las macros de vim lo hacen fácil, ya sea usando las marcas '< and '> que van con selecciones visuales, o moviendo el cursor de un extremo de la selección visual al otro con' o ' – sjh

5

Vim no lo hace tiene comentarios inteligentes para todos los tipos de archivos por sí mismo. Debería obtener un script para sus necesidades de comentarios.

utilizo el guión enhcomentify que ha existido y se mantiene durante mucho tiempo

http://www.vim.org/scripts/script.php?script_id=23

Parece que hacer así xml y se obtiene la ventaja de las mismas combinaciones de teclas para cualquier que tipo de archivo está utilizando .

Hay otros ..en particular el NERD comentarista

http://www.vim.org/scripts/script_search_results.php?keywords=comment&script_type=&order_by=rating&direction=descending&search=search

+0

EnhCommentify parece estar muerto (última actualización en 2008) pero NERD Commenter aún se encuentra en desarrollo activo y funciona bien para mí. – luator

+0

@luator Esta respuesta es muy antigua. Yo uso vim-commentary ahora. – michael

5

uso surround.vim para la coincidencia de etiquetas en general, borrar, insertar, que rodea etc,

Para comentar las etiquetas, es fácil de usar objetos de texto vim & y un simple macro

Ejemplo:

introduzca

vmap ,c <esc>a--><esc>'<i<!--<esc>'>$ 

algún lugar adecuado, a continuación, coloque el cursor en la capital "A" de la "ArrayType" en la línea dos de los siguientes (tomado de Nathan Fellmans ejemplo anterior)

<TypeDef name="a"> 
    <ArrayType high="14" low="0"> 
    <UndefType type="node"> 
    </UndefType> 
    </ArrayType> 
</TypeDef> 

después haga clic en

vat,c 

y obtendrá:

<TypeDef name="a"> 
    <!--<ArrayType high="14" low="0"> 
    <UndefType type="node"> 
    </UndefType> 
    </ArrayType>--> 
</TypeDef> 

con el cursor al final del comentario

2

Creo que la adaptación de this vim tip puede ser útil.

Propongo añadiendo:

" Wrap visual selection in an XML comment 
vmap <Leader>c <Esc>:call CommentWrap()<CR> 
function! CommentWrap() 
    normal `> 
    if &selection == 'exclusive' 
    exe "normal i-->" 
    else 
    exe "normal a-->" 
    endif 
    normal `< 
    exe "normal i<!--" 
    normal `< 
endfunction 

a su .vimrc

Luego, con una selección visual activo (V), golpear \ c (barra invertida a continuación, c) para envolver su bloque en <!-- --> XML comentarios de estilo.

Como alternativa, como se sugiere en el wiki puede poner el código en ~/.vim/scripts/wrapwithcomment.vim y añadir a su .vimrc:

au Filetype html,xml source ~/.vim/scripts/wrapwithcomment.vim 

cargar sólo que la funcionalidad cuando se trabaja en una archivo html o xml

4

Me encanta la simplicidad de https://github.com/tpope/vim-commentary. Fácil de agregar otros idiomas, aunque parece ser compatible con la mayoría de la caja. Menos de 100 líneas de código.

gcc para comentar la línea actual, o seleccione el texto que desea enviar un comentario y pulse gc. Muy facil.

+0

"Súper fácil" es una subestimación si tiene configuración de paquete. Espero que más personas encuentren esta. –