Teclas

La función del teclado puede personalizarse muchísimo en Eclipse. En Eclipse, las pulsaciones y secuencias de teclas se asignan para invocar mandatos concretos.

Pulsaciones, secuencias y enlaces de teclas

Una 'pulsación de teclas' es la pulsación de una tecla en el teclado, mientras que se mantiene pulsada opcionalmente una o más de estas teclas modificadoras: Control, Alt (Opción en Macintosh), Mayús o Comando (sólo en Macintosh.) Por ejemplo, si mantiene pulsada la tecla Control y luego pulsa A, se crea la pulsación Control+A. La pulsación de las teclas modificadoras aisladamente no constituye pulsaciones de teclas.

Una 'secuencia de teclas' es una o más pulsaciones de teclas. Normalmente emacs asignaba secuencias de dos o tres pulsaciones de teclas a mandatos concretos. Por ejemplo, la secuencia de teclas normal asignada a Cerrar todo en emacs es Control+X Control+C. Para especificar esta secuencia de teclas, efectúe la pulsación Control+X seguida por la pulsación Control+C. Eclipse soporta secuencias de teclas de longitudes arbitrarias.

Un 'enlace de teclas' es la asignación de una secuencia de teclas a un mandato.

Configuraciones

Una 'configuración' es un conjunto de enlaces de teclas. Eclipse incluye dos configuraciones:

La configuración Estándar contiene un conjunto general de enlaces de teclas que, en muchos casos, son reconocibles como secuencias de teclas habituales por parte de los usuarios. Por ejemplo, Control+A se asigna a Seleccionar todo, Control+S se asigna a Guardar, etc.

La configuración Emacs contiene un conjunto de enlaces de teclas familiar para los usuarios de emacs. Por ejemplo, Control+X H se asigna a Seleccionar todo, Control+X S se asigna a Guardar, etc.

Es importante entender el porqué la configuración Emacs afirma que 'amplía la configuración Estándar'. La configuración Emacs no es un conjunto completo de enlaces de teclas como la configuración Estándar. Por el contrario, adopta la configuración Estándar cuando es posible y solo define enlaces de teclas explícitos para emacs cuando estos divergen de la configuración Estándar. Generalmente solo mandatos bien conocidos como Seleccionar, Guardar, etc. tienen secuencias de teclas específicas para emacs asociadas con ellos.

El usuario decide con qué configuración se siente más cómodo cambiando el valor 'Configuración activa' en la página de preferencias de teclas. Si el usuario elige la configuración Estándar, se ignoran todos los enlaces de teclas de la configuración Emacs. Si el usuario elige la configuración Emacs, las asignaciones explícitas de secuencias de teclas de estilo emacs se anteponen a las asignaciones conflictivas de la configuración Estándar.

Ámbitos

Los enlaces de teclas pueden variar según el contexto actual de Eclipse.

En ocasiones la parte activa puede ser un editor de archivos Java, por ejemplo, en el que un conjunto diferente de asignaciones de secuencias de teclas puede ser más adecuado que si la parte activa fuera un editor de archivos html. Como ejemplo concreto, normalmente Control+B se asigna a Construir en un contexto como la edición de un archivo Java, mientras que Control+B se asigna a Poner texto en negrita en un contexto como la edición de un archivo html. Este contexto se denomina 'ámbito' y viene determinado por la parte activa. Si la parte activa no elige un ámbito concreto, el Entorno de trabajo establecerá el ámbito activo en Global.

Eclipse incluye tres ámbitos diferentes. Estas vistas son las siguientes:

De modo parecido a las configuraciones, los ámbitos pueden ampliar otros ámbitos. Por ejemplo, el ámbito Editor Java adopta enlaces de teclas del ámbito Editor de texto, que a su vez adopta enlaces de teclas del ámbito Global.

Plataforma y entorno local

Los enlaces de teclas también pueden variar según la plataforma y el entorno local. En la plataforma Macintosh, Comando+S se asigna a Guardar, en lugar de la combinación habitual Control+S. En entornos locales del chino (zh), Alt+/ se asigna a Asistente de contenido, en lugar de la combinación habitual Control+Espacio.

