我刚刚开始使用emacs入门套件和clojure-mode。 现在,当我在 clojure 模式下将 '(fn
' 键入或粘贴到缓冲区中时,窗口中的 'fn
' 字符被替换为略微卷曲的小写字母 f。 缓冲区保存正确,但它非常烦人,尤其是当我以艰难的方式发现该功能时 - 对某人的"不可能"代码片段感到困惑,并在天亮之前将其编辑为一行。 知道它为什么这样做,或者更重要的是,如何关闭它吗?
入门套件 lisp 后,可以通过将以下行添加到您的init.el
中来关闭它。
(remove-hook 'clojure-mode-hook 'esk-pretty-fn)
然后重新加载 Emacs 使其生效。
很抱歉回答我自己的问题。 它在starter-kit-lisp.el中。 查找从 (eval-after-load 'clojure-mode
开始的行。
在 emacs live 中,你可以通过以下方式禁用这种行为:
在~/.emacs.d/packs/live/clojure-pack/config/clojure-conf.el
注释这些行:
;;(eval-after-load 'clojure-mode
;; '(font-lock-add-keywords
;; 'clojure-mode `(("(\(fn\)[[[:space:]]"
;; (0 (progn (compose-region (match-beginning 1)
;; (match-end 1) "λ")
;; nil))))))
;;
;;(eval-after-load 'clojure-mode
;; '(font-lock-add-keywords
;; 'clojure-mode `(("\(#\)("
;; (0 (progn (compose-region (match-beginning 1)
;; (match-end 1) "ƒ")
;; nil))))))
;;
;;(eval-after-load 'clojure-mode
;; '(font-lock-add-keywords
;; 'clojure-mode `(("\(#\){"
;; (0 (progn (compose-region (match-beginning 1)
;; (match-end 1) "∈")
;; nil))))))
重新启动 emacs,就没有更多的花哨符号了。