Apéndice C Argumentos de línea de órdenes para la invocación de Emacs

Emacs soporta argumentos de línea de comandos para solicitar varias acciones al invocar Emacs. Estos son para compatibilidad con otros editores y para actividades sofisticadas. No recomendamos usarlos para edición ordinaria (Ver 40 Usar Emacs Como Servidor, para una forma de acceder a un trabajo Emacs existente desde la línea de comandos).

Los argumentos que empiezan por - son opciones, y también lo es +linenum. Todos los demás argumentos especifican archivos a visitar. Emacs visita los ficheros especificados mientras se inicia. El último archivo especificado en la línea de comandos se convierte en el buffer actual; los demás ficheros también se visitan en otros búferes. Como con la mayoría de los programas, el argumento especial -- dice que todos los argumentos subsiguientes son nombres de archivos, no opciones, incluso si empiezan por -.

Las opciones de comandos de Emacs pueden especificar muchas cosas, como el tamaño y la posición de la ventana X que usa Emacs, sus colores, etcétera. Algunas opciones permiten un uso avanzado, como ejecutar funciones Lisp sobre ficheros en modo batch. Las secciones de este capítulo describen las opciones disponibles, ordenadas según su propósito.

Existen dos formas de escribir opciones: las formas cortas que comienzan con un solo -, y las formas largas que comienzan con --'. Por ejemplo, -d es una forma corta y --display es la forma larga correspondiente.

Las formas largas con -- son más fáciles de recordar, pero más largas de escribir. Sin embargo, no es necesario que escriba el nombre completo de la opción; cualquier abreviatura inequívoca es suficiente. Cuando una opción larga requiere un argumento, puede utilizar un espacio o un signo igual para separar el nombre de la opción y el argumento. Así, para la opción --display, puede escribir --display sugar-bombs:0.0 o --display=sugar-bombs:0.0. Recomendamos un signo igual porque hace que la relación sea más clara, y las tablas siguientes siempre muestran un signo igual.

La mayoría de las opciones especifican cómo inicializar Emacs, o establecer parámetros para la sesión Emacs. Las llamamos opciones iniciales. Unas pocas opciones especifican cosas que hacer, como cargar bibliotecas o llamar a funciones Lisp. Estas se llaman opciones de acción. Éstas y los nombres de archivo se denominan argumentos de acción. Los argumentos de acción se almacenan como una lista de cadenas en la variable command-line-args. (En realidad, cuando Emacs se inicia, command-line-args contiene todos los argumentos pasados desde la línea de comandos; durante la inicialización, los argumentos iniciales se eliminan de esta lista cuando se procesan, dejando sólo los argumentos de acción).

C.1 Argumentos de Acción

Esta es una tabla de argumentos de acción:

archivo
--file=archivo
--find-file=archivo
--visit=archivo a

Visita el archivo especificado. Ver 19.2 Visitar Archivos.

Cuando Emacs se inicia, muestra el buffer de inicio en una ventana, y el buffer que visita el archivo en otra ventana (ver 21 Varias Ventanas). Si proporciona más de un argumento de archivo, el archivo mostrado es el último especificado en la línea de comandos; los otros ficheros son visitados pero sus buffers no se muestran.

Si el buffer de arranque está desactivado (ver 6 Entrar en Emacs), entonces arrancar Emacs con un argumento de archivo, lo muestra visitado por el buffer en una única ventana. Con dos argumentos de fichero, Emacs muestra los ficheros en dos ventanas diferentes. Con más de dos argumentos de fichero, Emacs muestra el último fichero especificado en una ventana, más otra ventana con un Menú Buffer mostrando todos los demás ficheros (ver 20.5 Trabajar con Varios Búferes). Para inhibir el uso del Menú Buffer para esto, cambie la variable inhibit-startup-buffer-menu a t.

+linenum file

Visita el archivo especificado y va a la línea linenum del mismo.

+linenum:columnnum file

Visita el archivo especificado, va a la línea número linenum y pone el punto en la columna número columnnum.

-l archivo
--load=archivo

Carga una biblioteca Lisp llamada archivo con la función load. Si archivo no es un nombre de archivo absoluto, Emacs lo busca primero en el directorio actual, y luego en los directorios listados en load-path (ver 28.8 Bibliotecas de Código Lisp para Emacs).

Advertencia: Si argumentos anteriores de la línea de comandos han visitado ficheros, el directorio actual es el directorio del último fichero visitado.

-L dir
--directory=dir

Antepone el directorio dir a la variable load-path. Si especifica múltiples opciones -L, Emacs preserva el orden relativo; por ejemplo, usando -L /foo -L /bar resulta en una ruta de carga de la forma ("/foo" "/bar" …). Si dir comienza con :, Emacs elimina el : y añade (en lugar de anteponer) el resto a load-path. (En MS Windows, use ; en lugar de :; es decir, usa el valor de path-separator).

--funcall=función

Llama a una función Lisp de nombre función. Si se trata de una función interactiva (un comando), lee los argumentos de forma interactiva como si hubiera llamado a la misma función con una secuencia de teclas. En caso contrario, llama a la función sin argumentos.

--eval=expresión
--execute=expresión

Evalúa a la expresión Lisp de nombre expresión.

--insert=archivo

Inserta el contenido del archivo en el búfer actual cuando se procesa este argumento de la línea de órdenes. Normalmente, se trata del búfer scratch (consulte 28.10. Búferes de Interacción Lisp), pero si los argumentos anteriores de la línea de comandos visitan archivos o conmutan búferes, podría tratarse de un búfer diferente. El efecto de este argumento de la línea de comandos es similar a lo que hace M-x insert-file (consulte 19.12 Operaciones Varias con Archivos).

