킬 버퍼에 대한 Emacs gnuclient 경고를 비활성화하는 방법

킬 버퍼에 대한 Emacs gnuclient 경고를 비활성화하는 방법

M-x kill-bufferopenend를 통해 버퍼를 실행하면 gnuclient먼저 다음 메시지가 나타납니다.

Kill buffer (default 'my-buffer-name'): 

그런 다음 두 번째 프롬프트/메시지를 받습니다...

Buffer 'my-buffer-name' belongs to gnuserv client(s); kill anyway? (yes or no) 

두 번째 것을 비활성화하는 방법gnuserv/클라이언트정보? (필요하지 않습니다).

답변1

다음 스크립트는 다음에서 작동합니다.gnuclient또는이맥스 클라이언트, (원본) 문서 문자열에 다음과 같이 나와 있더라도"gnuclient를 고려하여 버퍼를 종료합니다."... 에서emacswiki: KillKey

(defun my-kill ()
  "Kill buffer, taking gnuclient into account."
  (interactive)
  (if (buffer-modified-p)
      (error "Buffer has unsaved changes")
    (if server-buffer-clients
 (server-edit)
      (kill-buffer (current-buffer)))))

위는 요청대로 문제를 해결했지만 추가적으로 emacs의 내장 기능을 사용하여 해결했습니다.섬기는 사람그리고이맥스 클라이언트(질문에서 언급했듯이 gnuclient와 비교).

이 새로운 서버/클라이언트 조합을 사용하면 다음과 같은 이점을 얻을 수 있습니다.열려 있는Emacs 자체에서 파일을 여는(액세스하는) 것과 마찬가지로 Bash 셸에서 Emacs의 파일을 엽니다.

예를 들어 런처 스크립트에서. 이름을 지정하면 e이 기본 명령이 트릭을 수행합니다. 버퍼를 종료할 때 더 이상 성가신 메시지가 표시되지 않습니다.

또한 갖는다추가적인 이점이와 같은 기능을 허용합니다보이는 북마크 복원해당 파일/버퍼가 실행될 때까지 기다립니다.

emacsclient -e "(find-file \"$1\")" &>/dev/null

나는 GNU 서버/클라이언트를 사용하여 비슷한 일을 할 수 있다고 생각하지만, 차라리이맥스 클라이언트, 그럼 그걸로 실행하겠습니다.

관련 정보