В течение дня я постоянно использую C-h f
или C-h v
( describe-function
и describe-variable
) для поиска документации по функциям и переменным. Чаще всего, если я не получаю всю необходимую информацию, я нажимаю на ссылку файла в конце:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
и перейдите к исходному коду. Это работает для установленных пакетов, но, похоже, не работает для встроенных. Например, в верхней части страницы справки для команды describe-function
все, что я получаю, это:
describe-function is an interactive compiled Lisp function.
без ссылки на исходный код. Есть ли способ быстро перейти к исходному коду встроенного пакета?
Я знаю, что могу найти исходный код, например, /usr/share/emacs/24.5/lisp
и найти множество способов быстрого доступа к этому каталогу, но мне любопытно, есть ли быстрый и простой способ перехода к встроенной функции / определению переменной в исходный код. Спасибо!
M-x describe-function
: description-function - это интерактивная автоматически загружаемая скомпилированная функция Lisp в 'help-fns.el'. И оттуда я могу нажать (или нажать Enter) help-fns.el
и затем перенести в соответствующий раздел кода. Возможно, у вас есть несколько версий Emacs, а в той, которую вы используете в данный момент, не установлен весь исходный код?
emacs -Q
(без файла инициализации) или если вы можете воспроизвести его с помощью рецепта, начинающегося с emacs -Q
(например, с указанием, какие библиотеки вы загружаете, как вы их загружаете и т. Д.), Тогда, пожалуйста, рассмотрите возможность сообщения об ошибке Докладываю: M-x report-emacs-bug
.
.el
файлы (считаются необязательными) от .elc
файлов (обязательных), так что вам нужно установить один или несколько дополнительных пакетов для их получения. Если вы получили Emacs от менеджера пакетов вашей ОС, возможно, это объясняет это.
/usr/bin/emacs
и /usr/bin/emacsclient
, и у меня есть версия красиво упакованная в приложении OSX папки заканчивается в .app - то есть, /Applications/Emacs.app
(внутри что Emacs.app, являются бинарными файлами и все файлы исходного кода).
M-x find-function
;M-x find-variable
;M-x find-face
;M-x find-library
, Я всегда использую полную установку Emacs, чтобы у меня был доступ ко всему, и сразу после сборки своего собственного Emacs я копирую исходный код C и устанавливаю его местоположение, чтобы я мог также найти определения кода C-Source. Смотрите переменную,find-function-C-source-directory
чтобы установить местоположение исходного кода на C после того, как вы скопируете его.