--kill

Sale de Emacs sin pedir confirmación.

--help

Imprime un mensaje de uso que enumera todas las opciones disponibles y, a continuación, sale sin problemas.

--version

Imprime la versión de Emacs y sale exitosamente.

--fingerprint

Imprime la «huella digital» de Emacs, que se utiliza para la identificación única de la versión compilada de Editor.

C.2 Opciones Iniciales

Las opciones iniciales especifican parámetros para la sesión Emacs. Esta sección describe las opciones iniciales más generales; algunas otras opciones específicamente relacionadas con el sistema X Window aparecen en las secciones siguientes.

Algunas opciones iniciales afectan a la carga del archivo de inicio. Normalmente, Emacs carga primero site-start.el si existe, luego el propio fichero de inicio del Usuario, si existe, y finalmente el fichero de inicialización por defecto default.el si existe (ver 50.4. El Archivo de Inicialización de Emacs). Ciertas opciones evitan la carga de algunos de estos archivos o los sustituyen por otros.

-chdir directorio
--chdir=directorio

Cambia a directorio antes de hacer cualquier otra cosa. Esto es usado principalmente por la gestión de sesiones en X para que Emacs se inicie en el mismo directorio en el que se detuvo. Esto hace que guardar y restaurar el escritorio sea más fácil.

-t device
--terminal=device

Utiliza device como dispositivo para la entrada y salida del terminal. Esta opción implica --no-window-system.

-d display
--display=display

Utiliza el Sistema X Window y usa la pantalla de nombre display para abrir el marco inicial de Emacs. Vea C.5 Especifica el Nombre de Pantalla para más detalles.

-nw
--no-window-system

No se comunica directamente con el sistema de ventanas, ignorando la variable de entorno DISPLAY aunque esté establecida. Esto significa que Emacs utiliza el terminal desde el que se lanzó para toda su visualización y entrada.

-batch
--batch

Ejecuta Emacs en modo batch. El modo por lotes se usa para ejecutar programas escritos en Emacs Lisp desde scripts de shell, makefiles, etc. Para invocar un programa Lisp, use la opción -batch junto con una o más de las opciones -l, -f o --eval (vea C.1 Argumentos de Acción). Vea C.3 Ejemplo de Argumento de Comando, para un ejemplo.

En modo batch, Emacs no muestra el texto que se está editando, y los caracteres estándar de interrupción del terminal como C-z y C-c tienen su efecto habitual. Las funciones de Emacs que normalmente imprimen un mensaje en el área de eco, imprimirán en el flujo de salida estándar (stdout) o en el flujo de error estándar (stderr). (Para ser precisos, funciones como prin1, princ y print imprimen en stdout, mientras que message y error imprimen en stderr). Las funciones que normalmente leen la entrada del teclado desde el minibuffer toman su entrada del flujo de entrada estándar del terminal (stdin) en su lugar.

--batch implica -q (no cargar un archivo de inicialización), pero site-start.el se carga de todas formas. También hace que Emacs salga después de procesar todas las opciones del comando. Además, desactiva el auto-guardado excepto en búferes para los que el auto-guardado se solicita explícitamente, y cuando se guardan archivos omite la llamada al sistema fsync a menos que se solicite lo contrario.

Los errores que ocurren al ejecutar un Emacs --batch resultarán en la impresión de un trazado (backtrace) de Emacs Lisp. Para desactivar este comportamiento, establezca backtrace-on-error-noninteractive a nil.

--script archivo

Ejecuta Emacs en modo batch, como --batch, y luego lee y ejecuta el código Lisp en archivo.

El uso normal de esta opción es en archivos de guión ejecutables que ejecutan Emacs. Pueden empezar con este texto en la primera línea:

#!/usr/bin/emacs --script

que invocará Emacs con --script y proporcionará el nombre del archivo de script como archivo. Emacs Lisp trata entonces el #! de esta primera línea como un delimitador de comentario.

-x

Esta opción sólo puede utilizarse en archivos de script ejecutables, y debe invocarse de la siguiente manera:

#!/usr/bin/emacs -x

Es como --script, pero suprime la carga de los archivos init (como --quick), y no puede usarse en una línea de órdenes normal (ya que no especifica el script a cargar). Además, cuando llega al final del script, sale de Emacs y utiliza el valor del formulario final como valor de salida del script (si el valor final es numérico). En caso contrario, siempre saldrá con un valor cero.

--no-build-details

Omite detalles como el nombre del sistema y el tiempo de compilación del ejecutable de Emacs, para que las compilaciones sean más deterministas. Esta opción no está pensada para un uso regular (o interactivo), ya que hace que comandos como system-name devuelvan nil.

-q
--no-init-file

No carga ningún fichero de inicialización (ver 50.4. El Archivo de Inicialización de Emacs). Cuando Emacs es invocado con esta opción, la facilidad Personalizar no permite guardar opciones (ver 50.1 Interfaz de Personalización Fácil). Esta opción no desactiva la carga de site-start.el.

--no-site-file
-nsl

No carga site-start.el (ver 50.4. El Archivo de Inicialización de Emacs). La opción -Q también lo hace, pero otras opciones como -q no.

--no-site-lisp

No incluye los directorios site-lisp en load-path (vea 50.4. El Archivo de Inicialización de Emacs). La opción -Q también hace esto.

