- Terminalde Emacs’te Solarized gibi temaları düzgün görmek için 24 bit renk desteğinin kendisinden çok; terminalin, terminfo’nun, tmux’ın ve mosh’un aynı renk özelliğini uçtan uca anlayıp anlamadığı önemlidir
- RGB renkleri yaygın olarak
ESC[38;2;<r>;<g>;<b>mbiçiminde kullanılır; ancak standarda daha yakın iki nokta üst üste sözdizimi ile gerçek uygulamalarda yaygınlaşan noktalı virgül sözdiziminin birlikte kalması uyumluluğu karmaşıklaştırır xterm-256colorvexterm-directsırasıyla 256 renk paleti ve 16.777.216 renk desteği duyurur; ancak terminfo’nun palet merkezli modeli doğrudan RGB renklerini temiz biçimde ifade edemez- Gerçek ortamlarda
ncurses-termiçindeki-directgirdileri,tmux-direct, mosh 1.4 serisi,vscode-directgibi alternatif TERM değerleri gerekebilir; bazı katmanlar hâlâ yalnızca noktalı virgül biçimini kabul eder - Modern terminal özelliklerini kararlı şekilde kullanmak için TERM ve terminfo tek başına yeterli değildir; terminal adı ve sürümüne göre özellikleri daha hızlı güncelleyen ayrı bir ifade biçimi gerekir
Terminal Emacs’te 24 bit renge neden ihtiyaç var
- Grafik ortamdaki Emacs otomatik olarak 24 bit renk destekler ve Solarized gibi temaları ve yazı tiplerini doğru gösterir
- Aynı temayı terminalde kullanınca renk ifadesi sınırlanabilir ve ekran daha az hoş görünebilir
- Popüler terminaller uzun zamandır 24 bit renk destekliyor; ancak programların bunu kullanabilmesi için özellik algılama ve ayarların birlikte doğru olması gerekir
- Amaç iki şeydir
- Mevcut terminal ortamında truecolor desteğini açmanın yolunu bulmak
- Emacs renk sorununun 1970–1990’lar terminal standartlarıyla nasıl bağlantılı olduğunu görmek
ANSI kaçış kodları ve renk genişletmelerinin tarihi
- İlk donanım terminalleri farklı denetim kodu sistemleri kullanıyordu; taşınabilir yazılım üretmek için ANSI standardizasyonu gerekiyordu
- ANSI escape codes 1970’lerden beri varlığını sürdürür; renklerde temel öğe SGR(Select Graphics Rendition)’dır
- Kalınlık veya parlaklık
- İtalik
- Yanıp sönme
- Ön plan ve arka plan rengi
- Diğer karakter görüntüleme öznitelikleri
- İlk renkler, RGB küpünün 8 köşesine karşılık gelen 3 bit renklerdi
- Siyah, beyaz, toplamsal ana renkler ve çıkarmalı ana renkler dahildi
- Daha sonra parlak renk veya kalınlık biti eklenerek 16 renge genişletildi
- “bright black” koyu griye karşılık gelir
- 1999’da Todd Larason, xterm’e 256 renk desteği yaması ekledi
- 6x6x6 RGB renk küpü örneklemesi
- 24 kademeli gri tonlama rampası
- Nadir olsa da hâlâ desteklenen 88 renkli bir varyant da vardır
24 bit renk sözdiziminin oluşma yolu
- 8 bit renk ve 24 bit renk, uyumlu terminallerde şu biçimlerde ayarlanır
ESC[38;5;<n>m: Palettekinrenk numarasını ön plan rengi olarak ayarlarESC[38;2;<r>;<g>;<b>m:r,g,bRGB değerlerini ön plan rengi olarak ayarlar
5ve2sayıları ISO 8613-6, yani ITU T.416’daki genişletilmiş renk modlarıyla bağlantılıdır2: RGB uzayında doğrudan renk5: indeksli renk
- Standardizasyon akışı şöyledir
- 1970’ler: ANSI, terminal kaçış dizilerini standartlaştırdı; bu süreç ANSI X3.64 ve ECMA-48’e uzandı
- 1979: ECMA-48 2. baskı, SGR 30~37 ve 40~47’yi 3 bit ön plan ve arka plan renklerine ayırdı
- 1984: ECMA-48 3. baskı, varsayılan ön plan ve arka plan rengi kavramlarını tanıttı ve 39, 49’u atadı
- 1991: ECMA-48 5. baskı, 38 ve 48’i “gelecekteki standardizasyon için” bıraktı ve ISO 8613-6’ya işaret etti
- 1993: ISO 8613-6, 38 ve 48’i genişletilmiş ön plan/arka plan rengi modları olarak tanımladı
- Alt parametre ayırıcı olarak iki nokta üst üste kullanımı standarda daha yakındır; ancak gerçek uygulamalar noktalı virgülü yaygın biçimde benimsedi
ESC[38;5;3m, SGR 38’i bilmeyen bir terminalde38,5,3şeklinde ayrı parametreler gibi yorumlanabilir- Thomas Dickey’nin xterm FAQ’su, o dönemde ITU T.416 kopyasının pahalı olduğunu ve RGB değerlerini diğer SGR parametreleri gibi noktalı virgülle ayırmanın yanlış olduğunu açıklar
- İlgili zaman çizelgesi şöyledir
- 1999: Thomas Dickey, Todd Larason’ın 256 renk yamasını xterm’e birleştirdi ve belirsiz noktalı virgül sözdizimi dahil oldu
- 2006: Konsole, xterm ile aynı noktalı virgül sözdizimiyle 256 renk ve 24 bit truecolor desteği sundu
- 2012: xterm, standarda daha yakın iki nokta üst üste sözdizimini de kabul edecek şekilde değiştirildi
- 2016: Windows 10 yerleşik konsolu ANSI kaçış kodlarını ve 24 bit rengi destekledi, ancak noktalı virgül sözdizimini kullandı
- 2019: Windows Terminal da ANSI kaçış kodlarını destekler, ancak noktalı virgül sözdizimini kullanır
- 2022: Microsoft, ekosistemin eski VGA tarzı konsol alt sisteminden ANSI terminal öykünmesine geçişini duyurdu
- 2022: Konsole, standart uyumlu iki nokta üst üste sözdizimini destekledi
terminfo’nun renk özelliklerini ifade etme biçimi
- terminfo, terminal özellikleri veritabanı ve uygun kaçış dizileri üretme işlevi sağlar
TERMortam değişkeni, programların kullanacağı terminfo kaydını gösterir vesshbağlantılarında da otomatik olarak aktarılırtoekurulu terminfo kayıtlarının listesini gösterir;infocmpbelirli bir kaydın özelliklerini kontrol etmek için kullanılır- Renkle ilgili önemli üç özellik vardır
colors: Terminalin desteklediği renk sayısısetaf: Ön plan rengini ayarlamasetab: Arka plan rengini ayarlama
xterm-256coloriçindekisetaf, renk numarasına göre farklı diziler üretir- 0~7: ANSI 30~37 SGR parametrelerini kullanır
- 8~15: Standart dışı 90~97 parlak renklerini kullanır
- Daha yukarısı:
38;5;<n>biçiminde 256 renk paleti kullanır
xterm-direct,colorsdeğerini 16.777.216 olarak duyuran 24 bit RGB için bir terminfo girdisidirccc’yi kapatır; renk indekslerine yeni RGB değerleri atanamayacağını belirtirinitc,oc,rs1gibi çalışma zamanında renk değiştirmeyle ilgili girdiler de yoktursetafvesetab, iki nokta üst üste tabanlı38:2::...biçimini kullanır
terminfo’nun doğrudan renk modelinin sınırları
- terminfo ve ncurses’in programlama modeli temelde palet girdileri merkezlidir
- N adet palet girdisi vardır
- Her girdinin varsayılan bir RGB değeri vardır
- Model, terminalin bu değeri değiştirebildiğini varsayar
-directterminaller, 24 bit rengi temsil etmek için 16.777.216 palet girdisi varmış gibi ifade edilir- Her girdi 8:8:8 RGB küpüne karşılık gelir
- Değerler değiştirilemez
- Uyumluluk için
xterm-directyaklaşımı en koyu mavi renklerden 7’sini varsayılan ANSI 8 renkle uyumluluk için kullanır- Siyah hariç tutulur
- Bu, mevcut programların
setafanlamı hakkında varsayımda bulunup neredeyse görünmeyen koyu mavi yazdırmasını önlemeye yönelik bir düzenektir
- Bu nedenle
-directyöntemi ile-256coloryöntemi birbirleriyle uyumlu değildir- Program, 256 rengin indeksli renk, 16.777.216 rengin ise doğrudan renk olduğunu bilmelidir
- En koyu 7 mavi renkten kaçınma istisnası da vardır
- termwiz ile ilgili sorunda program xterm-256color paletini bekliyordu; ancak gerçekte okunması zor koyu mavi tonları yazdırdı
- Söz konusu issue, yazım anında açıktı; ancak @quark-zju düzeltmeyi dahil etti ve termwiz artık makul şekilde çalışıyor
- Esas mesele terminalin kendisinden çok terminfo kısıtlarına yakındır
- 24 bit renk destekleyen terminallerin xterm 256 renk paletini ve RGB değerlerinin dinamik değiştirilmesini de desteklediği görülüyor
- terminfo, modern terminal emülatörü ekosistemini doğru ve hızlı şekilde ifade etmek için yetersizdir
TERM ayarı ve noktalı virgül uyumluluğu
- Birçok program terminfo kullandığından
TERMdeğeri doğru ayarlanmalıdır - İki nokta üst üste tabanlı SGR sözdiziminde birleşmek istense de birçok ortam hâlâ yalnızca noktalı virgül sözdizimini destekler
- terminfo girdileri yapı taşlarından oluşur
xterm+direct: Standarda daha yakın iki nokta üst üste sözdizimixterm+indirect: Yalnızca noktalı virgül destekleyen eski terminaller için
xterm+indirectarandığındavscode-directen uygun seçenek gibi göründü- Microsoft terminallerini hedeflediği için Windows Terminal ve Windows Console’a yeterince yakın olduğu düşünüldü
- Tüm özellikler denetlenmedi, ancak çalışıyor
- Birçok sunucuda
-directterminfo girdileri kurulu olmayabilir- Çoğu sistemde varsayılan terminfo veritabanı
ncurses-basepaketindedir - Genişletilmiş terminal girdileri için
ncurses-termpaketi gerekir
- Çoğu sistemde varsayılan terminfo veritabanı
- Yazı yazılırken ncurses’e
winconsoleterminfo girdisi eklenmişti; ancak 24 bit renk desteklemiyor ve henüz hiçbir ncurses sürümünde yayımlanmadı
Emacs truecolor’ı nasıl algılar
- Emacs, TTY’de truecolor desteğini algılama biçimini belgelendirir
M-x eval-expressioniçinde(display-color-cells)çalıştırıldığında Emacs’in 16.777.216 rengi tanıyıp tanımadığı kontrol edilebilir- Emacs belgeleri
-directmodunun terminfo sınırlarını da ele alırRGBözelliği olan terminaller#000001ile#000007arasını doğrudan RGB değil, indeksli renk gibi ele alabilir- Bu, direct color bilmeyen uygulamalarla geriye dönük uyumluluğu korumak içindir
- Sorun olursa
setb24,setf24içeren özel terminal tanımı kullanılabilir
- Emacs önce
setf24vesetb24dizelerini arar; yoksa yedek özellik olarakRGBkullanır - Kontrol edilen sistemdeki terminfo girdilerinde
setf24bulunmuyordu
İç içe terminallerde tüm katmanlar uyumlu olmalı
- Tipik bir çalışma akışı birden fazla terminal katmanını iç içe geçirir
- Yerel masaüstünde grafik terminal emülatörü açmak
- Uzak makineye veya VM’e mosh ile bağlanmak
- tmux başlatmak
- Emacs iç terminali, Asciinema, GNU Screen vb. ek olarak kullanmak
- Her katman kendi ANSI kaçış dizisi durum makinesini uygular
- 24 bit rengin çalışması için tüm katmanların içerideki
TERMdeğerinin terminfo’sundan üretilen kaçış dizilerini anlaması ve bunları dışarıdaki terminfo’ya uygun şekilde doğru aktarması gerekir - Bu nedenle ilgili yazılımların yeterince güncel olması gerekir
- Mevcut Ubuntu LTS, mosh 1.3 sunduğundan mosh-dev PPA’sını etkinleştirmek gerekti
- Her katmandaki
TERMde doğru olmalıdır- tmux içinde
tmux-directkullanılır - mosh için standart terminfo olmadığından yeterince yakın bir değer seçilmelidir
- tmux içinde
Ortama göre ayarlar
-
Grafik terminal emülatörü
- Çoğu terminal uygun varsayılan
TERMdeğerini ayarlar veya kullanıcının bunu geçersiz kılmasına izin verir - Konsole’da
TERMdeğerini seçmek için bir seçenek vardır
- Çoğu terminal uygun varsayılan
-
ssh
ssh,TERMdeğerini yeni kabuğa aktarır- Uzak ana bilgisayarda aynı terminfo kaydı varsa ayar nispeten basittir
-
tmux
- tmux çalıştırıldığında
TERM,screenolarak ayarlanabilir ~/.tmux.confiçinde varsayılan terminal değiştirilerek çözülür
set -g default-terminal "tmux-direct"- Dıştaki
TERM24 bit renk desteklediğinde koşullu olaraktmux-directayarlamak, aksi haldescreenveyatmux-256colordeğerini korumak da düşünülebilir
- tmux çalıştırıldığında
-
mosh
- Güncel mosh 24 bit renk destekler; ancak kendi başına yalnızca 8 renk veya 256 renk duyurur
- Bu nedenle kullanıcının
TERMdeğerini uygun şekilde ayarlaması gerekir - mosh xterm uyumluluğunu hedefler, ancak SGR 38 ve 48’de yalnızca noktalı virgül sözdizimini destekler
TERM=xterm-directçalışmazvscode-direct,xterm-direct’e en yakın alternatif olarak kullanıldı- mosh’un çalışıp çalışmadığını bildiren kullanışlı bir değişken olmadığından
.bashrciçinden çağrılmak üzeredetect-mosh.rsbetiği yazıldı - Kabuk sürecinin
mosh-server’ın çocuğu olup olmadığını kontrol eden bir yöntemdir - Oturum açma yolunda Rust derlemenin düşük performanslı ana bilgisayarlar için uygun olup olmadığı kesinleştirilmedi
Nihai sonuç ve kalan sorunlar
- Ayarlardan sonra tmux ve mosh içindeki Emacs’te de tema 24 bit renk ile gösterilir
- Kalan sorunlar üç başlıkta özetlenebilir
- Terminaller sözdizimi ve özelliklerde tamamen uzlaşmış değil
- terminfo, özellik sorgulamanın standart yoludur
- terminfo sınırlıdır ve zaman zaman hatalıdır; yeni sürüm yayımları da sık değildir
terminfo sonrasında yön
- Modern terminal özelliklerini yeterince kullanmak isteyen yazılımların terminfo dışına çıkması gerekir
- Olası yönler şöyledir
- Yaygın desteklenen
TERMdeğişkeni kullanılmaya devam eder - İşletim sistemi veya dağıtımın eski terminfo’suna bağımlı kalmadan programların terminal özelliklerini bağımsız olarak bilebilmesi sağlanır
- Sık güncellenen bir kütüphaneye son yaklaşık 10 yılın terminal emülatörü bilgileri ad ve sürüm temelinde eklenir
- Artık kullanımı zor olan donanım terminali desteği dahil edilmez
- İşletim sisteminin sağladığı terminfo dosyası ve terminfo dosya biçimi desteklenmeye devam eder; ancak hangi bilginin güncel olduğunu değerlendirebilen bir protokol bulunur
- İsteğe bağlı
TERMVERSIONile 2022 Konsole ve 2023 Konsole gibi sürüme göre özellik farkları ayırt edilir - 24 bit renk, 256 renk paleti animasyonu, URL bağlantıları, Kitty grafik protokolü gibi modern özellikler belirsizliğe yer bırakmadan ifade edilir
- Yaygın desteklenen
- Eski programlar için geriye dönük uyumluluk yolu da mümkündür
.bashrciçinde çalışan bir programTERMveTERMVERSIONkullanarak$HOME/.terminfo/altında ikili terminfo dosyası üretirRGB,setf24,setb24gibi açık 24 bit renk özellikleri üretir- RGB bilmeyen programların 256 renk paleti varsaydığı kabul edilerek
colors#0x100,initc,ockorunur
1 yorum
Hacker News yorumları
terminfo içinde gezinmek, derin yeraltı mezarlarında titrek bir meşaleyle hiyeroglifleri aydınlatmaya benziyor.
Tek bir terminal uygulamasının içine ne kadar çok karmaşıklık sığdığını düşününce tuhaf geliyor; iTerm ve Kitty gibi terminallerin geliştiricilerine daha da minnettar oluyorum.
iTerm+zsh’de sekme rengini ayarlayan fonksiyonları bir araya getirdim: https://gist.github.com/aclarknexient/84ebe33c1879f921685304...
Eskiden telnet ile HTTP ya da SMTP’ye bağlanma yöntemleriyle karşılaştırınca, metnin kendisi basit olsa da o metni gösteren taraf türlü türlü özelliği destekleyen karmaşık bir uygulama.
Şimdilik o terminalin kullanıcısı fiilen yalnızca ben olduğum için mümkün bir tercih; ama modern terminaller ortak alt kümeyi epey desteklediğinden, uygulamaların yabancı
TERMdeğerlerini tanımayıp şaşırmasından daha az acı verici.Elbette yeni sistemlere sık sık SSH ile girmiyorsanız bu daha az önemli bir mesele.
En hızlı terminal emülatörü değil, ama görünüş olarak açık ara en iyisi.
Çeşitli terminal uygulamalarında 16 renk paletini ayarlamak, uygulama tarafındaki terminal kodunu tam doğru hale getirmekten daha kolaydı.
~/.Xdefaultsiçinde rxvt-unicode renklerini ayarlıyorum; Emacs tema.eldosyasında ise grafik gösterim olup olmamasına göre renk adlarını farklı belirleyip bunları çeşitli face’lere uyguluyorum.Bonus olarak renkli
lsçıktısı da daha iyi görünüyor. Varsayılan 16 renk paleti çoğu zaman fazla doygun ve kontrastı kötü oluyor.(if (display-graphic-p)zaten.Emacs gerçek grafik çıktıyı destekliyor; X11/Cocoa/Win32’de Esc gerçekten Esc gibi çalışıyor, Ctrl+Shift veya Cmd kısayolları, aynı anda birden fazla font kullanımı, görüntü gösterme, imleç şeklini değiştirme vb. mümkün.
Sanki 20 yıl sonrasına, 1989’a götüren bir zaman makinesi gibi.
Kırmızı hat ya güçlü kırmızıydı ya da kapalıydı; intensity hattı eklenince de %100 kırmızı oluyordu.
DIRCOLORSiçine sekans koyarsanızlsde gerçekten 24 bit renk destekliyor.Varsayılan renkler koyu arka plana göre fazla koyu olduğundan, tüm renklerin parlaklığını artırdım.
Yazar
export COLORTERM=truecolor’ı bilseydi muhtemelen çok daha az uğraşırdı.Bağlantı verilen Emacs belgelerindeki truecolor algılama dipnotunda da geçiyor, Konsole ekran görüntüsünde de görünüyor; ama birkaç kat terminal multiplexer içinde kaybolmuş olabilir.
Bu değeri ayarlayınca uygulama truecolor istendiğini hemen anlıyor; zor kısmı atlayabiliyor ve terminfo veritabanına da gerek kalmıyor.
RGBterminfo özelliği gibi deneme-yanılmaları da eklemek gerekirdi.Yine de her program COLORTERM’e saygı duymadığı için,
.bashrciçindelinux | screen*olduğundaCOLORTERM’i unset edip diğerlerindeCOLORTERM=truecolorexport ettiğim bir dönem olmuştu.Günümüzde Screen 24 bit rengi destekliyor; muhtemelen Ubuntu 18 zamanlarından kalma bir ayardı.
trampveyasshfsile birlikte kullanabilirsiniz.Bir yandan bunun nedeni ncurses bakımcısının epey muhafazakâr olması, yeni terminal geliştiricilerinin ise hızlı hareket etmek istemesi.
Daha eski Emacs sürümlerinde hâlâ terminfo veritabanı gerekiyor.
Çoğu zaman tanımlamaya gerek yok; ama bir screen oturumunda
COLORTERM=truecolorayarlıysa ekran bir anda çok garip hale geliyor, ortam değişkenini silince tekrar normale dönüyor.Emacs ile etkileşim kurarken mutlaka terminal kullanmanız gerekmez
MacOS, Windows, X.org ve Wayland için grafiksel ön uçlar kullanabilirsiniz
Grafiksel Emacs’ta araç çubuğunu kapatırsanız terminalde çalışan Emacs’a o kadar benzer ki, Emacs’ı bilmeyen biri bir iş arkadaşının bilgisayarında gördüğü grafiksel Emacs penceresini kolayca terminal penceresi sanabilir
Emacs kullanıcı anketinde %80’i grafiksel ön uç kullandığını söyledi
xterm-mouse-modeile bile faydanın %80’ini elde edebilirsinizmouse,xterm-mouse-mode,mouse-wheel-mode, kaydırma ayarları vb. eklenince oldukça kullanılabilir oluyor;auto-save-defaultise Tanrı’nın takdiriylenilolarak bırakılıyorTüm terminal programlarını grafiksel Emacs’ın shell-mode tamponunda çalıştırıyorum; tam ekran denetimi gerektiren nadir programlar içinse yalnızca term-mode kullanıyorum
En çok özelliğe sahip ya da en hızlı seçenek değil, ama diğer tamponlar gibi içinde gezinebiliyor ve düzenlemekte olduğum içerikle sorunsuz biçimde birlikte kullanabiliyorum
Uzak bir bilgisayarda grafiksel Emacs açamıyorsam tramp ile uzak dosyaları düzenliyor ya da headless bir Emacs sunucusu başlatıp grafiksel emacsclient ile bağlanıyorum
İnsanların Emacs’ı terminalde çalıştırdığımı düşünebileceğini hiç hesaba katmamıştım
Grafiksel Emacs çok daha iyi, ama terminalde de yaklaşık %90’ının aynı şekilde çalışıp görünmesi hâlâ harika
Hissedilen hafiflik terminal kadar; VNC gibi gelmiyor
Yazı tipleri, aynı anda farklı yazı tipleri kullanma, menüler, fare, renkler, birden çok frame/pencere gibi avantajları var
Grafiksel kısmı yerelde çalıştırıp tramp ile uzak sistemlere erişirseniz, pratikte yalnızca busybox bulunan uzak Linux tabanlı yönlendiricilerin yapılandırma dosyalarını bile her türlü konfor özelliğiyle düzenleyebilirsiniz
90’lardan beri X11’i aralıklı olarak kullanıyorum, ama yazı tipleri konusunda hâlâ arayıp tesadüfen çalışan bir komut bulup sonra ona dokunmama seviyesindeyim
Kurumsal ortamlarda kullanmak zorunda kaldığınız X11 yapılandırmalarına kıyasla çoğu terminal programının görüntüleme performansı hâlâ belirgin biçimde daha hızlı
Günümüzde güncel Emacs’ı kurup 24 bit xterm destekleyen bir terminal açtıktan sonra
emacs -nwçalıştırmanız yeterliTema uyguladıktan sonra iyi görünüyorsa iş bitmiştir; görünmüyorsa
.bashrc,.zshrc,.fishrcvb. dosyalaraexport COLORTERM=truecolorekleyip kabuğu yeniden yükleyin ya da yalnızca o satırı çalıştırıpemacs -nw’yi yeniden başlatınBu yazı terminfo’nun derinlerine inmek gerekiyormuş gibi gösteriyor, ama genellikle buna gerek yok. 10 yıl önce olsaydı belki, artık değil
MacOS’ta iTerm ve Linux’ta Alacritty, Kitty, Gnome Terminal ile hızlıca yeniden kontrol ettim; günümüzde 24 bit xterm desteği yaygın
Bugün Windows 10 Komut İstemi’nde de standart ANSI kaçış dizilerinin çalıştığını öğrendim
24 bit renk de sorunsuz çalışıyor
echo ^[[48;2;255;0;0mHello^[[0mçalıştırırsanız Hello kırmızıRGB(255,0,0)arka planla yazdırılır ve^[[0mrengi eski hâline döndürür^[,CTRL-[ile girilmeli;^ve[ayrı ayrı yazılmamalı\x1bkaçış kodunu veya\etakma adını kullanabilirsinizÖrneğin
echo -e '\e[48;2;255;0;0mHello\e[0m'şeklinde yapılabilirAncak betiklerde
echo -estandart dışıdır ve normalechoda sınır durumlarında farklı davrandığından her zamanprintf '\e[48;2;255;0;0mHello\e[0m\n'kullanmak daha iyidirC:\CONFIG.SYSdosyasınaDEVICE=C:\DOS\ANSI.SYSeklemeyi unutmamak gerekirvim/neovim ile karşılaştırıldığında Emacs’ın en iyi yanı, yalnızca bir pencere içindeki terminal emülatörü değil, birinci sınıf GUI desteğine sahip olmasıdır
gVim’in ve sayısız idare eder neovim ön ucunun olduğunu biliyorum, ama Emacs’ın varsayılan çalışma biçimi gerçekten GUI ve bu hoşuma gidiyor
Terminal de fena değil, ancak çok fazla tarihsel artık ve kısıt var; bazı yanları da günümüz için anlamsız
Emacs’ı uzak sunucuda çalıştırmak sorun oluyorsa TRAMP ve emacsclient var
GUI uygulamalarının ekranda gösterdiği metni kopyalamanıza izin vermeyip elle yeniden yazmak zorunda bırakması sinir bozucu
https://github.com/neovim/neovim/wiki/Related-projects#gui
Modal düzenlemeyi ve vim’i gerçekten seviyorum, ama terminal editörlerinin sunduğu yarım yamalak çözümü katlanılması zor buldum
Elimizde zengin bir grafik platform varken neden kullanmayalım?
Örneğin vim’i neredeyse yalnızca dosya düzenlemek için kullanıyorum;
git, linter, formatter, debugger, dosya ağacı işlemleri gibi dış araçlar için kabuğa geri dönüyorumBu yüzden ana uygulamam zaten terminal emülatörü ve bu iş akışında özel bir GUI’nin olmaması pek önem taşımıyor
Benim Emacs’ımın daha çok şöyle görünmesini isterdim: https://imgur.com/a/h0jA1ro
Ciddi söylemiyorum, şaka. Cool Retro Term’i yalnızca sunum yaparken kullanıyorum.
Görünüşe göre benim Emacs’ımda 24 bit renkler varsayılan olarak çalışıyor: https://imgur.com/a/BM5OTxp
Yalnız söz dizimi vurgulama biraz göze batıyor.
Cool Retro Term harika; ben de sunumlarda kullanmayı denemek isterim.
Kişisel olarak diğer retro terminaller bu kadar iyi görünmüyor.
Standardı bu kadar pahalı bir ücretin arkasına kilitlemiş olmaları gerçekten utanç verici.
İnsanlar satın almamak için bu kadar dolambaçlı yollara başvurmak zorunda kalıyor ve böyle sonuçlar bile doğabiliyor.
Standart ise erişilebilir olmalı. Yalnızca kitap olarak yayımlandığı dönemde baskı maliyeti almak mantıklı olabilirdi; ama dandik bir PDF’nin 200 dolar olması inanılır gibi değil.
xterm’in 24 bit renk yamasını yazmıştım, ama ncurses’i
xterm-directile nasıl çalıştıracağımı ancak bugün öğrendim.Zaten Lisp ile yazdığım kendi terminal kütüphanemi kullanıyordum, fakat ncurses için alternatif bir yol bulundurmak hâlâ faydalı.
Stack Overflow’daki soruyu yanıtlayan Mr. Dickey’ye ve bunu gündeme getiren Chad’e teşekkürler.