페이지

2011년 1월 5일 수요일

emacs server mode in Windows

Emacs wiki에는 복잡하게 설명되어 있지만 실제로 최신버전의 이맥스-GNU Emacs 23.2.1-에서는 server mode는 별도의 해킹없이 동작한다. 그러니 괜히 시간 낭비 하지 마시라고..
server mode란 것은 하나의 emacs 프로그램이 오직 하나의 instance만 뜨게 제한 하는 방법이다. server mode가 아닐때는 모두 각각의 instance로 실행이 된다.
실제로 파일 하나 오픈했는데 새로운 emacs window가 떠버리면 더 불편할다. 초기화 하는데 시간이 걸리고 버퍼등이 공유가 되지 않기때문이다. 그래서 대부분  server mode를 default로 사용한다.
.emacs에
(server-start)
를 추가해 주고 최초 실행시는 runemacs.exe를 사용하고 이후에는 emacsclientw.exe FILE_NAME 이런식으로 실행하면 된다.
또 emacsclientw.exe로 오픈된 버퍼는 C-c #으로 종료하면 된다. 물론 C-x k 로 해도 되지만 client를 죽일 것인지 한번더 물어본다. 나의 경우는 이 컨펌 메세지를 없애기 위해서 (server-start) 의 아래 줄에,꼭 아래 줄이어야 함, 아래 lisp코드를 적어주면 그냥 깨끗하게 죽는다.
(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)