Sublime Text 2 kullanarak HTML kodunu nasıl yeniden biçimlendiririm?


1313

Yeniden biçimlendirmek istediğim bazı kötü biçimlendirilmiş HTML kodlarım var. Sublime Text 2'de HTML kodunu otomatik olarak yeniden biçimlendirecek, böylece daha iyi görünecek ve okunması daha kolay olacak bir komut var mı?



1
Ayrıca Vintage modunu kullanırsanız, normal modda gg = G'yi kullanabilirsiniz.
Wiktor Mociun

3
Bu sayfanın tamamını okuyarak zamanınızı boşa harcayabilirsiniz ya da sadece github.com/akalongman/sublimetext-codeformatter alabilir ve işe geri dönebilirsiniz.
shaneparsons

Yanıtlar:


2080

Bunu yapmak için herhangi bir eklentiye ihtiyacınız yoktur. Tüm satırları seçin ( Ctrl A) ve ardından menüden Düzenle → Satır → Tekrarlan'ı seçin. Dosyanız .htmlveya benzeri HTML içeren bir uzantıyla kaydedilmişse, bu işe yarar .php.

Bunu sık sık yaparsanız, bu anahtar eşleştirmeyi faydalı bulabilirsiniz:

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

Dosyanız kaydedilmezse (örn. Bir parçacığı yeni bir pencereye yapıştırdıysanız), language of choicereindent seçeneğini belirlemeden önce Görünüm → Sözdizimi → menüsünü seçerek girinti dilini manuel olarak ayarlayabilirsiniz .


19
Bu arada, bu HTML olmayan kaynak kodu için de çalışır, örneğin Ruby veya JS
peter

78
Kodun bir satırda aynı anda bir satırda kapanmayan birden fazla etiketi yoksa veya bunun tersi olursa, bu harika çalışır.
Charlie Gorichanaz

31
Mükemmel! Mac'te cmd anahtarı için super'e ihtiyacınız var, bu yüzden: {"keys": ["super + shift + r"], "command": "reindent", "args": {"single_line": false}}
Geert Weening

168
line reindent kesinlikle rastgele HTML yeniden biçimlendirmek için çalışmıyor. satır sonları olmayan birden fazla html etiketi olduğunda olduğu gibi. @Anneke'nin HtmlTidy yanıtı üstündür. Anlayabildiğim kadarıyla, çizgi çizgilerinden bağımsız olarak, kaynak html'yi güzel girintili kaynağa tamamen ve düzgün bir şekilde yeniden biçimlendirir.
jpw

33
Yeni başlayanlar için "Tercihler" i tıklayın, ardından "Anahtar Bağlama - Kullanıcı" yı seçin ve köşeli parantezlerin arasına peter kodunu yapıştırın ve dosyayı kaydedin.
sigmapi13

375

Sublime'da HTML'yi biçimlendirmek için yarım düzine yol var. En popüler eklentilerin her birini test ettim ( tüm ayrıntılar için blogumda yaptığım yazıya bakın), ancak en popüler seçeneklerden bazılarına hızlı bir genel bakış:

Reindent komutu

Artıları:

  • Sublime ile birlikte gönderilir, bu nedenle eklenti yüklemesi gerekmez

Eksileri:

  • Fazladan boş satırları silmez
  • Küçültülmüş HTML, birden çok açık etiketi olan satırlar işlenemiyor
  • <script>Blokları düzgün biçimlendirmiyor

Etiket

Artıları:

  • ST2 / ST3'ü destekler
  • Fazladan boş satırları kaldırır
  • İkili bağımlılık yok

Eksileri:

  • PHP etiketlerindeki bobinler
  • <script>Blokları doğru işlemez

HTMLTidy

Artıları:

  • PHP etiketlerini işler
  • Biçimlendirmeyi değiştirmek için bazı ayarlar

Eksileri:

  • PHP gerektirir (web hizmetine geri döner)
  • Sadece ST2
  • Terk?

HTMLBeautify

Artıları:

  • ST2 / ST3'ü destekler
  • Basit ve binaray bağımlılıkları yok
  • OS X, Win ve Linux desteği

