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 Usando 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’

Visita el archivo especificado. Ver Visitando Archivos.

Cuando Emacs se inicia, muestra el buffer de inicio en una ventana, y el buffer que visita el fichero en otra ventana (ver Ventanas Múltiples). Si proporcionas más de un argumento de fichero, el fichero 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 Entrando en Emacs), entonces arrancar Emacs con un argumento de fichero muestra el fichero 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 Operando en Varios Buffers). 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 fichero absoluto, Emacs lo busca primero en el directorio actual, y luego en los directorios listados en load-path (ver 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, usa “;” en lugar de “:”; es decir, usa el valor de path-separator).

‘–funcall=function’

Llama a una función Lisp. 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 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 Búferes de interacción de 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 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 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 al 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 llamada display para abrir el marco inicial de Emacs. Vea Especificando el Nombre de la 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 Argumentos de Acción). Vea 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 e 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 buffers 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 backtrace de Emacs Lisp. Para desactivar este comportamiento, establezca backtrace-on-error-noninteractive a nil.

‘–script file’

Ejecuta Emacs en modo batch, como “–batch”, y luego lee y ejecuta el código Lisp en el 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 file. 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.

‘-q’ ‘–no-init-file’

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.

‘–no-site-file’ ‘-nsl’

No carga site-start.el (ver 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 El Archivo de Inicio 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 Entrando en Emacs).

‘–no-x-resources’

No carga recursos X. También puede conseguir este efecto estableciendo la variable inhibit-x-resources en t en su archivo de inicialización (consulte 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 invoques emacsclient, mediante su opción –socket-name, ver Opciones de emacsclient). Ver Usando 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 Guardar Sesiones de Emacs.

‘-u usuario’ ‘–user=usuario’

Carga el fichero de inicialización del usuario en lugar del suyo propio25.

‘–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=file’

Carga el estado volcado de Emacs desde el archivo nombrado. 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 sólo 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.

  1. Esta opción no tiene ningún efecto en MS-Windows.

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 $). 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 ORGANIZATION=»no mucho»

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

setenv ORGANIZATION «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 están configuradas.

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 directorios26 para buscar archivos Emacs Lisp. Si se establece, modifica el valor inicial habitual de la variable load-path (véase 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 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 Ejecutando comandos 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 Campos de la Cabecera de Correo).

ESHELL

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

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 usas 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 tu 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 Entornos lingüísticos.

LOGNAME

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

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 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 “Organización:” 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 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 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 Comandos Simples de shell).

SMTPSERVER

El nombre del servidor de correo saliente. Se utiliza para inicializar la variable smtpmail-smtp-server (véase 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 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 The GNU Emacs Lisp Reference Manual. 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 Copias de Seguridad Simples o Numeradas).

  1. Aquí y a continuación, siempre que digamos «lista de directorios separada por dos puntos», nos referiremos a sistemas Unix y GNU/Linux. En MS-DOS y MS-Windows, los directorios se separan por punto y coma, ya que los nombres de archivo de DOS/Windows pueden incluir dos puntos después de la letra de la unidad.

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í, Emacs 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 Emacs 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 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 pantalla 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, tu 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 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 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’

Utilizar 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 (por ejemplo, espacios). Por ejemplo:

emacs -fn «DejaVu Sans Mono-12»

Consulte 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

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 Colores para Caras).

‘-fg color’ ‘–foreground-color=color’

Especifica el color de primer plano, anulando el color especificado por la cara por defecto (véase 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 anchura y altura se aplican a todos los fotogramas, mientras que xoffset y yoffset sólo al marco inicial.

‘-fs’ ‘–fullscreen’

Especifica que la anchura y la altura deben ser las de la pantalla. Normalmente no se muestra ninguna decoración del gestor de ventanas. (Después de iniciar Emacs, puedes 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’

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

‘-fw’ ‘–fullwidth’

Especifique 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. La anchura 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 x. (Si sólo se da un desplazamiento, siempre es el desplazamiento x). (Si sólo da un desplazamiento, siempre es el desplazamiento x.) “+3-3” especifica tanto el desplazamiento x como el desplazamiento yo, colocando el marco cerca de la parte inferior izquierda de la pantalla.

Puedes especificar un valor por defecto para cualquiera o todos los campos en su archivo de recursos X (ver 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 Tabla de Recursos X para Emacs); 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’

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

‘-bw width’ ‘–border-width=width’

Especifique 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). La anchura predeterminada 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 title’ ‘–title=title’

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

La opción “–name” (ver 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 «desminimices»).

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 Recursos X) especifica valores adicionales de recursos X.