Tout au long de la journée, j'utilise constamment C-h f
ou C-h v
( describe-function
et describe-variable
) pour rechercher de la documentation sur les fonctions et les variables. Plus souvent qu'autrement, si je n'obtiens pas toutes les informations dont j'ai besoin, je clique sur le lien du fichier à la fin de:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
et accédez au code source. Cela fonctionne pour les packages installés, mais ne semble pas fonctionner pour les packages intégrés. Par exemple, en haut de la page d'aide de la commande, describe-function
tout ce que j'obtiens est:
describe-function is an interactive compiled Lisp function.
sans lien vers le code source. Existe-t-il un moyen de naviguer rapidement vers le code source d'un package intégré?
Je sais que je peux trouver le code source dans, par exemple, /usr/share/emacs/24.5/lisp
et trouver un certain nombre de façons d'accéder rapidement à ce répertoire, mais je suis curieux de savoir s'il existe un moyen rapide et facile de naviguer vers une définition de fonction / variable intégrée dans le code source. Je vous remercie!
M-x describe-function
: decrire-fonction est une fonction Lisp compilée autochargée interactive dans 'help-fns.el'. Et à partir de là, je peux cliquer sur (ou appuyer sur Entrée) help-fns.el
et je suis ensuite transporté vers la section applicable du code. Peut-être que vous avez plusieurs versions d'Emacs, et que celle que vous utilisez actuellement n'a pas tout le code source installé?
emacs -Q
(pas de fichier init), ou si vous pouvez le reprocher avec une recette qui commence par emacs -Q
(par exemple en disant quelles bibliothèques vous chargez et comment vous les chargez etc.), alors pensez à déposer un bogue rapport: M-x report-emacs-bug
.
.el
fichiers (traités comme facultatifs) des .elc
fichiers (obligatoires), de sorte que vous devez installer un ou plusieurs paquets supplémentaires pour les obtenir. Si vous avez obtenu Emacs auprès de votre gestionnaire de packages de système d'exploitation, cela explique peut-être cela.
/usr/bin/emacs
et /usr/bin/emacsclient
, et j'ai une version bien emballée dans un dossier d'application OSX se terminant par .app - c'est-à-dire /Applications/Emacs.app
(à l'intérieur d'Emacs.app, se trouvent les binaires et tous les fichiers de code source).
M-x find-function
;M-x find-variable
;M-x find-face
;M-x find-library
. J'utilise toujours une installation complète d'Emacs pour avoir accès à tout, et juste après avoir construit mes propres Emacs, je copie sur le code C-source et définit son emplacement afin de pouvoir également trouver des définitions de code C-Source. Voir la variablefind-function-C-source-directory
pour définir l'emplacement du code source C après l'avoir copié.