Как изменить пару измененного HTML-тега в Vim?

Как изменить пару измененного HTML-тега в Vim?

Как настроить Vim так, чтобы при изменении одного члена совпадающей пары HTML-тегов другой автоматически изменялся для соответствия?

Например: учитывая <span>content</span>, я хочу изменить <span>на <div>, и тогда закрытие </span>автоматически изменится на </div>. Оптимально, чтобы это произошло при возврате из режима вставки в обычный режим, но было бы нормально, если бы мне пришлось нажать специальную комбинацию клавиш, чтобы это произошло.

решение1

Превосходныйокружать.vimделает это просто — с курсором в любом месте внутри тега, который вы хотите изменить, в обычном режиме введите cst<div>( change surrounding tag to <div>). Имя тега будет изменено на "div" как в открывающем, так и в закрывающем теге, и вы вернетесь в обычный режим.

решение2

Вот несколько шагов:

  1. Наведите курсор на первый тег.
  2. Выберите внешний HTML-код, нажав: vat.
  3. Нажмите Esc, чтобы выйти из визуального режима, и введите:

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

    Обратите внимание, что это :'>,'>s/span/div/не будет работать правильно, если в одной строке есть два одинаковых закрывающих тега, так как это всегда изменит первый. Чтобы исправить это, используйте :'>,'>s/.*\zsspan/div/вместо этого:. Смотрите:Как изменить последнее вхождение строки в строку?

Связанный:

решение3

Вимтагалонгплагин может сделать это:

Вим тагалонг

решение4

СSwapIt — расширяемый обменник ключевых слов, вы можете определить группы тегов, которые затем можно переключать с помощью <C-a>/ <C-x>. Например, в ~/.vim/ftplugin/html_swapit.vim:

SwapList layout p div span

Если у вас есть начальный и конечный теги на одной строке (и есть только один такой тег), вы можете редактировать оба тега через мойПлагин ChangeGlobally.


Существует также несколько «мультикурсорных» плагинов, которые позволяют отмечать определенные слова и редактировать их все одновременно.

Связанный контент