gpt4 book ai didi

emacs - 如何在Emacs中默默地 “Save All Buffers”?

转载 作者:行者123 更新时间:2023-12-03 13:44:42 24 4
gpt4 key购买 nike

我如何在Aquamacs Emacs中创建一个“静默保存所有缓冲区”的命令?

我发现命令save-some-buffers很好,但问题是它分别提示我确认要保存的每个缓冲区。

通过Googling,我找到了有关名为save-silently-p的变量的一些文档,但似乎不存在(在Aquamacs 2.4版中,即Emacs 23.3.50.1)。

那么,如何在不提示的情况下静默保存所有缓冲区呢?

最佳答案

在此示例中,第一个参数设置为non-nil值-“[o] pnative参数(前缀)non-nil表示毫无疑问地保存所有内容。”尽管它可能只是普通的旧t,但我还是选择了一个更有意义的符号来提醒自己它的含义-即'no-confirm。如果我想收到一个确认对话框,那么我将使用nil作为第一个参数。有关此函数如何根据第一个参数是M-x describe-function RET save-some-buffers RET还是nil起作用的其他信息,请参见doc-string-non-nil

下面的示例使用带有自定义零参数函数的save-some-buffers作为第二个参数-即 PRED -选择应保存的缓冲区。 save-some-buffers的文档字符串指出第二个参数- PRED -可能是以下三种可能性之一-(1)如果 PRED nil,则考虑所有文件访问缓冲区; (2)如果 PRED t,则还将考虑某些非文件缓冲区;否则,将不考虑这些缓冲区。或(3)如果PRED是零参数函数,则它为每个缓冲区指示在使用该缓冲区电流调用时是否考虑它。

该示例使用了f5的键盘快捷键,但是用户可以自由地交互调用此自定义功能M-x my-save-some-buffers或完全分配其他键盘快捷键。有一些可能的匹配已经过硬编码,用户可以自由添加/删除/修改条件:

•文件访问缓冲区 + ,文件名与变量abbrev-file-name的值匹配。

•文件访问缓冲区 + ,主要模式是内置latex-mode中的tex-mode.el,而不是AUCTeX。

•文件访问缓冲区 + ,主要模式是markdown-mode

•文件访问缓冲区 + ,主要模式是emacs-lisp-mode

•file-visiting-buffer + 派生模式为org-mode

(defun my-save-some-buffers ()
(interactive)
(save-some-buffers 'no-confirm (lambda ()
(cond
((and buffer-file-name (equal buffer-file-name abbrev-file-name)))
((and buffer-file-name (eq major-mode 'latex-mode)))
((and buffer-file-name (eq major-mode 'markdown-mode)))
((and buffer-file-name (eq major-mode 'emacs-lisp-mode)))
((and buffer-file-name (derived-mode-p 'org-mode)))))))

(global-set-key [f5] 'my-save-some-buffers)

关于emacs - 如何在Emacs中默默地 “Save All Buffers”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com