#+TITLE: 使用org-lint对Org文件进行检查 #+AUTHOR: lujun9972 #+TAGS: Emacs之怒 #+DATE: [2020-02-12 三 14:54] #+LANGUAGE: zh-CN #+STARTUP: inlineimages #+OPTIONS: H:6 num:nil toc:t \n:nil ::t |:t ^:nil -:nil f:t *:t <:nil 今天才知道原来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'