Eksileri:

  • Satır içi yorumlarla biraz boğulur
  • Küçültülmüş / sıkıştırılmış kodu genişletir

HTML-CSS-JS Ön İşlemi

Artıları:

  • ST2 / ST3'ü destekler
  • HTML, CSS, JS'yi işler
  • Sublime'ın menüleriyle mükemmel entegrasyon
  • Son derece özelleştirilebilir
  • Proje başına ayarlar
  • Kaydetme seçeneği

Eksileri:

  • Node.js gerektirir
  • Gömülü PHP için harika değil

Hangisi en iyi?

HTML-CSS-JS Prettify kitabımın galibi. Büyük özellikleri bir sürü, şikayet çok değil.


12
Prettify'de 2. oldu. Yeniden girinti ben html üzerinde çalışmadı, Tag ve HtmlTidy aradım hiçbir şey yapmadı bulamadı.
jcollum

2
sadece denedim ve HTML-CSS-JS Prettify kullanım durumumda ideal bir şekilde çalıştı (html'yi yerleşik reindent veya diğer yeniden biçimlendirici paketlerinden çok daha iyi temizledi)
Mark Essel

2
Diğerlerini denedim, ancak işe yarayan tek şey (HTML snippet'i için) HTML-CSS-JS Prettify idi. Teşekkür ederim!
zumek

1
Ayrıca, yalnızca ST'nin yerleşik işlevini kullanarak tüm girintileri kaldırabileceğinizi belirtmek istedim (örneğin işaretleme düzenlendikten sonra) - bloğu seçin ve ctrl + j tuşlarına basın.
zumek

1
Bu, HTML olmayan uzantılarla çalışır mı? php ve diğer şablonlar üzerinde çalıştı, işe yaramadı.
Bsienn

179

Bulabildiğim tek paket Tag .

Paket denetimini kullanarak yükleyebilirsiniz. https://sublime.wbond.net

Paket kontrolünü kurduktan sonra. Kontrol paketlemek gidin ( Tercihler -> Paket Kontrolü ) sonra yazın install, hit enter. Sonra yazın tagve vurun enter.

Etiketi yükledikten sonra metni vurgulayın ve Ctrl+ Alt+ kısayoluna basın F.


21
daha iyi bir eklenti Tidy HTML
MatthewFord

1
teşekkürler ... şimdi paketleri biliyordum: D. burada da yüce metinler için harika şeyler gördüm. arlando.net/blog/…
mars-o

3
Bu dürüstçe, yüzlerce rastgele satır sonu, yanlış yuvalanmış etiketler içeren bazı HTML kodlarıyla mükemmel çalışan tek şeydir. Temelde şimdiye kadar gördüğüm en komik HTML sayfalarından birini temizledi!
justinhartman

1
@ Mars-o ile aynı fikirde değilim; bu eklenti harika. Tidy birkaç şeyi gerçekten iyi yapıyor ve çok köklü, ancak bu eklenti birkaç ilginç şey daha yapıyor. Gönderi için teşekkürler.
zedd45

@JonnyLeeds Bir tür yapar, ama her zaman doğru değil. Özellikle XML için, Indent XMLya IndentXda diğerleri arasında deneyin .
Joel Mellon

49

Bu eklentiyi tavsiye ederim: HTML / CSS / JS Prettify , Gerçekten çalışıyor.

Kurulumdan sonra kodu seçin ve tuşuna basın Ctrl+Shift+H.

Bitti!


3
Bu eklentiyi kullanmak için Node.js'ye ihtiyacınız var. Normal kullanıcılar için çok rahat değil.
nikoskip

4
Bu eklentinin kullanışlılığı ile karşılaştırıldığında, Node.js'yi yükleme sorununu göz ardı edebiliriz;)
Peter Zhu

Packagecontrol.io/packages/HTML-CSS-JS%20Purtify kurulum talimatları harika çalıştı. Teşekkürler.
Sacky San

41

Sadece genel bir ipucu. HTML'imi otomatik olarak düzenlemek için yaptığım, HTML_Tidy paketini yüklemek ve ardından varsayılan tuşlara (kullandığım) aşağıdaki tuş bağlamalarını eklemekti:

{ "keys": ["enter"], "command": "html_tidy" },

bu her enter ile HTML Tidy çalışır. Bunun dezavantajları olabilir, kendimi Sublime için oldukça yeniyim, ama istediğimi yapıyor gibi görünüyor :)


2
Bu eklentinin büyük dosyalarda biraz yoğun olabileceğini ve enter tuşuna her bastığınızda çalışmasını yavaşlatabileceğini düşünüyor musunuz?
Rikki

2
Yaklaşık bir gün boyunca ENTER tuş bağlama kullandım, sonra kaldırıldı. çok yavaştı ve imleci v2'de ekranın üstüne götürmeye devam etti.
Ravi Ram

22

Her ne kadar soru HTML için olsa da, ayrıca ayrıca Yüce Metin 2 için Javascript kodunuzu otomatik olarak biçimlendirme hakkında bilgi vermek istiyorum ;

Tüm kodunuzu ( ctrl+ A) seçebilir ve uygulama içi işlevselliği, reindent'i ( Edit-> Line-> Reindent) kullanabilir veya kodunuzu nasıl biçimlendireceğinize Sublime Text 2ilişkin daha özelleştirilebilir ayarlara sahip olmak istiyorsanız JsFormat biçimlendirme eklentisini kullanabilirsiniz . Sublime Text'in varsayılan sekmesi / girinti ayarları.

https://github.com/jdc0589/JsFormat

Paket Kontrolü'nü ( -> ) kullanarak JsFormat'ı kolayca kurabilirsiniz.Paket kontrolünü açın ve install, hit yazın . Sonra yazın ve vurun , işiniz bitti. (Paket denetleyicisi kurulumun durumunu sol alt çubuğunda başarıyla ve hatalarla gösterecektir )PreferencesPackage Controlenterjs formatenterSublime

Anahtar bağlarınıza aşağıdaki satırı ekleyin ( Preferences-> Key Bindings User)

{ "keys": ["ctrl+alt+2"], "command": "js_format"}

Ben kullanıyorum ctrl+ alt+ 2, sen istersen onu bu kısayol tuşunu değiştirebilir. Şimdiye kadar, JsFormatdenemeye değer iyi bir eklenti!

Umarım bu birine yardımcı olur.



13

Benim için HTML Prettifyçözüm son derece basitti. HTML Prettify sayfasına gittim .

  1. Gerekli Sublime Package Manager
  2. Paket yöneticisini yüklemek için talimatları takip buraya
  3. cmd + shift + pmenüyü getirmek için yazılmıştır
  4. Yazılan prettify
  5. Seçti HTML prettifymenüde seçim

Boom. Bitti. Harika görünüyor


Bu çözüm, tam olarak istediğim şekilde çalıştı ve PM zaten yüklüyse 2 saniye dışında hepsini aldı. Prettify paketini kurmanız gerektiğini eklemek isteyebilir.
doogle

Not: İlgilenen herkes için, bu yanıttaki eklenti node.js yüklemesini gerektirir.
Sahte Ad

Düzgün çalışmıyor; HTML'yi yalnızca belirli bir girinti düzeyine kadar girintili / satır kırdı ve geri kalanını girintisiz ve aynı satırda bıraktı.
Jonathan

11

Sadece

Düzenle -> Etiket -> Belgedeki etiketleri otomatik biçimlendir


6
Sublime Text 2 Version 2.0.1, Build 2217Mac'te bu menü seçeneğini görmüyorum . Standart bir özellik olduğundan emin misiniz?
ostergaard

1
Tag'i Paket Yöneticisinden yüklemelisiniz. Ama bununla ilgili bir sorunum var. <b>somthing</b>Ardından bir virgül geldiğinde , virgül yeni bir satıra yerleştirilir ve tarayıcı görünümünde bir şeyle virgül arasında boşluk kalır.
reitermarkus

9

HTML'yi yeniden biçimlendirmek için iyi bir iş yapan HTMLBeautify adlı bir Paket oluşturdum . Bunu 1997'de bulduğum bir Perl senaryosuna dayandırdım - tüm yeni kanatlı modern etiketlerle çalışacak şekilde güncelledim. :)

