Emacs

如何在 kill-buffer 上禁用 Emacs gnuclient 警告

  • May 9, 2014

當我執行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/client消息?(我不需要它)。

以下腳本適用於gnuclientemacsclient,儘管它的(原始)文件字元串說:“Kill buffer,考慮到 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 的內置伺服器emacsclient(與問題中提到的 gnuclient 相比)解決了這個問題。

使用這種新的伺服器/客戶端組合,我可以從 bash shell打開emacs 中的文件,就好像它們是從 emacs 本身打開(訪問)一樣。

在啟動器腳本中,例如。命名e,這個基本命令可以解決問題;當我殺死緩衝區時,不再有煩人的提示……

它還具有允許*恢復 VisibleBookmarks等功能為該文件/緩衝區執行 的附加優勢。*

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

我認為使用 GNU 伺服器/客戶端可以完成類似的操作,但我非常喜歡emacsclient,所以我會使用它。

引用自:https://unix.stackexchange.com/questions/46098