La plataforma y entorno local actuales se determinan al inicio de Eclipse y no varían durante el transcurso de una instancia de Eclipse.

Personalizar enlaces de teclas

Con secuencias de teclas de varias pulsaciones, configuraciones y ámbitos, hay muchas cosas que debe recordar al personalizar enlaces de teclas. Para facilitar esta tarea, toda la personalización de teclas se lleva a cabo en la página de preferencias de teclas.

Seleccione Ventana > Preferencias > Entorno de trabajo > Teclas para acceder a la página de preferencias de teclas.

Página de preferencias de teclas que muestra Emacs como configuración activa y el mandato Cerrar seleccionado

En este ejemplo, se ha elegido seleccionar Emacs como configuración activa y se ha seleccionado el mandato Cerrar en la lista de mandatos. En el lado derecho, se muestra información sobre este mandato y sus enlaces de teclas actuales.

Tenga en cuenta que Cerrar tiene dos secuencias de teclas asignadas: Control+F4 en la configuración Estándar y Control+X K en la configuración Emacs. Ambas se asignan en el ámbito Global. De este modo si el usuario establece la configuración activa en Estándar, Control+F4 se asignará a Cerrar, pero Control+X K no. Sin embargo, si el usuario establece la configuración activa en Emacs, Control+X K se asignará a Cerrar. Además, debido a que la configuración Emacs también adopta enlaces de teclas de la configuración Estándar, Control+F4 también se asignará a Cerrar si Control+F4 no se ha asignado a otro mandato en la configuración Emacs.

Bajo la lista de secuencias de teclas asignadas a Cerrar, hay un lugar para añadir o eliminar enlaces de teclas. Por omisión, se selecciona el ámbito como Global y la configuración que va a ser la configuración activa del usuario (recuerde donde se ha cambiado esto a Emacs anteriormente).

Se escribe la secuencia de teclas Control+W y el botón 'Añadir' pasa a estar disponible. Además, bajo el botón Añadir, se muestra una lista de todos los mandatos a los que ya se ha asignado la secuencia de teclas Control+W. Se puede ver que Control+W está asignada actualmente al mandato Cortar en el ámbito Global y en la configuración Emacs. Se pulsa el botón 'Añadir' para asignar Control+W a Cerrar.

Página de preferencias de teclas, en la que se asigna la secuencia de teclas Control+W al mandato Cerrar

Ahora vemos que Control+W se ha añadido a la lista de secuencias de teclas asignadas a Cerrar. Observe el pequeño gráfico 'cambio' Gráfico pequeño que representa 'cambio' que indica que este enlace de teclas ha cambiado respecto a un enlace de teclas ya existente. Este nuevo enlace de teclas elimina efectivamente la asignación anterior de Control+W en Cortar. Se puede eliminar este cambio en cualquier momento seleccionando el nuevo enlace de teclas y pulsando el botón 'Eliminar'. La asignación anterior de Control+W en Cortar se restaurará automáticamente.

Página de preferencias de teclas que muestra las asignaciones nuevas, incluido el gráfico 'cambio'

Si se selecciona el mandato Cortar, pueden verse los resultados del cambio. Observe el pequeño gráfico 'menos' Gráfico pequeño que representa 'menos' que indica que se ha eliminado el enlace de teclas. Se puede restaurar este enlace de teclas en cualquier momento; para ello, selecciónelo aquí y pulse el botón 'Restaurar' para eliminar efectivamente el nuevo enlace de teclas que se ha añadido en el paso anterior.

Página de preferencias de teclas que muestra el mandato Cortar

Es posible que se decida asignar otra tecla a Cortar en la configuración Emacs, por ejemplo Control+Alt+W. Si se añade esto de la manera descrita más arriba se produce lo siguiente. Observe el pequeño gráfico 'más' Gráfico pequeño que representa 'más' que indica que el usuario ha añadido el enlace de teclas y que anteriormente no estaba asignado:

