How to make Emacs C source directory permanent?

Ordinarily most user-settable variables can be edited with Customize, but for some reason the source-directory variable isn't one of them.

You will need to edit your ~/.emacs file to include a line such as:

(setq source-directory "/path/to/emacs/source/dir")

Do not include the trailing src directory; it will be added automatically. Then exit and restart Emacs.

Note that setting this after Emacs is running may have no effect because it's only read when find-func.el is loaded. You can set find-function-C-source-directory instead (with the /src), but that can get overwritten. It's better just to (setq source-directory ...) at startup, as above.


Assuming you have a decent locate-style shell-command, this saves you having to remember the path exactly. It should thus still work in your ~/.emacs.d/init.el if you upgrade to a newer version, as long as you still have the sources.

(setq source-directory
      (file-name-directory
       (shell-command-to-string
    (concat "locate --limit 1 emacs-" emacs-version "/src"))))

Tags:

Emacs