2011-08-02 3 views
7

이맥스 패키지에 대한 설치 지침이 표시 될 때마다 항상 add-to-list 'load-path을 사용하는 것이 좋습니다. 웬일인지 load-file를 사용해야합니다.add-to-list 'load-path가 작동하지 않는 것 같습니다.

(add-to-list 'load-path "~/.emacs.d/jade-mode") 
(require 'sws-mode) 
(require 'jade-mode)  
(add-to-list 'auto-mode-alist '("\\.styl$" . sws-mode)) 
(add-to-list 'auto-mode-alist '("\\.jade$" . sws-mode)) 

을하지만이 작동합니다 : 예를 들어,이 작동하지 않습니다 이유

(load-file "~/.emacs.d/jade-mode/sws-mode.el") 
(load-file "~/.emacs.d/jade-mode/jade-mode.el") 
(require 'sws-mode) 
(require 'jade-mode)  

아무도 말해 줄 수? 편집 : 나는 MAC OS X 10.5

+0

그것은 "작동하지 않는다", 어떻게 실패합니까? 'require' 호출이 실패 했나요? – seh

+0

각 표현식을 eval-buffer 또는 eval-expression으로 평가 했습니까? 아니면 네가 가져다 줘. 이맥스 파일을 저장하고 다시 시작 하시겠습니까? – justinhj

답변

8

에 탄소 이맥스를 사용 아마도 문제는 선도 물결이 ('~') 때 require 검색에게 load-path 목록의 항목을 확장되지 않는 것입니다. require에 의해 이후의 사용에 대한 항목을 준비하는 the expand-file-name function 사용을 고려 :

(add-to-list 'load-path (expand-file-name "jademode" "~/.emacs.d")) 

또는

(add-to-list 'load-path (expand-file-name "~/.emacs.d/jademode")) 

그것은 당신이 어떤 운영 체제에 사용하고 이맥스있는 알고 도움이 될 것이다.

+0

예, load-path에 추가 할 때는 expand-file-name을 사용해야합니다. – jtahlborn

1

난 100 % 확실하지 않다하지만 난 목록이 인스턴스화되지 않은 추측 것입니다 때문에 당신이 부하 경로 목록에 아무것도 추가 할 수 없습니다, 난 그냥

(setq load-path (cons (expand-file-name "~/.emacs.d/lisp") 
       load-path)) 
0

와 목록을 인스턴스화 첫 번째 대답은 나를 위해 작동하지 않았다. 개별 .el 파일이 아닌 디렉토리 경로를 추가하면 다음과 같이 작동합니다. (add-to-list 'load-path (확장 파일 이름 "~/.emacs.d"))

+1

네 말이 맞아. ** 아무도 **로드 경로에 개별 .el 파일을 추가 할 것을 제안하지 않았습니다. 당신의 대답은 받아 들인 대답과 다르지 않습니다. 또한 [~/.emacs.d를로드 경로에 넣지 마십시오] (http://stackoverflow.com/a/24791753/324105). – phils

+0

나는 오해했다. 나는 jademode가 jademode.el을 의미한다고 생각했지만 그것이 디렉토리 이름이라고 생각한다. 그리고 다른 기사에 대한 참고로 감사드립니다. –

+0

아, 설명해줍니다. 아니요,'load-path'는 오직 디렉토리입니다. 혼란의 원천은 특정 라이브러리를로드 할 때 확장을 생략 할 수 있고, 이맥스가 사용할 라이브러리를 선택할 수 있다는 것입니다. – phils

관련 문제