Página de preferencias de teclas en que se añade la secuencia de teclas Control+Alt+W a Cerrar

La naturaleza dinámica de los enlaces de teclas

Los conectores proporcionan los enlaces de teclas y, en Eclipse, los conectores se pueden añadir o eliminar. Esto puede provocar que los enlaces de teclas declarados por estos conectores se añadan o se eliminen. Eclipse almacena enlaces de teclas personalizados de manera que esto queda automáticamente compensado. Considere el ejemplo anterior donde Control+Alt+W se ha asignado a Cortar en la configuración Emacs. Considere que el usuario instala un conector nuevo que asigna Control+Alt+W a un mandato determinado. Eclipse conservará la asignación del usuario respecto a Cortar, pero mostrará el enlace de teclas con el pequeño gráfico 'cambio' en lugar del gráfico 'más'.

Resolución de conflictos

Solo hay un número finito de pulsaciones de teclas sencillas y comunes disponibles para que se puedan asignar a una multitud de mandatos. Hemos visto que las configuraciones, ámbitos, plataformas y entornos locales se reparten las asignaciones de secuencias de teclas en dominios donde no entran en conflicto entre sí. Considere el caso de Control+B, visto más arriba, si los ámbitos no existieran. Un conector asignaría Control+B a Construir, otro conector asignaría Control+B a Poner texto en negrita. ¿Cómo resolvería Eclipse este conflicto correctamente?

A pesar que los conflictos se reducen drásticamente si se emplean los mecanismos anteriores, todavía pueden darse. Dos conectores, independientes entre sí, podrían asignar la misma secuencia de teclas a mandatos diferentes con el mismo ámbito, configuración, plataforma y entorno local. Considere que un conector ha asignado Control+F4 en el ámbito Global y en la configuración Estándar a uno de sus mandatos. Esto entra directamente en conflicto con Eclipse, que asigna Control+F4 al mandato cerrar en el mismo ámbito y en la misma configuración.

Esto es un conflicto. No sería adecuado invocar ambos mandatos ni simplemente elegir uno de los dos mandatos para recibir la pulsación de teclas. Lo único correcto que puede hacer es ignorar ambos enlaces de teclas, haciendo que Control+F4 no tenga ninguna utilidad efectiva en este ámbito y configuración.

Los conflictos de este tipo se muestran en la página de preferencias de teclas de la manera siguiente. Observe el texto en rojo y la palabra "[conflicto]":

Página de preferencias de teclas que muestra un conflicto para la secuencia de teclas Control+F4

El usuario puede resolver estos tipos de conflictos asignando explícitamente la secuencia de teclas a uno de los mandatos.

Las secuencias de teclas de múltiples pulsaciones de teclas pueden provocar otro tipo de conflicto. Por ejemplo, en la configuración Emacs, hay muchas secuencias de teclas de múltiples pulsaciones de teclas que empiezan con la pulsación de teclas Control+X. Control+H K se asigna a Cerrar. Control+X H se asigna a Seleccionar todo.

Como se ha dicho anteriormente, la configuración Emacs adopta enlaces de teclas a partir de la configuración Estándar. En la configuración estándar, Control+X se asigna a Cortar. A pesar que la configuración Emacs no redefine explícitamente Control+X, es necesario pulsar Control+X como parte de muchos de sus enlaces de teclas. En la configuración Emacs, cuando se pulsa Control+X, se está a medio camino de entrar en una de las muchas posibles secuencias de teclas asignadas. No sería de esperar que la acción Cortar se invocase en este momento.

Para este tipo de conflicto, la regla es que se ignore la secuencia de teclas Control+X asignada a Cortar. De lo contrario, no sería posible completar muchos de los enlaces de teclas en la configuración Emacs.

Conceptos relacionados
Características de accesibilidad en Eclipse
Cambiar los enlaces de tecla
Sistema de ayuda en línea

Referencias relacionadas
Valores de Font y color en Eclipse

Copyright IBM Corporation y otros 2000, 2003. Reservados todos los derechos.