--init-directory

Especifica el directorio que se utilizará para buscar los archivos de inidio de Emacs.

--no-splash

No muestra una pantalla de inicio. También puede conseguir este efecto estableciendo la variable inhibit-startup-screen a no nil en su fichero de inicio (ver 6 Entrar en Emacs).

--no-x-resources

No carga recursos X. También puede conseguir este efecto estableciendo la variable inhibit-x-resources a t en su archivo de inicialización (consulte D.1 Recursos X Recursos X).

-Q
--quick

Inicia Emacs con las personalizaciones mínimas. Esto es similar a usar -q, --no-site-file, --no-site-lisp, --no-x-resources, y --no-splash juntos.

-daemon
--daemon[=name]
--bg-daemon[=name]
--fg-daemon[=name]

Inicia Emacs como demonio: después de que Emacs se inicie, arranca el servidor Emacs sin abrir ningún marco. Entonces puedes usar el comando emacsclient para conectarlo a Emacs para editar. (Opcionalmente, puede especificar un nombre explícito para el servidor; si lo hace, necesitará especificar el mismo nombre cuando invoque emacsclient, mediante su opción --socket-name, ver 40.3 Opciones de emacsclient). Ver 40 Usar Emacs Como Servidor, para información sobre el uso de Emacs como demonio. Un demonio «en segundo plano» se desconecta de la terminal y se ejecuta en segundo plano (--daemon es un alias de --bg-daemon).

--no-desktop

No recarga ningún escritorio guardado. Véase 45 Guardar Sesiones de Emacs.

-u usuario’
--user=usuario

Carga el fichero de inicialización del usuario en lugar del suyo propio [25].

--debug-init

Habilita el depurador de Emacs Lisp para errores en el fichero de inicio. Consulte Entrar en el Depurador ante un Error en El Manual de Referencia de GNU Emacs Lisp.

--module-assertions

Habilita comprobaciones de corrección complejas cuando se trabaja con módulos cargables dinámicamente. Esta opción está pensada para autores de módulos que deseen verificar que su módulo cumple los requisitos de la API del módulo. La opción hace que Emacs aborte si se dispara una declaración relacionada con el módulo. Vea Escribiendo Módulos Cargables Dinámicamente en El Manual de Referencia de GNU Emacs Lisp.

--dump-file=archivo

Carga el estado de Emacs que se volcado previamente en archivo. Por defecto, un Emacs instalado buscará su estado de volcado en un archivo llamado emacs.pdmp en el directorio donde la instalación de Emacs pone los ficheros dependientes de la arquitectura; la variable exec-directory contiene el nombre de ese directorio. emacs es el nombre del archivo ejecutable de Emacs, normalmente aparece como emacs. (Cuando invoque al Editor desde el directorio src donde fue construido sin instalarlo, buscará el archivo dump en el directorio del ejecutable). Si renombra o mueve el fichero de volcado a un lugar diferente, puede usar esta opción para decirle a Emacs dónde encontrar ese archivo.

C.3 Ejemplo de Argumento de Comando

He aquí un ejemplo de uso de Emacs con argumentos y opciones. Asume que tiene un archivo de programa Lisp llamado hack-c.el que, cuando se carga, realiza alguna operación útil en el buffer actual, que se espera sea un programa C.

emacs --batch foo.c -l hack-c -f save-buffer >& log

Esto dice que visite foo.c, cargue hack-c.el (que hace cambios en el archivo visitado), guarde foo.c (note que save-buffer es la función a la que está ligada C-x C-s), y luego salga de nuevo al shell (debido a --batch). --batch también garantiza que no habrá problemas redirigiendo la salida al log, porque Emacs no asumirá que tiene un terminal de pantalla con el que trabajar.

C.4 Variables de Entorno

El entorno es una característica del sistema operativo; consiste en una colección de variables con nombres y valores. Cada variable se denomina variable de entorno; los nombres de estas variables distinguen entre mayúsculas y minúsculas, y es convencional utilizar sólo mayúsculas. Los valores son cadenas de texto.

Lo que hace que el entorno sea útil es que los subprocesos heredan el entorno automáticamente de su proceso padre. Esto significa que puede configurar una variable de entorno en su shell de inicio de sesión, y todos los programas que ejecute (incluyendo Emacs) la verán automáticamente. Los subprocesos de Emacs (como shells, compiladores y programas de control de versiones) también heredan el entorno de Emacs.

Dentro de Emacs, el comando M-x getenv lee el nombre de una variable de entorno, e imprime su valor en el área echo. M-x setenv establece una variable en el entorno Emacs, y C-u M-x setenv elimina una variable. (Las sustituciones de variables de entorno con $ funcionan en el valor igual que en los nombres de fichero; ver Nombres de Archivos con $ en 19.1 Nombres de Archivos). La variable initial-environment almacena el entorno inicial heredado por Emacs.

La forma de establecer variables de entorno fuera de Emacs depende del sistema operativo, y especialmente del shell que estés usando. Por ejemplo, aquí está cómo establecer la variable de entorno ORGANIZACIÓN a “no mucho” usando Bash:

export ORGANIZACIÓN="no mucho"

y aquí está cómo hacerlo en csh o tcsh:

setenv ORGANIZACIÓN "no mucho"

Cuando Emacs está usando el sistema X Window, varias variables de entorno que controlan X funcionan también para Emacs. Consulte la documentación de X para más información.

C.4.1 Variables Generales

