Touches

Eclipse permet une personnalisation poussée du fonctionnement du clavier. Les raccourcis clavier et les séquences de touches sont associés à des commandes particulières.

Raccourci clavier, séquence de touches et liaisons de touches

Un "raccourci clavier" consiste à appuyer sur une touche du clavier, tout en maintenant appuyée, le cas échéant, l'une des touches modificatrices suivantes : Ctrl, Alt (Option sur Macintosh), Maj ou Commande (sur Macintosh uniquement). Par exemple, appuyer sur la touche Ctrl et la maintenir enfoncée, puis appuyer A produit le raccourci clavier Ctrl+A. Actionnées seules, les touches modificatrices ne constituent pas des raccourcis clavier.

Une "séquence de touches" correspond à la frappe d'une ou de plusieurs touches. Traditionnellement, emacs assignait deux ou trois séquences de touches à des commandes précises. Par exemple, la séquence de touches normale pour Fermer tout est Ctrl+X Ctrl+C dans emacs. Pour entrer cette séquence de touches, vous devez taper Ctrl+X puis Ctrl+C. Eclipse supporte des séquences de touches de longueurs arbitraires.

Une "liaison de touches" est l'affectation d'une séquence de touches à une commande.

Configurations

Une "configuration" est un ensemble de liaisons de touches. Eclipse en comporte deux :

La configuration standard contient un ensemble général de liaison de touches, identifiables à des séquences de touches traditionnelles. Par exemple, Ctrl+A est associé à Sélectionner tout, Ctrl+S à Sauvegarder, etc.

La configuration Emacs contient un ensemble de liaisons de touches connues des utilisateurs emacs. Par exemple, Ctrl+X H est associé à Sélectionner tout, Ctrl+X S à Sauvegarder, etc.

Il est important de comprendre pourquoi la configuration Emacs est une extension de la configuration "standard". A la différence de la configuration Standard, la configuration Emacs n'est pas un ensemble complet de liaisons de touches. En fait, elle emprunte les liaisons de touches de la configuration standard en lui associant des liaisons de touches spécifiques au style emacs. Seules les commandes courantes comme Sélectionner tous, Sauvegarder, etc., possèdent des séquences de touches emacs.

L'utilisateur choisit la configuration qui lui convient le mieux, en modifiant le paramètres "Configuration active" dans la page de préférences des touches. S'il choisit la configuration Standard, toutes les liaisons de touches Emacs sont ignorées. Si l'utilisateur choisit la configuration Emacs, les séquences de touches de style emacs ont la priorité sur les séquences de touches équivalentes dans la configuration Standard.

Portées

Les liaisons de touches peuvent varier selon le contexte en cours d'Eclipse.

Des séquences de touches similaires ont des effets différents selon que les éléments traités se trouvent dans un éditeur de fichier java ou dans un éditeur de fichier html, par exemple. Ainsi, Ctrl+B est associé à Compiler dans un contexte d'édition de fichier java, et à Texte gras dans un contexte d'édition de fichier html. Ce contexte s'appelle une "portée" et est déterminée par l'élément actif. Si l'élément actif ne choisit pas de portée particulière, le plan de travail considérera que la portée active est globale.

Eclipse comporte trois portées différentes. Il s'agit des vues suivantes :

A l'instar des configurations, les portées peuvent étendre d'autres portées. Par exemple, la portée Editeur Java emprunte des liaisons de touches à la portée Editeur de texte, qui, à son tour, emprunte des liaisons de touches à la portée Globale.

Plateforme et paramètres régionaux

Les liaisons de touches peuvent également varier selon la plateforme et les paramètres régionaux. Sur Macintosh, Commande+S est associé à Sauvegarder, l'équivalent Windows est Ctrl+S. Avec les paramètres de langue chinoise (zh), Alt+/ est associé à Assistant de contenu, en lieu et place de Ctrl+espace.

Les paramètres de plateforme et les paramètres régionaux sont chargés une fois pour toutes lors du démarrage d'Eclipse (ils ne peuvent varier lors de la session en cours).

Personnalisation de liaisons de touches

La personnalisation de liaisons recouvre des concepts et d'opérations variées, comme les séquences de touches multi-frappes, les configurations et les portées. Pour simplifier, cette activité est centralisée dans la page de préférences Touches.

Sélectionnez Fenêtre > Préférences > Plan de travail > Touches pour afficher la page de préférences Touches.

Page de préférences Touches dans laquelle Emacs est la configuration active et la commande Fermer est sélectionnée

Dans cet exemple, nous avons choisi de sélectionner Emacs comme configuration active et sélectionné Fermer dans la liste de commandes. Les informations relatives à cette commande ainsi que les liaisons de touches qui lui sont associées figurent à droite.

Notez que Fermer possède deux séquences de touches : Ctrl+F4 dans la configuration Standard et Ctrl+X K dans la configuration Emacs. Les deux séquences sont attribuées dans la portée Globale. En conséquence, si l'utilisateur fixe la configuration active sur Standard, Ctrl+F4 sera associé à Fermer tandis que Ctrl+X K ne le sera pas. S'il fixe la configuration active sur Emacs, Ctrl+X sera associé à Fermer. Du fait que la configuration Emacs emprunte également des liaisons de touches à la configuration Standard, Ctrl+F4 sera associé à la commande Fermer à condition que cette séquence de touches n'ait pas encore été attribué à une autre commande dans la configuration Emacs.

Sous la liste des séquences de touches associées à Fermer figure un emplacement pour ajouter ou supprimer des liaisons de touches. Par défaut, Globale est sélectionnée pour la portée et la configuration active de l'utilisateur (précédemment, nous avions choisi Emacs).

