5 Stimmen

Warum starte ich den iswitchb-Modus auf diese Weise?

Laut der emacs-Infoseite wird der iswitchb-Modus folgendermaßen aktiviert:

Um den Iswitchb-Modus zu aktivieren, geben Sie ein M-x iswitchb-mode , Variable iswitchb-mode a t

Also habe ich das Folgende in meine .emacs-Datei eingegeben:

(setq iswitchb-mode t)

Dies scheint jedoch nicht zu funktionieren. Nach dem Durchsuchen des Emacs-Wikis fand ich, dass ich dies verwenden muss:

(iswitchb-mode 1)

Könnte mir jemand erklären, warum ich es auf diese Weise aktivieren muss? Ich würde gerne ein besseres Verständnis von elisp bekommen, anstatt nur Dinge von anderen Orten zu kopieren und einzufügen.

8voto

Joe Casadonte Punkte 14548

In der Regel werden in einem Modus sowohl eine Variable als auch eine Funktion mit demselben Namen definiert. Die Funktion setzt die Variable richtig, wenn sie aufgerufen wird, aber es ist die Funktion, die den Modus einschaltet, nicht nur die Variable (die nur den Status des Modus verfolgt).

In Ihrem speziellen Fall wurde Ihnen gesagt, dass Sie die Variable anpassen sollen, aber Sie haben sie stattdessen einfach gesetzt. Der Unterschied besteht darin, dass "custom" weiß, was zu tun ist, wenn sich der Wert der Variablen ändert, während "setq" nichts davon weiß. Wenn Sie sich die Hilfe für diese Variable ansehen (C-h v iswitchb-mode), erhalten Sie diese Information:

iswitchb-mode is a variable defined in `iswitchb.el'.
Its value is t

Documentation:
Non-nil if Iswitchb mode is enabled.
See the command `iswitchb-mode' for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `iswitchb-mode'.

You can customize this variable.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X