Vim, Notepad ++ gibi eşleşen HTML etiketlerini vurgulayabilir mi?


181

VIM, eşleşen çift parantez, parantez ve köşeli parantez çiftlerini destekler. PHP ve Javascript gibi C tarzı dilleri düzenlemek için harikadır. Peki HTML etiketlerini eşlemeye ne dersiniz?

Notepad ++, kullandığım sürece bu özelliğe sahipti. HTML bloklarının başladığı ve bittiği yeri tespit edebilmek çok faydalıdır. Aradığım şey vim için böyle bir şey (yeşil div etiketlerine bakın):

(bonus özellik: Bu ekran görüntüsünde kırmızı etiket gibi kapatılmamış HTML etiketlerini vurgulama).

matchit bir sonraki en iyi şey olarak önerildi, ancak işlevselliğini kullanmak için ekstra bir tuş vuruşu gerektiriyor. Ekstra bir tuşa basmadan HTML bloklarının nerede başladığını ve bittiğini görmek istiyorum.

Vim için böyle bir şey bulmak için interneti trol ettim. Görünüşe göre, diğer 2 StackOverflow soru ve nabble göre, ben tek değilim .

Ben neredeyse kendimi html etiketleri görsel olarak eşleştirmek mümkün değil vim istifa ettim. Vim'in bunu yapması mümkün mü?

Zeyilname: Halihazırda mevcut herhangi bir eklenti ile bunu yapmak mümkün değilse, herhangi bir vimscript sihirbazının uygun bir eklenti yazmaya nasıl yaklaşacağına dair herhangi bir işaretçisi var mı?


Bu özelliğin "çok yararlı" olduğunu açıklayabilir misiniz? Her an her şeyde her şeyi bilmeme gerek yok. Bir şey bilmem gerektiğinde Vim, çok az tuşa basmayı çok kolay hale getirmek için tasarlanmıştır .
romainl

17
Her şeyi bilmeme gerek yokken, bir HTML etiketinin ne zaman sona erdiğini kolayca bilmek, çalıştığım dosyanın yapısını grok yapmamı sağlıyor. Ayrıca kötü yazılmış bir sürü kodla da ilgileniyorum, bu yüzden bazen her zaman düzeltilmesi gereken kapanış etiketi olmayan bir html etiketi ile karşılaşacağım.
linqq

5
@romainl Cevabınızı çok sık okuyorum ve bakış açınızdan gerçekten hoşlanıyorum. Ama bu kez katılmıyorum. Bu özelliğin gerekli olmadığını düşünebilirim ama bunun oldukça hoş bir soru olduğunu düşünüyorum. Vim ile elde etmenin kolay bir yolu olmadığı benim için garip görünüyor.
lucapette

1
@ lucucette, teşekkür ederim. Aslında soruyu da seviyorum. Daha önce hiç böyle bir özellik kullanmadım ve buna hiç ihtiyaç duymadım. Ama muhtemelen bir kez denemeden yaşayamayacağın şeylerden biri. İş akışımı ve çalışma alanımı "idari enkaz" içermeyen temiz ve odaklı olarak seviyorum ve böyle bir özelliğin gereksiz olabileceğini düşünüyorum . Bir eklenti için mükemmel bir aday. Muhtemelen bir başlangıç ​​noktası olarak matchit'ten ilham almaya çalışılabilir.
11:19

Yanıtlar:


219

Bugün bazı HTML ile çalışmak zorunda kaldım, bu yüzden bununla başa çıkacağımı düşündüm. Vim.org'a sorununuzu çözmesi için bir ftplugin eklendi.

Buradan vim.org adresinden edinebilirsiniz .

Github'da buradan alabilirsiniz .

Umarım sizin için çalışır. Eğer herhangi bir sorun varsa bana bildirin.


1
Teşekkür ederim! Bu tam da aradığım işlevsellik. Onları düzeltmek istiyorsanız sadece iki küçük kelime oyunu: 1. Şu anda, yalnızca karşı etiket eşleştirilmiştir. İmlecin açık olduğu etiketle de eşleştirmek mümkün müdür? 2. Şu anda, bir html etiketi özniteliklere sahipse, bunlar da seçilir. Nitelikler olmadan yalnızca etiket adını seçmek mümkün müdür?
linqq

İyi öneriler. İkisi de vim.org'da v1.2'de halledilmelidir. Eşleşen normal ifade şimdi daha karmaşıktır, bu yüzden herhangi bir hata bulursanız bana bildirin.
Greg Sexton

1
İstendiği gibi, bu ftplugin'i github'a ekledim. Bağlantı için güncellenmiş cevabıma bakın.
Greg Sexton

1
@GregSexton artık resmen bir kahramansın;)
lucapette

7
Sadece buldum, iyi görünüyor, ama açmak için almak için benim ~ / .vimrc "filetype eklentisi" eklemek gerektiğini unutmayın. Eklentiyi ftplugin klasörünüze yerleştirdikten sonra çalışmazsa, yukarıdakileri ~ / .vimrc dosyasına ekleyin ve her şey ayarlanmış olmalıdır.
Geoff

95

Greg'in MatchTag.vim eklentisi harika, ama daha fazlasını istedim. Sadece imleç etiketlerden birinde olduğunda değil , kapalı etiketlerin her zaman vurgulanmasını istedim .

Bu yüzden Greg'in MatchTag'inin yaptığı her şeyi yapan MatchTagAlways yazdım ve imleç kodun neresinde olursa olsun daima kapalı etiketi vurgular. Ayrıca kapatılmamış etiketler ve Jinja veya Gidon gibi HTML şablonlama dilleriyle de çalışır.

İşte eylemde gösteren bir GIF:

MTA iş başında


4
Harika bir çözüm- Muhtemelen orijinal sürümü kullanardım, ama bunun nasıl yardımcı olduğunu görebiliyorum. Daha fazla yanıtın GIF demoları olmasını isterdim, bu harika!
Jason

3
İnanılmaz GIF kesmek için Jason, +1 ile tamamen katılıyorum.
Dan Bechard

Bu, kabul edilen cevaptan daha iyi çalışır. Ancak yine de dikey ekran yüksekliğinin ötesinde etiketleri nasıl doğrulayacağımdan emin değilim. Ekranı vim içinde imleci geçemiyorum ve bölünmüş ekran her iki pencerede de etkin etiketleri göstermiyor.
radix07

1
Mutlak efsane, hayatım bundan çok daha iyi oldu ... <3
Karl Glaser

1
Ödül cevabından çok daha iyi
MohitC

-2

Buraya Vim'de html tarzı açılı parantezleri aramak için geldim. Bu işe yarıyor gibi görünüyor:

:set mps+=<:>
:help matchpairs

7
Bu yöntem çözüm değildir, sadece '<' ile eşleşir '>'
Daniel YC Lin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.