2011년 2월 22일 화요일

[Emacs] Emacs 설정 파일 재로딩: reload-dotemacs

Emacs의 dotemacs(Emacs의 설정파일 .emacs 혹은 _emacs)을 재로딩 하려면 eval-buffer 명령으로 설정 dotemacs의 내용을 실행시키던가 Emacs를 재구동 시키던가의 방법을 써야 된다. (이 외에 다른 방법도 있었던 것 같은데 기억이 안난다)

그래서 dotemacs를 재로딩 하는 함수를 만들고 이를 이용하고자 했다. elisp에 약한 터라 찾아보니 이미 예제가 웹에 있더라.

하지만 약간의 문제(win32에서는 .emacs 혹은 _emacs로 dotemacs의 이름이 약간 다를 수도 있다)로 인해 elisp 공부하는 겸 수정한 버전이다.

안예쁘고 비효율적으로 코딩했지만 아직 elisp은 초보니 양해를…

(defun reload-dotemacs ()
  "Reload .emacs"
  (interactive)
  (let (dotemacs-default dotemacs-window)
    (setq dotemacs-default "~/.emacs")
    (setq dotemacs-window "~/_emacs")
    (if (file-exists-p dotemacs-default) (progn
                                     (message "Load %s" dotemacs-default)
                                     (load-file dotemacs-default)
                                     )
      (if (file-exists-p dotemacs-window) (progn 
                                       (message "Load %s" dotemacs-window)
                                       (load-file dotemacs-window)
                                       )
        (message "Could not found dotemacs")
        ))))


이 코드를 초기화 스크립트에 넣어두면 적용된다.

이 후 dotemacs를 수정하고 다시 로딩하기 위해서는 m-x reload-dotemacs를 눌러주기만 하면 땡. 하지만 초기화한 후 로딩하는게 아니니 그 점은 이해할 것.

댓글 1개 :

익명 :

감사합니다.잘쓰겠씁니다. 나도 좀 배워야 하는데..