为什么 clojure 模式用一些卷曲的 f 字符替换 fn



我刚刚开始使用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,就没有更多的花哨符号了。

最新更新