Emacs Einrückung von Emacs Lisp-Code ist wirklich großartig, abgesehen von einer Sache:
(defconst one-to-ten '(one two three
four five six seven
eight nine ten))
Ist dies tatsächlich die bevorzugte Methode, um diesen Block einzurücken? Im Gegensatz zu
(defconst one-to-ten '(one two three
four five six seven
eight nine ten))
Ich finde es besonders verwirrend im Vergleich zum Standard für Alisten:
(defconst one-to-ten '((one . 1) (two . 2) (three . 3)
(four . 4) (five . 5) (six . 6) (seven . 7)
(eight . 8) (nine . 9) (ten . 10)))
Gibt es einen Grund für dieses Verhalten? Ich könnte es möglicherweise für rückseitig zitierte Listen verstehen, da es für Makros eine bessere Einrückung ergeben würde, aber was ist mit Listen?
indentation
Clément
quelle
quelle
Indent the file using the default indentation parameters.
M-x report-emacs-bug
.Antworten:
Hier sind die Einstellungen, mit denen ich die Einrückung korrigiere:
Ich habe versucht, die Elisp-Einkerbung an einer Stelle zu reparieren, aber sie war zu kompliziert und ich habe aufgegeben. Aber die obigen Einstellungen haben jahrelang gut funktioniert.
quelle
put
undget
Formulare tun? Ersetzt es diecl-flet
Funktionsinstanzen durchflet
undcl-labels
Instanzen mitlabels
nur in dercommon-lisp-indent-function
? Wenn ja, warum wird das gemacht? Auch was macht der dritte Put? Ich habe dieput
Dokumentation gelesen , aber immer noch keinen Sinn ergeben. Es würde bedeuten, "den Wert dercommon-lisp-indent-function
Eigenschaft desif
Symbols auf 2 zu setzen", aber das ergab für mich keinen Sinn.'lisp-indent-function
(dh dem Standard) ist tatsächlich besser als'common-lisp-indent-function
. Durch diese Einstellungen wird der Einzug von einem zum anderen übertragen.(setq lisp-indent-function 'common-lisp-indent-function)
. Der Rest hat nichts mit dem Einzug zu tun, der für eine konstante Liste verwendet werden soll.