使用org-lint对Org文件进行检查
今天才知道原来Org中居然自带了一个Org检查器: org-lint
. 它的使用方法非常简单,在任意Org buffer中运行 M-x org-lint
就会弹出一个名为“*Org Lint*”的新窗口,其中列出检查结果。
在这个“*Org Lint*” buffer中按下 TAB
就能看到检查有问题的那个行,但光标不做跳转;而按下 RET
则会把光标跳转到Org文件中有问题的那个行。
此外按下 h
可以隐藏相同类型的报告, i
可以忽略该类报告.
org-lint
的检查项由变量 org-lint--checkers
所决定,但是你不应该自己去修改它,因为其名称中的 --
说明了它是一个私有变量,而且变量中的entry是自定义的新结构: org-lint-checker
的列表.
不过如果你想编写自己的检查器,那么可以先定义一个名为 org-lint-NAME
的检查函数,这个函数接受一个当前Org buffer解析后的树作为参数,且返回一个(POSITION MESSAGE)列表,POSITION为出错位置,MESSAGE是描述错误的字符串.
然后使用 (make-org-lint-checker &key NAME DESCRIPTION CATEGORIES TRUST)
来创建一个检查器结构体。
从这个构造函数的参数可以看出 org-lint-checker
结构包括以下部分:
- NAME
- 唯一的标识符,是一个非-开头的符号. 这个符号对应的一个
org-lint-NAME
的检查函数 - DESCRIPTION
- 检查摘要的字符串
- CATEGORIES
- 检查的列表,为一个符号组成的列表
- TRUST
- 信任程度,可选值为 `low' 和 `high'