2014-06-27 52 views
5

新的美化符號模式的精美作品的翻譯:使Emacs能夠對非空白分隔的單詞進行美化 - 符號模式工作。在Emacs

lambda something -> λ something 

我也想提出:

lambda.something -> λsomething 

可悲的是,美化符號模式只能識別空格作爲詞/符號分隔符默認情況下。

如何使用任何想法「」作爲令牌分隔符?

+0

我用漂亮的模式而這種行爲是默認的,也許只是切換對此。你使用什麼語言? –

+0

@JordonBiondo,這是一個不錯的選擇,但'美化符號 - mode'有被內置到Emacs的利益(自24.3版本,我認爲)。 – Chris

+0

是的。我想保持美化符號模式,因爲它隨Emacs(現在)一起提供,並且看起來非常穩定。我遇到了漂亮符號模式的問題,儘管還沒有嘗試漂亮模式。爲了回答Jordon的問題,我的目的是將Python中的self.method直觀地壓縮爲◎方法。 – Jarpy

回答

2

感謝Lindydancer,我終於實現了這一點:

(add-hook 'python-mode-hook 
      (lambda() 
      (push '("self" . ?◎) prettify-symbols-alist) 
      (modify-syntax-entry ?. "."))) 

這導致了一個合理的妥協輸出:

◎.method 
2

執行實際取代在prog-mode.elprettify-symbols--compose-symbol的代碼。它不包括比賽,如果單詞之前或之後的字符具有字符類型符號。在許多模式下,例如emacs-lisp-mode.字符具有符號類型。

你既可以改變.語法代碼的主要方式,你能告訴font-lock突出時(見變量font-lock-defaults瞭解詳細信息)使用不同的字符代碼,或者你可以做的prettify-symbols--compose-symbol模式菊忍術比如使用defadvice修改它,或者直接用你自己的替換它。