要从shell启动我的Emacs Lisp脚本,我使用以下命令:
emacs --script my-script.el -f my-function
在我的脚本中,我将3个缓冲区保存到3个文件中。 它工作正常。但是当脚本在shell上运行时,它会打印文本:
Using vacuous schema
Saving file "some-file-to-save"
Wrote "some-file-to-save"
此文字打印3次。我怎么能压制这个文字?
答案 0 :(得分:0)
我不知道如何在ELisp中“正确”修复它,但一个简单的解决方案就是放弃输出:
emacs --script my-script.el -f my-function > /dev/null
这告诉shell将所有stdout发送到/dev/null
(丢弃写入它的所有数据)。显然这需要a)一个操作系统/dev/null
(即大多数Unices,包括macOS)和b)一个不吸吮的shell(即不是cmd.exe
)。
答案 1 :(得分:0)
识别在脚本中转储这些消息的函数调用。
假设第一条消息来自调用函数save-buffer
(files.el)的函数message
,只需在脚本中替换message
,即可覆盖save-buffer
的行为。通过以下方式调用(cl-letf (((symbol-function 'message) #'ignore))
(save-buffer))
(或任何被调用的人):
(require 'cl-lib)
您需要添加
VMC_FWD2
在你的脚本之上,如果还没有。