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.
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.
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.
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.
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.
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).
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.
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
.
Ctrl+W
est à présent ajouté à la liste des séquences de touches associées à Fermer
. Remarquez le petit graphique de modification 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
.
Couper
, nous pouvons observer les résultats de la modification. Le symbole graphique "moins"
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"
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.
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.
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]" :
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.
Fonctions d'accessibilité dans Eclipse
Modification des liaisons de touches
Système d'aide en ligne