原来的
说,我有这样的功能:
(defun my-function ()
"This is my function."
:his-keyword xxx
:her-keyword yyy
(his-function)
(her-function))
在为 Emacs Lisp 应用 Emacs 内置缩进后,我得到:
(defun my-function ()
"This is my function."
:his-keyword xxx
:her-keyword yyy
(his-function)
(her-function))
当然,我希望它保持原样,所以对我来说看起来像是一个错误。有谁知道如何拦截这种行为?还是我应该提交错误报告?我在 Emacs 24.3 上。
更新
我想到了。
我一直在扩展emacs-lisp-mode
with myelisp-mode
以添加更多语法突出显示:
...
(define-derived-mode elisp-mode
fundamental-mode
"EL"
"A major mode for Emacs Lisp."
(emacs-lisp-mode)
...)
(provide 'elisp)
然后某处:
(require 'elisp)
(add-to-list
'auto-mode-alist
'("\\.el" . elisp-mode))
虽然elisp-mode
加载成功,但emacs-lisp-mode
即使我已经进行(emacs-lisp-mode)
了elisp-mode
初始化(见上文),它也没有加载。
改为:
(define-derived-mode elisp-mode
emacs-lisp-mode
"EL"
"A major mode for Emacs Lisp."
...)
emacs-lisp-mode
正确打开,缩进最终按预期运行。那是相当微妙的。
虽然,第二个变体似乎更自然和正确,但谁能给我一个线索,为什么第一个变体不起作用?