%
Operator Vim melompat ke tanda kurung yang cocok, komentar berakhir dan beberapa hal lainnya. Namun, itu tidak cocok dengan tag XML (atau tag lainnya, sejauh yang saya ketahui).
Apa cara terbaik untuk melompat ke tag XML yang cocok menggunakan Vim?
Catatan: Yang benar - benar ingin saya lakukan adalah menduplikasi bagian dalam file XML tanpa mencari tag yang cocok secara manual.
Jawaban:
Ada plugin vim yang disebut matchit.vim. Anda dapat menemukannya di sini: http://www.vim.org/scripts/script.php?script_id=39 . Itu dibuat cukup banyak tujuan persis yang Anda gambarkan.
Instal itu, tempatkan kursor Anda pada badan tag (bukan <>, kalau tidak akan cocok dengan itu) dan tekan% untuk melompat ke tag lain. Lihat halaman skrip untuk mencari tahu apa yang cocok.
sumber
runtime macros/matchit.vim
harus mengaktifkannya, dan memungkinkan%
untuk mencocokkan tag XML.packadd! matchit
ke.vimrc
untuk mengaktifkannya. Baca selengkapnya:help matchit
Anda dapat melakukan ini tanpa plugin tambahan:
Operasi lain yang bermanfaat adalah: vit- akan memilih konten dari tag (bagian dalam).
Pembaruan (terima kasih kepada @elrado) Contoh: vitoakan memungkinkan Anda untuk memilih konten bagian dalam dari tag dan kursor posisi pada awal teks yang dipilih.
Referensi: /superuser/182355/how-can-i-select-an-html-tags-content-in-vim
Referensi Vim (terima kasih kepada @Geek untuk mencatat ini):
Anda akan mendapatkan:
sumber
cit
mengubah i nterior tag - hanya konten.cat
mengubah suatu ll tag - isi dan sebuah LSO tag itu sendiri, baik pembukaan dan penutupan.OP menyatakan bahwa apa yang benar-benar ingin ia lakukan adalah menyalin bagian XML tanpa harus menemukan tag yang cocok. Ini mudah dilakukan dalam mode normal dengan
yat<motion>p
, yang menarik teks di dalamnya dan termasuk tag yang cocok, lalu menempelkannya.yit<motion>p
hampir sama, tetapi tidak termasuk tag luar.The 'y' dalam string tentu saja adalah mode normal "yank" perintah. (
:help y
)a
ataui
dapat digunakan untuk pemilihan objek setelah operator sepertiy
atau di dalam pemilihan visual. Simbol setelaha
ataui
menentukan apa yang harus dipilih. Jenis objek yangt
digunakan di sini menunjukkan tag SGML. (:help object-select
).Tentu saja
<motion>
hanya berarti pindah ke suatu tempat dengan pilihan Anda danp
meletakkan teks yang ditarik di lokasi itu.sumber
i
singkatan dari "inside" (atau "inner").a
singkatan dari "a"?a
adalah singkatan dari "all".a
singkatan dari sekitar . Itu lebih masuk akal bagi saya.Hanya trik saya menggunakan "yank", "objek-pilih" (pilih tag) dan "lompat ke teks yang ditarik terakhir".
untuk melompat ke kanan sebelum tag penutup
dan
untuk melompat ke kanan setelah tag pembuka
Catatan: ini akan mengubah isi register default
sumber