为什么我这样开始iswitchb-mode?

时间:2009-09-14 13:54:47

标签: emacs elisp iswitchb-mode

根据emacs信息页面,以下是启用iswitchb-mode的方法:

  

要启用Iswitchb模式,请键入M-x iswitchb-mode或自定义   变量iswitchb-modet

所以我把以下内容放在我的.emacs中:

(setq iswitchb-mode t)

但是,这似乎不起作用。在搜索emacs wiki之后,我发现我需要使用它:

(iswitchb-mode 1)

有人可以解释为什么我需要以这种方式启用它吗?我想更好地理解elisp,而不仅仅是从地方复制和粘贴东西。

1 个答案:

答案 0 :(得分:8)

通常,模式将定义变量和具有相同名称的函数。该函数将在调用时正确设置变量,但它是打开模式的函数,而不仅仅是变量(仅跟踪模式的状态)。

在您的具体情况下,您被告知告知自定义变量,但您只需设置它。不同之处在于,当变量的值发生变化时,custom知道要做某事,而'setq'对此一无所知。如果你看一下这个变量的帮助(C-h v iswitchb-mode),你会得到:

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.