

Emacsのソースコードを読みたいと思い、C-h kやC-h fで関数を定義しているelispのソースコードにはアクセスできたのですが、  
よりコアな部分のC言語で書かれたソースファイルにアクセスしようとしたところ（C-h fで検索してC source
codeとリンクが貼られているところに飛ぼうとしたところ）、「The C source window.c is not
available」のようになり、ジャンプできませんでした。

Emacsを実装しているCのソースファイルはどこに格納されているのでしょうか？

Mac OS Xで、Homebrewを使ってインストールしました。  
なお、elispファイルは下記のディレクトリに格納されています。  
/usr/local/Cellar/emacs-mac/emacs-25.1-z-mac-6.1/share/emacs/25.1/lisp/


CC BY-SA 3.0
2017-03-18T09:44:35.563
33400
2020-05-16T22:58:04.313
2020-05-16T22:58:04.313
19110
21107
question
emacs elisp
EmacsのソースコードをEmacsで関数検索しながら読みたい


GitHubでミラーされているので、まずはそちらで眺めてみてはいかがでしょうか。  
<https://github.com/emacs-mirror/emacs/blob/master/src/window.c>


CC BY-SA 3.0
2017-03-18T09:55:36.507
33401
2017-03-18T09:55:36.507
2238
33400
answer


emacs 内で C言語のソースコード(ヘッダ)を検索する場合、`etag` というコマンドでタグテーブルを作成し、`M-.` や `M-x find-
tag` で関数を追跡していました。

<https://www.gnu.org/software/emacs/manual/html_node/emacs/Tags-
Tables.html#Tags-Tables>


CC BY-SA 3.0
2017-05-17T07:03:32.543
34773
2017-05-17T07:03:32.543
22888
33400
answer


ヘルプ画面から、 C の関数へのリンクは、 `find-function-C-source-directory` 変数に、その emacs
がコンパイルされたディレクトリを設定することによって、実現できます。

Homebrew の場合ですと、おそらく `~/Library/Caches/Homebrew/emacs-*` (`*`
の部分はバージョン番号)にソースコードが存在するかもしれません。その場合は、 `(setq find-function-C-source-directory
"~/Library/Caches/Homebrew/emacs-24.3/src")` (emacs のバージョンが 24.3 だと仮定しています)を
`~/.emacs` などに追加します。


CC BY-SA 3.0
2017-07-10T14:04:04.030
36251
2017-07-10T14:04:04.030
754
33400
answer