Aquí hay una lista alfabética de variables de entorno que tienen significados especiales en Emacs. La mayoría de estas variables también son usadas por otros programas. Emacs no requiere que ninguna de estas variables de entorno esté configurada, pero utiliza sus valores si lo están.

CDPATH

Utilizado por el comando cd para buscar el directorio especificado, cuando se especifica un directorio relativo.

COLORTERM

Si esta variable tiene el valor truecolor, le dice a Emacs que use color verdadero de 24 bits en pantallas en modo texto incluso si la base de datos terminfo no está instalada. Emacs usará comandos incorporados para solicitar color verdadero por valores RGB en lugar de la información terminfo que falta.

DBUS_SESSION_BUS_ADDRESS

Usado por D-Bus cuando Emacs se compila con él. Normalmente, no hay necesidad de cambiarlo. Establecerlo a una dirección ficticia, como unix:path=/dev/null, suprime las conexiones al bus de sesión D-Bus así como el auto-lanzamiento del bus de sesión D-Bus si no se está ejecutando todavía.

EMACSDATA

Directorio para los archivos independientes de la arquitectura que vienen con Emacs. Se utiliza para inicializar la variable data-directory.

EMACSDOC

Directorio para el archivo de cadenas de documentación, que se utiliza para inicializar la variable Lisp doc-directory.

EMACSLOADPATH

Una lista separada por dos puntos de directorios [26] para buscar archivos Emacs Lisp. Si se establece, modifica el valor inicial habitual de la variable load-path (véase 28.8 Bibliotecas de Código Lisp para Emacs). Un elemento vacío representa el valor por defecto de load-path; por ejemplo, usar EMACSLOADPATH="/tmp:" añade /tmp al frente del load-path por defecto. Para especificar un elemento vacío en medio de la lista, utilice 2 veces dos puntos seguidos, como en EMACSLOADPATH="/tmp::/foo".

EMACSPATH

Una lista separada por dos puntos de directorios para buscar archivos ejecutables. Si se establece, Emacs usa esto además de PATH (ver más abajo) cuando inicializa la variable exec-path (ver 39 Ejecución de comandos de shell desde Emacs).

EMAIL

Su dirección de correo electrónico; se usa para inicializar la variable Lisp user-mail-address, que la interfaz de correo de Emacs pone en la cabecera From de los mensajes salientes (ver 33.2 Campos de Cabecera de Correo).

ESHELL

Se utiliza en el modo shell para anular la variable de entorno SHELL (véase 39.2 Subshell Interactiva).

HISTFILE

El nombre del archivo en el que se guardan los comandos del shell entre inicios de sesión. Esta variable por defecto es ~/.bash_history si usa Bash, ~/.sh_history si usa ksh, y ~/.history en caso contrario.

HOME

La ubicación de sus archivos en el árbol de directorios; se utiliza para la expansión de los nombres de archivo que comienzan con una tilde (~). Si se establece, debería ser un nombre de archivo absoluto. (Si se establece a un nombre de archivo relativo, Emacs lo interpreta relativo al directorio donde se inició Emacs, pero no recomendamos usar esta característica). Si no se establece, HOME normalmente toma por defecto el directorio personal del Usuario dado por LOGNAME, USER o su ID de Usuario, o / si todo lo demás falla. En MS-DOS, por defecto es el directorio desde el que se inició Emacs, con /bin eliminado al final si estaba presente. En Windows, el valor por defecto de HOME es el subdirectorio Application Data del directorio del perfil de Usuario (normalmente, este es C:/Documents and Settings/username/Application Data, donde username es su nombre de Usuario), aunque por compatibilidad con versiones anteriores C:/ será usado en su lugar si un archivo .emacs es encontrado allí.

HOSTNAME

El nombre de la máquina en la que se está ejecutando Emacs.

INFOPATH

Una lista separada por dos puntos de directorios en los que buscar archivos Info.

LC_ALL
LC_COLLATE
LC_CTYPE
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME
LANG

La configuración regional preferida por el Usuario. La configuración regional tiene seis categorías, especificadas por las variables de entorno LC_COLLATE para ordenación, LC_CTYPE para codificación de caracteres, LC_MESSAGES para mensajes del sistema, LC_MONETARY para formatos monetarios, LC_NUMERIC para números y LC_TIME para fechas y horas. Si una de estas variables no está definida, la categoría adoptará por defecto el valor de la variable de entorno LANG, o la configuración regional C por defecto si LANG no está definida. Pero si se especifica LC_ALL, anula la configuración de todas las demás variables de entorno de configuración regional.

En MS-Windows y macOS, si LANG no está ya establecido en el entorno, Emacs lo establece basándose en el valor por defecto de todo el sistema. Puede configurar esto en el Panel de Control «Configuración Regional» en algunas versiones de MS-Windows, y en la Preferencia de Sistema «Idioma y Región» en macOS.

El valor de la categoría LC_CTYPE se compara con las entradas de locale-language-names, locale-charset-language-names y locale-preferred-coding-systems, para seleccionar un entorno de idioma y un sistema de codificación por defecto. Véase 23.2 Entornos de Lenguaje (o Idioma).

LOGNAME

Nombre de inicio de sesión del usuario. Véase también USER.

MAIL

El nombre del buzón de entrada del sistema.

MH

Nombre del archivo de configuración para el sistema mh. Ver MH-E en La interfaz de Emacs para MH.

NAME

Su nombre real. Se utiliza para inicializar la variable user-full-name (véase 33.2 Campos de Cabecera de Correo).

NNTPSERVER

