如何使长单词在emacs缓冲区中显示为较短的单词?

时间:2013-08-20 02:54:54

标签: emacs elisp

我正在阅读rainbow-delimiters.el的来源,然后我试图用rainbow-delimiters替换单词RD,使用我从某处替换单词lambda的代码希腊字母。

这是我提出的代码,它没有做我想要的。

(defun my-simplify-prefix (prefix)
  ;; (interactive "sPrefix: ")
  (interactive (list "rainbow-delimiters"))
  (font-lock-add-keywords
   nil `((,(rx-to-string `(group ,prefix))
          (0 (progn (compose-region (match-beginning 1) (match-end 1)
                                    "RD")
                    nil)))))
  (font-lock-fontify-buffer))

它的作用是将rainbow-delimiters替换为一个字母,它是R和D的组合。

1 个答案:

答案 0 :(得分:2)

(defun my-simplify-prefix (prefix)
  (interactive "sPrefix: ")
  (font-lock-add-keywords
   nil `((,(rx-to-string `(group ,prefix))
           (0 (progn (put-text-property (match-beginning 1) (match-end 1)
                                        'display "RD")
                     nil)))))
  (font-lock-fontify-buffer))