TL; DR
Bevor Sie eine Variable festlegen, müssen Sie wissen, wie diese Variable interpretiert werden soll. In ähnlicher Weise müssen Sie vor dem Aufrufen einer Funktion (einschließlich der zum Umschalten der Nebenmodi verwendeten) wissen, wie die Argumente dieser Funktion interpretiert werden.
Verwenden Sie C-hfund C-hv, um die Dokumentation für die betreffende Funktion oder Variable zu lesen. Es sollte die erwarteten Werte angeben.
"Nicht-Null" bedeutet wörtlich alles , was nicht ist nil
. Dies beinhaltet 0
und negative Zahlen.
Kleinere Modi
Nehmen wir ein konkretes Beispiel. Tippen C-hfblink-cursor-mode
und drücken RET, um die Funktionsdokumentation zu sehen für blink-cursor-mode
:
(Blink-Cursor-Modus & optionales ARG)
Blinkender Cursor umschalten (Blink-Cursor-Modus). Aktivieren Sie mit einem Präfixargument ARG den Blink-Cursor-Modus, wenn ARG positiv ist, und deaktivieren Sie ihn ansonsten. Wenn Sie von Lisp aus aufgerufen werden, aktivieren Sie den Modus, wenn ARG weggelassen wird oder Null ist.
Wir können den Blink-Cursor-Modus auf eine der folgenden Arten aktivieren:
(blink-cursor-mode) ; Omitted argument
(blink-cursor-mode 1) ; Positive argument
(blink-cursor-mode t) ; True argument
(blink-cursor-mode nil) ; nil argument (don't use this)
Beachten Sie, dass ein Argument von " t
will" funktioniert, obwohl es in der Doc-Zeichenfolge nicht ausdrücklich erwähnt wurde. Obwohl dies häufig der Fall ist, ist es am sichersten, die in der Dokumentzeichenfolge angegebenen Werte zu verwenden. In diesem Fall ist dies ein positiver Wert.
Beachten Sie auch, dass ein Argument des nil
Willens funktioniert. Ich würde dringend nil
davon abraten, da dies Ihre Absicht unklar macht. Wenn ich Ihren Lisp-Code überfliegen würde und ein nil
Argument sehen würde, würde ich davon ausgehen, dass Sie den Nebenmodus deaktivieren möchten.
Wir können auch blink-cursor-mode
auf folgende Arten deaktivieren :
(blink-cursor-mode 0) ; Non-positive argument
(blink-cursor-mode -1) ; Negative argument
Hinweis mehr , dass nil
ist nicht eine der Möglichkeiten , um diesen kleineren Modus zu deaktivieren. Dies gilt für fast alle Nebenmodi, denen Sie begegnen.
Variablen
Schauen wir uns nun ein Beispiel für eine Variable an. Tippen C-hvtruncate-lines
und drücken RET, um die Dokumentation für die Variable zu lesen truncate-lines
:
Truncate-Lines ist eine Variable, die im C-Quellcode definiert ist.
Nicht-Null bedeutet, dass keine Fortsetzungszeilen angezeigt werden. Geben Sie stattdessen jeder Textzeile nur eine Bildschirmzeile.
Sie können das Abschneiden auf eine der folgenden Arten aktivieren:
(setq truncate-lines t) ; Boolean true value (non-nil)
(setq truncate-lines 1) ; Positive value (non-nil)
(setq truncate-lines 0) ; Zero value (non-nil)
(setq truncate-lines -1) ; Negative value (non-nil)
Es kann Sie überraschen, dass das 0
und das -1
funktionieren werden. Auch hier würde ich davon abraten, sie zu verwenden, da dies Ihre Absichten unklar macht.
Die einzige Möglichkeit, das Abschneiden zu deaktivieren, ist folgende:
(setq truncate-lines nil) ; nil value
Mit anderen Worten, Sie können truncate-lines
Zahlen, Buchstaben, Zeichenfolgen, Listen oder alles andere, was Sie wollen, gleich setzen, solange es nicht als Wert ausgewertet nil
wird, um das Abschneiden zu ermöglichen . (Aber du solltest wirklich bei t
oder bleiben 1
).