Göz atın ve ne düşündüğünüzü bana bildirin!

https://github.com/rareyman/HTMLBeautify


3
Yükledim ama HTML dosyasında demoBeautify'ı çalıştırdığımda hiçbir şey yapmıyor. Bir mesaj Dosyanın güzelleştirildiğini, ancak dosya İçeriğinde hiçbir şey olmadığını gösterir.
Sam

Tahminimce Windows mu kullanıyorsunuz…? Windows'ta, komut dosyasının kullanılabilmesi için SublimeText 2'yi yeniden başlatmanız gerekir. Bunu deneyin ve bana ne olduğunu bildirin. :)
Ross

Yaptım, senaryo mevcuttu, dosyadaki hiçbir şeyi değiştirmedi.
Sam

Garip. Diğer tüm eklentilerin / paketlerin normal olarak çalıştığını varsayıyorum? Test ortamımda bu sorunu tekrarlayamıyorum - bu yüzden size ne söyleyeceğimi bilmiyorum. :(
Ross

Biçimlendirmenin dışında her şey beklediğim gibi çalışıyor - belki de pencerelerin almanca bir sürümünü çalıştırdığım için mi?
Sam

7

Talimatları takip ettim ama işe yaramadı. Eklenti bana hata veriyor. "'{' dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmıyor."
Ravi Ram

Belirli bir paketin ek bir taahhüt olan Düğümün kurulmasını gerektirdiğine inanıyorum ... dandean.com/nodejs-npm-express-osx NPM'yi göz ardı et ve ekspres
bgreater

@Allan Bu Windows üzerinde çalışıyor. Bilgisayarımda node.js yüklü.
Anirudha Gupta

7

Henüz yorum yapma ayrıcalığım yok, bu yüzden bu sadece @ peter'in cevabının üstündeki cevabı ile ilgili ek bilgi .

Başlıktaki IE koşullu yorumları tamamen satır içi değilse, örneğin sola aynı hizada HTML'nin beklendiği gibi hizalanmadığını gördüm :

<!--[if lt IE 7]>
<p class='chromeframe'>Your browser is <em>unsupported</em>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p>
<![endif]-->
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 

7

Güzel bir açık kaynak kodlu ( Forindenting boyunca) hepsi tek satırda bile kirli kodu güzelleştirebilir eklentisi vardır.


Not: Bu, yerel bir PHP kurulumu gerektirir.
Sahte Ad

Bu sadece iyi bir eklenti olarak buldum .. ve neredeyse hepsini denedim.
shaneparsons

Görünüşe göre bu, HTML niteliklerini biçimlendirme ayarlarına sahip. Bunu yapan diğer eklentilerin hiçbirini görmüyorum? Yoksa eksik mi?
Basil

4

HTML'yi güzelleştirmek için özel derleme sistemi ile birlikte düzenli kullanıyorum .

Paketlerim / Kullanıcı / dizinimde HTMLTidy.sublime-build var:

{
  "cmd": ["tidy", "-config", "$packages/User/tidy_config.cfg", "$file"]
}

ve tidy_config.cfg dosyası aynı dizinde:

indent: auto
tab-size: 4
show-warnings: no
write-back: yes
quiet: yes
indent-cdata: yes
tidy-mark: no
wrap: 0

Ve sadece derleme sistemini seçin ve dosya içeriğini yeniden biçimlendirmek için ctrl+ bveya cmd+ düğmesine basın b. Bununla ilgili küçük bir sorun, ST2'nin dosyayı otomatik olarak yeniden yüklememesidir, böylece sonuçları başka bir dosyaya ve geri (veya başka bir uygulamaya ve geri) geçmeniz gerekir.

Mac'te macidy'i derli toplu yüklemek için kullandım, Windows'ta kendiniz indirmeniz ve derlemenin bulunduğu derleme sisteminde çalışma dizinini belirtmeniz gerekir:

"working_dir": "c:\\HTMLTidy\\"

veya PATH'a ekleyin.


4

kısayol tuşunu F12kolayca ayarlayabilirsiniz !!!

{ "keys": ["f12"], "command": "reindent" , "args": { "single_line": false } }

ayrıntılara buradan bakın .


6
Değersiz cevap; bu, kabul edilen cevabın bir kopyasıdır.
Mark Amery
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.