基于正则表达式emacs org-mode的颜色标签
发布时间:2020-12-14 06:00:35 所属栏目:百科 来源:网络整理
导读:我正在使用org-mode,我希望所有以@开头的标签都用蓝色着色. 是否可能以及如何做到这一点? 最好的祝福 解决方法 以下答案使用org-mode的内置机制.变量org-tag-faces接受标签的正则表达式,标签是cons单元的汽车.函数org-set-tag-faces设置全局变量org-tags-sp
我正在使用org-mode,我希望所有以@开头的标签都用蓝色着色.
是否可能以及如何做到这一点? 最好的祝福 解决方法
以下答案使用org-mode的内置机制.变量org-tag-faces接受标签的正则表达式,标签是cons单元的汽车.函数org-set-tag-faces设置全局变量org-tags-special-faces-re,它组合了上述cons单元的标签. org-font-lock-add-tag-faces使用全局变量org-tags-special-faces-re通过组织模式缓冲区重新搜索 – 定位匹配的标记并应用适当的面部在函数org-get-tag-face上.函数org-get-tag-face的原始版本查找找到的标记的完全匹配(即,函数assoc的键参数). org-get-tag-face的修订版增加了对@.*的额外键搜索,如果找到键则返回正确的面 – 这是必要的,因为标签本身通常看起来像@home或@office,而我们的上下文正则表达式是@.*.
?? (require 'org) (add-to-list 'org-tag-faces '("@.*" . (:foreground "cyan"))) ;; Reset the global variable to nil,just in case org-mode has already beeen used. (when org-tags-special-faces-re (setq org-tags-special-faces-re nil)) (defun org-get-tag-face (kwd) "Get the right face for a TODO keyword KWD. If KWD is a number,get the corresponding match group." (if (numberp kwd) (setq kwd (match-string kwd))) (let ((special-tag-face (or (cdr (assoc kwd org-tag-faces)) (and (string-match "^@.*" kwd) (cdr (assoc "@.*" org-tag-faces)))))) (or (org-face-from-face-or-color 'tag 'org-tag special-tag-face) 'org-tag))) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |