markup.el: 在读代码的时候对代码进行花样高亮标记

在学习 (抄) 别人的代码的时候, 往往会需要聚焦在某几个函数上面反复观察 (看不懂), markup.el 是一个简单的高亮工具用来在已有的代码上进行简单的标记.

效果如下:

(配合 hs-minor-mode 折叠一些不必要的代码块, 以及 imenu 查看代码索引还是比较方便的… )

2 个赞

赞👍🏻 Line 156 有个 typo 应该是 enabled

感谢指出, 已修正

重新打开同一份文件之后,高亮是否还存在?

emacs内置的书签功能没有高亮,有人写过一个bm.el提供类似M$ Visual Studio的书签。

它的书签管理使用完全不同的函数。我感觉emacs内置的bookmark.el只适合标记文件位置,在文件内来回跳转不太方便。但是它的能力又确实足够当书签用。

还有就是书签分类的问题,我想过一个馊主意,用org-link替代书签。用oboe.el创建一个临时org buffer放org link,需要跳转的时候就oboe-recall弹出org buffer即可。

也许你的markup从能力上说更适合作为一个外观设计器使用。

我之前也搞过一个类似的

关闭buffer再打开可以恢复,支持亮色暗色主题的颜色自适应。

我一般直接用自带的 highlight-symbol-at-point

高亮是用 overlay 存在当前的 buffer 里面的, 所以重新打开同一份文件之后就会消失, 如果需要保存批注的话, 可能用 Org-mode 配合行跳转会更加好, 这个更像是临时抄一段文字/代码防止自己眼花的小工具.

简单的场景 highlight-symbol-at-point 是可行的, 但是它的行为是会对所有的同名符号都进行高亮, 没法做到一段文本的高亮 (比如读文档的时候强调两种功能的不同特点, 如下图所示).

应该说是适用的场景不太一样, 比如我用 highlight-regexp 来匹配某种模式的代码, 可以用来在重构/修旧代码 typo 的时候使用 (修好了就不满足正则表达式, 就不会被高亮了).