У меня есть несколько основных режимов (например: Yaml и NXML), которые я не хочу использовать в режиме электрического indent-режима (я хочу, чтобы это было для C-подобных языков), но я не могу включить, если выключен. Чтобы включить у меня есть:Как включить режим электрического отступа для конкретного основного режима?
(electric-indent-mode 1)
из документации (для переменного электрического отступа режима)
Non-ноль, если режим Electric-Отступ включен. См. Команду
electric-indent-mode' for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node
«Простая настройка») или вызовите функцию «электрический-отступ-режим».
и для функции
Переключить на лету reindentation (режим Electric отступа). С префиксом аргумент ARG, включить режим электрического отступа, если ARG положителен, а отключить его иначе. Если вызвано из Lisp, включите режим, если ARG опущено или равно нулю.
поэтому я стараюсь, чтобы превратить его в крюке:
(add-hook 'yaml-mode-hook (lambda()
(electric-indent-mode -1)))
(Actualy я использую после-изменений-мажорного-режим-крюк и проверить (memql major-mode '(yaml-mode python-mode nxml-mode))
где я могу добавить дополнительные режимы в список) ,
Но это не работает, я также попробовать:
(set (make-local-variable 'electric-indent-mode) nil)
Нет радости. Но он работает, когда я eval (electric-indent-mode -1)
из .emacs файлов.
Спасибо, это помогло мне с той же проблемой, только с улучшенным рубиновым режимом вместо yaml-mode. Я слишком привык использовать поведение C-j, чтобы изменить его сейчас, но поймите, почему для новичков может быть полезно, чтобы по умолчанию был включен электрический отступ. – sockmonk