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 prend en charge des séquences de touches dont la longueur est arbitraire, mais il est recommandé que les raccourcis de clavier comportent au maximum quatre séquences de touches.
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 Par défaut contient un ensemble général de liaison de touches, identifiables à des séquences de touches traditionnelles. Par exemple, Ctrl+A
est associée à Sélectionner tout
, Ctrl+S
à Sauvegarder
, etc.
Ctrl+X H
est associée à Sélectionner tout
, Ctrl+X S
à Sauvegarder
, etc.
Il est important de comprendre pourquoi la configuration Emacs est une extension de la configuration "par défaut". A la différence de la configuration Par défaut, la configuration Emacs n'est pas un ensemble complet de liaisons de touches. En fait, elle emprunte les liaisons de touches de la configuration Par défaut 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 Par défaut, 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 Par défaut.
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ée à Compiler
dans un contexte d'édition de fichier Java, et à Texte gras
dans un contexte d'édition de fichier HTML. Ce contexte est généralement déterminé par l'élément actif, mais il peut également être influencé par la fenêtre ou boîte de dialogue active. Si l'élément actif ne choisit pas de contexte particulier, le plan de travail considérera que le contexte actif est Dans des fenêtres.
Eclipse comporte sept contextes différents. Il s'agit des contextes suivants :
A l'instar des configurations, les contextes peuvent étendre d'autres contextes. Par exemple, le contexte Edition du code source Java emprunte des liaisons de touches au contexte Edition du texte, qui, à son tour, emprunte des liaisons de touches au contexte Dans des fenêtres.
Remarque : il est déconseillé de faire progresser une liaison de touche à un contexte que celle-ci étend. Par exemple, il n'est pas conseillé de déplacer une liaison de touche Edition du texte au contexte Dans des boîtes de dialogue ou des fenêtres. Cela risque de générer des résultats imprévus.
Il est possible que certaines liaisons de touches fonctionnent dans des boîtes de dialogue. Ces liaisons de touches sont affectées au contexte Dans des boîtes de dialogue ou des fenêtres. Il s'agit, par exemple, de la liaison de touche correspondant à "Couper". Il est possible de modifier ces liaisons de touches. Par exemple, la fonction Couper correspond à Ctrl+X dans des boîtes de dialogue et à Ctrl+W dans des fenêtres.
Les liaisons de touches peuvent également varier selon la plateforme et les paramètres régionaux. Sur Macintosh, Commande+S
est associée à Sauvegarder
, l'équivalent Windows est Ctrl+S
. Avec les paramètres de langue chinoise (zh), Alt+/
est associée à 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 contextes. 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 option ainsi que les liaisons de touches qui lui sont associées s'affichent.
Notez que Fermer
possède trois séquences de touches : Ctrl+F4
et Ctrl+W
dans la configuration Par défaut et Ctrl+X K
dans la configuration Emacs. Les deux séquences sont attribuées dans le contexte Dans des fenêtres. En conséquence, si l'utilisateur fixe la configuration active sur Par défaut, les séquences de touches Ctrl+F4
et Ctrl+W
seront associées à Fermer
tandis que Ctrl+X K
ne le sera pas. S'il fixe la configuration active sur Emacs, Ctrl+X
sera associée à Fermer
. Du fait que la configuration Emacs emprunte également des liaisons de touches à la configuration Par défaut, Ctrl+F4
et Ctrl+W
seront associées à la commande Fermer
à condition que cette séquence de touches n'ait pas encore été attribuée à une autre commande dans la configuration Emacs. Dans cet exemple, la séquence "Ctrl+W" est associée à Couper
dans la configuration de touches 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, le contexte Dans des fenêtres est sélectionné.
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ée à la commande Couper
dans le contexte Dans des boîtes de dialogues ou des fenêtres. Cliquez sur le bouton "Ajouter" pour que Ctrl+W
soit attribuée à Fermer
.
Ctrl+W
est à présent ajoutée à la liste des séquences de touches associées à Fermer
. Remarquez le petit graphique de modification
indiquant que cette liaison de touches remplace une liaison de touches existante. La nouvelle liaison de touches garantit que la liaison de touches
Ctrl+W
correspondant à Fermer
fonctionne dans la configuration de touches Emacs
. La liaison correspondant à Couper
existe toujours mais ne fonctionnera que dans les boîtes de dialogue (c'est-à-dire, lorsque nous sommes "dans des boîtes de dialogue ou des fenêtres" et non "dans des fenêtres"). 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
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 (contexte, 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 contextes 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 contexte, 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 Dans des fenêtres et la configuration Par défaut. Ceci générerait un conflit avec Eclipse, car Ctrl+F4
est affectée à la commande Fermer dans le contexte et la configuration similaires.
Ctrl+F4
inutile dans ce contexte 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
. La séquence de touches Ctrl+H K
est affectée à Fermer
. Ctrl+X H
est affectée à 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ée à 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