Sublime Text için HTML otomatik girinti özelliği veya eklentisi var mı (aka prettify / beautify / format)?


23

Örneğin, değiştirilecek bir şey:

<section><article><h1></h1><p></p></article></section>

için:

<section>
  <article>
    <h1></h1>
    <p></p>
  </article>
</section>

... tam sayfalarda ve pasajlarda çalışır.

  • Yerleşik Edit > Line > Reindentayar bunu yapmaz
  • Eklenti HTMLTidy ekler headve bodyetiketler, böylelikle kısmi işler için çalışmaz, başka sorunları da olur.
  • Eklenti etiketi, aslında işe yaramayacak kadar çeşitli sorunlara sahiptir.
  • HTMLPrettify eklentisinin çeşitli sorunları var , node.js gerektiriyor ve aylardır güncellenmedi
  • gist.github.com/mcdonc/3898894 yapmak istediğini iddia ediyor, ancak Emacs gerektiriyor

(Notepad ++ otomatik olarak girintili, Dreamweaver'ın Kaynak Biçimlendirmesi Uygulaması, Aptana'nın Biçimi vb. Vardı)

Etiket eklentisi satır içi etiketleri yanlış kullanır , örneğin bu snippet’te kullanır:

<p>foo<a>bar<span>baz<span>qux</span></span></a></p>

sonuçlanır:

<p>
    foo
    <a>
        bar
        <span>
            baz
            <span>qux</span>
        </span>
    </a>
</p>

Soru nedir? Sorunun ne olduğu yazınızdan belli değil.
Brad Patton

Soru olarak düzenlenmiş başlık. Sublime Text'de HTML'yi otomatik olarak girinti yolunu bulmaya çalışıyorum.
user110241,


Teşekkürler, bu konudaki her çözümü denedim, hiçbiri işe yaramadı. Birçoğunun bu işte çalışmamasının sebeplerini listeledik.
user110241 12.03.03

Bunun en iyi çözüm olduğunu düşünüyorum: jsbeautifier.org Birden fazla satır içi etiket biçimi için aynı gereksinime sahibim . Bu gerçekten iyi çalışıyor. Üstünlüklü metinler için uygun işaretlemeler oluşturur; Ayrıca CLI'de npmjs.com/package/js-beautify
Sai krishna Deep

Yanıtlar:


18

Her reindentzaman parçacıkları için işe yaramaz. TagEklentiyi kullanabilirsiniz (paket kontrolünden yükleyin). Sonra sadece ctrl+ shift+ tuşlarına basın pve yazın tag. Seçeneği göreceksiniz Auto-Format tags on document. Seçin ve tuşuna basın Enter. Bu yapacağım.


1
Orijinal gönderide belirttiğim gibi, Tag eklentisi, özellikle diğer kötü hataların yanı sıra satır içi etiketlerin işlenmesinde bozulmuştur. Yazar "her şeyi yeniden yazmak" gerektiğini söyledi. Reindent gerçekten HTML için çalışmıyor, girintiyi düzeltmiyor; sadece etiketleri belirli bir girinti seviyesine hizalar.
user110241 17:13

peki, Tag benim için çalıştı. HTML pasajını kullandım. Kusursuz çalıştı. Ve reindent, HTML için ancak bazı koşullar altında çalışır.
Bibhas

Tag'in otomatik biçimini bu pasajda kullanmayı deneyin: <p>foo<a>bar<span>baz<span>qux</span></span></a></p>ne demek istediğimi görmek için. Ayrıca, HTML5 Boilerplate'in (ve genel olarak yorumların) bir parçası olan IE koşullu yorumlarına sarılmış açılış HTML etiketinin biçimlendirmesini de karıştırır. Bunun nasıl yapıldığını görmek Line > Reindentiçin bu pasajdaki yerleşikleri kullanmayı deneyin : jsfiddle.net/y8xXj .
user110241 17:13

FYI - Sublime Text 3'te bir HTML pasajıyla denedim ve gerçekten işe yarıyor!
Steven

2
Aynı sorun. Geçmişte sayısız editör kullandım, Coda, Sublime, Espresso, Chocolat, TextMate ... ama hiçbiri, metni Dreamweaver'ın Kaynak Biçimlendirmesini Uygula gibi düzgün bir şekilde formatlayamadı. Hangi insanların basitçe Tidy veya asla Dreamweaver gibi çalışmayan başka bir eklenti önerdiklerini. Birisi "Zootlu" konunun bu meselesi olduğuna sevindim. Ne yazık ki hala bir çözüm bulunmuyor. Yüce Metin 3'te, Zootlu Noted olarak Tag ile bile düzgün çalışmaz (yukarıdaki örnekte olduğu gibi). Ve yerli Reindent özelliği oldukça değersizdir.
cchiera

6

Tümünü Seçin -> Düzen menüsü -> Çizgi -> Yeniden gönder , yapacak. Sen olabilir kısayol kombinasyonunu ayarlamak aynı kullanım için.

{"keys": ["ctrl + shift + r"], "command": "reindent", "args": {"single_line": false}}


1
Bahse konu belirtildiği gibi bu yok değil çalışır. Sağladığım ilk pasajda dene: <section><article><h1></h1><p></p></article> </section>
user110241

Benim için çalışıyor. Sözdizimi HTML olarak ayarlandı mı?
Manuel Arwed Schmidt,

2
Benim için çalışmıyor.
Derek 朕 7 功夫

Evet, gayet iyi bir iş çıkarıyor ama sonunda <div>açılış etiketlerimde düşmeye başladı .
saat

0

Reindent özelliğinin çalışması için "Boşlukları Girinti Girin" seçeneğinin işaretini kaldırmanız gerekir:

Görünüm >> Girinti >> Boşlukları Kullanarak Girinti

Bu seçenek işaretlendikten sonra, metninizi ve Reindent'ı seçebilirsiniz:

Düzenle >> Satır >> Reindent

Bu, XML'in yanı sıra HTML sözdizimi için de işe yarar. Başkaları üzerinde test edilmedi.


Aslında ben zaten işaretlenmemiş olanla çalışıyordum. Bahsettiğiniz komut, <html><head></head><body><div><p>foobar<span>baz</span></p></div></body></html>
ST3'teki
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.