首页 > 解决方案 > 如何根据起始字符设置emacs线条颜色

问题描述

我每天都在使用 emacs,但我不是 lisp 专家。如何定义一个简单的模式来根据第一个字符为缓冲区中的行着色?

例如,如果是“p”,则文本为绿色,如果是“i”,则文本为红色。...我想定义大约六条规则。

这种模式只适用于非常特定的文本文件,其他情况我显然不需要功能!

谢谢,

标签: emacs

解决方案


感谢aartist,这就是我最终得到的

(defface mymode-q '((t :foreground "red" )) "" )
(defface mymode-p '((t :foreground "green" )) "" )
(defface mymode-i '((t :foreground "yellow" )) "" )
(defface mymode-r '((t :foreground "blue" )) "" )
(defface mymode-c '((t :foreground "orange" )) "" )
(defface mymode-x '((t :foreground "grey50" )) "" )

(setq mymode-highlights '(
    ("^q .*$" . 'mymode-q)
    ("^p .*$" . 'mymode-p)
    ("^i .*$" . 'mymode-i)
    ("^r .*$" . 'mymode-r)
    ("^c .*$" . 'mymode-c)
    ("^x .*$" . 'mymode-x)
    ))

(define-derived-mode mymode-mode text-mode "mymode" "major mode mymode."
    (setq font-lock-defaults '(mymode-highlights)))

推荐阅读