web-dev-qa-db-fra.com

Étant donné un nom de commande emacs, comment trouveriez-vous les raccourcis clavier? (et vice versa)

Si je connais un nom de commande emacs, dit "goto-line"; que faire si je veux demander s'il y a des séquences de clés liées à cette commande?

Et vice versa, étant donné une séquence de touches, comment puis-je trouver son nom de commande?

96
Sake

Pour trouver simplement les raccourcis clavier d'une commande, vous pouvez utiliser la fonction "où-est" de l'aide emacs

C-h w command-name

Si plusieurs liaisons sont définies pour la commande, elles seront toutes répertoriées.

Pour l'inverse, étant donné une séquence de touches, vous pouvez taper

C-h k key-sequence

Pour obtenir la commande qui s'exécuterait.

Vous pouvez obtenir des informations détaillées sur une commande, ainsi que sur toute fonction non interactive définie, en tapant

C-h f function-name

Ce qui vous donnera des informations détaillées sur une fonction, y compris les raccourcis clavier pour elle.

C-h f variable-name

Les cartes-clés sont conservées dans des variables, mais les codes-clés sont stockés dans un format brut. Essayez C-h v isearch-mode-map à titre d'exemple.

Pour plus d'aide sur l'obtention d'aide, vous pouvez taper

C-h ?
145
Adam Rosenfield

C-h w (ou F1-w): where-is RET unnomdecommande RET

Fait exactement ce que vous demandez - répertorie les clés liées sans aucune information supplémentaire. :)

12
Glen Best

Pour obtenir interactivement la commande liée à un raccourci clavier (ou à une séquence de touches en termes Emacs), consultez la réponse sélectionnée.

Pour obtenir par programmation la commande liée à une séquence de touches donnée, utilisez la fonction key-binding ou lookup-key qui prend une séquence de touches et renvoie sa commande liée. La fonction key-binding c'est quoi C-h k les usages.

(key-binding (kbd "C-h m"))

renvoie la commande liée à C-h m en recherchant dans toutes les images clés actuelles. La fonction lookup-key recherche dans une seule image clé:

(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char

Pour obtenir par programme toutes les séquences de touches liées à une commande donnée, where-is-internal est probablement la fonction à utiliser. Le nom de la fonction se terminant par internal semble suggérer que ce n'est pas aux utilisateurs d'Emacs d'utiliser dans leurs fichiers init mais cette fonction ayant une docstring semble suggérer le contraire. Quiconque envisage d'utiliser where-is-internal devrait d'abord vérifier si remappage des clés peut à la place atteindre son objectif.

Une alternative pour rechercher les clés liées à une commande spécifique (par exemple, forward-char) est substitute-command-keys (par exemple., (substitute-command-keys "\\[forward-char]")). Cela est particulièrement utile dans les textes plus volumineux.

12
Jisang Yoo

Une vieille question, mais pour le bénéfice des nouveaux lecteurs, il existe d'autres façons agréables de voir les principales liaisons

M-x describe-bindings

Répertorie toutes les liaisons actuellement disponibles, utilisez isearch, occur, etc. pour faire bon usage de cette liste.

M-x describe-prefix-map

Cela montre toutes les liaisons disponibles dans le mode actuel, vous pouvez utiliser le tampon d'affichage comme vous le feriez pour tout autre tampon Emacs en lecture seule, par exemple, vous pouvez rechercher librement des chaînes, etc.

M-x describe-mode

En plus de vous donner des informations générales sur le mode actuel, il répertorie également toutes les raccourcis clavier disponibles.

M-x describe-minor-mode

Vous serez invité à entrer le nom d'un mode mineur, puis à afficher les informations et les raccourcis clavier pour ce mode mineur.

[~ # ~] note [~ # ~] : les exemples ci-dessous utilisent des packages supplémentaires (disponibles sur MELPA )

Quelle clé

Cela vous montre les liaisons juste avant d'en avoir besoin. Saisissez un préfixe, par exemple C-x ou C-c et une liste des liaisons disponibles dans ce préfixe sera affichée.

Vous pouvez également afficher une liste des raccourcis clavier disponibles dans le mode actuel en utilisant:

M-x which-key-show-top-level

Il est utile de lier which-key-show-top-level à un accord de touches de votre choix, afin que vous puissiez voir les touches disponibles de n'importe où.

Par exemple, C-s (isearch-forward) a une carte clé étendue qui est souvent inconnue. par exemple. M-s o démarre occur en utilisant la chaîne de recherche actuelle, je ne savais pas à ce sujet depuis de nombreuses années d'utiliser Emacs. Ayant which-key around m'a aidé à découvrir de nombreux joyaux rares dans Emacs.

https://github.com/justbur/emacs-which-key

Touche guide

La touche guide fonctionne de la même manière que which-key Je vous conseille d'y jeter un œil pour comparer les fonctionnalités.

https://github.com/kai2nenobu/guide-key

3
ocodo