Ich verwende Emacs, das in einem urxvt ausgeführt wird, und ich kann in Emacs keine Kursivschrift verwenden, obwohl das Terminal dies unterstützt.
Hier ist mein aktuelles Setup:
- Ich habe nicht festgelegt
$TERM
, so ist es die Standardeinstellungrxvt-unicode-256color
. - Meine
~/.Xdefaults
definiertURxvt.font: xft:Inconsolata:size=15
als die Terminal-Schriftart. - Laufen
echo '\e[3mitalics\e[m'
in der Schale in der Tat Ausbeutenitalics
, so kursiv im Terminal do Arbeit, im Grunde.
Wenn das „Kursiv“ Gesicht Anpassen macht es keinen Unterschied, ob ich wähle italic
, oblique
, normal
oder roman
als der Wert für das Slant
Attribut, noch ist es , wenn ich das nicht festgelegt habe Slant
Attribut überhaupt. Ich habe dies auch in Kombination mit einer expliziten Definition URxvt.italicFont
in meinem ~/.Xdefaults
versucht, aber ohne Erfolg.
Fett funktioniert gut, Kursiv funktioniert überhaupt nicht. Irgendwelche Ideen?
Antworten:
Kurz gesagt: Sie können mit der aktuellen Version von Emacs (überprüft mit 23.2) nicht, aber sehen Sie unten für eine mögliche Problemumgehung.
Längere Geschichte: Unterstützung für Kursivschrift wird in der terminfo- Datenbank als
sitm
(Eingabe kursiv) undritm
(Beenden kursiv) -Funktion kodiert (auch alsZH
undZR
aus Gründen der Termcap-Kompatibilität bezeichnet). Sie können überprüfen, ob Ihr Terminal diese unterstützt:Wenn diese nicht vorhanden sind,
rxvt-unicode-256color
liefert Ihre Terminalbeschreibung der ncurses-Bibliothek keine Informationen zu den Kursivdruckfunktionen des Terminals, und Sie möchten sie möglicherweise hinzufügen. Andernfalls kann keine TTY-Anwendung Kursivdruck verwenden.Die Funktion
turn_on_face
(in den Emacs-Quellen, Dateisrc/term.c
in Zeile 1919-2012), die die Terminalanzeige verwaltet, bietet jedoch keine Unterstützung für Kursivschrift: Sie prüft, ob Attribute eines Gesichts fett, dunkel, blinkend oder unterstrichen sind. Tatsächlich ist in kein Attribut "Kursiv" codiertstruct face
.In der Tat zeigt mein Emacs (Version 23.1 auf Ubuntu 11.04 natty) kursive Gesichter (die in X11 korrekt angezeigt werden), wie in einem TTY unterstrichen . (Das bedeutet, dass Sie, wenn Sie sich nicht für Unterstreichung interessieren, einfach die Terminfo-Beschreibung Ihres Terminals ändern können, um die Escape-Sequenzen für Eingabe / Ausgabe in Kursivschrift anstelle der unterstrichenen für Eingabe / Ausgabe zu verwenden und Kursivschrift zu erhalten.)
quelle
ESC
wird kein Escapezeichen eingefügt . Sie können drückenCtrl+V ESC
, um eine einzufügen, dies ist jedoch selten erforderlich. ZB wird das Escape-Zeichen durch\E
in terminfo source dargestellt. Versuchen Sie es in einem Terminal (mit bash / ksh / zsh)echo $'\e[3mhello\e[0m'
.Ich füge diese Antwort hinzu, weil die anderen veraltet sind. Emacs 24.5 zeigt Kursivschrift in Terminals korrekt an.
Dies ist Emacs 24.5 in einem Terminal (
emacs -nw
) ausgeführt. Das Terminal istuxvrt
und das Setup in meinem.Xdefaults
ist:quelle
In Bezug auf Emacs, die in Terminal-Emulatoren, die diese Funktionalität bieten, keine Kursivschrift verwenden können: Dies ist der Emacs-Fehler # 9652, der von Chong Yidong am 10. Juni 2012 behoben wurde.
Das Update ist jedoch nicht in einer veröffentlichten Version von Emacs enthalten, sondern beispielsweise im emacs-snapshot-Paket von emacs.naquadah.org .
quelle