如何在Aquamacs Emacs中创建"静默保存所有缓冲区"的命令?
我找到了save-some-buffers很好的命令,但问题是它分别提示我确认我要保存的每个缓冲区.
通过谷歌搜索,我发现了一些关于变量的文档,save-silently-p但似乎并不存在(在Aquamacs 2.4版中,即Emacs 23.3.50.1).
那么如何让它在没有提示的情况下以静默方式保存所有缓冲区呢?
oco*_*odo 22
您无需设置任何自定义变量,只需:
C-u C-x s
Run Code Online (Sandbox Code Playgroud)
或者在长期:
Ctrl+ u Ctrl+x s
此外,您可以这样做,C-x s并!在提示符处按下对所有可保存文件缓冲区的回答是.这不是严格保密的,但它仍然非常快/不显眼.(信用:@phils)
Bri*_*rns 11
如果你传递非零值save-some-buffers将保存所有文件而不提示,所以你可以做类似的事情
(defun save-all () (interactive) (save-some-buffers t))
(global-set-key (kbd "C-S") 'save-all)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,第一个参数被设置为一个non-nil值——“ [o]可选参数(前缀)non-nil意味着保存所有没有问题。 ”虽然它可能只是简单的旧t,我选择组成一个更有意义的符号来提醒自己它代表什么——即'no-confirm。如果我想收到一个确认对话框,那么我会使用nil第一个参数。请参阅 doc-string -- M-x describe-function RET save-some-buffers RET-- 有关此函数如何根据第一个参数是nil或 的行为的其他信息non-nil。
下面的示例使用save-some-buffers自定义零参数函数作为第二个参数——即PRED——来选择应该保存哪些缓冲区。doc-string forsave-some-buffers声明第二个参数——即PRED——可能是三种可能性之一—— (1)如果PRED是nil,则考虑所有文件访问缓冲区;(2)如果PRED是t,那么也会考虑某些非文件缓冲区;或(3)如果 PRED 是零参数函数, 它指示每个缓冲区在使用该缓冲区电流调用时是否考虑它。
该示例使用 的键盘快捷键f5,但用户可以自由地以交互方式调用此自定义函数 -- M-x my-save-some-buffers-- 或完全指定不同的键盘快捷键。有一些可能的匹配项已被硬编码,用户可以自由添加/删除/修改条件:
• file-visiting-buffer +文件名与变量的值相匹配abbrev-file-name。
• file-visiting-buffer +主要模式latex-mode来自内置tex-mode.el——而不是AUCTeX。
• 文件访问缓冲区+主要模式是markdown-mode。
• 文件访问缓冲区+主要模式是emacs-lisp-mode。
• 文件访问缓冲区+派生模式是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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5618 次 |
| 最近记录: |