Ich habe versehentlich Folgendes ausgeführt:
(unintern variable)
wo variable
‚s - Wert war nil
.
Wie komme ich nil
zurück, ohne Emacs neu zu starten?
elisp
interactive-development
Sean Allred
quelle
quelle
Antworten:
(defconst nil ())
scheint die richtige Wirkung zu haben; Beachten Sie, dass
nil
und eine leere Liste in Emacs Lisp nicht zu unterscheiden sind.Ich habe mir angeschaut, um
lread.c:4034
zu sehen, wienil
in einerobarray
.Beachten Sie den Kommentar in Zeile 3896 in
lread.c
:Dies erklärt, warum Emacs nicht vor
(unintern nil)
und schützt(unintern t)
.quelle
Stef
zu, eigentlich :) Auf diesem Weg liegt der Wahnsinn.nil
ist ein häufiger Fehler, vor dem man sich leicht schützen kann. Warum einen Handlauf auf eine Treppe stellen, wenn Leute darüber springen könnten?unintern
wird eigentlich nicht oft verwendet. Esobarray
ist so gut wie immer eine schlechte Idee, es auf dem Main zu verwenden (weshalb sich der Byte-Compiler beschwert, wenn Sie das zweite ArgumentC-h f unintern
nicht übergeben und Ihnen nicht sagen, dass das zweite Argument tatsächlich noch optional ist).