Quelles sont les conventions d'utilisation C-x
, C-c
ou M-
comme touches de préfixe?
Par exemple: est C-x
, etc., pour enregistrer ou visiter des tampons? Est C-c
, etc., pour l'édition de texte?
Contexte
C'est peut-être une question stupide. J'utilise un clavier espagnol et redéfinis parfois les raccourcis clavier courants pour un clavier anglais (QWERTY). Par exemple: la commande shell est liée dans Emacs vanilla à M-!
. Je lie à la M-¡
place, parce M-!
est M-shift-1
que je ne peux pas appuyer facilement. Je me demande s'il y a des conventions que j'écrase lorsque j'effectue ce genre de modifications
key-bindings
elisp-conventions
anquegi
la source
la source
M-x
pour «exécuter une commande étendue, c'est la passerelle vers un grand nombre de choses sophistiquées que vous pouvez accomplir de manière interactive dans Emacs; il vous permet d'exécuter n'importe quelle fonction Elisp par son nom». aC-c
et n'aC-x
pas une description comme ça?Réponses:
Si vous parlez de lier des clés pour votre propre usage, alors c'est la règle: vous pouvez lier toutes les clés que vous aimez.
Si vous voulez être sûr de ne pas lier une clé qui pourrait déjà être liée, utilisez-la
C-c
suivie d'une lettre. Toutes ces clés sont réservées aux utilisateurs (voir ci-dessous).Si vous parlez de liaison de clés dans du code (par exemple, une bibliothèque) que vous écrivez, pour une utilisation par d'autres, les règles (conventions) sont décrites ici: conventions de liaison de clé de nœud du manuel Elisp.
Les principales règles y relatives, liées à ce que vous demandez, sont celles concernant
C-c
:Ne définissez pas
C-c LETTER
comme clé dans les programmes Lisp. Les séquences composées deC-c
et d'une lettre (majuscule ou minuscule) sont réservées aux utilisateurs; ce sont les seules séquences réservées aux utilisateurs, donc ne les bloquez pas.Les séquences composées de
C-c
suivies d'un caractère de contrôle ou d'un chiffre sont réservées aux modes principaux.Les séquences composées de
C-c
suivi{
,}
,<
,>
,:
ou;
sont également réservés aux modes principaux.Les séquences constituées de
C-c
suivies de tout autre caractère de ponctuation ou de symbole ASCII sont allouées pour les modes mineurs. Leur utilisation dans un mode majeur n'est pas absolument interdite, mais si vous le faites, la liaison du mode majeur peut être assombrie de temps en temps par des modes mineurs.Vous noterez qu'il n'y a pas de convention concernant
C-x
. Une convention non déclarée, ou tout simplement un bon conseil / pratique est celle-ci, cependant: si vous remplacez une liaison Emacs standard existante (c'est-à-dire, une que vous obtenez d'Emacs telle qu'elle est distribuée, sans charger de bibliothèques tierces), cela pourrait confondre ou ennuyer certains utilisateurs de votre code.Vous pouvez accéder à ce document dans Emacs, de cette façon:
C-h i
, pour ouvrir Info, le navigateur de documents.m el TAB RET
, pour m enu el isp (TAB
à compléter), ou cliquez simplement sur leElisp
lien avec votre souris.key bi TAB
, puisn TAB RET
pour terminerKey Binding Conventions
.Ou vous pouvez utiliser
i
dans le manuel Elisp, pour compléter les entrées d'index:C-h i m el TAB RET
.i key bi TAB
, qui complètekey binding
et vous montre deux possibilités:key binding
etkey binding, conventions for
. Tapez, TAB
pour terminer à la seconde, puisRET
pour l'accepter.la source
C-c
et de lettre aux commandes utilisateur. De cette façon, on peut être (presque) sûr de ne pas remplacer une autre liaison d'un mode majeur déjà installé ou à installer un jour dans le futur.C-c
+ LETTRE dans une bibliothèque tierce.@ La réponse de Drew est beaucoup plus nuancée et détaillée.
C'est une question parfaitement valable!
Il y a la convention que leC-x
est réservé par emacs lui-même alors que leC-c
préfixe est utilisé pour les raccourcis clavier définis par l'utilisateur.Jetez un oeil à cela , en particulier la section "Clés réservées". Je suis à peu près sûr que ces informations sont également indiquées dans le manuel emacs, mais je n'arrive pas à les trouver pour le moment.Les conventions sont décrites dans cette section du manuel emacs lisp.la source
C-c
suivi d'une lettre (minuscule ou majuscule) sans autres modificateurs est réservé aux utilisateurs. De nombreuses autres séquences de touches commençant parC-c
sont réservées aux modes principaux - en particulier ceux où le deuxième coup de touche est également modifié par la touche de commande.M-x
pour «exécuter une commande étendue, c'est la passerelle vers un grand nombre de choses sophistiquées que vous pouvez accomplir de manière interactive dans Emacs; il vous permet d'exécuter n'importe quelle fonction Elisp par son nom». aC-c
et n'aC-x
pas une description comme ça?