Il est assez courant de parcourir la documentation d'une commande avec C-h f
, puis d'appeler la commande M-x
immédiatement après.
À l'heure actuelle, le moyen le plus court que j'ai trouvé pour «invoquer la dernière commande de vue» consiste à copier son nom (à partir du tampon d'aide ou de l'historique) et à le copier dans M-x
l'invite du mini- tampon de .
Ce que j'aimerais vraiment, c'est que les noms de commandes donnés
describe-function
fassent partie de l'histoire de
execute-extended-command
. Donc je pouvais juste faire M-x M-p RET
.
Quelle est la façon la plus simple de procéder?
documentation
m-x
history-variables
Malabarba
la source
la source
smex
ethelm-M-x
? le premier fait partie du MELPA, le second fait partiehelm
du MELPA.Réponses:
La "manière la plus simple" consiste à simplement définir votre propre version de
describe-function
et à la lier àC-h f
.Prenez le code vanilla et modifiez uniquement l'appel pour
completing-read
qu'il utilise la même liste d'historique queM-x
(execute-extended-command
), qui estextended-command-history
.Comment ai-je trouvé le code d'origine?
C-h f describe-function
,C-h k M-x
,C-h f execute-extended-command
. Dans le code carexecute-extended-command
j'ai vu qu'il lit le nom de la commande en utilisantread-extended-command
, et que les appelscompleting-read
passentextended-command-history
commeHISTORY
argument.la source
Je peux ajouter non pas une réponse exacte à votre question, mais un flux de travail qui en élimine le besoin.
J'utilise à la
smex
place deexecute-extended-command
. Une fois dans le mini-tampon desmex
:execute-extended-command
smex-describe-function
smex-find-function
Je n'aime pas les liaisons par défaut, je les ai donc personnalisées:
la source
Veuillez noter qu'il est très facile d'appeler la commande à partir de son tampon d'aide. Après avoir tapé, tapez
C-h f
simplementM-x M-n RET
. Cela fonctionne car dans un nouveau tampon d'aide, le nom de la commande se trouve en haut du tampon sous le curseur et leM-n
récupère dans le mini- tampon .Cependant, si vous souhaitez ajouter une commande à
extended-command-history
chaque fois que vous visitez sa documentation, vous pouvez le faire avec un petit conseil:ou en utilisant la nouvelle macro qui
define-advice
vient d'être ajoutée dans 25.0.50:la source
(interactive)
?(commandp function)
vérifie que la fonction de recherche est interactive car seules les commandes doivent être ajoutéesextended-command-history
. Donc, si la fonction de recherche n'est pas interactive, elle n'est pas ajoutéeextended-command-history
.Si vous utilisez
helm-M-x
, il n'est pas nécessaire de taperC-h f
pour rechercher la documentation des commandes, utilisez simplementC-j
ouC-z
pendant l'exécutionhelm-M-x
pour basculer l'affichage de la documentation.Voir aussi les fonctionnalités de Helm Mx .
la source