当我运行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或者emacs客户端,尽管它的(原始)文档字符串说,“杀死缓冲区,考虑到 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 的内置解决了这个问题服务器和emacs客户端(与 gnuclient 相比,如问题中所述)。
有了这个新的服务器/客户端组合,我可以打开从 bash shell 中打开 emacs 中的文件,就像从 emacs 本身打开(访问)它们一样。
在启动器脚本中,例如。命名e
,这个基本命令就可以解决问题;当我杀死缓冲区时不再出现烦人的提示...
它还具有额外的优势允许像这样的功能恢复可见书签等来为该文件/缓冲区运行。
emacsclient -e "(find-file \"$1\")" &>/dev/null
我认为 GNU 服务器/客户端可以完成类似的事情,但我很喜欢emacs客户端,所以我会用它运行。