快速查阅Emacs文档的工作流

在Emacs内工作,常常会忘记某项操作的快捷键或者具体的使用方法,而临时查阅Emacs文档:

比如在当前焦点下,想要将“光标位置”临时保存到register中,完整的函数名忘记了,只记得是register操作。此时只需要 M-x regsiter:

便能看到23项register相关的操作,而pointer-to-register正是当前需要的,因此不需要记忆任何快捷键。

倘若需要查看register的详细emacs文档描述,有三种解决方案:

1. 网页搜索emacs文档:

该方案快捷,适合单一问题,不利于整体推进结构化的学习emacs技能。因为每一次搜索都是零敲碎打,不仅没有更加熟悉emacs文档的整体结构,更没有将个人已积累的知识与经验的积累纳入到搜索范围之中,

2.求助于内置的Emacs-Info文档

不离开当前的emacs环境,按键 C-h i 进入info 文档

在当前buffer中按键m(调用menu)输入 emacs:

继续按键 m 找到 register的相关章节:

最终进入到目标章节

方法二的优点是不需要离开emacs环境,而且每次查询都能更加熟悉emacs-manual的文档结构。然而,缺点也格外突出,比如不能编辑,比如不能用find,rg等命令查询。

3.最优解决方案:查询转化成org的emacs文档

在当前焦点下,临时查阅emacs文档中关于register相关内容的最优操作流程如下:

  1. C-x r SPC SPC (point-to-register)将当前的光标位置保存到 SPC 这个字符的register中;
  2. C-x r b 调用bookmark记录,跳转到emacs-manual所在的目录:

从这里一目了然的看到第13章register,点击进入即可。

  1. 假使要穷尽搜索register的相关内容:C-u counsel-rg

提示register关键词出现142次。

进入到相关章节查阅register的内容以及过往所做的评注与笔记。

  1. 查询完毕,回到最初的焦点: C-x r j SPC

将直接跳转回第一步标记的point。

这种方法的有三个优点:

1) 结构化的学习和整体推进所学习的技能(不论是emacs或其他
2) 积跬步而至千里,累加与累积式学习,每一步都踩在前面的巨大工作量之上
3) 因为是org文档,因此便于查询。

9 个赞

感谢分享, register 这个确实是一个还没用上的东西。恢复焦点目前这个用 bulfer,或者 winner mode 。

不能编辑

这个确实硬伤, 以前想给 annotate.el 提 PR。通过添加注解的方式来绕开这个问题。

比如不能用find,rg等命令查询

推荐一下 helm-info-at-point

3 个赞

请教info文件怎么转化成org文件呢

除了 pandoc 以外没啥好方法

大版本更新,.org文档怎么跟着跟进? 极端一点儿说,假设之前一直在27的org版本里做笔记,现在突然转进30,info应该有很多大更新或重排了?

听起来好像也不太好搞哇,为什么rg不支持搜索info文件,有点不太科学,zip这种压缩文件都支持了

你信题主的瞎讲了,info 本身大部分内容就是纯文本,当然可以用 rg 搜索

1 个赞

我不用 org,不知道。

我写东西用 docbook xml,格式改了可用 relaxng 验证,大的版本升级可以写 XSLT 批量转换。

我自己也用rg粗暴地随手搜info了。我就是纯好奇大版本更新咋办。

一个办法是用 col 命令删除控制字符以后 diff。直接看更新日志也行。

M-x info-apropos 可以搜info文档

这个命令挺吊的,多谢前辈们的不吝赐教。有了这个命令和rg搜索,现在对info的掌控明显增强了