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 ~/.XdefaultsdefineURxvt.font: xft:Inconsolata:size=15como 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 romancomo el valor para el Slantatributo, ni tampoco si no se establece la Slantatributo en absoluto. También probé esto en combinación con definir explícitamente URxvt.italicFonten 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 (
sitmingresar cursiva) yritm(salir cursiva) (también llamadasZHyZRpara compatibilidad con termcap); Puede comprobar que su terminal los admite a través de:Si no están presentes, la
rxvt-unicode-256colordescripció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.cen 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
ESCno se inserta un carácter de escape. Puede presionarCtrl+V ESCpara insertar uno, pero rara vez lo necesita. Por ejemplo, el carácter de escape está representado por\Ein 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 esuxvrty la configuración en mi.Xdefaultses: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