Emacs에서 기존 함수의 정의를 인쇄하는 방법이 있습니까? 함수 자체가 아닌 함수의

Emacs에서 기존 함수의 정의를보고 싶습니다. 이것이 가능한가?

시도 C-h d function-name RET했지만 실제 함수 자체가 아닌 함수의 문서 문자열 만 반환합니다.

bash의 type명령 과 비슷한 것을 생각하고 있습니다.이 명령은 함수의 전체 정의를 반환합니다.

(부끄러운 스토리 : 나는 우연히 내에서 작동하는 기능을 통해 쓴 .emacs이 아닌 작업 버전으로 파일을 원래의 기능은 아직 메모리에 그리고 그것은 작동하지만이 수 없기 때문.!! 내가 그것을 어떻게 날의 기억.)



답변

를 입력 C-h f function-name RET하면 사용 가능한 경우 기능 소스에 대한 링크와 함께 기능 설명서가 제공됩니다.

함수 소스의 위치를 ​​검색하기 위해 호출 할 수있는 쉬운 Lisp 함수가 없다고 생각합니다. 조회는 나머지 도움말 시스템과 밀접하게 관련되어 있습니다. find-lisp-object-file-name함수의 소스가 어디에 있는지 알아 내려는 주요 함수입니다.

function-name(이맥스의 C 소스에서 정의 된) 프리미티브가 아니라면 (symbol-function 'function-name), 또는 더 일반적으로 (간접 함수 ‘function-name) 코드를 볼 수 있습니다 . 그러나 함수가 바이트 컴파일 된 경우 바이트 코드 만 표시됩니다.


답변

M-x find-function 점 근처의 함수 정의를 반환합니다.

설명서에서 :

버퍼에서 함수 근거리 (`function-called-at-point ‘로 선택)에 대한 정의가 포함 된 소스 파일을 찾아 정의 앞에 배치합니다. 버퍼가 이미 존재하는 경우 이동하기 전에 마크를 설정하십시오.

C로 구현 된 함수도 포함하려면 .emacs 파일에 다음을 추가해야합니다.

(setq find-function-C-source-directory (concat (getenv "emacs_home") "/path/to/source-dir"))