El nombre del servidor de noticias. Utilizado por los paquetes mh y Gnus.

ORGANIZATION

El nombre de la organización a la que pertenece. Se utiliza para establecer el encabezado Organization: en sus mensajes del paquete Gnus.

PATH

Una lista separada por dos puntos de directorios que contienen archivos ejecutables. Se utiliza para inicializar la variable exec-path (véase 39 Ejecución de comandos de shell desde Emacs).

PWD

Si se establece, este debe ser el directorio por defecto al iniciar Emacs.

REPLYTO

Si se establece, especifica un valor inicial para la variable mail-default-reply-to (véase 33.2 Campos de Cabecera de Correo).

SAVEDIR

El nombre de un directorio en el que se guardan por defecto los artículos de noticias. Utilizado por el paquete Gnus.

SHELL

El nombre de un intérprete utilizado para analizar y ejecutar programas lanzados desde dentro de Emacs. Se utiliza para inicializar la variable shell-file-name (véase 39.1 Comandos de shell Simples).

SMTPSERVER

El nombre del servidor de correo saliente. Se utiliza para inicializar la variable smtpmail-smtp-server (véase 33.4.1 Envío de Correo).

TERM

El tipo de terminal que Emacs está usando. Esta variable debe establecerse a menos que Emacs se ejecute en modo por lotes. En MS-DOS, por defecto es internal, que especifica una emulación de terminal incorporada que maneja la propia pantalla de la máquina.

TERMCAP

El nombre del archivo de biblioteca termcap que describe cómo programar el terminal especificado por TERM. Por defecto es /etc/termcap.

TMPDIR
TMP
TEMP

Estas variables de entorno se utilizan para inicializar la variable temporary-file-directory, que especifica un directorio en el que colocar los archivos temporales (véase 19.3.2 Archivos de Copia de Seguridad). Emacs intenta usar primero TMPDIR. Si no se establece, Emacs normalmente vuelve a /tmp, pero en MS-Windows y MS-DOS vuelve a TMP, luego a TEMP, y finalmente a c:/temp.

TZ

Especifica la zona horaria por defecto y posiblemente también información sobre el horario de verano. Ver Reglas de Zona Horaria en el Manual de Referencia Emacs Lisp . En MS-DOS, si TZ no está establecido en el entorno cuando se inicia Emacs, Emacs define un valor por defecto apropiado para el código de país devuelto por DOS. En MS-Windows, Emacs no usa TZ en absoluto.

USER

Nombre de inicio de sesión del Usuario. Véase también LOGNAME. En MS-DOS, por defecto es root.

VERSION_CONTROL

Se utiliza para inicializar la variable de control de versiones (véase 19.3.2.1 Copias de Seguridad Simples o Numeradas).

C.4.2 Otras Variables

Estas variables se utilizan sólo en configuraciones particulares:

COMSPEC

En MS-DOS y MS-Windows, el nombre del intérprete de comandos que se utilizará al invocar archivos por lotes y comandos internos del shell. También se utiliza para establecer un valor por defecto para la variable de entorno SHELL.

NAME

En MS-DOS, esta variable tiene por defecto el valor de la variable USER.

EMACSTEST

En MS-DOS, especifica un archivo para registrar el funcionamiento del emulador de terminal interno. Esta función es útil para enviar informes de errores.

EMACSCOLORS

En MS-DOS, esto especifica los colores de la pantalla. Es útil establecerlos de esta manera, ya que de otra forma Emacs mostraría los colores por defecto momentáneamente cuando se inicia.

El valor de esta variable debe ser la codificación de dos caracteres de los colores de primer plano (el primer carácter) y de fondo (el segundo carácter) de la cara por defecto. Cada carácter debe ser el código hexadecimal para el color deseado en una pantalla estándar de PC en modo texto. Por ejemplo, para obtener texto azul sobre un fondo gris claro, especifique EMACSCOLORS=17, ya que 1 es el código del color azul y 7 es el código del color gris claro.

La pantalla del PC normalmente sólo soporta ocho colores de fondo. Sin embargo, Emacs cambia la pantalla del DOS a un modo en el que los 16 colores pueden ser usados para el fondo, por lo que los cuatro bits del color de fondo son realmente usados.

PRELOAD_WINSOCK

En MS-Windows, si estableces esta variable, Emacs cargará e inicializará la biblioteca de red al arrancar, en lugar de esperar hasta la primera vez que se requiera.

WAYLAND_DISPLAY

Pgtk Emacs (construido con --with-pgtk) puede ejecutarse en Wayland de forma nativa. WAYLAND_DISPLAY especifica la conexión al compositor.

emacs_dir

En MS-Windows, emacs_dir es una variable de entorno especial, que indica la ruta completa del directorio en el que está instalado Emacs. Si Emacs está instalado en la estructura de directorios estándar, calcula este valor automáticamente. No sirve de mucho configurar esta variable por Usted mismo a menos que su instalación no sea estándar, ya que a diferencia de otras variables de entorno, será sobrescrita por Emacs al arrancar. Cuando establezca otras variables de entorno, como EMACSLOADPATH, puede que encuentre útil usar emacs_dir en lugar de codificar una ruta absoluta. Esto permite que múltiples versiones de Emacs compartan la misma configuración de variables de entorno, y le permite mover el directorio de instalación de Emacs, sin cambiar ninguna configuración de entorno o del registro.

C.4.3 El Registro del Sistema MS-Windows

