Przez cały dzień ciągle używam C-h f
lub C-h v
( describe-function
i describe-variable
) szukam dokumentacji funkcji i zmiennych. Częściej niż nie, jeśli nie otrzymam wszystkich potrzebnych informacji, kliknę link do pliku na końcu:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
i przejdź do kodu źródłowego. Działa to w przypadku zainstalowanych pakietów, ale nie działa w przypadku wbudowanych. Na przykład u góry strony pomocy dotyczącej polecenia describe-function
dostaję tylko:
describe-function is an interactive compiled Lisp function.
bez linku do kodu źródłowego. Czy jest jakiś sposób na szybkie przejście do kodu źródłowego wbudowanego pakietu?
Wiem, że mogę znaleźć kod źródłowy np. /usr/share/emacs/24.5/lisp
I wymyślić wiele sposobów szybkiego dostępu do tego katalogu, ale jestem ciekawy, czy istnieje szybki i łatwy sposób na przejście do wbudowanej definicji funkcji / zmiennej w kod źródłowy. Dziękuję Ci!
M-x describe-function
: opis-funkcja jest interaktywną, automatycznie ładowaną, skompilowaną funkcją Lisp w 'help-fns.el'. Stamtąd mogę kliknąć (lub nacisnąć klawisz Enter), help-fns.el
a następnie przenieść się do odpowiedniej sekcji kodu. Być może masz wiele wersji Emacsa, a ta, której używasz w tej chwili, nie ma zainstalowanego całego kodu źródłowego?
emacs -Q
(bez pliku inicjującego) lub jeśli możesz go ponownie wypisać według przepisu rozpoczynającego się od emacs -Q
(np. Mówiąc, jakie biblioteki ładujesz i jak je ładujesz itp.), Rozważ zgłoszenie błędu sprawozdanie: M-x report-emacs-bug
.
.el
pliki (traktowane jako opcjonalne) od .elc
plików (obowiązkowe), tak że aby je zdobyć, musisz zainstalować jeden lub więcej dodatkowych pakietów. Jeśli uzyskałeś Emacsa z menedżera pakietów systemu operacyjnego, być może to wyjaśnia.
/usr/bin/emacs
i /usr/bin/emacsclient
mam wersję ładnie spakowaną w folderze aplikacji OSX kończącym się na .app - tj. /Applications/Emacs.app
(Wewnątrz Emacs.app znajdują się pliki binarne i wszystkie pliki kodu źródłowego).
M-x find-function
;M-x find-variable
;M-x find-face
;M-x find-library
. Zawsze używam pełnej instalacji Emacsa, aby mieć dostęp do wszystkiego, i zaraz po zbudowaniu własnego Emacsa kopiuję kod źródłowy C i ustawiam jego lokalizację, aby móc również znaleźć definicje kodu C-Source. Zobacz zmienną,find-function-C-source-directory
aby ustawić lokalizację kodu źródłowego C po skopiowaniu.