2016-12-26 51 views
1

运行的elisp文件若要从外壳开始我的Emacs Lisp的脚本,我使用这个命令:的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

我不知道随便如何在elisp的修复它“正常”,但一个简单的解决办法是只丢弃输出:

emacs --script my-script.el -f my-function > /dev/null 

这告诉shell将所有标准输出发送到/dev/null(它丢弃写入它的所有数据)。显然这需要a)具有/dev/null(即大多数Unices,包括macOS)的操作系统和b)不吸取的外壳(即不是cmd.exe)。

+0

这没有帮助,因为在我的脚本中我使用“交互式”模式,用户需要输入一些数据来启动我的脚本。此外,我需要打印一些帮助文本,如“开始脚本”,“结束脚本”。 – Alexei

+0

@Alexei陷入困境。希望别人会来,谁有更好的装备来帮助你。 – strugee

0

确定在脚本中转储这些消息的函数调用。

假设第一条消息来自于功能save-buffer它调用函数message(files.el),只需通过更换覆盖的message的行为,在你的脚本中,save-buffer调用(或谁被称为)是:

(cl-letf (((symbol-function 'message) #'ignore)) 
    (save-buffer)) 

你需要在你的脚本如果不是已经存在的顶部添加

(require 'cl-lib)