Estoy usando Emacs ejecutándose en un urxvt, y no puedo obtener cursiva para trabajar en Emacs aunque el terminal lo admite.
Aquí está mi configuración actual:
- No lo he configurado
$TERM
, por lo que es el valor predeterminadorxvt-unicode-256color
. - My
~/.Xdefaults
defineURxvt.font: xft:Inconsolata:size=15
como la fuente del terminal. - Correr
echo '\e[3mitalics\e[m'
en la cáscara de hecho rendimientositalics
, por lo cursiva en el terminal de do trabajo, básicamente.
Al personalizar la cara “cursiva”, no hace ninguna diferencia si selecciono italic
, oblique
, normal
, o roman
como el valor para el Slant
atributo, ni tampoco si no se establece la Slant
atributo en absoluto. También probé esto en combinación con definir explícitamente URxvt.italicFont
en mi ~/.Xdefaults
, pero fue en vano.
La negrita funciona bien, la cursiva no funciona en absoluto. ¿Algunas ideas?
Respuestas:
En resumen: no puede con la versión actual de Emacs (verificada con 23.2), pero vea a continuación una posible solución.
Una historia más larga: el soporte para cursiva está codificado en la base de datos terminfo como las capacidades (
sitm
ingresar cursiva) yritm
(salir cursiva) (también llamadasZH
yZR
para compatibilidad con termcap); Puede comprobar que su terminal los admite a través de:Si no están presentes, la
rxvt-unicode-256color
descripción de su terminal no proporciona información a la biblioteca ncurses sobre las capacidades de cursiva del terminal y es posible que desee agregarlas, de lo contrario, ninguna aplicación de TTY puede usar cursiva.Sin embargo, la función
turn_on_face
(en las fuentes de Emacs, archivosrc/term.c
en la línea 1919--2012), que gestiona la pantalla del terminal, no admite cursiva: comprueba los atributos de negrita / tenue / parpadeo / subrayado de una cara. En realidad, no hay ningún atributo "cursiva" codificado enstruct face
.De hecho, mi Emacs (versión 23.1 en Ubuntu 11.04 natty) muestra caras en cursiva (que se muestran correctamente en X11) como subrayadas en un TTY. (Lo que significa que, si no le importa subrayar, puede cambiar la descripción del terminal de su terminal para usar las secuencias de escape de cursiva de entrada / salida en lugar de las de subrayado de entrada / salida y obtener cursiva).
fuente
ESC
no se inserta un carácter de escape. Puede presionarCtrl+V ESC
para insertar uno, pero rara vez lo necesita. Por ejemplo, el carácter de escape está representado por\E
in terminfo source; en una terminal (con bash / ksh / zsh), intenteecho $'\e[3mhello\e[0m'
.Estoy agregando esta respuesta porque las otras están desactualizadas. Emacs 24.5 muestra correctamente las caras en cursiva en los terminales.
Esto es emacs 24.5 ejecutándose en una terminal (
emacs -nw
). El terminal esuxvrt
y la configuración en mi.Xdefaults
es:fuente
Con respecto a emacs que no puede utilizar cursiva en emuladores de terminal que proporcionan esta funcionalidad: este es el error # 9652 de emacs que fue corregido por Chong Yidong el 10 de junio de 2012.
Sin embargo, la solución no se encuentra en ninguna versión lanzada de emacs, sino, por ejemplo, en el paquete emacs-snapshot de emacs.naquadah.org .
fuente