En entrant la séquence de touches Ctrl+W, vous pouvez remarquer que le bouton "Ajouter" s'active. De même, la liste des commandes associées à la séquence de touches Ctrl+W apparaît sous le bouton Ajouter. Vous pouvez remarquer que Ctrl+W est associé à la commande Couper dans la portée Globale et dans la configuration Emacs. Cliquez sur le bouton "Ajouter" pour que Ctrl+W soit attribué à Fermer.

Page de préférences des touches, attribution de la séquence de touches Ctrl+W à la commande Fermer

Ctrl+W est à présent ajouté à la liste des séquences de touches associées à Fermer. Remarquez le petit graphique de modification Graphique indiquant une modification indiquant que cette liaison de touches remplace une liaison de touches existante. La nouvelle liaison de touches supprime l'affectation précédente de Ctrl+W à Couper. Il est possible de supprimer cette modification à tout moment en sélectionnant la nouvelle sélection de touches et en cliquant sur le bouton "Supprimer". La séquence Ctrl+W est à nouveau associée à Couper.

Nouvelle affectation de touches dans la page de préférences Touches et graphique de modification

En sélectionnant la commande Couper, nous pouvons observer les résultats de la modification. Le symbole graphique "moins" Symbole graphique 'moins' indique que la liaison de touches a été supprimée. Nous pouvons la restaurer à tout moment en la sélectionnant et en cliquant sur le bouton "Restaurer", qui a pour effet de supprimer la liaison de touches définie précédemment.

Commande Couper dans la page de préférences Touches

Supposons que nous souhaitions affecter une autre touche à Couper dans la configuration Emacs ; Ctrl+Alt+W, par exemple. Pour cela, nous répétons l'opération précédente, ce qui produit le résultat suivant. Le symbole graphique "plus" Symbole graphique 'plus' indique que la liaison de touches, qui était jusqu'alors disponible, a été ajoutée par l'utilisateur.

La séquence Ctrl+Alt+W est affectée à Fermer dans la page de préférences Touches

Caractère dynamique des liaisons de touches

Les liaisons de touches sont fournies par des plug-in qui, dans Eclipse, peuvent être ajoutés ou supprimés. Ces liaisons déclarées par des plug-in peuvent être également ajoutées ou supprimées. Eclipse stocke les liaisons de touches personnalisées en signalant automatiquement les modifications qui leur sont apportées. Reprenons l'exemple précédent qui affectait Ctrl+Alt+W à la commande Couper dans la configuration Emacs. Supposons que l'utilisateur installe un nouveau plug-in qui associe Ctrl+Alt+W à une commande précise. Eclipse va conserver l'affectation de touches à la commande Couper, en remplaçant à l'écran le symbole "plus" par le symbole de modification.

Résolution de conflits

Il n'existe qu'un nombre limité de liaisons de touches simples à affecter à une multitude de commandes. Dans les exemples étudiés jusqu'à présent, les paramètres de configuration (portée, plateforme, paramètres régionaux)appliqués aux séquences de touches n'entraient pas en conflit les uns avec les autres. Prenons le cas du raccourci Ctrl+B si les portées n'existent pas. Un plug-in pourrait affecter Ctrl+B à Compiler, un autre affecterait le même raccourci à Gras. Comment Eclipse résoudrait ce conflit ?

Bien que réduits au minimum par les mécanismes décrits précédemment, de tels conflits peuvent se produire. Deux plug-in indépendants l'un de l'autre pourraient attribuer la même séquence de touches à des commandes différentes de portée, de plateforme et de paramètres régionaux similaires. Par exemple, un plug-in pourrait affecter à l'une de ses commandes Ctrl+F4 dans la portée Globale et la configuration Standard. Ceci générerait un conflit avec Eclipse, car Ctrl+F4 est affecté à la commande Fermer dans la portée et la configuration similaire.

Voici le problème. Il serait impossible d'appeler les deux commandes, ni de choisir quelle commande recevrait la séquence de touches. La solution consiste à ignorer les deux liaisons de touches, rendant Ctrl+F4 inutile dans cette portée et cette configuration.

Les conflits de cette nature sont signalés dans la page de préférences Touches. Remarquez le texte rouge et le mot "[conflit]" :

Conflit sur la séquence de touches Ctrl+F4 dans la page de préférences Touches

L'utilisateur peut résoudre un conflit de ce type en affectant explicitement la séquence de touches à l'une des commandes.

Un conflit d'un autre type peut être généré par des séquences comprenant plusieurs caractères alphanumériques. Par exemple, la configuration Emacs comporte de nombreuses séquences incluant Ctrl+X. Ctrl+H K est affecté à Fermer. Ctrl+X H est affecté à Sélectionner tout.

Comme nous l'avons vu, la configuration Emacs emprunte des séquences de touches à la configuration Standard. Dans la configuration standard, Ctrl+X est associé à Couper. Bien que la configuration Emacs ne redéfinisse pas explicitement Ctrl+X, cette séquence entre dans un grand nombre de ses liaisons de touches. Sous Emacs, l'utilisateur qui actionne Ctrl+X doit également employer l'une des nombreuses autres séquences associées à cette combinaison de touches. L'utilisateur ne s'attend pas à ce que la commande Couper s'exécute à ce moment-là.

Dans ce type de conflit, la règle indiquant que Ctrl+X est affectée à Couper sera ignorée. Autrement, il serait impossible d'utiliser un grand nombre de liaisons de touches de la configuration Emacs.

Concepts connexes
Fonctions d'accessibilité dans Eclipse
Modification des liaisons de touches
Système d'aide en ligne

Références connexes
Paramètres de polices et de couleurs dans Eclipse

Copyright IBM Corporation and others 2000, 2002. All Rights Reserved.