2009-09-14 13 views
5

De acuerdo con la página de información de emacs, así es como se habilita iswitchb-mode:¿Por qué inicio iswitchb-mode de esta manera?

Para activar el modo Iswitchb, tipo M-x iswitchb-mode, o personalizar el variables iswitchb-mode a t

por lo que poner el siguiente en mi .emacs:

(setq iswitchb-mode t) 

Sin embargo, esto no parece funcionar. Después de buscar en la wiki de emacs, me encontré con que necesito usar esto:

(iswitchb-mode 1) 

Podría alguien explicar por qué necesito para permitir de esta manera? Me gustaría obtener una mejor comprensión de elisp en lugar de simplemente copiar y pegar cosas de lugares.

Respuesta

8

Normalmente, un modo definirá una variable y una función con el mismo nombre. La función configurará la variable correctamente cuando se invoca, pero es la función la que activa el modo, no solo la variable (que solo rastrea el estado del modo).

En su caso específico, se le dijo que debía personalizar la variable, pero simplemente configúrela. La diferencia es que cuando el valor de la variable cambia, Custom sabe hacer algo y `setq 'no sabe nada de esto. Si miras la ayuda para esta variable (C-h v iswitchb-mode) obtendrías:

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. 
+0

Gracias. No estaba al tanto de todo esto sobre elisp. –

+0

Lamentablemente, no es tan fácil de deducir (aparte de la descripción de la variable). iswitchb (y la mayoría de los modos menores) usan una macro 'define-minor-mode 'para encargarse de la mecánica real de construir el modo, encenderlo y apagarlo, personalizar variables, mapas de teclas y cosas por el estilo, por lo que debes cavar en el definición de función de 'define-menor-modo 'para recoger cómo se juntan estas cosas. –

Cuestiones relacionadas