En MS-Windows, las variables de entorno emacs_dir, EMACSLOADPATH, EMACSDATA, EMACSPATH, EMACSDOC, SHELL, TERM, HOME, LANG y PRELOAD_WINSOCK también pueden establecerse en la sección HKEY_CURRENT_USER o HKEY_LOCAL_MACHINE del registro del sistema, bajo la clave /Software/GNU/Emacs. Cuando Emacs se inicia, además de comprobar el entorno, también comprueba el registro del sistema en busca de esas variables.

Para determinar el valor de esas variables, Emacs sigue el siguiente procedimiento. Primero, comprueba el entorno. Si la variable no se encuentra allí, busca una clave de registro con el nombre de la variable en /Software/GNU/Emacs; primero en la sección HKEY_CURRENT_USER del registro, y si no se encuentra allí, en la sección HKEY_LOCAL_MACHINE. Finalmente, si el Editor sigue sin poder determinar los valores, utiliza los valores por defecto compilados.

Tenga en cuenta que la configuración del registro tiene un efecto global en todo el sistema: afectará a todas las sesiones de Emacs que se ejecuten en el sistema. Por lo tanto, si ejecuta diferentes versiones de Emacs, o usa tanto ejecutables de Emacs instalados como desinstalados, o construye nuevas versiones de Emacs, la configuración en el registro hará que todas ellas usen los mismos directorios, lo que probablemente no es lo que quiere. Por esta razón, recomendamos no configurar estas variables en el registro. Si tiene estos ajustes en el registro, le recomendamos que los elimine.

Si ejecuta el programa de instalación de Emacs MS-Windows addpm.exe, actualizará cualquier configuración existente en el registro de las variables emacs_dir, EMACSLOADPATH, EMACSDATA, EMACSPATH, EMACSDOC, SHELL y TERM para que tengan los valores adecuados para la versión de Emacs instalada con la que vino addpm.exe. Tenga en cuenta que addpm.exe no creará ninguna configuración del registro que no existiera, sólo actualizará las configuraciones existentes, que muy probablemente se heredaron de una instalación antigua de Emacs, para que sean compatibles con la versión de Emacs recién instalada. Ejecutar addpm.exe ya no es necesario cuando se instalan versiones recientes de Emacs, así que sólo recomendamos hacerlo si está actualizando desde una versión antigua, y no puede eliminar estas configuraciones del registro por alguna razón.

Además de las variables de entorno anteriores, también puede añadir opciones a la clave de registro /Software/GNU/Emacs para especificar recursos X (ver Apéndice D Opciones y Recursos de X Opciones X y Recursos). La mayoría de las opciones que puede especificar en su fichero .Xdefaults pueden ser configuradas desde esa clave del registro.

C.5 Especifica el Nombre de Pantalla

La variable de entorno DISPLAY indica a todos los clientes X, incluyendo Emacs, dónde mostrar sus ventanas. Su valor se establece por defecto en circunstancias normales, cuando arranca un servidor X y ejecuta trabajos localmente. Puede especificar la pantalla usted mismo; una razón para hacer esto es si quiere entrar en otro sistema y ejecutar Emacs allí, y tener la ventana mostrada en su terminal local.

DISPLAY tiene la sintaxis host:display.screen, donde host es el nombre de host de la máquina servidor del Sistema X Window, display es un número arbitrariamente asignado que distingue su servidor (terminal X) de otros servidores en la misma máquina, y screen es un campo que permite a un servidor X controlar múltiples pantallas de terminal. El punto y el campo screen son opcionales. Si se incluyen, screen suele ser cero.

Por ejemplo, si su host se llama glasperle y su servidor es el primero (o quizás el único) de la lista de configuración, su DISPLAY es glasperle:0.0.

Puede especificar el nombre de pantalla explícitamente cuando ejecute Emacs, bien cambiando la variable DISPLAY, bien con la opción -d display o --display=display. He aquí un ejemplo:

emacs --display=glasperle:0 &

Puede inhibir el uso del sistema de ventanas X con la opción -nw. Entonces Emacs usa su terminal de texto de control para la visualización. Ver C.2 Opciones Iniciales.

A veces, los arreglos de seguridad impiden que un programa en un sistema remoto se muestre en su sistema local. En este caso, intentar ejecutar Emacs produce mensajes como este:

Xlib:  connection to "glasperle:0.0" refused by server

Traducción:

Xlib: conexión a "glasperle:0.0" rechazada por el servidor

Es posible que pueda superar este problema utilizando el comando xhost en el sistema local para dar permiso de acceso desde su máquina remota.

C.6 Opciones de Especificación de Fuentes

Puede utilizar la opción de línea de comandos -fn font (o --font, que es un alias de -fn) para especificar un tipo de letra por defecto:

-fn font
--font=font

Utiliza a font como fuente por defecto.

Cuando pase un nombre de fuente a Emacs en la línea de órdenes, puede que necesite entrecomillarlo, encerrándolo entre comillas, si contiene caracteres que el shell trata de forma especial (como podrían ser espacios). Por ejemplo:

emacs -fn "DejaVu Sans Mono-12"

Consulte 22.8 Fuentes, para obtener más información sobre los nombres de las fuentes y otras formas de especificar la fuente predeterminada.

C.7 Opciones de Color de la Ventana

Puede usar las siguientes opciones de línea de comandos para especificar los colores a usar para varias partes de la pantalla de Emacs. Los colores pueden ser especificados usando nombres de colores o tripletes RGB (ver 15.9 Colores de las Caras).

-fg color
--foreground-color=color

