加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

基于正则表达式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)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读