回答:
と入力するC-h f function-name RET
と、関数のドキュメントが表示され、利用可能な場合は関数のソースへのリンクが表示されます。
関数のソースの場所を取得するために呼び出すことができる簡単なLisp関数はないと思います。ルックアップは他のヘルプシステムとかなり絡み合っています。find-lisp-object-file-name
関数のソースがどこにあるかを理解しようとするメイン関数です。
function-name
プリミティブ(EmacsのCソースで定義)でない限り、そのコードは(symbol-function 'function-name)
、またはより一般的には(間接関数 '関数名)で確認できます。ただし、関数がバイトコンパイルされた場合、表示されるのはそのバイトコードだけです。
(symbol-function 'function-name)
まさに私が探していたものです!また、C関数のソースが本当に必要な場合は、Olegの回答からの情報を使用してソースを取得できるようです。
M-x find-function
ポイントの近くの関数の定義を返します。
ドキュメントから:
バッファ内の( `function-called-at-point 'で選択された)ポイント付近の関数の定義を含むソースファイルを検索し、ポイントを定義の前に配置します。バッファが既に存在する場合、移動する前にマークを設定します。
Cで実装されている関数も含めたい場合は、.emacsファイルに次を追加する必要があります。
(setq find-function-C-source-directory (concat (getenv "emacs_home") "/path/to/source-dir"))
.emacs
バッファで開いたままにしている場合は、クレイジーなように元に戻してみてください。