Как получить автоматическую загрузку HS-Minor-Mode в PHP-режиме в EMACS?

StackOverflow https://stackoverflow.com/questions/4767557

  •  16-10-2019
  •  | 
  •  

Вопрос

Для моих любимых режимов я использую следующий фрагмент для загрузки 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 в функции, и он все еще не загружается. Мои перегруженные ключи, однако, делают. В чем дело?

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top