Ich verstehe , dass nil
, 0
und / oder -1
für das Deaktivieren einiger Funktionen verwendet und t
, 1
und / oder +1
zum Ermöglichen einiger Funktionen verwendet. Welche Option sollte ich beim Zuweisen von Variablen oder Aktivieren / Deaktivieren von Nebenmodi auswählen?
Ich habe all diese Variationen an der einen oder anderen Stelle gesehen. Ich frage mich, ob es tatsächlich einen Unterschied zwischen ihnen gibt. Ich habe gesehen, dass manchmal das Verwenden 0
bei mir nicht funktioniert, während es nil
funktioniert. Gibt es Unterschiede, wo sie verwendet werden?
Antworten:
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 beinhaltet0
und negative Zahlen.Kleinere Modi
Nehmen wir ein konkretes Beispiel. Tippen C-hf
blink-cursor-mode
und drücken RET, um die Funktionsdokumentation zu sehen fürblink-cursor-mode
:Wir können den Blink-Cursor-Modus auf eine der folgenden Arten aktivieren:
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 dringendnil
davon abraten, da dies Ihre Absicht unklar macht. Wenn ich Ihren Lisp-Code überfliegen würde und einnil
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 :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-hv
truncate-lines
und drücken RET, um die Dokumentation für die Variable zu lesentruncate-lines
:Sie können das Abschneiden auf eine der folgenden Arten aktivieren:
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:
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 ausgewertetnil
wird, um das Abschneiden zu ermöglichen . (Aber du solltest wirklich beit
oder bleiben1
).quelle
Das sind alles verschiedene Dinge. 0, 1 und -1 sind unterschiedliche Zahlen;
nil
ist ein Symbol.Sie werden überall verwendet, für viele verschiedene Dinge. Um herauszufinden, wofür die einzelnen in einem bestimmten Kontext verwendet werden , konsultieren Sie das Dokument für diesen Kontext . Dazu gehört, dass Sie verschiedene Modi aktivieren oder deaktivieren, verschiedene Dinge mithilfe von Variablen aktivieren und deaktivieren und viele andere Kontexte.
In Summe:
In der Dokumentation für einen bestimmten Modus erfahren Sie im Allgemeinen, wie Sie ihn aktivieren und deaktivieren können. Wenn Sie aufgefordert werden, 1 oder -1 oder
nil
nichtnil
für etwas zu verwenden, bedeutet dies Folgendes. Es gibt einige allgemeine Regeln zum Ein- und Ausschalten von Modi (interaktiv und über Lisp-Code). Aber es hört sich so an, als müsste man sich zunächst einen allgemeinen Hintergrund verschaffen.Lesen Sie das Emacs-Dokument, um zu erfahren, wie Sie von Emacs selbst Hilfe und andere Informationen anfordern können : Überprüfen des Werts einer Variablen, Anzeigen des Dokuments einer Variablen oder einer Funktion (einschließlich einer Funktion zum Ein- und Ausschalten eines Modus). , und so weiter.
Sie können mit
C-h C-h
( Ctrl-h Ctrl-h) beginnen, um mehr über das Emacs-Hilfesystem zu erfahren. Und von dort aus bauen.C-h r
bringt Sie in das Emacs-Handbuch. Versuchen Sie, die Emacs - Tutorial:C-h t
. Besuchen Sie auch die Emacs Wiki Newbie- Seite und die Seite über LearningEmacs .Um etwas über Emacs Lisp zu lernen
C-h i
, wählen Sie das genannte Handbuch ausEmacs Lisp Intro
und lesen Sie es. Auf der Emacs-Wiki-Seite erfahren Sie mehr über das Erlernen von Emacs Lisp .quelle
nil
das logische Äquivalent von falsch undt
wahr ist und der Rest sind nur Zahlen. Aber ich war nicht sicher, was Kontexte wurden sie in der Regel eingesetzt.