2013-09-28 1 views
10

서버/데몬을 종료하지 않고 emacsclient 프레임을 닫는 방법?서버를 죽이지 않고 emacsclient gui 프레임을 닫는 방법

gui에서 C-x C-c 또는 C-x 5 0을 수행하면 프레임과 서버 (및 기타 클라이언트)가 모두 종료되지만 터미널에서 완료되면 현재 프레임이 종료됩니다.

(시 :. 내 이맥스 버전은 GTK 내가 내 설정에서오고 있는지 확인하기 위해 초기화 파일없이 시도했지만, 결과는 동일, 24.2이다) 그것은 미니 버퍼 경우에 말하는가

+0

오랜 시간 동안 gtk 빌드에 문제가있어 다른 툴킷으로 전환했습니다. freenode의 #emacs 채널에있는 사람들은 gtk의 어딘가에 오래 서있는 버그가있어 서버가 충돌하게됩니다.명쾌한 툴킷을 사용하여 빌드를 시도하십시오. –

답변

7

emacsclient이 시작됩니다. "버퍼로 완료되면 Cx #을 입력하십시오." 서버가

당신은이 경우에 클라이언트를 종료 할 필요가 없습니다를 반환 할

기다릴하지 마십시오 것 emacsclient/ --no-wait -n 플래그를 시작

+0

'C-x #'도 guy – AdrieanKhisbe

+3

에서 깨달았을 때 서버를 죽인다. 확실히 나를 위해하지 않는다. – Dolda2000

+0

그럴 수 없다는 것을 알고 있습니다. :/ 어떤 버전을 사용하고 있습니까? – AdrieanKhisbe

4

.

그리고 가까운 emacsclient 버퍼를 죽이면 서버는 그대로 유지됩니다.

6

여기 핵심 포인트는 데몬 모드에서 서버를 시작해야한다는 것입니다. 서버가 기존 emacs 프로세스에서 실행되는 경우 (예 : init 파일에 (server-start)이있는 경우) 서버는 emacs 프로세스로 종료됩니다.

은 데몬 모드에서 서버 시작하는 몇 가지 방법이 다음과 같습니다 --daemon 명령 행 옵션

  • 명령 줄 옵션을 호출 emacsclient

    • 전화 emacs을하는 것입니다 효과 실행 emacs --daemon에서 연결을 시도하십시오.

    일단 서버를 데몬 모드로 설정하면 모든 프레임을 닫아야합니다. 데몬은 계속 앉아서 더 이상의 연결을 기다립니다.

  • 0

    i3과 함께 데비안과 OSX를 모두 사용하고 있습니다. 나는 창 관리자의 창 닫기 창 바로 가기로 emacsclient GUI 프레임을 종료합니다. 예를 들어 OSX에서는 서버를 죽이지 않고 클라이언트 GUI 프레임을 닫으려면 "Command + w"를 사용하고 i3에서는 클라이언트 프레임을 종료하기 위해 "Super + Shift + q"(i3의 기본 닫기 창)를 사용합니다 .

    2

    기존 프레임에서 (server-start)을 실행 했으므로이 프레임은 emacsclient 프레임이 아니며 마지막 프레임을 닫으면 분명히 C-x C-c과 같은 처리를합니다. Emacs를 종료합니다.

    emacs --daemon을 사용하고 ALTERNATE_EDITOR='' 트릭을 사용하는 경우이 문제가 발생하지 않습니다. 당신은 단지 emacsclient -n -c을 GUI 프레임을 여는 데 사용할 수 있으며, 닫은 후에 데몬은 그래픽이나 터미널 기반의 새 프레임을 열어 기다릴 것입니다.

    +0

    WikEmacs에서 설명한대로 systemd를 통해 시작합니다. http://wikemacs.org/wiki/Emacs_server#Adding_To_OS_Startup – MKesper

    관련 문제