gpt4 book ai didi

emacs - 对于 Emacs,如何将 view-lossage 收集到的内容存储到外部文件中?

转载 作者:行者123 更新时间:2023-12-05 09:24:44 28 4
gpt4 key购买 nike

对于 Emacs,如何将 view-lossage 收集的内容存储到外部文件中?理想情况下,我希望将这些击键数据自动增量存储到外部日志文件中,这意味着在启动 Emacs 时默认情况下会这样做。

最佳答案

至少在 Emacs 24 中(我现在无法检查以前的版本),view-lossage 的文档字符串指出:

Display last 300 input keystrokes.

To record all your input on a file, use `open-dribble-file'.

C-hf open-dribble-file RET 告诉我:

open-dribble-file is an interactive built-in function in `C source code'.

(open-dribble-file FILE)

Start writing all keyboard characters to a dribble file called FILE. If FILE is nil, close any open dribble file. The file will be closed when Emacs exits.

所以只需将如下内容添加到您的 .emacs 文件中:

(open-dribble-file (expand-file-name "~/.emacs.d/lossage.txt"))

根据实验,如果文件已经存在,这会破坏文件,因此您需要处理它。

这是一种方法。它通过使用 make-temp-name 为 dribble 文件生成半随机文件名来说明多个 Emacs session ,然后在 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")

关于emacs - 对于 Emacs,如何将 view-lossage 收集到的内容存储到外部文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761401/

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