如何在emacs中的php模式下自动加载hs-minor-mode?

时间:2011-01-22 11:32:12

标签: php emacs php-mode

对于我最喜欢的模式,我使用以下代码段在启动时加载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 个答案:

答案 0 :(得分:6)

模式函数通常接受一个数字参数来启用/禁用它们,如果没有提供参数则用作切换,所以作为一般规则你应该使用:

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

答案 1 :(得分:0)

一般情况下我会推荐

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

因为hideshow不是特定于PHP的模式。