Как перейти между соответствующими тегами HTML / XML?

44

Как переключаться между соответствующими тегами (например <div>, <span>и т.д.) при редактировании HTML / XHTML / XML документы аналогично тому, как %используются для перехода между согласующими скобками?

kenorb
источник
6
возможный дубликат использования% в языках без фигурных скобок ... Это решение также работает для HTML (только что проверил его, если он включен, >он будет работать как раньше, если он включен, divон будет работать так, как вы хотите).
Мартин Турной
@Carpetsmoker Если этот вопрос будет продублирован как общий ответ (с использованием одного плагина), то он не будет разрешать ответы, которые касаются HTML-тегов.
Кенорб
Однако другой вопрос имеет точно такой же ответ, так что это дубликат.
дверная ручка
Выложил пример ответа, который не вписывается в другой вопрос, поэтому он не повторяется.
Кенорб
1
@ Doorknob Тот факт, что два вопроса имеют один и тот же ответ, не обязательно означает, что вопросы дублируют друг друга.
200_success

Ответы:

45

Vim поставляется с макросом matchit, который делает это для вас; все, что вам нужно сделать, это активировать его runtime macros/matchit.vimв вашем vimrc. Это позволит вам перейти от, например, <div>к его </div>. Обратите внимание, что курсор должен находиться внутри угловых скобок; если вы находитесь в угловых скобках, %переходите от одной скобки к другой, как обычно.

Том
источник
23

Вы можете переходить между тегами, используя визуальные операторы, например:

  1. Поместите курсор на тег.
  2. Войдите в визуальный режим, нажав v.
  3. Выберите внешний блок тега, нажав a+ tили i+ tдля внутреннего блока тега.

Ваш курсор должен перейти к соответствующему закрывающему тегу html / xml. Чтобы перейти назад от закрывающего тега, нажмите oили, Oчтобы перейти к противоположному тегу.

Теперь вы можете выйти из визуального отображения, нажав Esc, изменить его cили скопировать y.


Чтобы записать это действие в регистр, нажмите, qqчтобы начать запись, выполните переход тега, как указано выше (включая Esc), нажмите, qчтобы закончить. Затем, чтобы вызвать прыжок, нажмите @q.


Смотрите дополнительную помощь на :help visual-operatorsили :help v_it:

at<tag> </tag>блок (с бирками)

it внутренний <tag> </tag>блок


В качестве альтернативы использовать плагин , такие как matchit.vim или surround.vim .


Смотрите также:

kenorb
источник
3

xmledit( Http://vimawesome.com/plugin/xmledit ) плагин позволяет перемещаться между открывающим и закрывающим тегами , используя

  • <Localleader>%

Часто <localleader> будет \, так что вы можете перейти с

  • \%

ПРИМЕЧАНИЕ. В отличие от этого matchit, вам не нужно указывать курсор внутри тега. Размещение его прямо на <или >отлично подходит для xmleditплагина. :)

ПРИМЕЧАНИЕ 2: Недостатком здесь является то, что вы не можете использовать его в визуальном режиме. Но это не имеет большого значения, так как вы всегда можете выбрать весь тег с помощью at.

Борис Бродский
источник