Sublime Text 3'te Make'dan Colorful Build Çıkışı Nasıl Alınır?


19

ST3 derleme çıktı penceresine nasıl renk girebilirsiniz?

Yapım çıktımı renklendirmek için gccfilter kullanıyorum, ancak ST3 sadece ham kaçış dizilerini gösteriyor. Onları işlemek için herhangi bir yolu var mı? Veya gccfilter kaldırmak ve sadece çıktı renklendirmek için ST3 olsun (örneğin sadece uyarı ve hata üzerinde grep iyi olurdu)?

Yanıtlar:


16

ST3'ün Makefile derleme sisteminin son sürümleri ( Make.sublime-build dosyasında açıklandığı gibi ) zaten renklendirilmiş çıktı üreten bir sözdizimi tanımı içeriyor.

Bundan memnun değilseniz, bir terminalde ANSI renkleri üreten bir yapı sisteminiz varsa ve bunları Sublime Text 3'ün yapı çıkış panelinde göstermek istiyorsanız, alternatif ve genel olarak çalışan bir yaklaşım olarak neler yapabilirsiniz? .

RSpec için Sublime Text 3 kurulumumda böyle yaptım, ancak normal bir konsol / TTY'de renk üreten bir araçla her durumda mükemmel bir şekilde uygulanabilir olduğunu düşünüyorum:

1. Bir TTY çıktısı olmasa bile, derleme sisteminizi renk çıktısı almaya zorlayın.

Bu yapı sistemine bağlıdır. Örneğin, Ruby ve RSpec .rspeciçin projenizde aşağıdaki içeriğe sahip bir dosya oluşturabilirsiniz :

--color --tty

Sizin durumunuzda, ANSI renk kaçış dizileriyle çıktı üreten bir derleme sisteminiz zaten var.

2. Kurulum ANSIescape (SublimeANSI) paketini

Paket Kontrolü ile kurulması tavsiye edilir. Kurulum ve yapılandırma talimatları için paketin repo'suna bakın.

3. Sublime Text'de yeni bir derleme sistemi tanımı oluşturun ve ANSI renklerini tanıyacak şekilde yapılandırın

Örneğin, Colorized RSpec.sublime-buildyapı sistemimin içeriği :

{
    "cmd": ["rspec", "-I ${file_path}", "$file"],
    "file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
    "working_dir": "${project_path:${folder:${file_path}}}",
    "selector": "source.ruby.rspec",
    // Recognize ANSI colors in the output
    "target": "ansi_color_build",
    "syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}

Son iki yapılandırma seçeneği SublimeANSI'nin benioku dosyasından alınmıştır . Bunu Make için oluşturma sisteminize uygulayabilirsiniz. Geçerli sürümüne dayandırabilirsiniz.Make.sublime-buildSublime Text 3 paketlerinden dosyanın .

4. Yeni oluşturulan derleme sistemini kullanarak dosyanızı / projenizi oluşturun.

Yeni derleme sistemini seçmek için "Birlikte oluştur ..." menüsünü kullanın. OS X'te bu Cmd + Shift + B. Sonraki derlemeler Cmd + Bbu son çekilen derleme sistemini kullanır.

İşte böyle görünüyor:

resim açıklamasını buraya girin


1
Ne yazık ki, ANSIEscape'in ANSI kaçış kodlarını ayrıştırma konusunda bazı sınırlamaları vardır, bu nedenle tüm çıktılar fayda sağlamaz. Bulduğum bazı sınırlamalar şunlardır: * Ön plandan sonra arka planın ayarlanması birbirine karışmaz. * İki basamak kullanmak (<ESC> [01m'deki gibi) doğru ayrıştırılmaz * Satırı temizlemek için kullanılan bazı kodlar (özellikle: <ESC> [K) ayrıştırılmaz. Bu, bu yöntemi - örneğin - GCC
Emilio Garavaglia

5

Şu anda bulduğum ST3 konsolu ayrıştırma renkleri yapmanın bir yolu yok. Bunun yazarla tartışılması gerekir. Konsolun her zaman tek renkli çıktıya sahip olduğunu fark ettim. ST3 şu anda yalnızca kendisine uyguladığınız tema ile sağlanan renkleri kullanmaktadır.

Kaçış dizilerinden kurtulmanın tek yolu, çıkış Sublime'a çarpmadan önce onları filtrelemektir.


1
Heh, sadece gccfilter kullanmadan kolayca filtreleyebilirim .. Sadece RENK istiyorum!
Yeraze

Evet, keşke mümkün olsaydı. Belki de yazara itmek bunu halledecektir.
Sinsi
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.