Почему я запускаю iswitchb-режим таким образом?
Согласно информации на странице emacs, вот как вы включаете iswitchb-режим:
Чтобы включить режим Iswitchb, введите
M-x iswitchb-mode
или настроить переменнуюiswitchb-mode
вt
Поэтому я добавил в свой.emacs следующее:
(setq iswitchb-mode t)
Тем не менее, это не похоже на работу. После поиска в вики emacs я обнаружил, что мне нужно использовать это:
(iswitchb-mode 1)
Может кто-нибудь объяснить, почему мне нужно включить его таким образом? Я хотел бы получить лучшее понимание elisp, а не просто копировать и вставлять вещи из мест.
1 ответ
Обычно режим определяет переменную и функцию с одинаковым именем. Функция будет правильно устанавливать переменную при вызове, но это функция, которая включает режим, а не только переменную (которая только отслеживает состояние режима).
В вашем конкретном случае вам сказали настроить переменную, но вы просто задали ее. Разница в том, что когда значение переменной изменяется, custom знает, что делать, а `setq'ничего об этом не знает. Если вы посмотрите на справку по этой переменной (Ch 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.