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 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.

Configurations

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.

La configuration Emacs contient un ensemble de liaisons de touches connues des utilisateurs Emacs. Par exemple, 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.

Contextes

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.

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é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).

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 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.

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 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 Graphique indiquant une 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.

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 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.

Page de préférences de touches ajoutant la séquence de touches Ctrl+Alt+W à la commande Fermer

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 (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.

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 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.

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

Mentions légales