2013-11-03 116 views
2

我使用clojure模式+ nrepl + paredit + lein-swank。每當我在clojure中使用匿名函數,(fn [x](+ x 1)), 它會被自動替換爲? (問號)。爲什麼emacs用問號代替fn?

  • 我如何關閉這個功能?
  • 這是什麼原因?
+7

這裏有一個猜測:你有嘗試與'λ'更換fn'的'每個實例, 一些代碼,但它不工作,因爲你的Emacs是舊的或東西。從'emacs -q'開始,一個接一個地加載你的東西,直到你看到一個這樣做。 –

+0

什麼是您的Emacs版本,以及您用於Emacs的字體?你使用Starter Kit或類似的東西嗎? – lunaryorn

+1

未能顯示λ可能是問題所在。現在Emacs已經很長時間unicode完成了,很可能他沒有安裝可以顯示這個字符的字體。 @Attilah你是Linux用戶嗎?如果是的話,你可以安裝一些名爲unifont的東西來幫助其他字體填入缺少的字符。您也可以禁用該操作,如[此處]所述(http://stackoverflow.com/questions/5920786/why-is-clojure-mode-replacing-fn-with-some-curly-f-character) – noisesmith

回答

1

正如在評論中提到的,這幾乎可以肯定是一種防止f正確顯示的字體問題。您可以通過將

(remove-hook 'clojure-mode-hook 'esk-pretty-fn) 

到您init.el文件或同等關閉此功能,或將其粘貼到*scratch*緩衝區,並在年底創下按Ctrl-XCTRL-E用光標該線。