По какой-то причине мои перехватчики режима сценария оболочки не выполняются.Пример в моем .emacs:
(add-hook 'shell-script-mode-hook (lambda ()
(rainbow-delimiters-mode 1)))
приводит к установке переменных, но режим не загружается для открытых файлов сценариев.Как правильно зацепить здесь?
Я использую режим сценария оболочки по умолчанию (modeline говорит, например, Shell-script[bash]
).Нужно ли подключать каждый тип оболочки отдельно (sh, bash, zsh)?Если да, скажите, пожалуйста, как?
Большое спасибо!
РЕДАКТИРОВАТЬ3:
Оказалось, что произошел конфликт режима textmate со скелетом.пара-вставка в режиме sh (я попытался избежать конфликта, отключив textmate в режиме sh-mode, который затем оставил аппарат sh-mood-hook в руинах. Я полностью удалил режим textmate и теперь использую стандартный скелет-парный подход глобально.
Я приму ответ филса - без него я, вероятно, не смог бы отладить это самостоятельно.
РЕДАКТИРОВАТЬ 2:
Спасибо филсуЯ думаю, его комментарий приближает нас к решению. Хотя это не проблема с разделителями-радугами. Я удалил все sh-mode-hook, кроме вашего первого сообщения приветствия, и перезапустил Emacs. Когда я открываю файл .sh, я получаю следующее:
Настройка отступа для типа оболочки bash Настройка отступа Теперь переменные отступа являются локальными. Настройка отступа для типа оболочки bash Ошибка спецификации режима файла: (void-function nil)
Примечание no "hello"сообщение.Значение sh-mode-hook: (nil
(lambda nil
(message "hello")))
Я думаю, что проблема заключается в этом первом значении nil - хотя я не вижу, чтобы оно было где-либо установлено.
Если яОцените это:
(setq sh-mode-hook t)
(add-hook 'sh-mode-hook (lambda () (message "hello")))
Я вижу приветственное сообщение, хотя после перезапуска (я поместил эти строки в .emacs) оно снова исчезает (ноль снова на вершинехук).
Есть идеи, что делать, чтобы активная ловушка была при настройке?
EDIT1: я пробовал также:
(add-hook 'sh-mode-hook (lambda ()
(rainbow-delimiters-mode 1)))
с тем же отрицательным результатом - не уверен, что это уместно, хотя ...