이 경우 파일을 편집한 후, 해당 버퍼를 닫으려고 할 때, 다음과 같은 메세지를 보게 된다.
Buffer 'xxxxx' still has client; kill it?
이 메세지가 나타나는 이유는 명령 프롬프트를 통해 emacsclient를 실행해보면 알 수 있는데, 명령 프롬프트 상에서 다음과 같이 emacsclient를 실행해보자.
emacsclient myfile
emacs를 통해 파일이 열리지만, 프로그램이 계속 실행중이며 프롬프트가 돌아오지 않는다. 해당 버퍼가 닫히고 나서야 비로소 프롬프트가 돌아온다.
emacsclient --help라고 입력하면, 실행 옵션 중에 다음과 같은 옵션이 있다.
-n, --no-wait Don't wait for the server to return
이 옵션을 사용하여 아래와 같이 실행했을 때는 파일이 열리는 동시에 프롬프트가 돌아오는 것을 확인할 수 있다.
emacsclient -n myfile
따라서 위의 메세지를 방지하기 위해서는 외부 에디터로 emacs를 등록할 시에는 아래와 같이 -n 옵션을 적용하여 등록하도록 하자.
emacsclient -n
* 주의사항 *
특수한 경우에는 이 옵션을 사용하지 말아야 할 수도 있다. 예를 들어 에디터를 실행한 곳에서 편집이 끝나기를 기다려야 하는 경우.
또 다른 방법
.emacs 파일에 다음 초기화 구문을 추가해주는 방법이 있다.
(eval-after-load "server" '(defalias 'server-kill-buffer-query-function '(lambda () t)))
단, 이 방법을 사용하면 팝업은 안 뜨지만 emacsclient를 실행한 client측은 파일이 닫힐 때까지 대기 상태로 남아있게 된다.
<테스트 환경>
OS : Windows 7 (32bit)
Emacs 버전 : EmacsW32 1.58-091103 patched (Emacs-23-CvsP091103-EmacsW32-1.58.exe)
'1. 연구 모듈 > Emacs' 카테고리의 다른 글
[Emacs] Emacs에서 매크로 설정/실행 (0) | 2015.10.04 |
---|---|
[Emacs/윈도우] 여러가지 팁 (3) | 2015.06.28 |
[Emacs/윈도우] UTF-8 한글 정상적으로 표시되도록 설정 방법 (0) | 2015.06.28 |
[Emacs/윈도우] 오리지널 Emacs에서 emacsclient 사용 (0) | 2014.10.03 |
[Emacs/윈도우] 윈도우 7에서 느려지는 문제/가끔 멈추는 문제 (0) | 2014.09.14 |