Especifica el color de primer plano, anulando el color especificado por la cara por defecto (véase 15.8. Caras de Texto).

-bg color
--background-color=color

Especifica el color de fondo, anulando el color especificado por la cara por defecto.

-bd color
--border-color=color

Especifica el color del borde de la ventana X. Esto no tiene efecto si Emacs está compilado con soporte GTK+.

-cr color
--cursor-color=color

Especifica el color del cursor Emacs que indica dónde está el punto.

-ms color
--mouse-color=color

Especifica el color del cursor del ratón cuando éste se encuentra en la ventana de Emacs.

-r
-rv
--reverse-video

Vídeo inverso: intercambia los colores de primer plano y de fondo.

--color=mode

Establece el modo de soporte de color cuando Emacs se ejecuta en un terminal de texto. Esta opción anula el número de colores soportados que el terminal de caracteres anuncia en su base de datos termcap o terminfo. El parámetro modo puede ser uno de los siguientes:

never
no

No usa colores aunque las capacidades del terminal especifiquen soporte de color.

default
auto

Igual que cuando --color no se usa en absoluto: Emacs detecta al inicio si el terminal soporta colores, y si lo hace, activa la visualización en color.

always
yes
ansi8

Activa el soporte de color incondicionalmente, y utiliza comandos de color especificados por las secuencias de escape ANSI para los 8 colores estándar.

num

Usa el modo de color para num colores. Si num es -1, desactiva el soporte de color (equivalente a never); si es 0, usa el soporte de color por defecto para este terminal (equivalente a auto); de lo contrario usa un modo estándar apropiado para num colores. Dependiendo de las capacidades de su terminal, Emacs podría ser capaz de activar un modo de color para 8, 16, 88, o 256 como el valor de num. Si no hay un modo que soporte num colores, Emacs actúa como si num fuera 0, es decir, usa el modo de soporte de color por defecto del terminal.

Si se omite mode, el valor predeterminado es ansi8.

Por ejemplo, para utilizar un cursor de ratón coral y un cursor de texto azul pizarra, introduzca:

emacs -ms coral -cr 'slate blue' &

Puede invertir los colores de primer plano y fondo mediante la opción -rv o con el recurso X reverseVideo.

Las opciones -fg, -bg y -rv funcionan tanto en terminales de texto como en pantallas gráficas.

C.8 Opciones para el Tamaño y la Posición de la Ventana

Esta es una lista de las opciones de la línea de comandos para especificar el tamaño y la posición del marco inicial de Emacs:

-g widthxheight[{+-}xoffset{+-}yoffset]]
--geometry=widthxheight[{+-}xoffset{+-}yoffset]]

Especifica el tamaño ancho y alto (medidos en columnas y líneas de caracteres), y las posiciones xoffset y yoffset (medidas en píxeles). Los parámetros de ancho y alto se aplican a todos los marcos, mientras que xoffset y yoffset sólo al marco inicial.

-fs
--fullscreen

Especifica que ancho y altura deben ser los de la pantalla. Normalmente no se muestra ninguna decoración del gestor de ventanas. (Después de iniciar Emacs, puede alternar este estado usando F11, toggle-frame-fullscreen).

-mm
--maximized

Especifica que el marco de Emacs debe ser maximizado. Esto normalmente significa que el marco tiene decoraciones del gestor de ventanas. (Después de iniciar Emacs, puede alternar este estado usando M-F10, toggle-frame-maximized).

-fh
--fullheight

Especifica de que tamaño debe ser la altura de la pantalla.

-fw
--fullwidth

Especifica que tamaño debe ser el ancho de la pantalla.

En la opción --geometry, {+-} significa un signo más o un signo menos. Un signo más antes de xoffset significa que es la distancia desde el lado izquierdo de la pantalla; un signo menos significa que cuenta desde el lado derecho. Un signo más antes de yoffset significa que es la distancia desde la parte superior de la pantalla, y un signo menos allí indica la distancia desde la parte inferior. Los valores xoffset y yoffset pueden ser positivos o negativos, pero eso no cambia su significado, sólo su dirección.

Emacs usa las mismas unidades que xterm para interpretar la geometría. El ancho y la altura se miden en caracteres, por lo que una fuente grande crea un marco más grande que una fuente pequeña. (Si especifica una fuente proporcional, Emacs utiliza su anchura máxima de límites como unidad de anchura). El xoffset y el yoffset se miden en píxeles.

No es necesario especificar todos los campos en la especificación de geometría. Si omite xoffset y yoffset, el gestor de ventanas decide dónde colocar el marco de Emacs, posiblemente dejándole colocarlo con el ratón. Por ejemplo, 164x55 especifica una ventana de 164 columnas de ancho, suficiente para dos ventanas de ancho normal una al lado de la otra, y 55 líneas de alto.

El ancho por defecto del marco es de 80 caracteres y la altura por defecto está entre 35 y 40 líneas, dependiendo del sistema operativo y del gestor de ventanas. Puede omitir el ancho, la altura o ambas. Si comienza la geometría con un entero, Emacs lo interpreta como la anchura. Si empieza con una x seguida de un entero, Emacs lo interpreta como la altura. Así, 81 especifica sólo la anchura; x45 especifica sólo la altura.

Si se inicia la geometría con + o -, se introduce un desplazamiento, lo que significa que se omiten ambos tamaños. Así, -3 especifica sólo el desplazamiento xoffset. (Si sólo se da un desplazamiento, siempre es el desplazamiento xoffset). +3-3 especifica tanto el desplazamiento xoffset como el desplazamiento yoffset, colocando el marco cerca de la parte inferior izquierda de la pantalla.

