vim - emacs如何為特定的symbol修改顏色
迷茫
迷茫 2017-04-22 08:56:34
0
1
641
  • 現在我emacs中顯示的代碼顏色如下所示

  • 我現在希望new這個關鍵字可以用其他的顏色高亮而不是白色,然後在代碼中的數字也可以用其他顏色高亮而不是白色

自己折騰了一個elisp配置

(add-hook 'after-change-major-mode-hook
      '(lambda () (font-lock-add-keywords 
                   nil 
                   '(("[^a-zA-Z]\([0-9]+\)[^a-zA-Z]" 
                      1 font-lock-warning-face prepend)))))

但是發現一個問題就是,普通代碼中的數字的確是用非白色高亮了,可是字符串中的數字也被高亮了,我想重新寫一個判斷是否為字符串的hook去覆蓋,但是折騰了半天也不對,new關鍵字的高亮也是一樣,在代碼中高亮了,字符串和注釋中也是被高亮了,反而不好看了

而且還有一個問題就是,上麵這個簡陋的正則隻能讓

foo1

顯示正常

如果是

foo11
foo111

之類的變量中連續超過兩個數字的話,變量中得數字也會被不同顏色高亮了

正則不是很精通,請大大們指點一下,該裝什麼mode或者寫個啥hook可以滿足我地需求

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
阿神

不用那麼麻煩, 具體技術就不做多解釋了, 除了修改 color theme , 我有用下面這種腳註法, 下面是高亮 l1 l2 l3 三個字符串的:

#+STARTUP: content
# Local Variables:
# eval: (highlight-phrase "\bl1\b" (quote hi-pink))
# eval: (highlight-phrase "\bl2\b" (quote hi-yellow))
# eval: (highlight-phrase "\bl3\b" (quote hi-green))
# End:

理論上, 掛到某個 mode-hook 裡就可以實現跟 mode 關聯了. 更多細節可以相關搜尋.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板