22 Marcos y Pantallas Gráficas
Cuando Emacs se inicia en una pantalla gráfica, por ejemplo, en el sistema X Window, ocupa una región de pantalla gráfica a nivel de sistema. En este manual, llamamos a esto marco, reservando la palabra «ventana» para la parte del marco usada para mostrar un búfer. Un marco contiene inicialmente una ventana, pero puede subdividirse en múltiples ventanas (ver 21 Varias Ventanas). Normalmente, un marco también contiene una barra de menús, una barra de herramientas y un área de eco.
También puede crear marcos adicionales (véase 22.6 Creación de Marcos Creación de Marcos). Todos los marcos creados en la misma sesión de Emacs tienen acceso a los mismos búferes subyacentes y otros datos. Por ejemplo, si un búfer está siendo mostrado en más de un marco, cualquier cambio hecho en él en un marco se muestra inmediatamente en los otros marcos también.
Tecleando Ctrl-x Ctrl-c (C-x C-c
) se cierran todos los marcos de la pantalla actual, y finaliza la sesión Emacs si no tiene marcos abiertos en ninguna otra pantalla (ver 7 Cómo Salir de Emacs Salir de Emacs). Para cerrar sólo el marco seleccionado, teclee Ctrl-x 50 (C-x 5 0
, cero, no o).
Este capítulo describe las características de Emacs específicas de las pantallas gráficas (particularmente los comandos del ratón), y las características para gestionar múltiples marcos. En terminales de texto, muchas de estas características no están disponibles. Sin embargo, todavía es posible crear múltiples marcos en terminales de texto; tales marcos se muestran de uno en uno, llenando toda la pantalla del terminal (ver 22.22 Uso del Ratón en Terminales de Texto Terminales Sin Ventana). También es posible usar el ratón en algunos terminales de texto (véase 12.2 Comandos para Marcar Objetos Textuales Uso del Ratón en Terminales de Texto, para hacerlo en sistemas GNU y Unix; y véase Uso del Ratón en MS-DOS, para hacerlo en MS-DOS). Todos los terminales de texto admiten menús.
22.1 Comandos del Ratón para Edición
ratón-1
Mueve el punto al lugar donde hace clic (
mouse-set-point
).arrastrar-mouse-2
Activa la región alrededor del texto seleccionado arrastrando, y sitúa el texto en la selección primaria (
mouse-set-region
).ratón-2
Mueve el punto hacia donde ha hecho clic, e inserta allí el contenido de la selección primaria (
mouse-yank-primary
).ratón-3
Si la región está activa, desplaza el extremo más cercano de la región a la posición del clic; en caso contrario, sitúa la marca en el valor actual del punto y el punto en la posición del clic. Guarda la región resultante en el anillo de muertes; con un segundo clic, se desactiva (
mouse-save-then-kill
).
Ctrl-Alt-ratón-1
(C-M-ratón-1
)
Activa una región rectangular alrededor del texto seleccionado arrastrando. Véase 13.5 Rectángulos Rectángulos.
El comando más básico del ratón es mouse-set-point
(establecer el punto) con el ratón, que se invoca haciendo clic con el botón izquierdo del ratón, (ratón-1
), en el área de texto de una ventana. Esto mueve el punto a la posición donde hizo clic. Si esa ventana no era la ventana seleccionada, Se convertirá en ella. También puede activar una región haciendo doble clic con ratón-1
(consulte 22.2 Comandos de Ratón para Palabras y Líneas).
Normalmente, si el marco en el que ha hecho clic no era el marco seleccionado, se convierte en éste, además de seleccionar la ventana y fijar el cursor. En el sistema X Window, puede cambiar esto estableciendo la variable x-mouse-click-focus-ignore-position
a t
. En ese caso, el clic inicial en un marco no seleccionado sólo selecciona el marco, sin hacer nada más; hacer clic de nuevo selecciona la ventana y establece la posición del cursor.
Mantener pulsado ratón-1
y arrastrar el ratón sobre un tramo de texto activa la región alrededor de ese texto (mouse-set-region
), colocando la marca donde se empezó a mantener pulsado el botón del ratón, y el punto donde se suelta (véase 12 La marca y la región). Además, el texto de la región se convierte en la selección principal (véase 13.3.2 Cortar y Pegar con Otras Aplicaciones de Ventana).
Si cambia la variable mouse-drag-copy-region
a un valor no nulo, al arrastrar el ratón sobre un tramo de texto también se añade el texto al anillo de destrucción. El valor por defecto es nil
.
Si esta variable es no-empty
, sólo se copiará al anillo de muertes si la región no está vacía. Por ejemplo, si arrastra con el ratón un área de menos de medio carácter, normalmente obtendría la cadena vacía en el anillo de muertes, pero con non-empty
, este breve arrastre del ratón no afectará a dicho anillo.
Si mueve el ratón fuera de la parte superior o inferior de la ventana mientras arrastra, la ventana se desplaza a un ritmo constante hasta que vuelva a mover el ratón dentro de la ventana. De este modo, puede seleccionar regiones que no caben completamente en la pantalla. El número de líneas que se desplazan por paso depende de lo lejos que se haya alejado el ratón del borde de la ventana; la variable mouse-scroll-min-lines
especifica un tamaño mínimo de paso.
Si activa la opción mouse-drag-mode-line-buffer
y el sistema de ventanas admite el arrastre de archivos, al arrastrar el ratón sobre la parte del nombre del búfer de la línea de modo se arrastrará el archivo de ese búfer a otro programa o marco.
Haciendo clic con el botón central del ratón (ratón-2
) mueve el punto a la posición donde hizo clic e inserta el contenido de la selección primaria (mouse-yank-primary
). Consulte 13.3.2 Cortar y Pegar con Otras Aplicaciones de Ventana. Este comportamiento es consistente con otras aplicaciones X. Como alternativa, puede volver a vincular mouse-2
a mouse-yank-at-click
, que jala (tira) en la posición en la que hizo clic.
Si cambia la variable mouse-yank-at-point
a un valor no nulo, mouse-2
no mueve el punto; inserta el texto en el punto, independientemente de dónde haya hecho clic o incluso en cuál de las ventanas del marco haya hecho clic. Esta variable afecta tanto a mouse-yank-primary
como a mouse-yank-at-click
.
Al hacer clic con el botón derecho del ratón (mouse-3
) se ejecuta el comando mouse-save-then-kill
. Esto realiza varias acciones dependiendo de dónde haga clic y del estado de la región:
Si no hay ninguna región activa, al pulsar
ratón-3
se activa la región, colocando la marca donde estaba el punto y el punto en la posición pulsada.Si hay una región activa, al pulsar
ratón-3
se ajusta el extremo más cercano de la región, desplazándolo a la posición pulsada. El texto de la región ajustada se copia en el anillo de muertes; si el texto de la región original ya estaba en el anillo de muertes, lo sustituye allí.Si originalmente especificó la región usando un doble o triple
ratón-1
, de modo que la región se define para consistir en palabras o líneas enteras (ver 22.2 Comandos de Ratón para Palabras y Líneas), entonces el ajuste de la región conratón-3
también procede por palabras o líneas enteras.Si usa
ratón-3
una segunda vez consecutiva, en el mismo lugar, eso mata la región ya seleccionada. Por lo tanto, la forma más sencilla de matar el texto con el ratón es hacer clic conratón-1
en un extremo, a continuación, haga clic en elratón-3
dos veces en el otro extremo. Para copiar el texto en el anillo de muertes sin borrarlo del búfer, pulseratón-3
una sola vez, o simplemente arrastre el texto conratón-1
. Luego puede copiarlo en otro lugar pulsando el botón delratón-1
en un extremo y luego pulsandoratón-3
dos veces en el otro extremo. Luego puede copiarlo en otro lugar tirando de él.
El comando mouse-save-then-kill
también obedece a la variable mouse-drag-copy-region
(descrita anteriormente). Si el valor es distinto de cero, siempre que el comando establezca o ajuste la región activa, el texto de la región también se añadirá al anillo de muertes. Si la última entrada de dicho anillo se había añadido de la misma manera, esa entrada se sustituye en lugar de hacer una nueva entrada.
Siempre que ajuste la región mediante cualquiera de los comandos del ratón descritos anteriormente, la marca se desactivará mediante cualquier comando posterior de movimiento del cursor sin desplazamiento, además de las formas habituales de desactivar la marca. Véase 12.6 Selección mediante Mayúsculas (Shift).
Algunos ratones tienen una «rueda» que puede usarse para desplazarse. Emacs soporta el desplazamiento de ventanas con la rueda del ratón, por defecto, en la mayoría de las pantallas gráficas. Para activar esta función, use M-x mouse-wheel-mode
. Las variables mouse-wheel-follow-mouse
y mouse-wheel-scroll-amount
determinan dónde y cuánto se desplazan los búferes. La variable mouse-wheel-progressive-speed
determina si la velocidad de desplazamiento está vinculada a la rapidez con la que se mueve la rueda. Este modo también permite aumentar o disminuir el tamaño de la fuente, por defecto vinculado al desplazamiento con el modificador Ctrl (Ctrl
). Cuando este modo está activado, la rueda del ratón produce eventos especiales como wheel-up
(rueda-arriba) y wheel-down
(rueda-abajo). (Algunos sistemas antiguos los reportan como ratón-4
y ratón-5
) Si el ratón tiene una rueda de desplazamiento horizontal, también produce eventos wheel-left
(rueda-izquierda) y wheel-right
(rueda-derecha).
Emacs también soporta el desplazamiento horizontal con el modificador Shift. Escribiendo un prefijo numérico arg (e.g., Alt-5 (M-5
)) antes de iniciar el desplazamiento horizontal cambia su valor de paso definido por la opción de Usuario mouse-wheel-scroll-amount-horizontal
.
Si la rueda del ratón se puede inclinar, o si el panel táctil lo permite, también puede activar el desplazamiento horizontal personalizando la variable mouse-wheel-tilt-scroll
con un valor distinto de cero. Por defecto, al inclinar la rueda del ratón, la vista de la ventana se desplaza horizontalmente en la dirección de la inclinación: por ejemplo, si se inclina hacia la derecha, la ventana se desplaza hacia la derecha, de modo que el texto que aparece en la ventana se desplaza horizontalmente hacia la izquierda. Si desea invertir la dirección del desplazamiento horizontal, personalice la variable mouse-wheel-flip-direction
a un valor no nulo.
Cuando el puntero del ratón está sobre una imagen en el modo Imagen, véase 19.19 Visualización de Archivos de Imagen, el desplazamiento de la rueda del ratón con el modificador Ctrl escala la imagen bajo el puntero del ratón, y el desplazamiento de la rueda del ratón con el modificador Shift desplaza la imagen horizontalmente.
22.2 Comandos de Ratón para Palabras y Líneas
Estas variantes de ratón-1
seleccionan palabras o líneas enteras a la vez. Emacs activa la región alrededor del texto seleccionado, que también se copia en el anillo de muertes.
doble-clic-ratón-1
Selecciona el texto que rodea a la palabra o carácter sobre el que se hace clic.
El doble clic sobre un carácter con sintaxis de símbolo (como el guión bajo, en modo C) selecciona el símbolo que rodea a ese carácter. Al hacer doble clic en un carácter con sintaxis de paréntesis abierto o cerrado, se selecciona la agrupación parentética que inicia o termina dicho carácter. Doble clic sobre un carácter con sintaxis de delimitador de cadena (como una comilla simple o doble en C) selecciona la constante de la cadena (Emacs usa heurística para averiguar si ese carácter es el principio o el final de la misma).
Haciendo doble clic al principio de una agrupación parentética o al principio de un delimitador de cadena se mueve el punto al final de la región, desplazando la pantalla del búfer hacia delante si es necesario para mostrar la nueva ubicación del punto. Si se hace doble clic al final de una agrupación parentética o de un delimitador de cadena final, el punto se mantiene por defecto al final de la región, por lo que el principio de la región no será visible si se encuentra por encima de la parte superior de la ventana; si se establece la opción de Usuario
mouse-select-region-move-to-beginning
(seleccionar región con el ratón-mover al principio) a un valor distinto de cero, el punto se moverá al principio de la región, desplazando la pantalla hacia atrás si es necesario.doble-clic-ratón-1-arrastrar
Selecciona el texto que arrastre, en unidades de palabras enteras.
triple-clic-ratón-1
Seleccione la línea en la que hace clic.
tripe-clic-ratón-1-arrastrar
Selecciona el texto que arrastra, en unidades de líneas enteras.
22.3 Seguir Referencias con el Ratón
Algunos búferes de Emacs incluyen botones, o hipervínculos: fragmentos de texto que realizan alguna acción (por ejemplo, seguir una referencia) cuando se activan (por ejemplo, pulsando sobre ellos). Normalmente, el texto de un botón se resalta visualmente: aparece subrayado o se dibuja un recuadro a su alrededor. Si pasa el ratón por encima de un botón, la forma del cursor cambia y el botón se ilumina. Si cambia la variable mouse-highlight
a nil
, Emacs desactiva este resaltado.
Puede activar un botón moviendo el puntero sobre él y escribiendo RETURN (RET
), o pulsando con ratón-1
o ratón-2
sobre el botón. Por ejemplo, en un búfer Dired, cada nombre de archivo es un botón; activarlo hace que Emacs visite ese archivo (ver 21 Varias Ventanas). En un búfer *Compilation*
, cada mensaje de error es un botón, y al activarlo se visita el código fuente de ese error (ver 28.1 Ejecutar Compiladores en Emacs).
Aunque pulsar con ratón-1
sobre un botón normalmente activa el botón, si mantiene pulsado el botón del ratón durante un periodo de tiempo antes de soltarlo (concretamente, durante más de 450 milisegundos), entonces Emacs mueve el punto donde ha pulsado, sin activar el botón. De esta forma, puede utilizar el ratón para mover el punto sobre un botón sin activarlo. Arrastrar el ratón sobre o hacia un botón tiene su comportamiento habitual de fijar la región, y no activa el botón.
Puede cambiar cómo se aplica ratón-1
a los botones personalizando la variable mouse-1-click-follows-link
. Si el valor es un entero positivo, esto determina cuánto tiempo necesita mantener pulsado el botón del ratón, en milisegundos, para cancelar la activación del botón; el valor por defecto es 450, como se describe en el párrafo anterior. Si el valor es nil
, ratón-1
sólo fija el punto donde se hizo clic, y no activa los botones. Si el valor es double
, los clics dobles activan los botones, pero los clics simples sólo fijan el punto.
Normalmente, ratón-1
en un botón activa el botón incluso si está en una ventana no seleccionada. Si cambia la variable mouse-1-click-in-non-selected-windows
a nil
, ratón-1
sobre un botón en una ventana no seleccionada mueve el punto a la posición del clic y selecciona esa ventana, sin activar el botón.
22.5 Comandos del Ratón en la Línea de Modo
Puede usar los clics del ratón en las líneas de modo de ventana para seleccionar y manipularlas.
Algunas áreas de la línea de modo, como el nombre del búfer y los nombres de los modos mayor y menor, tienen sus propios enlaces especiales del ratón. Estas áreas se resaltan cuando se mantiene el ratón sobre ellas, y se mostrará información sobre los enlaces especiales (ver 22.19 Sugerencias sobre Herramientas (Tooltips)). Los comandos de esta sección no se aplican en esas áreas.
ratón-1
ratón-1
sobre una línea de modo selecciona la ventana a la que pertenece. Arrastrandoratón-1
sobre la línea de modo, puede moverla, cambiando así la altura de las ventanas por encima y por debajo. Al cambiar la altura con el ratón de esta manera nunca se borran ventanas, sólo se niega a hacer cualquier ventana más pequeña que la altura mínima.ratón-2
ratón-2
en una línea de modo expande esa ventana para llenar su marco.ratón-3
ratón-3
sobre una línea de modo borra la ventana a la que pertenece. Si el marco sólo tiene una ventana, no hace nada.
Ctrl-ratón-2
(C-ratón-2
)
C-ratón-2
en una línea de modo divide esa ventana, produciendo dos ventanas una al lado de la otra con el límite pasando por la posición del clic (ver 21.2 Ventanas Divididas).
Además, haciendo clic y arrastrando ratón-1
en el divisor entre dos líneas de modo contiguas, puede mover el límite vertical a la izquierda o a la derecha.
Tenga en cuenta que el cambio de tamaño de las ventanas se ve afectado por el valor de window-resize-pixelwise
, véase 21.2 Ventanas Divididas.
22.6 Creación de Marcos
La tecla de prefijo Ctrl-x 5 (C-x 5
) es análoga a Ctrl-x 4 (C-x 4
). Mientras que cada comando C-x 4
abre un búfer en una ventana diferente del marco seleccionado (véase 21.4 Visualización en Otra Ventana), los comandos C-x 5
usan un marco diferente. Si un marco existente visible o iconificado (también conocido como «minimizado», ver Visibilidad de Marcos en el Manual de Referencia de Emacs Lisp) ya muestra el búfer solicitado, ese marco es levantado y deiconificado («des-minimizado»); de lo contrario, un nuevo marco es creado en el terminal de visualización actual.
Los distintos comandos C-x 5
difieren en cómo encuentran o crean el búfer a seleccionar:
Ctrl-x 52 (C-x 5 2
)
Crea un nuevo marco usando los parámetros por defecto del marco (
make-frame-command
).
Ctrl-x 5c (C-x 5 c
)
Crea un nuevo marco usando la configuración de la ventana y los parámetros del marco actual (
clone-frame
).
Ctrl-x 5b nombrebúfer RETURN (C-x 5 b
nombrebúfer RET
)
Selecciona el búfer nombrebúfer en otro marco. Esto ejecuta
switch-to-buffer-other-frame
.
Ctrl-x 5f nombrearchivo RETURN (C-x 5 f
nombrearchivo RET
)
Visita el archivo nombrearchivo y selecciona su búfer en otro marco. Esto ejecuta
find-file-other-frame
(buscar-archivo-otro-marco). Véase 19.2 Visitar Archivos.
Ctrl-x 5d directorio RETURN (C-x 5 d
directorio RET
)
Selecciona un búfer Dired para el directorio en otro marco. Esto ejecuta
dired-other-frame
(directorio-otro-marco). Véase 31 Dired, el Editor de Directorios.
Ctrl-x 5m (C-x 5 m
)
Comienza a redactar un mensaje de correo en otro marco. Esto ejecuta
compose-mail-other-frame
(componer-correo-otro-marco). Es la variante para otro marco deC-x m
. Véase 33 Envío de Correo.
Ctrl-x 5. (C-x 5 .
)
Encuentra la definición de un identificador en otro marco. Esto ejecuta
xref-find-definitions-other-frame
, la variante de marcos múltiples de Alt-. (M-.
). Véase 29.4 Buscar Referencias de Identificador.
Ctrl-x 5r (C-x 5 r
nombrearchivo RET
)
Visita el archivo nombrearchivo de sólo lectura, y selecciona su búfer en otro marco. Esto ejecuta
find-file-read-only-other-frame
. Véase 19.2 Visitar Archivos.
Ctrl-x 55 (C-x 5 5
)
Un comando prefijo más general que afecta al búfer mostrado por el siguiente comando invocado inmediatamente después de este comando prefijo (
other-frame-prefix
). Solicita que el búfer del siguiente comando se muestre en otro marco.
Puede controlar la apariencia y el comportamiento de los marcos recién creados especificando parámetros de marco. Consulte 22.11 Parámetros de Marco.
22.7 Comandos de Marco
Los siguientes comandos se usan para borrar y operar sobre marcos:
Ctrl-x 50 (C-x 5 0
)
Elimina el marco seleccionado (
delete-frame
). Esto indica un error si sólo hay un marco.
Ctrl-x 5u (C-x 5 u
)
Cuando se activa el modo
undelete-frame-mode
, se recupera uno de los 16 marcos eliminados más recientemente. Sin un argumento de prefijo, recupera el último marco eliminado. Con un prefijo numérico entre 1 y 16, donde 1 es el último marco borrado, se borra el marco correspondiente.
Ctrl-z (C-z
)
Minimiza (o iconifica) el marco de Emacs seleccionado (
suspend-frame
, suspender-marco). Ver 7 Cómo Salir de Emacs.
Ctrl-x 5o (C-x 5 o
)
Selecciona otro marco y lo levanta. Si repite este comando, recorre todos los marcos de su terminal.
Ctrl-x 51 (C-x 5 1
)
Borra todos los marcos del terminal actual, excepto el seleccionado.
Alt-F10 (M-F10
)
Cambia el estado de maximización del marco actual. Cuando un marco está maximizado, ocupa toda la pantalla.
F11 (F11
)
Activa el modo de pantalla completa para el marco actual. (La diferencia entre pantalla completa y maximizada es normalmente que la primera oculta las decoraciones del gestor de ventanas, dando algo más de espacio de pantalla al propio Emacs).
Tenga en cuenta que con algunos gestores de ventanas puede que tenga que personalizar la variable frame-resize-pixelwise
a un valor no nulo para que un marco quede realmente maximizado o a pantalla completa. Esta variable, cuando se establece a un valor no nulo, en general permite redimensionar marcos a resolución de píxel, en lugar de en múltiplos integrales de líneas y columnas.
El comando C-x 5 0
(delete-frame
, borrar marco) borra el marco seleccionado. Sin embargo, se negará a borrar el último marco de una sesión Emacs, para evitar que pierda la capacidad de interactuar con la sesión Emacs. Tenga en cuenta que cuando Emacs se ejecuta como demonio (vea 40 Usar Emacs Como Servidor), siempre hay un marco virtual que permanece después de que todos los marcos interactivos ordinarios son borrados. En este caso, C-x 5 0
puede borrar el último marco interactivo; puedes usar emacsclient
para reconectar con la sesión de Emacs.
El comando C-x 5 1
(delete-other-frames
) borra todos los otros marcos en la terminal actual (esta terminal se refiere tanto a una pantalla gráfica, como a una terminal de texto; ver 22.21 Terminales sin Ventana). Si la sesión Emacs tiene marcos abiertos en otras pantallas gráficas o terminales de texto, éstos no se borran.
El comando C-x 5 o
(other-frame
) selecciona el siguiente marco en el terminal actual. Si está usando Emacs en el sistema X Window con un gestor de ventanas que selecciona (o da foco) a cualquier marco sobre el que esté el cursor del ratón, tiene que cambiar la variable focus-follows-mouse
a t
para que este comando funcione correctamente. Entonces invocar C-x 5 o
también deformará el cursor del ratón en el marco elegido.
22.8 Fuentes
Por defecto, Emacs muestra el texto en pantallas gráficas usando una fuente monospace de 10 puntos, y el tamaño de la fuente puede cambiarse interactivamente (ver 15.12 Escala de Texto).
Hay varias formas de especificar una fuente diferente:
Haga clic en
Set Default Font
(Establecer fuente predeterminada) en el menúOptions
(Opciones). De este modo, la fuente seleccionada será la predeterminada en todos los marcos gráficos existentes. Para guardar esta opción para futuras sesiones, haga clic enSave Options
(Guardar opciones) en el menúOptions
(Opciones).Añada una línea a su archivo init, modificando la variable
default-frame-alist
para especificar el parámetro de fuente (ver:ref:22.11), de esta manera:(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10"))Esto hace que la fuente sea la predeterminada en todos los marcos gráficos creados después de reiniciar Emacs con ese archivo init.
Añade una configuración de recursos X
emacs.font
a su archivo de recursos X, así:emacs.font: DejaVu Sans Mono-12Debe reiniciar X, o usar el comando
xrdb
, para que el archivo de recursos X surta efecto. Consulte D.1 Recursos X. No entrecomille los nombres de las fuentes en los archivos de recursos X.
Si está ejecutando Emacs en el escritorio GNOME o Haiku, puede decirle a Emacs que ajuste la fuente por defecto del marco junto con los cambios en la fuente por defecto del sistema, estableciendo la variable
font-use-system-font
at
(por defecto esnil
). Para que esto funcione, Emacs debe haber sido compilado con soporte para Gsettings (o el antiguo Gconf). (Para ser específicos, los nombres de configuración Gsettings usados sonorg.gnome.desktop.interface monospace-font-name
yorg.gnome.desktop.interface font-name
).Usar la opción de línea de comandos
-fn
(o--font
). Consulte C.6 Opciones de Especificación de Fuentes.
Para comprobar qué fuente está usando actualmente, el comando C-u C-x =
puede ser útil. Describe el carácter en el punto, y nombra la fuente en la que está representado.
Hay cuatro formas diferentes de expresar el nombre de una fuente. La primera es usar un patrón Fontconfig. Los patrones Fontconfig tienen la siguiente forma:
fontname[-fontsize][:name1=values1][:name2=values2]...
En este formato, cualquiera de los elementos entre paréntesis puede omitirse. Aquí, fontname es el nombre de la familia de la fuente, como Monospace
o DejaVu Sans Mono
; fontsize es el tamaño en puntos de la fuente (un punto de impresora es aproximadamente 1/72 de pulgada); y las entradas name=values
especifican ajustes como la inclinación y el peso de la fuente. Cada valor puede ser un único valor o una lista de valores separados por comas. Además, algunos valores de propiedad sólo son válidos con un tipo de nombre de propiedad, en cuyo caso puede omitirse la parte name=
.
Esta es una lista de las propiedades más comunes de las fuentes:
slant
(inclinada)Una de las opciones
italic
(cursiva),oblique
(oblicua) oroman
.weight
(peso)Una de las siguientes opciones:
light
(liviana),medium
(peso medio),demibold
(casi como fuente negrita),bold
(negrita) oblack
.style
(estilo)Algunas fuentes definen estilos especiales que son una combinación de inclinación y peso. Por ejemplo,
Dejavu Sans
define el estilobook
, que anula las propiedades de inclinación y peso.width
(ancho)Uno de los siguientes:
condensed
(condensado),normal
oexpanded
(ampliado).spacing
(espaciado)Una de las siguientes opciones:
monospace
(monoespaciada),proportional
(proporcional),dual-width
(doble ancho) ocharcell
.
Estos son algunos ejemplos de patrones de Fontconfig:
Monospace
Monospace-12
Monospace-12:bold
DejaVu Sans Mono:bold:italic
Monospace-12:weight=bold:slant=italic
Para una descripción más detallada de los patrones de Fontconfig, consulte el manual de Fontconfig, que se distribuye con Fontconfig y está disponible en línea en https://fontconfig.org/fontconfig-user.html.
En MS-Windows, sólo el subconjunto de la forma fontname[-fontsize] está soportado para todas las fuentes; el patrón Fontconfig completo podría no funcionar para todas ellas.
La segunda forma de especificar una fuente es usar un patrón de fuente GTK. Estos tienen la sintaxis
fontname [properties] [fontsize]
nombrefuente [propiedades] [tamañofuente]
donde fontname es el nombre de la familia, properties es una lista de valores de propiedades separados por espacios, y fontsize es el tamaño de letra. Las propiedades que puede especificar para los patrones de fuentes GTK son las siguientes:
Propiedades de inclinación:
Italic
uOblique
. Si se omite, se aplica la inclinación por defecto (roman).Propiedades de peso:
Bold
,Book
,Light
,Medium
,Semi-bold
oMedium
. Si se omite, se utilizará el pesoMedium
.Propiedades de anchura:
Semi-condensed
oCondensed
. Si se omite, se usa un ancho por defecto.
He aquí algunos ejemplos de patrones de fuentes GTK:
Monospace 12
Monospace Bold Italic 12
En MS-Windows, sólo se admite el subconjunto fontname.
La tercera forma de especificar una fuente es usar un XLFD (X Logical Font Description, Descripción de fuente lógica para X). Este es el método tradicional para especificar fuentes en X, y también es compatible con MS-Windows. Cada XLFD consta de catorce palabras o números, separados por guiones, de la siguiente manera:
misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
Un carácter comodín (*
) en un XLFD coincide con cualquier secuencia de caracteres (incluida ninguna), y ?
coincide con cualquier carácter único. Sin embargo, la coincidencia depende de la implementación y puede ser imprecisa cuando los comodines coinciden con guiones en un nombre largo. Para obtener resultados fiables, introduzca los 14 guiones y use comodines sólo dentro de un campo. Las mayúsculas y minúsculas son insignificantes en un XLFD. La sintaxis de un XLFD es la siguiente:
-maker-family-weight-slant-widthtype-style…
…-pixels-height-horiz-vert-spacing-width-registry-encoding
Las entradas tienen los siguientes significados:
maker
(fabricante)El nombre del fabricante de la fuente.
family
(familia)El nombre de la familia de fuentes (por ejemplo, “courier”).
weight
(peso)Peso de la fuente, normalmente
bold
(negrita),medium
(media) omedium
(mediana). Algunos nombres de fuentes admiten otros valores.slant
(inclinación)La inclinación de la fuente, normalmente
r
(roman, romana),i
(italic, cursiva),o
(oblique, oblicua),ri
(reversic italic, cursiva inversa) uot
(other, otra). Algunos nombres de fuentes admiten otros valores.widthtype
(tipo de ancho)La anchura de la fuente, normalmente
normal
,condensed
(condensada),semicondensed
(semicondensada) oextended
(extendida). Algunos nombres de fuentes admiten otros valores.style
(estilo)Un nombre de estilo adicional opcional. Normalmente está vacío; la mayoría de los XLFD tienen dos guiones seguidos en este punto. El nombre del estilo también puede especificar un nombre de idioma ISO-639 de dos letras, como
ja
oko
; algunas fuentes que admiten los alfabetos CJK lo tienen escrito en la parte del nombre del estilo.pixels
Altura de la fuente, en píxeles.
height
(altura)La altura de la fuente en la pantalla, medida en décimas de punto de impresora. Es el tamaño en puntos de la fuente, multiplicado por diez. Para una resolución vertical dada, la altura y los píxeles son proporcionales; por lo tanto, es habitual especificar sólo uno de ellos y usar
*
para el otro.horiz
La resolución horizontal, en píxeles por pulgada, de la pantalla a la que está destinada la fuente.
vert
La resolución vertical, en píxeles por pulgada, de la pantalla para la que está pensada la fuente. Normalmente, la resolución de las fuentes en su sistema es el valor correcto para su pantalla; por lo tanto, normalmente se especifica
*
para esto y horiz.spacing
(espaciado)Es
m
(monospace, monoespaciada),p
(proportional, proporcional) oc
(character cell, celda de caracter).width
(ancho)El ancho medio de los caracteres, en píxeles, multiplicado por diez.
registry
(registro)encoding
(codificación)El juego de caracteres X font que representa la fuente. (Los juegos de caracteres de X font no son los mismos que los de Emacs, pero son similares). Puedes usar el programa
xfontsel
para comprobar qué opciones tienes. Normalmente debería usariso8859
para el registro y1
para la codificación.
El cuarto y último método para especificar una fuente es usar un apodo de fuente. Algunas fuentes tienen apodos más cortos, que puede usar en lugar de una especificación de fuente normal. Por ejemplo, 6x13
equivale a
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
Esta forma no está soportada en MS-Windows.
En X, Emacs reconoce dos tipos de fuentes: fuentes del lado del cliente, que son proporcionadas por las bibliotecas Xft y Fontconfig, y fuentes del lado del servidor, que son proporcionadas por el servidor X mismo. La mayoría de las fuentes del lado del cliente soportan características avanzadas como antialiasing y subpixel hinting, mientras que las fuentes del lado del servidor no. Fontconfig y los patrones GTK sólo coinciden con las fuentes del lado del cliente.
Probablemente querrá usar una fuente predeterminada de ancho fijo, es decir, una fuente en la que todos los caracteres tengan el mismo ancho. Para las fuentes Xft y Fontconfig, puede usar el comando fc-list
para listar las fuentes de ancho fijo disponibles, de esta forma:
fc-list :spacing=mono
fc-list :spacing=charcell
Para las fuentes X del lado del servidor, puede usar el programa xlsfonts
para listar las fuentes de ancho fijo disponibles, de la siguiente manera:
xlsfonts -fn '*x*' | grep -E '^[0-9]+x[0-9]+'
xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'
Cualquier fuente con m
o c
en el campo de espaciado del XLFD es una fuente de ancho fijo. Para ver el aspecto de un determinado tipo de letra, use el comando xfd
. Por ejemplo:
xfd -fn 6x13
muestra la fuente completa 6x13
.
Mientras ejecuta Emacs, también puede establecer el tipo de letra de un tipo de texto específico (véase 15.8. Caras de Texto), o de un marco en particular (véase 22.11 Parámetros de Marco).
22.9 Marcos con Speedbar (con barra de control o barra rápida)
La barra speedbar es un marco especial para navegar u operar cómodamente en otro marco. Cuando existe, siempre está asociada a un marco específico, llamado marco adjunto; todas las operaciones de Speedbar actúan sobre ese marco.
Escriba Alt-x speedbar
(M-x speedbar
) para crear una speedbar (una barra de control) y asociarla al marco actual. Para desactivarla, teclee Alt-x speedbar (``M-x speedbar
) de nuevo, o selecciónela y teclee q (q
). (También puede borrar el marco de speedbar como cualquier otro marco de Emacs.) Si desea asociar speedbar a un marco diferente, desactívelo y llame a M-x speedbar
desde ese marco.
La barra de control puede funcionar en varios modos. Su modo por defecto es el de Visualización de Archivos, que muestra los archivos del directorio actual de la ventana seleccionada del marco adjunto, un archivo por línea. Al hacer clic en un archivo que no sea un directorio, se visita ese archivo en la ventana seleccionada del marco adjunto, y al hacer clic en un directorio se muestra ese directorio en la barra de control (véase 22.3 Seguir Referencias con el Ratón). Cada línea tiene también un recuadro, [+]
o <+>
, en el que puede hacer clic para ampliar el contenido de ese elemento. Al desplegar un directorio, su contenido se muestra en la barra de direcciones, debajo de la línea del directorio. Al desplegar un archivo normal, se muestra una lista de las etiquetas de ese archivo en la barra de velocidad; puede hacer clic en el nombre de una etiqueta para saltar a esa etiqueta en la ventana seleccionada del marco adjunto. Cuando se expande un archivo o directorio, el signo [+]
cambia a [-]
; puedes hacer clic en esa casilla para contraer el elemento, ocultando su contenido.
También se puede navegar por la barra rápida usando el teclado. Escribir RETURN (RET
) mientras el punto está en una línea de dicha barra equivale a hacer clic en el elemento de la línea actual, y SPACE (SPC
) expande o contrae el elemento. U
muestra el directorio padre del directorio actual. Para copiar, borrar o renombrar el fichero en la línea actual, teclee C (C
), D (D
) y R (R
) respectivamente. Para crear un nuevo directorio, escriba M (M
).
Otro modo de uso general de Speedbar es el modo de visualización de búferes; en este modo, speedbar muestra una lista de los búferes de Emacs. Para cambiar a este modo, teclee b (b
) en la barra de control. Para volver al modo de visualización de archivos, teclee f (f
). También puede cambiar el modo de visualización pulsando con ratón-3
en cualquier lugar de la ventana de Speedbar (o con ratón-1
en la línea de modo) y seleccionando Displays
en el menú emergente.
Algunos modos principales, incluyendo el modo Rmail, Info y GUD, tienen formas específicas de poner elementos útiles en speedbar para que los seleccione. Por ejemplo, en el modo Rmail, la barra muestra una lista de archivos Rmail y permite mover el mensaje actual a otro archivo Rmail haciendo clic en su casilla <M>
.
Para más detalles sobre cómo usar y programar speedbar, consulte Speedbar en el Manual de Speedbar.
22.10. Múltiples Pantallas
Un único Emacs puede comunicarse con más de una pantalla X. Inicialmente, Emacs usa sólo una pantalla-la especificada con la variable de entorno DISPLAY
o con la opción --display
(ver C.2 Opciones Iniciales). Para conectar con otra pantalla, use el comando make-frame-on-display
:
make-frame-on-display
RETURN pantalla RETURNM-x make-frame-on-display RET
display RET
Crea un nuevo marco en la pantalla de visualización.
Un único servidor X puede manejar más de una pantalla. Cuando se abren marcos en dos pantallas pertenecientes a un servidor, Emacs sabe que comparten un único teclado, y trata todos los comandos que llegan desde estas pantallas como un único flujo de entrada.
Cuando se abren marcos en diferentes servidores X, Emacs hace un flujo de entrada separado para cada servidor. Cada servidor también tiene su propio marco seleccionado. Los comandos que introduzca con un servidor X en particular se aplican al marco seleccionado de ese servidor.
En pantallas multimonitor es posible usar el comando make-frame-on-monitor
:
make-frame-on-monitor
RETURN monitor RETURNM-x make-frame-on-monitor RET
monitor RET
Crea un nuevo marco en el monitor cuya área de pantalla forme parte de la presentación actual.
22.11 Parámetros de Marco
Puede controlar la apariencia y el comportamiento por defecto de todos los marcos especificando una lista por defecto de parámetros de marco en la variable default-frame-alist
. Su valor debe ser una lista de entradas, cada una especificando un nombre de parámetro y un valor para ese parámetro. Estas entradas tienen efecto cada vez que Emacs crea un nuevo marco, incluyendo el marco inicial.
Por ejemplo, puede añadir las siguientes líneas a su archivo init (vea 50.4. El Archivo de Inicialización de Emacs) para establecer la anchura del marco por defecto a 90 columnas de caracteres, la altura del marco por defecto a 40 filas de caracteres, y la fuente por defecto a Monospace-10
:
(add-to-list 'default-frame-alist '(width . 90))
(add-to-list 'default-frame-alist '(height . 40))
(add-to-list 'default-frame-alist '(font . "Monospace-10"))
Para una lista de parámetros de marco y sus efectos, vea Parámetros de Marco en el Manual de Referencia de Emacs Lisp.
También puede especificar una lista de parámetros de marco que se apliquen sólo al marco inicial, personalizando la variable initial-frame-alist
.
Si Emacs está compilado para usar un juego de herramientas X, los parámetros de marco que especifican colores y fuentes no afectan a los menús y a la barra de menús, ya que éstos son dibujados por el juego de herramientas y no directamente por Emacs.
La apariencia y el comportamiento de los marcos también pueden personalizarse a través de los recursos X (ver D.1 Recursos X); estos anulan los parámetros del marco inicial especificado en su archivo de inicio.
Tenga en cuenta que si está usando la biblioteca de escritorio para guardar y restaurar sus sesiones, los marcos a restaurar se registran en el archivo de escritorio, junto con sus parámetros. Cuando estos marcos son restaurados, los parámetros grabados tienen prioridad sobre los parámetros de marco especificados por default-frame-alist
y initial-frame-alist
en su archivo init. Vea 45 Guardar Sesiones de Emacs, para saber cómo evitarlo.
22.12. Barras de Desplazamiento
En las pantallas gráficas, hay una barra de desplazamiento vertical en el lateral de cada ventana de Emacs. Pulsando con ratón-1
sobre los botones arriba y abajo de la barra de desplazamiento se desplaza la ventana una línea cada vez (pero algunos paquetes de herramientas (toolkits) permiten personalizar las barras de desplazamiento para que no tengan esos botones). Al hacer clic con ratón-1
por encima o por debajo de la caja interior de la barra de desplazamiento, la ventana se desplaza casi toda la altura de la ventana, como M-v
y C-v
respectivamente (véase 8.2 Cambiar la Ubicación del Punto). (Esto también puede comportarse de forma diferente con algunos kits de herramientas). Arrastrando la caja interior se desplaza continuamente.
Si Emacs está compilado en el Sistema X Window sin soporte para toolkit X, la barra de desplazamiento se comporta de forma diferente. Pulsando con ratón-1
en cualquier lugar de la barra de desplazamiento se desplaza hacia delante como C-v
, mientras que con ratón-3
se desplaza hacia atrás como M-v
. Haciendo clic con ratón-2
en la barra de desplazamiento puede arrastrar la caja interior hacia arriba y hacia abajo.
Para usar la barra de desplazamiento vertical, escriba Alt-x scroll-bar-mode
(M-x scroll-bar-mode
). Este comando se aplica a todos los marcos, incluidos los que aún no se han creado. Para usar la barra de desplazamiento sólo en el marco seleccionado, use el comando M-x toggle-scroll-bar
.
Para controlar el uso de las barra de desplazamiento vertical al inicio, personalice la variable scroll-bar-mode
(véase 50 Personalización). Su valor debe ser o bien right
(poner la barra de desplazamiento a la derecha de las ventanas), left
(ponerla a la izquierda), o nil
(deshabilitar la barra de desplazamiento vertical). Por defecto, Emacs pone la barra de desplazamiento a la derecha si fue compilado con soporte GTK+ en el Sistema X Window, y en MS-Windows o macOS; Emacs pone la barra de desplazamiento a la izquierda si fue compilado en el Sistema X Window sin soporte GTK+ (siguiendo la antigua convención para aplicaciones X).
También puede usar el recurso X verticalScrollBars
para activar o desactivar las barras de desplazamiento (ver D.1 Recursos X). Para controlar el ancho de la barra de desplazamiento, cambia el parámetro de marco scroll-bar-width
(ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp).
Si usa Emacs en X (con GTK+ o Motif), puede personalizar la variable scroll-bar-adjust-thumb-portion
para controlar el sobredesplazamiento de la barra de desplazamiento, es decir, arrastrar el pulgar hacia abajo incluso cuando el final del búfer es visible. Si su valor es no nulo, la barra de desplazamiento puede arrastrarse hacia abajo aunque se muestre el final del búfer; si es nulo, el pulgar estará en la parte inferior cuando se muestre el final del búfer. No se puede avanzar o retroceder cuando todo el búfer está visible.
El aspecto visual de las barras de desplazamiento se controla mediante la cara scroll-bar
(barra de desplazamiento). (Algunos toolkits, como GTK+ y MS-Windows, ignoran esta cara; el aspecto de la barra de desplazamiento sólo puede personalizarse en todo el sistema; para GTK+, véanse D.5 Recursos GTK).
En los marcos gráficos, la barra de desplazamiento vertical sirve implícitamente para separar visualmente las ventanas contiguas. Cuando las barras de desplazamiento vertical están desactivadas, Emacs separa por defecto dichas ventanas con la ayuda de un borde vertical de un píxel de ancho. Ese borde ocupa la primera columna de píxeles de la ventana de la derecha y, por tanto, puede sobredibujar los píxeles más a la izquierda de cualquier pictograma que se muestre allí. Si estos píxeles transmiten información importante, puede hacerlos visibles activando los divisores de ventana, véase Divisores de Ventanas en El Manual de Referencia de Lisp. Para replicar el aspecto de los bordes verticales, establezca el parámetro right-divider-width
de los marcos a uno y haga que la cara del divisor de ventana herede de la función vertical-border
, Divisores de Ventanas en El Manual de Referencia de Lisp.
En pantallas gráficas con soporte para toolkits (caja de herramientas), Emacs también puede proporcionar una barra de desplazamiento horizontal en la parte inferior de cada ventana. Pulsando con ratón-1
sobre los botones izquierdo y derecho de la barra de desplazamiento, la ventana se desplaza horizontalmente una columna cada vez. (Tenga en cuenta que algunos kits de herramientas permiten personalizaciones de la barra de desplazamiento que hacen que estos botones no se muestren). Al hacer clic con ratón-1
a la izquierda o a la derecha del cuadro interior de la barra de desplazamiento, la ventana se desplaza cuatro columnas. Si se arrastra el cuadro interior, la ventana se desplaza de forma continua.
Tenga en cuenta que este desplazamiento horizontal puede hacer desaparecer la posición del punto de la ventana a la izquierda o a la derecha. Si escribe un carácter para insertar texto o mueve el punto con un comando del teclado, normalmente volverá a verlo.
Para usar las barras de desplazamiento horizontal, escriba Alt-x horizontal-scroll-bar-mode
(M-x horizontal-scroll-bar-mode
). Este comando se aplica a todos los marcos, incluidos los que aún no se han creado. Para usar las barras de desplazamiento horizontal sólo en el marco seleccionado, use el comando M-x toggle-horizontal-scroll-bar
.
Para controlar el uso de barra de desplazamiento horizontal al inicio, personalice la variable horizontal-scroll-bar-mode
.
También puede usar el recurso X horizontalScrollBars
para activar o desactivar las barras de desplazamiento horizontal (ver D.1 Recursos X). Para controlar la altura de la barra de desplazamiento, cambia el parámetro de marco scroll-bar-height
(ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp).
22.13 Separadores de Ventanas
En pantallas gráficas, puede usar separadores de ventanas para separarlas visualmente. Los divisores de ventanas son barras que pueden arrastrarse con el ratón, lo que permite cambiar fácilmente el tamaño de las ventanas adyacentes.
Para cambiar la visualización de estos separadores, use el comando M-x window-divider-mode
.
Para personalizar dónde deben aparecer los divisores, use la opción window-divider-default-places
. Su valor debe ser bottom-only
(para mostrar los divisores sólo en la parte inferior de las ventanas), right-only
(para mostrar los divisores sólo en la parte derecha de las ventanas) o t
(para mostrarlos en la parte inferior y en la derecha).
Para ajustar el ancho de los separadores de ventana mostrados por este modo, personalice las opciones window-divider-default-bottom-width
y window-divider-default-right-width
.
Cuando las barra de desplazamiento vertical está deshabilitadas, los separadores también pueden ser útiles para hacer visible la primera columna de píxeles de una ventana, que de otro modo quedaría cubierta por el borde vertical usado para separar las ventanas de lado a lado (ver 22.12. Barras de Desplazamiento Barras de Desplazamiento).
Para más detalles sobre los divisores de ventanas, véase Divisores de Ventanas en el Manual de Referencia de Emacs Lisp.
22.14 Arrastrar y Soltar
En la mayoría de los entornos gráficos de escritorio, Emacs tiene soporte básico para operaciones de arrastrar y soltar. Por ejemplo, soltar texto sobre un marco Emacs es insertar el texto donde se suelta. Soltar un archivo en un marco de Emacs visita ese archivo. Como caso especial, soltar el archivo en un búfer Dired mueve o copia el archivo (según las convenciones de la aplicación de la que procede) en el directorio mostrado en ese búfer.
Al soltar un archivo, normalmente se visita en la ventana en la que se suelta. Si prefiere visitar el archivo en una nueva ventana en estos casos, personalice la variable dnd-open-file-other-window
.
Actualmente se soportan los protocolos de arrastrar y soltar XDND y Motif, y el antiguo protocolo KDE 1.x.
Puede ser difícil desplazar una ventana o determinar dónde se insertará el texto soltado mientras se arrastra dicho texto a una ventana de Emacs. Establecer la opción dnd-indicate-insertion-point
a un valor no nulo hace que el punto se mueva a la ubicación en la que se insertará cualquier texto soltado cuando el ratón se mueva en una ventana durante el arrastre, y establecer dnd-scroll-margin
a un valor entero hace que una ventana se desplace si el ratón se mueve dentro de ese número de líneas de la parte superior o inferior de la ventana durante el arrastre.
Emacs también puede opcionalmente arrastrar la región con el ratón a otra porción de este u otro búfer. Para activar eso, personalice la variable mouse-drag-and-drop-region
a un valor no nulo. Normalmente, el texto se mueve, es decir, se corta y se pega, cuando el destino es el mismo búfer que el origen; si se suelta la región en otro búfer, se copia el texto en su lugar. Si el valor de esta variable nombra una tecla modificadora, como shift
, control
o alt
, al pulsar esa tecla modificadora al soltar el texto se copiará en lugar de cortarse, aunque se suelte en el mismo búfer del que procedía el texto.
Para cortar el texto incluso cuando los búferes de origen y destino difieren, establezca la opción mouse-drag-and-drop-region-cut-when-buffers-differ
en un valor no nulo. Por defecto, en una pantalla gráfica el texto seleccionado se muestra en un tooltip (sugerencia) y el punto se mueve junto con el cursor del ratón durante el arrastre. Para suprimir este comportamiento, establezca las opciones mouse-drag-and-drop-region-show-tooltip
y/o mouse-drag-and-drop-region-show-cursor
en nil
.
Para arrastrar texto desde Emacs a otros programas, establezca la opción mouse-drag-and-drop-region-cross-program
a un valor no nulo.
En el sistema de ventanas X, algunos programas pueden soltar archivos en Emacs, esperando que este los guarde. Normalmente, el Editor preguntará por un nombre de archivo bajo el cual el archivo será guardado, y luego abrirá el archivo, pero ese comportamiento puede ser cambiado cambiando la variable x-dnd-direct-save-function
. Ver Arrastrar y Soltar en el Manual de Referencia de Emacs Lisp.
22.16. Barras de Herramientas
En las pantallas gráficas, Emacs pone una barra de herramientas en la parte superior de cada marco, justo debajo de la barra de menú. Es una fila de iconos sobre los que puede pulsar con el ratón para invocar varios comandos.
La barra de herramientas global (por defecto) contiene comandos generales. Algunos modos principales definen sus propias barras de herramientas; siempre que haya un búfer con un modo principal de este tipo, la barra de herramientas del modo sustituye a la barra de herramientas global.
Para usar la barra de herramientas, escriba M-x tool-bar-mode
. Este comando se aplica a todos los marcos, incluidos los que aún no se han creado. Para controlar el uso de las barras de herramientas al inicio, personalice la variable tool-bar-mode
.
Cuando Emacs se compila con soporte GTK+, cada elemento de la barra de herramientas puede consistir en una imagen, una etiqueta de texto o ambas. Por defecto, Emacs sigue la configuración del estilo de la barra de herramientas del escritorio Gnome; si no se define ninguno, muestra los elementos de la barra de herramientas sólo como imágenes. Para imponer un estilo específico de barra de herramientas, personalice la variable tool-bar-style
.
También puede controlar la colocación de la barra de herramientas para la barra de herramientas GTK+ con el parámetro de marco tool-bar-position
. Ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp.
Las construcciones NS consideran la barra de herramientas como una decoración de la ventana, y por lo tanto no la muestran cuando una ventana no está decorada. : Ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp. En macOS la barra de herramientas se oculta cuando el marco se pone a pantalla completa, pero puede mostrarse moviendo el puntero del ratón a la parte superior de la pantalla.
22.17 Barras de Pestañas
En pantallas gráficas y en terminales de texto, Emacs puede mostrar opcionalmente una Barra de Pestañas en la parte superior de cada marco, justo debajo de la barra de menús (ver 22.15 Barras de Menús) y encima o debajo de la barra de herramientas (ver 22.16. Barras de Herramientas) dependiendo de la variable tab-bar-position
. La barra de pestañas es una fila de pestañas, botones que puede pulsar para cambiar entre configuraciones de ventana.
Cada pestaña de la barra de pestañas representa una configuración de ventana persistente con nombre de su marco, es decir, cómo se divide ese marco en ventanas y qué búfer se muestra en cada ventana. El nombre de la pestaña se compone de la lista de nombres de los búferes que se muestran en las ventanas de esa configuración de ventana. Al hacer clic en la pestaña, se pasa a la configuración de ventanas registrada por la pestaña; se trata de una configuración de ventanas y búferes que se usaba anteriormente en el marco cuando esa pestaña era la pestaña actual.
Si está usando la librería del escritorio para guardar y restaurar sus sesiones (vea 45 Guardar Sesiones de Emacs), las pestañas de la Barra de Pestañas se graban en el archivo del escritorio, junto con sus configuraciones de ventana asociadas, y estarán disponibles después de restaurar la sesión.
Tenga en cuenta que la Barra de Pestañas es diferente de la Línea de Pestañas (vea 21.8 Línea de Pestañas de Ventana). Mientras que las pestañas de la línea de pestañas de la parte superior de cada ventana se usan para cambiar entre los búferes de la ventana, las pestañas de la barra de pestañas de la parte superior de cada marco se usan para cambiar entre configuraciones de ventanas que contienen varias ventanas que muestran uno o más búferes.
Para usar las barras de pestañas, escriba Alt-x tab-mar-mode
(M-x tab-bar-mode
). Este comando se aplica a todos los marcos, incluidos los marcos aún por crear. Para controlar el uso de las barras de pestañas al inicio, personalice la variable tab-bar-mode
y guarde su personalización.
La variable tab-bar-show
controla si el modo de barra de pestañas se activa automáticamente. Si el valor es t
, el modo barra de pestañas se activa cuando se usan los comandos que crean nuevas de ellas. El valor 1
oculta la barra de pestañas cuando sólo tiene una pestaña, y la vuelve a mostrar cuando se crean más pestañas. De forma más general, un valor que sea un entero no negativo hace que la barra de pestañas se muestre sólo si el número de pestañas es mayor que ese entero. El valor nil
siempre mantiene la Barra de Pestañas oculta; en este caso es posible cambiar entre configuraciones de ventanas con nombre sin mostrar la Barra de Pestañas usando M-x tab-next
, M-x tab-switcher
, y otros comandos que permiten completar los nombres de las pestañas. También es posible crear y cerrar pestañas sin la barra de pestañas usando los comandos M-x tab-new
, M-x tab-close
, etc.
Tenga en cuenta que un valor numérico de tab-bar-show
puede hacer que la Barra de Pestañas se muestre en algunos marcos, pero no en otros, dependiendo del número de pestañas creadas en cada marco.
Para usar la barra de pestañas sólo en el marco seleccionado, escriba Alt-x toggle-frame-tab-bar
(M-x toggle-frame-tab-bar
). Este comando permite activar la visualización de la barra de pestañas en algunos marcos y desactivarla en otros, independientemente de los valores de tab-bar-mode
y tab-bar-show
.
La tecla de prefijo Ctrl-x t (C-x t
) es análoga a Ctrl-x 5 (C-x 5
). Mientras que cada comando C-x 5
abre un búfer en un marco diferente (véase 22.6 Creación de Marcos), los comandos C-x t
usan una pestaña diferente con una configuración de ventana diferente en el marco seleccionado.
Los distintos comandos C-x t
difieren en cómo encuentran o crean el búfer a seleccionar. Los siguientes comandos se pueden usar para seleccionar un búfer en una nueva pestaña:
Ctrl-x t2 (C-x t 2
)
Añade una nueva pestaña (
tab-new
, pestaña-nueva). Puede controlar la elección del búfer mostrado en una nueva pestaña personalizando la variabletab-bar-new-tab-choice
. Puede controlar los nombres dados por defecto a las nuevas pestañas personalizando la variabletab-bar-tab-name-function
.
Ctrl-x tb nombre-búfer RETURN (C-x t b
nombre-búfer RET
)
Selecciona el nombre del búfer en otra pestaña. Esto ejecuta
switch-to-buffer-other-tab
.
Ctrl-x tf nombre-archivo RETURN (C-x t f
nombre-archivo RET
)
Visita el archivo nombre-archivo (ver 19.2 Visitar Archivos) y selecciona su búfer en otra pestaña. Esto ejecuta
find-file-other-tab
(buscar-archivo-otra-pestaña).
Ctrl-x td directorio RETURN (C-x t d
directorio RET
)
Edita el directorio especificado (véase 31 Dired, el Editor de Directorios) en otra pestaña. Esto ejecuta
dired-other-tab
.
Ctrl-x tt (C-x t t
)
Este es un comando prefijo (
other-tab-prefix
) que afecta al siguiente comando invocado inmediatamente después de este comando prefijo. Solicita que el búfer mostrado por el siguiente comando se muestre en otra pestaña.
Por defecto, una nueva pestaña comienza con el búfer que estaba activo antes de llamar al comando que añade una nueva pestaña. Para iniciar una nueva pestaña con otros búferes, personalice la variable tab-bar-new-tab-choice
.
La variable tab-bar-new-tab-to define
dónde colocar una nueva pestaña. Por defecto, una nueva pestaña se añade a la derecha de la pestaña actual.
Se pueden usar los siguientes comandos para eliminar pestañas:
Ctrl-x t0 (C-x t 0
)
Cierra la pestaña seleccionada (
tab-close
). Esto no tiene efecto si sólo hay una pestaña, a menos que la variabletab-bar-close-last-tab-choice
se personalice con un valor no predeterminado.
Ctrl-x t1 (C-x t 1
)
Cierra todas las pestañas, excepto la seleccionada, en el marco seleccionado.
La variable tab-bar-close-tab-select
define qué pestaña seleccionar después de cerrar la pestaña actual. Por defecto, selecciona una pestaña usada recientemente.
El comando tab-undo
restaura la última pestaña cerrada.
Los siguientes comandos se pueden usar para cambiar entre pestañas:
C-x t o
)C-TAB
)Pasa a la pestaña siguiente (
tab-next
). Si repite este comando, pasará por todas las pestañas del marco seleccionado. Con un argumento numérico positivo n, pasa a la enésima pestaña siguiente; con un argumento negativo -n, vuelve a la enésima pestaña anterior.
Shift-Ctrl-TAB (S-C-TAB
)
Pasa a la pestaña anterior (
tab-previous
). Con un argumento numérico positivo n, pasa a la enésima pestaña anterior; con un argumento negativo -n, pasa a la enésima pestaña siguiente.
Ctrl-x t RETURN nombre-pestaña RETURN (C-x t RET
nombre-pestaña RET
)
Cambia a la pestaña por su nombre (
tab-switch
), con finalización en todos los nombres de pestaña. El valor predeterminado y el «historial futuro» de nombres de pestañas se ordenan por antigüedad, por lo que puedes usarM-n
(next-history-element
) para obtener el nombre de la última pestaña visitada, la penúltima, etc.
- modifier-tab-number
Cambia a la pestaña por su número
tab-number
(tab-select
). Después de personalizar la variabletab-bar-select-tab-modifiers
para especificar una o más teclas modificadoras, puede seleccionar una pestaña por su número ordinal usando uno de los modificadores especificados en combinación con el número de pestaña a seleccionar. El número 9 puede usarse para seleccionar la última pestaña. Puede seleccionar cualquier modificador soportado por Emacs, vea 50.3.7. Teclas Modificadoras. Para mostrar el número de pestaña junto al nombre de la pestaña, puede personalizar otra variabletab-bar-tab-hints
. Esto le ayudará a decidir qué tecla numérica pulsar para seleccionar la pestaña por su número.- modifier-
9
Pasa a la última pestaña (
tab-last
). La combinación de teclas es la tecla modificadora definida portab-bar-select-tab-modifiers
y la tecla 9 (9
). Con un argumento numérico n, cambiar a la enésima última pestaña.- modifier-
0
Cambia a la pestaña reciente (
tab-recent
). La combinación de teclas es la tecla modificadora definida portab-bar-select-tab-modifiers
y la tecla 0 (0
, cero). Con un argumento numérico n, cambia a la enésima pestaña reciente.
Se pueden usar los siguientes comandos para operar sobre las pestañas:
Ctrl-x tr (C-x t r
nombre-pestaña RET
)
Cambia el nombre de la pestaña actual a nombre-pestaña (
tab-rename
).
Ctrl-x tm (C-x t m
)
Mueve la pestaña actual una posición a la derecha (
tab-move
). Con un argumento numérico positivo n, se mueve esa cantidad de posiciones a la derecha; con un argumento negativo -n, se mueve n posiciones a la izquierda.
Puede usar el ratón para operar sobre las pestañas. Al hacer clic con ratón-2
se cierra la pestaña. Al hacer clic con ratón-3
se abre el menú contextual con los elementos que actúan sobre la pestaña seleccionada. Arrastrando la pestaña con ratón-1
se mueve a otra posición en la barra de pestañas. Si se desplaza con la rueda del ratón, se pasa a la pestaña siguiente o anterior. Si se mantiene pulsada la tecla Shift (MAYÚS
) durante el desplazamiento, la pestaña se desplaza hacia la izquierda o la derecha.
Puede activar el modo de historial de la barra de pestañas para recordar las configuraciones de ventana usadas en cada pestaña y restaurarlas más tarde.
Alt-x tab-bar-history-back
(M-x tab-bar-history-back
)
Restaura una configuración de ventana anterior usada en la pestaña actual. Esto navega hacia atrás en el historial de configuraciones de ventanas.
Alt-x tab-bar-history-forward
(M-x tab-bar-history-forward
)
Cancela la restauración de la configuración de ventana anterior. Esto avanza en el historial de configuraciones de ventanas.
Es posible personalizar los elementos mostrados en la barra de pestañas mediante la opción de Usuario tab-bar-format
.
22.18 Uso de Cuadros de Diálogo
Un cuadro de diálogo es un tipo especial de menú para hacerle una pregunta de sí o no o alguna otra pregunta especial. Muchos comandos de Emacs usan una caja de diálogo para hacer una pregunta de este tipo, si usó el ratón para invocar el comando que le llevó a la pregunta.
Para deshabilitar el uso de cuadros de diálogo, cambia la variable use-dialog-box
a nil
. En ese caso, Emacs siempre realiza preguntas del tipo yes-or-not (sí-o-no) usando el área de eco y la entrada del teclado. Esta variable también controla si usar ventanas de selección de archivos (pero éstas no están soportadas en todas las plataformas).
Una ventana de selección de archivos es un tipo especial de cuadro de diálogo para pedir nombres de archivo. Puede personalizar la variable use-file-dialog para suprimir el uso de ventanas de selección de archivos, aunque siga queriendo otros tipos de cuadros de diálogo. Esta variable no tiene efecto si ha suprimido todos los cuadros de diálogo con la variable use-dialog-box
.
Cuando Emacs se compila con soporte GTK+, usa el cuadro de diálogo selector de archivos GTK+. Emacs añade un botón adicional a este diálogo, que puede usar para activar o desactivar la visualización de archivos ocultos (archivos que empiezan por un punto) en ese diálogo. Si desea que este botón esté activado por defecto, cambie la variable x-gtk-show-hidden-files
a t
. Además, Emacs añade texto de ayuda al diálogo selector de archivos GTK+; para desactivar este texto de ayuda, cambie la variable x-gtk-file-dialog-help-text
a nil
.
22.19 Sugerencias sobre Herramientas (Tooltips)
Los tooltips son pequeños marcos especiales que muestran información de texto en la posición actual del ratón. Se activan cuando hay una pausa en el movimiento del ratón sobre algún fragmento significativo de texto en una ventana, o la línea de modo, o alguna otra parte del marco de Emacs como un botón de la barra de herramientas o un elemento de menú.
Puede alternar el uso de tooltips con el comando M-x tooltip-mode
. Cuando el modo Tooltip está desactivado, el texto de ayuda se muestra en el área de eco en su lugar. Para controlar el uso de información sobre herramientas al inicio, personalice la variable tooltip-mode
siguientes variables proporcionan opciones de personalización para la visualización de información sobre herramientas:
tooltip-delay
Esta variable especifica cuánto tiempo debe esperar Emacs antes de mostrar el primer tooltip. El valor está en segundos.
tooltip-short-delay
Esta variable especifica cuánto tiempo debe esperar Emacs antes de mostrar los tooltips subsiguientes sobre diferentes elementos, habiendo mostrado ya el primer tooltip. El valor está en segundos.
tooltip-hide-delay
El número de segundos transcurridos desde que se muestra un tooltip para ocultarlo, si el ratón no se mueve.
tooltip-x-offset
tooltip-y-offset
Los desplazamientos X e Y, en píxeles, de la esquina superior izquierda de la información sobre herramientas desde la posición del
puntero del ratón. Tenga en cuenta que se ignoran si tooltip-frame-parameters
se personalizó para incluir, respectivamente, los
parámetros izquierdo y superior. Los valores de los desplazamientos deben elegirse de modo que la información sobre herramientas no
cubra el punto activo del puntero del ratón, o podría interferir con el clic del mismo.tooltip-frame-parameters
Los parámetros de marco usados para mostrar información sobre herramientas. Ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp, y también Tooltips en el Manual de Referencia de Emacs Lisp.
Para opciones adicionales de personalización para mostrar tooltips, usae M-x customize-group RET tooltip RET
.
Si Emacs está construido con el toolkit GTK+, Nextstep windowing, o Haiku windowing, muestra la información sobre herramientas a través del toolkit, usando la apariencia por defecto de la información sobre herramientas del toolkit. [8] Para desactivar esto, cambia la variable use-system-tooltips a nil. Si hace esto, o si Emacs está construido sin el soporte de ventanas apropiado, la mayoría de los atributos del texto de la tooltip están especificados por la cara de la tooltip, y por los recursos X (vea Opciones y recursos X).
Los tooltips GUD son tooltips especiales que muestran los valores de las variables cuando se depura un programa con GUD. Ver Operación del Depurador.
22.20 Evitar el Puntero del Ratón
En terminales gráficos, el puntero del ratón puede oscurecer el texto en el marco de Emacs. Emacs proporciona dos métodos para evitar este problema.
En primer lugar, Emacs oculta el puntero del ratón cada vez que se escribe un carácter autoinsertado, si el puntero se encuentra dentro de un marco Emacs; moviendo el puntero del ratón se hace visible de nuevo. Para desactivar esta característica, establece la variable make-pointer-invisible
a nil
. Ver 15.24 Personalización de la Pantalla.
En segundo lugar, puede usar el modo Mouse Avoidance, un modo menor, para mantener el puntero del ratón alejado del punto. Para usar este modo, personalice la variable mouse-avoidance-mode
. Puede establecer esto a varios valores para mover el ratón de varias maneras:
banish
Mueve el puntero a una esquina del marco al pulsar cualquier tecla. Puede personalizar la variable
mouse-avoidance-banish-position
para especificar a dónde va el puntero cuando es desplazado.exile
Desplaza el puntero sólo si el cursor se acerca demasiado, y permite que vuelva una vez que el cursor se haya apartado.
jump
Si el cursor se acerca demasiado al puntero, lo desplazará una distancia y dirección aleatorias.
animate
Como jump, pero muestra los pasos a lo largo del camino para la ilusión de movimiento.
cat-and-mouse
Lo mismo que animate.
proteus
Como animate, pero cambia también la forma del puntero del ratón.
También puede usar el comando M-x mouse-avoidance-mode
para activar el modo. Siempre que el modo Mouse Avoidance mueve el ratón, también levanta el marco.
22.21 Terminales sin Ventana
En un terminal de texto, Emacs sólo puede mostrar un marco Emacs a la vez. Sin embargo, aún puede crear múltiples marcos Emacs, y cambiar entre ellos. Cambiar de marco en estos terminales es muy parecido a cambiar entre diferentes configuraciones de ventana.
Puede usar C-x 5 2
para crear un nuevo marco y cambiar a él; use C-x 5 o
para recorrer los marcos existentes; use C-x 5 0
para borrar el marco actual.
Cada marco tiene un número para distinguirlo. Si su terminal sólo puede mostrar un marco a la vez, el número n del marco seleccionado aparece cerca del principio de la línea de modo, en la forma Fn
.
Fn
es, de hecho, el nombre inicial del marco. Si lo desea, puede dar nombres más significativos a los marcos, y puede seleccionar un marco por su nombre. Use el comando M-x set-frame-name RET
nombre RET
para especificar un nuevo nombre para el marco seleccionado, y use M-x select-frame-by-name RET
nombre RET
para seleccionar un marco según su nombre. El nombre que especifique aparecerá en la línea de modo cuando se seleccione el marco.
22.22 Uso del Ratón en Terminales de Texto
Algunos terminales de texto soportan clics de ratón en la ventana del terminal.
En un emulador de terminal compatible con xterm
, puede usar M-x xterm-mouse-mode
para dar a Emacs control sobre usos simples del ratón - básicamente, sólo se soportan clics simples no modificados. Las nuevas versiones de xterm
también soportan el seguimiento del ratón. La funcionalidad normal del ratón xterm para este tipo de clics sigue estando disponible manteniendo pulsada la tecla SHIFT al pulsar el botón del ratón. El modo Ratón de xterm es un modo menor global (ver 24.2 Modos Menores). Repitiendo el comando se desactiva de nuevo el modo.
En la consola en GNU/Linux, puede usar M-x gpm-mouse-mode
para habilitar el soporte de ratón. Debe tener el servidor gpm instalado y funcionando en su sistema para que esto funcione. Tenga en cuenta que cuando este modo está activado, no puede usar el ratón para transferir texto entre Emacs y otros programas que usen GPM. Esto se debe a limitaciones en GPM y el kernel de Linux.
Ver Uso del ratón en MS-DOS, para información sobre el soporte del ratón en MS-DOS.