Jak przeskakiwać między pasującymi tagami HTML / XML?

44

Jak skakać między pasujące znaczniki (takich jak <div>, <span>itd) podczas edycji dokumentów HTML / XHTML / XML podobnie jak %jest używany, aby przejść między dopasowywania nawiasów?

kenorb
źródło
6
możliwy duplikat Użycie% w językach bez nawiasów klamrowych ... To rozwiązanie działa również dla HTML (właśnie go przetestowałem, jeśli go używasz >, będzie działał jak wcześniej, jeśli go używasz div, będzie działał tak, jak chcesz).
Martin Tournoij
@Carpetsmoker Jeśli to pytanie byłoby duplikatem ogólnej odpowiedzi (przy użyciu jednej wtyczki), nie pozwoli na żadne odpowiedzi, które dotyczą konkretnie tagów HTML.
kenorb
Jednak drugie pytanie ma dokładnie tę samą odpowiedź, więc jest to duplikat.
Klamka
Wysłana przykładowa odpowiedź, która nie pasuje do innego pytania, więc nie jest duplikat.
kenorb
1
@Doorknob Fakt, że dwa pytania mają tę samą odpowiedź, niekoniecznie oznacza, że ​​pytania są ze sobą duplikatami.
200_success

Odpowiedzi:

45

Vim jest wyposażony w makro o nazwie matchit, które robi to za ciebie; wszystko, co musisz zrobić, to aktywować go za pomocą runtime macros/matchit.vimvimrc. Umożliwi to skakanie np. Z a <div>na jego </div>. Zauważ, że twój kursor musi znajdować się w nawiasach kątowych; jeśli jesteś na nawiasach kątowych, %przeskoczysz z jednego nawiasu na drugi jak zwykle.

Tomek
źródło
23

Możesz przełączać się między tagami za pomocą operatorów wizualnych, na przykład:

  1. Umieść kursor na znaczniku.
  2. Wejdź do trybu wizualnego, naciskając v.
  3. Wybierz zewnętrzny blok znaczników, naciskając a+ tlub i+, taby wprowadzić wewnętrzny blok znaczników.

Kursor powinien przeskoczyć do pasującego zamykającego znacznika html / xml. Aby przejść do tyłu od zamykającego znacznika, naciśnij olub, Oaby przejść do przeciwnego znacznika.

Teraz możesz wyjść z trybu wizualnego, naciskając Esc, zmieniając go club kopiując y.


Aby zarejestrować tę akcję w rejestrze, naciśnij, qqaby rozpocząć nagrywanie, wykonaj przeskakiwanie do znaczników jak powyżej (w tym Esc), naciśnij, qaby zakończyć. Następnie, aby wywołać skok, naciśnij @q.


Zobacz więcej pomocy przy :help visual-operatorslub :help v_it:

at<tag> </tag>wiersza (znaczników)

it<tag> </tag>blok wewnętrzny


Alternatywnie użyj wtyczki, takiej jak matchit.vim lub surround.vim .


Zobacz też:

kenorb
źródło
3

xmledit( Http://vimawesome.com/plugin/xmledit ) Wtyczka pozwala skakać pomiędzy otwartymi i bliskich za pomocą tagów

  • <localleader>%

Często <localleader> będzie \, więc możesz skakać

  • \%

UWAGA: W przeciwieństwie matchitdo tego, nie musisz umieszczać kursora wewnątrz tagu. Umieszczenie go bezpośrednio na <lub >jest w porządku dla xmleditwtyczki. :)

UWAGA 2: Wadą jest to, że nie można jej używać w trybie wizualnym. Ale to nie jest wielka sprawa, ponieważ zawsze możesz wybrać cały tag za pomocą at.

Boris Brodski
źródło