как мне заставить hs-minor-mode автоматически загружаться в php-mode в emacs? - PullRequest
2 голосов
/ 22 января 2011

Для моих любимых режимов я использую следующий фрагмент для загрузки hs-minor-mode при запуске:

(add-hook '____-mode-hook 'hs-minor-mode)

Пока что он работает с css-mode, perl-mode, sh-mode (bash) и lisp-mode.Но по какой-то причине он не загружается для php-режима, даже если я могу загрузить его вручную.

Вот мои настройки режима php:

(defun php-overload-keys ()
 (let ((map php-mode-map))
  (define-key map "\t" 'dumb-indent-relative)
  (define-key map "\177" 'backward-delete-char)
  (define-key map "," nil)
  (define-key map ";" nil)
  (define-key map ":" nil)
  (define-key map "*" nil)
  (define-key map "{" nil)
  (define-key map "}" nil)
  (define-key map "(" nil)
  (define-key map ")" nil)
  (define-key map "/" nil)
  (use-local-map map)))

(add-hook 'php-mode-hook 'php-overload-keys)
(add-hook 'php-mode-hook 'hs-minor-mode)

Я что-то не так делаю?Я попытался обернуть hs-minor-mode в функцию, но она все равно не загружается.Мои перегруженные ключи, однако, делают.В чем дело?

Ответы [ 2 ]

6 голосов
/ 22 января 2011

Функции режима обычно принимают числовой аргумент для их включения / выключения и действуют как переключатели, если аргумент не указан, поэтому в качестве общего правила вы должны использовать:

(add-hook 'php-mode-hook (lambda () (hs-minor-mode 1)))

0 голосов
/ 02 февраля 2015

В общем, я бы порекомендовал

(add-hook 'prog-mode-hook #'(lambda () (hs-minor-mode t)))

потому что hideshow это не какой-то специфичный для PHP режим.

...