자동로드가 당신이 원하는 것이 아닙니다. 그것이하는 일은 필요한 코드를 처음으로로드하는 것입니다. 이것은 시작 시간을 낮게 유지하면서 Emacs의 기능을 확장하는 편리한 방법입니다.
문제를 해결하려면 실제로 원하는 코드에 대해 생각해야합니다. 즉, 일부 지점에서 코드를로드하고 싶거나 버퍼가없는 로컬 사용자 지정을 원할 경우 c-mode
?
당신은 단순히 이맥스 시작시 코드를로드 중 당신의 .emacs
파일에 직접 코드를 삽입 또는 load-file
또는 require
대신 autoload
을 사용하려면
:
load-file
단순히 파일 이름을 사용은 혀짤배기로드 해당 파일의 코드를 분석하고 평가합니다. 따라서 코드가 "/path/to/my-c-setup.el"이라는 파일에 있다면, .emacs에 다음 줄을 넣으면 코드는 매번 시작할 때마다로드됩니다 :
(load-file "/path/to/my-c-setup.el")
아마도로드하는 모든 파일의 절대 경로 이름을 지정하고 싶지 않을 것입니다.
(add-to-list 'load-path "/path/to")
(load-library "my-c-setup.el")
장점은 당신이 할 필요가 있다는 것입니다 :이 경우, 당신은 변수 load-path
에 저장되어있는 디렉토리의에 지정된 파일 이름을 찾을 load-file
비슷하지만 시도 대신에 기능 load-library
를 사용할 수 있습니다 add-to-list
부분을 한 번만 입력하면 load-library
을 호출하면 해당 디렉토리에서 코드를 찾을 수 있습니다.
다른 방법으로는 제공/요청 메커니즘이 있습니다. (provide 'feature)
전화를 걸어서 .el- 파일에 일부 기능을 "제공"할 수 있습니다.
(provide 'my-c-mode-customizations)
는 그런 다음 이맥스 파일에 따라 (require 'feature)
를 놓고, 코드뿐만 아니라로드됩니다
(require 'my-c-mode-customizations)
그러나 c-mode
가 활성화 될 때 코드 만로드 할 수 원하는 경우 버퍼는 그 달성하는 방법은 이멕스 'Hook기구 통해 : 후크 변수가
어디 수 저장소 함수 또는 함수 특정 프로그램에 기존 프로그램으로 호출 된 이 될 수 있습니다.
대부분의 주요 모드는 주요 모드가 호출 될 때마다 호출되는 함수를 추가 할 수있는 사용자 정의 가능한 후크 변수를 제공합니다. 예를 들어 C 모드는 c-mode-hook
을 제공합니다. 물론
(add-hook 'c-mode-hook 'my-c-mode-customizations)
: C-모드가 버퍼를 켤 때마다 자신의 사용자 정의 위해서는, 말하자면, 함수에 my-c-mode-customizations
을 넣어 당신의 .emacs 파일에 다음 줄을 추가, 호출되는 이맥스가 실제로 그 함수의 정의를 찾으려면 여전히 autoload
이 필요하다.