Emacs: comment choisir de bons raccourcis clavier personnalisés?

10

Je suis un débutant Emacs et je voudrais commencer à ajouter des raccourcis globaux clés personnalisés pour les tâches courantes comme replace-string, replace-regex, etc. , qui ne les ont pas par défaut. Je veux faire de bons choix et je vois quelques problèmes:

  • Voir toutes mes options - Comment puis-je voir la gamme complète de touches non liées dans tous les modes que j'utilise régulièrement?

  • Compatibilité / convention - Existe-t-il des liaisons non officielles communes ou une clé "espace utilisateur" commune avec laquelle commencer les liaisons personnalisées personnelles?

  • Autres questions - Autre chose que je devrais prendre en considération?

Ian Mackinnon
la source

Réponses:

9

Essayez de jeter un œil à cette question sur SO: Y a-t-il des combinaisons de touches emacs réservées pour les commandes personnalisées?

Pour voir ce qui est disponible, il y a la unboundbibliothèque (voir la première réponse à la question ci-dessus).

Une convention (tirée de ma réponse à cette question ) est:

Vous pouvez redéfinir n'importe quoi, mais la convention est d'utiliser C-c l (où lest n'importe quelle lettre).

En tant qu'utilisateur, vous pouvez redéfinir n'importe quelle clé; mais il est généralement préférable de s'en tenir aux séquences de touches qui consistent en C-c suivi d'une lettre (majuscule ou minuscule). Ces clés sont "réservées aux utilisateurs", de sorte qu'elles n'entreront en conflit avec aucune extension Emacs correctement conçue. Les touches de fonction F5jusqu'à F9sont également réservées aux utilisateurs. Si vous redéfinissez une autre clé, votre définition peut être remplacée par certaines extensions ou modes principaux qui redéfinissent la même clé.

N'oubliez pas que les raccourcis clavier sont différents dans chacun des différents modes (majeur et mineur), donc ce qui est disponible dans un tampon n'est pas nécessairement disponible dans un autre. Et effectuez vos raccourcis clavier au niveau le plus localisé possible. Par exemple, si la fonctionnalité fait quelque chose à une ligne de code, ne font pas une clé globale contraignante pour elle, définir dans les plans de codage appropriés ( c++-mode-map, ruby-mode-map, etc.).

En ce qui concerne vos tâches spécifiques, avez-vous remarqué:

  • M-% alias query-replace
  • C-M-% alias query-replace-regexp

De plus, lorsque vous recherchez ( C-sou C-M-s(et les variantes inverses)), vous pouvez taper M-%(ou C-M-%) pour entrer directement query-replace( query-replace-regexp) avec la chaîne de recherche comme élément à remplacer ... Assez pratique.

Trey Jackson
la source