Puede especificar un valor por defecto para cualquiera o todos los campos en su archivo de recursos X (ver D.1 Recursos X), y luego anular los campos seleccionados con la opción --geometry.

Dado que la línea de modo y el área de eco ocupan las 2 últimas líneas del marco, la altura de la ventana de texto inicial es 2 menos que la altura especificada en su geometría. En las versiones de Emacs que no son del toolkit X, la barra de menú también ocupa una línea del número especificado. Pero en la versión X toolkit, la barra de menú es adicional y no cuenta para la altura especificada. La barra de herramientas, si está presente, también es adicional.

Activar o desactivar la barra de menú o la barra de herramientas altera la cantidad de espacio disponible para el texto ordinario. Por lo tanto, si Emacs se inicia con una barra de herramientas (que es el valor por defecto), y maneja la especificación de la geometría asumiendo que hay una barra de herramientas, y luego su archivo de inicialización desactiva la barra de herramientas, usted terminará con una geometría de marco diferente de lo que pidió. Para obtener el tamaño deseado sin barra de herramientas, usa un recurso X para especificar «sin barra de herramientas» (ver D.1 Recursos X); entonces el Editor ya sabrá que no hay barra de herramientas cuando procese la geometría especificada.

Cuando se utiliza una de las opciones --fullscreen, --maximized, --fullwidth o --fullheight, algunos gestores de ventanas requieren que se establezca la variable frame-resize-pixelwise a un valor no nulo para que un marco aparezca realmente maximizado o a pantalla completa.

Algunos gestores de ventanas tienen opciones que pueden hacer que ignoren tanto las posiciones especificadas por el programa como las especificadas por el usuario. Si estas opciones están activadas, Emacs no posicionará la ventana correctamente.

C.9 Bordes Interno y Externo

Un marco Emacs tiene un borde interno y un borde externo. El borde interno es una franja extra del color de fondo alrededor de la porción de texto del marco. El borde interno lo dibuja el propio Emacs. El borde exterior lo dibuja X fuera de las barras de herramientas y menús del marco. También hay un borde externo que dibuja el gestor de ventanas. El tamaño del borde externo no se puede ajustar desde Emacs.

-ib width
--internal-border=width

Especifica el ancho del borde interno (alrededor del área de texto del marco), en píxeles.

-bw width
--border-width=width

Especifica el ancho del borde exterior, en píxeles.

Al especificar el tamaño del marco, no se tienen en cuenta los bordes. La posición del marco se mide desde el borde exterior del borde externo.

Utilice la opción -ib n para especificar un borde interno de n píxeles de ancho. El valor por defecto es 1. Utilice -bw n para especificar el ancho del borde exterior (aunque el gestor de ventanas puede no prestar atención a lo que especifique). El ancho predeterminado del borde exterior es 2.

C.10 Títulos de los Marcos

Cada marco de Emacs tiene siempre un título, que aparece en las decoraciones de las ventanas y en los iconos como el nombre del marco. El título por defecto es de la forma invocation-name@machine (si sólo hay un marco) o muestra el nombre del buffer de la ventana seleccionada (si hay más de un marco).

Puede especificar un título no predeterminado para el marco inicial de Emacs con una opción de la línea de comandos:

-T título
--title=título

Especifica título como título para el marco inicial de Emacs.

La opción --name (ver D.1 Recursos X) también especifica el título para el marco inicial de Emacs.

C.11 Íconos

-iconic
--iconic

Inicia Emacs en un estado iconificado.

-nbi
--no-bitmap-icon

Desactiva el uso del icono de Emacs.

La mayoría de los gestores de ventanas le permiten iconificar (o «minimizar») un marco de Emacs, ocultándolo de la vista. Algunos gestores de ventanas sustituyen las ventanas iconificadas por iconos diminutos, mientras que otros las eliminan por completo de la vista. La opción -iconic le dice a Emacs que comience a ejecutarse en un estado iconificado, en lugar de mostrar un marco inmediatamente. El marco de texto no aparecerá hasta que lo desiconifique (o «desminimice»).

Por defecto, Emacs usa un icono que contiene el logo de Emacs. En entornos de escritorio como Gnome, este icono también se muestra en otros contextos, por ejemplo, al cambiar a un marco Emacs. La opción -nbi o --no-bitmap-icon le dice a Emacs que deje que el gestor de ventanas elija qué tipo de icono usar, normalmente un pequeño rectángulo que contiene el título del marco.

C.12 Otras Opciones de Visualización

--parent-id id

Abre Emacs como una ventana X cliente a través del protocolo XEmbed, con id como el id de la ventana X padre. Actualmente, esta opción es útil principalmente para desarrolladores.

-vb
--vertical-scroll-bars

Activa las barras de desplazamiento vertical.

-lsp pixels
--line-spacing=pixels

Especifica el espacio adicional entre líneas, en píxeles.

-nbc
--no-blinking-cursor

Desactiva el cursor parpadeante en las pantallas gráficas.

-D
--basic-display

Desactiva la barra de menú, la barra de herramientas, las barras de desplazamiento, los sugerencias de herramientas, y desactiva el modo de bloqueo de fuente y el cursor parpadeante. Esto puede ser útil para hacer un caso de prueba que simplifique la depuración de problemas de visualización.

La opción --xrm (ver D.1 Recursos X) especifica valores adicionales de recursos X.