M-x kill-buffer
openend를 통해 버퍼를 실행하면 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 서버/클라이언트를 사용하여 비슷한 일을 할 수 있다고 생각하지만, 차라리이맥스 클라이언트, 그럼 그걸로 실행하겠습니다.