¿Cómo cambiar el par de una etiqueta HTML modificada en Vim?

¿Cómo cambiar el par de una etiqueta HTML modificada en Vim?

¿Cómo puedo configurar Vim para que cuando cambie un miembro de un par de etiquetas HTML coincidentes, el otro cambie automáticamente para que coincida?

Por ejemplo: dado <span>content</span>, quiero cambiar <span>a <div>, y luego el cierre </span>cambia automáticamente a </div>. De manera óptima, esto sucedería al regresar del modo de inserción al modo normal, pero estaría bien si tuviera que presionar una combinación de teclas especial para que esto suceda.

Respuesta1

el excelenteenvolvente.vimhace que esto sea simple: con el cursor en cualquier lugar dentro de la etiqueta que desea cambiar, en modo normal, escriba cst<div>( change surrounding tag to <div>). El nombre de la etiqueta se cambiará a "div" tanto en la etiqueta de apertura como en la de cierre, y volverá al modo normal.

Respuesta2

Aquí hay algunos pasos:

  1. Coloque el cursor en la primera etiqueta.
  2. Seleccione el código html externo presionando: vat.
  3. Presione Escpara salir del modo visual y escriba:

    :'<,'<s/span/div/
    :'>,'>s/span/div/
    

    Tenga en cuenta que :'>,'>s/span/div/no funcionará correctamente si hay dos apariciones de la misma etiqueta de cierre en la misma línea, ya que siempre cambiará la primera. Para solucionarlo, utilice: :'>,'>s/.*\zsspan/div/en su lugar. Ver:¿Cómo cambiar la última aparición de la cadena en la línea?

Relacionado:

Respuesta3

el vimacompañarEl complemento puede hacer esto:

Vim acompañante

Respuesta4

Con elSwapIt: intercambiador de palabras clave extensible, puede definir grupos de etiquetas que luego se pueden alternar mediante <C-a>/ <C-x>. Por ejemplo, en ~/.vim/ftplugin/html_swapit.vim:

SwapList layout p div span

Si tiene etiquetas de inicio y fin en la misma línea (y solo hay una de ese tipo), puede editar ambas a través de miComplemento ChangeGlobally.


También hay varios complementos "multicursor", que le permiten marcar ciertas palabras y editarlas todas a la vez.

información relacionada