重播Emacs中击键的“脚本”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重播Emacs中击键的“脚本”相关的知识,希望对你有一定的参考价值。

我想在终端中使用asciinema录制一些Emacs功能的中等长度的截屏视频。我可以开始asciinema,然后emacs -nw,做录音,然后停止。但我发现我总是犯了多个错误。

所以我认为如果我能以某种格式编写一个按键的“脚本”,那将是很好的,这将被提供给Emacs。就像重放一个键盘宏,但是相当长的一个,并且键之间有延迟(否则录音速度太快)。

这有可能吗?我愿意做一些elisp编程,但不知道从哪里开始。我可以将我的脚本记录为列表,

(list (kbd "C-x C-f") "filename.el" (kbd "C-e") (kbd "C-x C-e") ...)

并遍历它,转换按键并逐字逐字地发送字符串,但如何将结果“发送”到Emacs?

如果缓冲切换等可行的话会很棒。

答案

您可以录制一系列用户操作(键盘,菜单等),创建键盘宏。

简而言之,您使用<f3>开始录制,<f4>停止录制。然后你可以使用<f4>(相同的键)来播放录音。此外,你可以做各种奇特的事情,但这些都是基础知识。

有关详细信息,请参阅Emacs手册节点Keyboard Macros


您可以使用库showkey-tooltip-mode中的模式showkey.el在工具提示中显示在截屏期间使用的键 - 请参阅ShowKey

要显示宏记录的键,您需要将选项showkey-tooltip-sleep-time设置或绑定到大于零的秒数。 (默认情况下它为零,因此您可以通过快速键入来阻止某些键显示。)

选项showkey-tooltip-key-only-flag控制是否仅在工具提示中显示键,键及其命令。

或者,您可以使用模式showkey-log-mode显示密钥的增量日志。

以上是关于重播Emacs中击键的“脚本”的主要内容,如果未能解决你的问题,请参考以下文章

通过 telnet 发送击键

Load runner throwing error -26628 在通过 https 重播 api 脚本时出现禁止错误

在Emacs术语模式下使用f键的最佳实践

使用 meta-shift 键的快捷方式在 emacs 中不起作用

最小击键 Python 计算器问题

LR12.53—第2课:准备脚本重播