El %operador de Vim salta a paréntesis, termina comentarios y algunas otras cosas. Sin embargo, no coincide con las etiquetas XML (o cualquier otra etiqueta, que yo sepa).
¿Cuál es la mejor manera de saltar a la etiqueta XML correspondiente usando Vim?
Nota: Lo que realmente quiero hacer es duplicar una sección en un archivo XML sin buscar manualmente la etiqueta correspondiente.

Respuestas:
Hay un complemento vim llamado matchit.vim. Puede encontrarlo aquí: http://www.vim.org/scripts/script.php?script_id=39 . Fue creado más o menos el propósito exacto que usted describe.
Instale eso, coloque el cursor en el cuerpo de la etiqueta (no el <>, de lo contrario coincidirá con esos) y presione% para saltar a la otra etiqueta. Vea la página del script para averiguar qué más coincide.
fuente
runtime macros/matchit.vimdebería habilitarlo y permitir%que coincidan las etiquetas XML.packadd! matchita.vimrcpara habilitarlo. Leer más:help matchitPuede hacer esto sin complementos adicionales:
Otra operación útil es: vit- seleccionará el contenido de la etiqueta (interior).
Actualización (gracias a @elrado) Ejemplo: vitole permitirá seleccionar el contenido interno de la etiqueta y posicionar el cursor al comienzo del texto seleccionado.
Referencia: /superuser/182355/how-can-i-select-an-html-tags-content-in-vim
Referencia de Vim (gracias a @Geek por señalar esto):
obtendrás:
fuente
citcambia el i nterior de la etiqueta - sólo el contenido.catcambiar un ll de la etiqueta - el contenido y un lso la propia etiqueta, tanto en apertura y cierre.El OP declaró que lo que realmente quería hacer era copiar una sección de XML sin tener que encontrar la etiqueta correspondiente. Esto se hace fácilmente en modo normal con
yat<motion>p, que tira del texto dentro e incluye las etiquetas coincidentes, luego lo pega.yit<motion>pes casi lo mismo, pero no incluye las etiquetas externas.La 'y' en la cadena es, por supuesto, el comando "yank" en modo normal. (
:help y)aoipuede usarse para la selección de objetos después de un operador comoyo dentro de una selección visual. El símbolo despuésaoiespecifica lo que debe seleccionarse. El tipo de objetotutilizado aquí indica una etiqueta SGML. (:help object-select)Por supuesto,
<motion>solo significa moverse a algún lugar por el medio que elija ypcoloca el texto extraído en esa ubicación.fuente
isignifica "dentro" (o "interior").asignifica "a"?asignifica "todos".asignifica alrededor . Tiene más sentido para mí.Solo mi truco de usar "tirar", "seleccionar objeto" (seleccionar etiqueta) y "saltar al último texto".
saltar a la derecha antes de cerrar la etiqueta
y
saltar a la derecha después de abrir la etiqueta
Nota: esto cambiará el contenido del registro predeterminado
fuente