2013-08-20 32 views
2

我在閱讀rainbow-delimiters.el的來源,然後我試圖用RD代替rainbow-delimiters這個詞,使用我從某個地方得到的代碼,用它的希臘字母替換了lambda這個詞。如何讓一個長單詞在emacs緩衝區中顯示爲一個較短的單詞?

這是我想出的代碼,它不會做我想要的。

(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

+0

這似乎是'組成,region'的記錄的行爲。你爲什麼不把它丟掉,而用字符串「RD」代替? – sds

回答

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)) 
相關問題