Durante todo o dia, estou constantemente usando C-h f
ou C-h v
( describe-function
e describe-variable
) para procurar documentação para funções e variáveis. Frequentemente, se não obtiver todas as informações necessárias, clicarei no link do arquivo no final de:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
e navegue até o código fonte. Isso funciona para pacotes instalados, mas não parece funcionar para pacotes internos. Por exemplo, na parte superior da página de ajuda do comando, describe-function
tudo o que recebo é:
describe-function is an interactive compiled Lisp function.
sem link para o código fonte. Existe alguma maneira de navegar rapidamente para o código-fonte de um pacote incorporado?
Sei que posso encontrar o código-fonte em, por exemplo, /usr/share/emacs/24.5/lisp
e apresentar várias maneiras de acessar esse diretório rapidamente, mas estou curioso para saber se existe uma maneira rápida e fácil de navegar para uma função interna / definição de variável no diretório Código fonte. Obrigado!
M-x describe-function
: description-function é uma função Lisp compilada e interativa, carregada automaticamente, em 'help-fns.el'. E a partir daí eu posso clicar (ou pressionar enter) help-fns.el
e depois ser transportado para a seção aplicável do código. Talvez você tenha várias versões do Emacs, e a que você está usando no momento não possui todo o código-fonte instalado?
emacs -Q
(sem arquivo init), ou se puder reproduzi-lo com uma receita que comece com emacs -Q
(por exemplo, dizendo quais bibliotecas você carrega e como as carrega etc.), considere registrar um bug informar: M-x report-emacs-bug
.
.el
arquivos (tratados como opcionais) dos .elc
arquivos (obrigatório), de forma que você precisa instalar um ou mais pacotes adicionais para obtê-los. Se você obteve o Emacs do seu gerenciador de pacotes do sistema operacional, talvez isso explique.
/usr/bin/emacs
e /usr/bin/emacsclient
tenho uma versão bem compactada em uma pasta de aplicativo OSX que termina em .app - ou seja, /Applications/Emacs.app
(dentro desse Emacs.app, estão os binários e todos os arquivos de código-fonte).
M-x find-function
;M-x find-variable
;M-x find-face
;M-x find-library
. Eu sempre uso uma instalação completa do Emacs para ter acesso a tudo, e logo após criar o meu próprio Emacs copio o código-fonte C e defino sua localização para encontrar também as definições do código C-fonte. Consulte a variávelfind-function-C-source-directory
para definir o local do código-fonte C depois de copiá-lo.