Bir metin terminalindeki Emacs'ta italik metinler (rxvt-unicode)


15

Bir urxvt çalışan Emacs kullanıyorum ve terminal desteklese de Emacs çalışmak için italik alamıyorum.

Şu anki kurulumum:

  • Ayarlamadım $TERM, bu yüzden varsayılan rxvt-unicode-256color.
  • Benim terminal yazı tipi olarak ~/.Xdefaultstanımlar URxvt.font: xft:Inconsolata:size=15.
  • Çalıştırma echo '\e[3mitalics\e[m'gerçekten kabuk verimleri de italicsterminal italik nedenle, do , temelde, çalışma.

“İtalik” yüz özelleştirirken, ben seçmek için hiçbir şey fark etmez italic, oblique, normal, veya romandeğeri olarak Slant, niteliği ne de set yoksa öyle Slanthiç niteliği. Ben de açıkça URxvt.italicFontbenim tanımlamak ile birlikte çalıştı ~/.Xdefaults, ama boşuna.

Cesur çalışıyor, italik hiç çalışmıyor. Herhangi bir fikir?


Bir terminalde italik yazmanın bile mümkün olduğunu fark etmedim. Bunun için teşekkürler.
wfaulk

Yanıtlar:


10

Kısacası: Emacs'ın geçerli sürümüyle (23.2 ile işaretli) yapamazsınız, ancak olası bir geçici çözüm için aşağıya bakın.

Daha uzun hikaye: italik destek kodlanmıştır terminfo veritabanı olarak sitm(italik girin) ve ritm(çıkış italik) yetenekleri (diğer adıyla ZHve ZRtermcap uyumluluğu için); terminalinizin bunları destekleyip desteklemediğini kontrol edebilirsiniz:

infocmp $TERM | egrep '(sitm|ritm)'

Bunlar mevcut değilse, rxvt-unicode-256colorterminal açıklamanız ncurses kütüphanesine terminalin italik özellikleri hakkında bilgi sağlamaz ve bunları eklemek isteyebilirsiniz, aksi takdirde hiçbir TTY uygulaması italik kullanamaz.

Bununla birlikte, terminal görüntüsünü yöneten işlev turn_on_face(Emacs kaynaklarında, src/term.c1919-2012 satırındaki dosya) italik yazı için destek sağlamaz: bir yüzün kalın / loş / yanıp sönen / alt çizgi niteliklerini kontrol eder. Aslında, kodlanmış bir "italik" özellik yoktur struct face.

Gerçekten de, Emacs'ım (Ubuntu 11.04 natty'deki sürüm 23.1), bir TTY'de altı çizildiği gibi italik yüzleri (X11'de doğru olarak görüntülenen) gösterir . (Yani, alt çizgiyi önemsemiyorsanız, terminalinizin terminfo açıklamasını yalnızca enter / exit italik kaçış dizilerini kullanmak ve enter / exit alt çizgi olanları kullanmak ve italik almak için değiştirebilirsiniz.)


Bu cevap iyi görünüyor, ancak şu anda test edemiyorum çünkü sahip olduğum tek linux kurulumu bir win7 ana bilgisayarına konuk olarak. Sonuç olarak bunu test etmekte zorlanıyorum. Özellikle ascii kaçış kodlarını ekleyemiyorum. Eğer bir başkası kaçış dizileriyle neyi yanlış yaptığımı doğrulamak veya açıklamak için test yapabilirse, ödülü vermekten mutluluk duyarım.
vschum

@vschum Eğer terminfo veritabanınızı değiştirmeye çalışıyorsanız, bu cevap size yardımcı olacaktır. Onları açıklamadığınız sürece zorluklarınıza yardımcı olamayız; Eğer olabilir bir soru sormak onlar hakkında.
Gilles 'SO- kötü olmayı kes'

@Gilles Aslında, bu cevapla daha fazla ilgisi var . İtalik olup olmadığını test etmek için dizileri nasıl ekleyeceğimi anlayamıyorum. ESC [3 m yazdığımda terminalde hiçbir şey görünmüyor.
vschum

2
@vschum tuşuna basmak ESCbir kaçış karakteri eklemez. Bir Ctrl+V ESCtane eklemek için düğmesine basabilirsiniz , ancak nadiren gerekir. Örneğin, kaçış karakteri \Eterminfo kaynağında temsil edilir ; bir terminalde (bash / ksh / zsh ile) deneyin echo $'\e[3mhello\e[0m'.
Gilles 'SO- kötü olmayı bırak'

4

Bu yanıtı ekliyorum çünkü diğerleri güncel değil. Emacs 24.5, terminallerdeki italik yüzleri doğru şekilde görüntüler.

resim açıklamasını buraya girin

Bu bir terminalde ( emacs -nw) çalışan 24.5 emacs . Terminal uxvrtve benim kurulum .Xdefaults:

URxvt*termName: rxvt-unicode-256color
URxvt.font: xft:DejaVu Sans Mono:size=9

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.