Bagaimana cara melompat antara tag HTML / XML yang cocok?

44

Bagaimana untuk melompat antara tag pencocokan (seperti <div>, <span>, dll) ketika mengedit dokumen HTML / XHTML / XML sama seperti yang %digunakan untuk melompat antara tanda kurung yang cocok?

kenorb
sumber
6
kemungkinan rangkap dari Menggunakan% dalam bahasa tanpa kurung kurawal ... Solusi ini juga berfungsi untuk HTML (baru saja mengujinya, jika Anda menggunakan >itu akan berfungsi seperti sebelumnya, jika Anda menggunakannya divakan berfungsi seperti yang Anda inginkan).
Martin Tournoij
@Carpetsmoker Jika pertanyaan ini akan diduplikasi dari jawaban seperti umum (menggunakan satu plugin), maka itu tidak akan memungkinkan untuk setiap jawaban yang berhubungan dengan tag html khusus.
kenorb
Namun, pertanyaan lain memiliki jawaban yang persis sama, jadi ini adalah duplikat.
Gagang pintu
Diposting contoh jawaban yang tidak cocok dengan pertanyaan lain, jadi itu bukan duplikat.
kenorb
1
@ Doorknob Fakta bahwa dua pertanyaan kebetulan memiliki jawaban yang sama tidak selalu berarti bahwa pertanyaan tersebut merupakan duplikat satu sama lain.
200_sukses

Jawaban:

45

Vim dikirimkan dengan makro yang disebut matchit yang melakukan ini untuk Anda; yang perlu Anda lakukan adalah mengaktifkannya dengan runtime macros/matchit.vimvimrc Anda. Ini akan memungkinkan Anda untuk melompat dari, misalnya a <div>ke nya </div>. Perhatikan bahwa kursor Anda harus berada di dalam kurung sudut; jika Anda berada di kurung sudut, %akan melompat dari satu braket ke yang lain seperti biasa.

Tom
sumber
23

Anda dapat beralih di antara tag menggunakan operator visual, misalnya:

  1. Tempatkan kursor pada tag.
  2. Masuk ke mode visual dengan menekan v.
  3. Pilih blok tag luar dengan menekan a+ tatau i+ tuntuk blok tag dalam.

Kursor Anda harus melompat ke depan ke tag html / xml penutup yang cocok. Untuk melompat mundur dari tag penutup, tekan oatau Ountuk melompat ke tag berlawanan.

Sekarang Anda dapat keluar dari visual dengan menekan Esc, mengubahnya catau menyalin y.


Untuk merekam tindakan itu ke dalam register, tekan qquntuk mulai merekam, lakukan lompat tag seperti di atas (termasuk Esc), tekan quntuk menyelesaikan. Kemudian untuk memanggil lompatan, tekan @q.


Lihat bantuan lebih lanjut di :help visual-operatorsatau :help v_it:

at sebuah <tag> </tag>blok (dengan tag)

it<tag> </tag>blok batin


Atau gunakan plugin seperti matchit.vim atau surround.vim .


Lihat juga:

kenorb
sumber
3

The xmledit( http://vimawesome.com/plugin/xmledit ) Plugin memungkinkan untuk melompat antara tag membuka dan menutup dengan menggunakan

  • <localleader>%

Sering <localleader> akan jadi \, jadi Anda bisa melompat dengannya

  • \%

CATATAN: Tidak seperti matchit, Anda tidak harus meletakkan kursor di dalam tag. Menempatkannya tepat di <atau >benar-benar baik untuk xmleditplugin. :)

CATATAN 2: Kelemahan di sini adalah, Anda tidak dapat menggunakannya dalam mode visual. Tapi ini bukan masalah besar, karena Anda selalu dapat memilih seluruh tag at.

Boris Brodski
sumber