带有关键字的Emacs Lisp内置缩进问题 起初的

带有关键字的Emacs Lisp内置缩进问题 起初的,emacs,elisp,keyword,code-formatting,indentation,Emacs,Elisp,Keyword,Code Formatting,Indentation,比如说,我有一个这样的函数: (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 yy

比如说,我有一个这样的函数:

(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))
当然,我希望它能保持原样,所以对我来说就像一只虫子。有人知道如何拦截这种行为吗?或者我应该提交一份bug报告?我在EMACS24.3上

更新
我想出来了

我一直在使用
elisp模式扩展
emacs lisp模式
,以便添加更多语法突出显示:

...

(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模式
成功加载时,结果是
emacs-lisp模式
没有加载,即使我将
(emacs-lisp模式)
放入
elisp模式
初始化(见上文)

更改为后:

(define-derived-mode elisp-mode
  emacs-lisp-mode
  "EL"
  "A major mode for Emacs Lisp."
  ...)
emacs lisp模式
正确打开,缩进最终按预期运行。这很微妙

尽管第二种变体看起来更自然、更正确,但有人能告诉我为什么第一种变体不起作用吗?

原始问题 我无法使用
emacs-q
emacs lisp模式
再现此信息,因此您的设置有问题

您必须找出
.emacs
中触发此行为的原因,然后报告错误(如果它与记录的行为相矛盾)

回复您的编辑 我认为区别或多或少类似于从另一个类继承的类:

(defclass c1 (c2))
并且具有该类字段:

(defclass c1 () ((a :type c2)))
另见


  • 您可能还想问一个单独的问题。

    我使用的是24.2.1,但我没有看到这种行为。
    缩进行函数
    emacs lisp模式下具有值
    lisp缩进行
    。缩进包含您发布的代码的区域时,
    indent region
    将保持不变。@juan.facorro:刚刚更新,请查看。已更新,请查看。