对于 Emacs,我如何存储内容view-lossage
收集到外部文件中?理想情况下,我希望将这些击键数据自动增量地存储到外部日志文件中,这意味着在 Emacs 启动时默认情况下会这样做。
至少在 Emacs 24 中(我现在无法检查之前的版本),文档字符串为view-lossage
states:
显示最近 300 个输入按键。
要将所有输入记录到文件中,请使用“open-dribble-file”。
And C-hf open-dribble-file
RET tells me:
open-dribble-file 是`C 源代码中的交互式内置函数
代码'。
(打开运球文件文件)
开始将所有键盘字符写入名为 FILE 的运球文件。
如果 FILE 为零,则关闭所有打开的 dribble 文件。
当 Emacs 退出时该文件将被关闭。
因此,只需将如下内容添加到您的 .emacs 文件中:
(open-dribble-file (expand-file-name "~/.emacs.d/lossage.txt"))
实验上,如果文件已经存在,这会破坏该文件,因此您需要处理该问题。
这是一种方法。它通过使用来解释多个 Emacs 会话make-temp-name
为 dribble 文件生成半随机文件名,然后在 Emacs 存在时将其内容附加到主丢失日志文件中。 (如果 Emacs 崩溃,它会留下临时文件供您手动处理。)
(defmacro my-persistent-dribble-file (file)
"Append the dribble-file for this session to persistent lossage log FILE."
`(let* ((persistent-file (expand-file-name ,file))
(temporary-file (make-temp-name (concat persistent-file "-")))
(persistent-arg (shell-quote-argument persistent-file))
(temporary-arg (shell-quote-argument temporary-file))
(append-dribble-command (format
"cat %s >>%s && rm %s"
temporary-arg persistent-arg temporary-arg)))
(open-dribble-file temporary-file)
(eval `(add-hook 'kill-emacs-hook
(lambda () (shell-command ,append-dribble-command))))))
(my-persistent-dribble-file "~/.emacs.d/lossage")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)