¿Cómo saltar entre etiquetas coincidentes (como <div>
, <span>
etc.) al editar documentos HTML / XHTML / XML de manera similar a como %se usa para saltar entre paréntesis coincidentes?
¿Cómo saltar entre etiquetas coincidentes (como <div>
, <span>
etc.) al editar documentos HTML / XHTML / XML de manera similar a como %se usa para saltar entre paréntesis coincidentes?
Respuestas:
Vim se envía con una macro llamada matchit que hace esto por usted; todo lo que necesita hacer es activarlo runtime macros/matchit.vim
en su vimrc. Esto le permitirá saltar de, por ejemplo, a <div>
a su </div>
. Tenga en cuenta que su cursor tendrá que estar dentro de los corchetes angulares; Si está en los corchetes angulares, %saltará de un corchete al otro de forma normal.
Puede saltar entre etiquetas usando operadores visuales, por ejemplo:
Su cursor debería saltar hacia la etiqueta html / xml de cierre correspondiente. Para saltar hacia atrás desde la etiqueta de cierre, presione oo Opara saltar a la etiqueta opuesta.
Ahora puede salir de visual presionando Esc, cambiar por co copiar por y.
Para grabar esa acción en el registro, presione qqpara comenzar a grabar, realice el salto de etiqueta como se indica arriba (incluido Esc), presione qpara finalizar. Luego, para invocar el salto, presione @q.
Ver más ayuda en :help visual-operators
o :help v_it
:
at un
<tag> </tag>
bloque (con etiquetas)it
<tag> </tag>
bloque interior
Alternativamente, use un complemento como matchit.vim o surround.vim .
Ver también:
El complemento xmledit
( http://vimawesome.com/plugin/xmledit ) permite saltar entre etiquetas abiertas y cerradas usando
A menudo <localleader> lo estará \, así que puedes saltar con
NOTA: a diferencia matchit
, no tiene que poner el cursor dentro de la etiqueta. Colocarlo en el <
o >
está perfectamente bien para el xmledit
complemento. :)
NOTA 2: Un inconveniente aquí es que no puede usarlo en modo visual. Pero esto no es gran cosa, ya que siempre puede seleccionar la etiqueta completa con at.
>
funcionará como antes, si estás en eldiv
funcionará como quieras).