2012-04-28 5 views
2

나는 부 모드와 함께 명시 적 호출을 위해 일부 기능을 사용할 수 있도록 emacs 부 모드를 작성했습니다. 모드의 파일에서 모드와 기능을 정의한 후, 나는 provide D에게 모드를했습니다 :이맥스 모드에서 모드 파일 외부에서 사용할 수있게 만들기

(provide 'xcode-dired-mode) 

에있는 내 .emacs I require :

(setq load-path (cons "~/Documents/Local Projects/xcode-emacs" load-path)) 
(require 'xcode-dired-mode "xcode-dired") 

버퍼이있는 자 모드에서 사용할 수있는 몇 가지 추가 기능이 필요합니다. 내가 좋아하는 마이너 모드의 혀짤배기 파일의 기능, defun 경우

(defun xcode-build() 
    "Build the default target in the Xcode project." 
    ;; ... 
) 

을 기능은 예를 들어, 파일 외부에서 사용할 수 없습니다 M-x xcode-build이 작동하지 않습니다. 내가 provide 파일을 보내고 있다고 생각하지 않아요, 내가 require의 모든 것을 .emacs에 가지고 싶지 않기 때문에, 적절한 일이라고 생각합니다. 마법의 코멘트 ;;; ###autoload을 보았지만, 이맥스 자체를 컴파일 할 때만 사용된다는 것을 알 수 있습니다.

어떻게 마이너 모드가 버퍼에 적용될 때 모드의 lisp 파일에 정의 된 함수를 사용할 수 있습니까?

+1

: 파일이 인스턴스에서 require''에 의해 (로드 된 즉시로), 그 파일에 의해 정의 된 모든 정의 된 함수, 변수 등은 그 파일 외부의 코드에서 사용할 수 있습니다. – phils

+1

';;; ### autoload' 주석은 다양한 패키지 관리자들에 의해서 사용될 것입니다 ('el-get'은 한 예이고,'package.el'도 그것들을 사용한다고 생각합니다). 따라서 다른 사람이 사용할 수 있도록 코드를 작성하는 경우 해당 자동로드 주석을 해당 정의에 추가하여 해당 패키지 관리자 중 하나를 통해 코드를 사용하는 모든 사용자가 자신의 자동로드 구성을 추가 할 필요가 없도록해야합니다. – phils

답변

관련 문제