2011-01-22 19 views
2

我最喜欢的方式,我用下面的代码片段在启动时加载的HS-未成年人模式:如何让hs-minor-mode在emacs的php模式下自动加载?

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

到目前为止,它得到的CSS-模式,perl的模式,SH-模式(bash)的工作,和lisp模式。但由于某些原因,它不会为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,但它仍然无法加载。然而,我的重载键可以。这是怎么回事?

回答

6

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

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

+0

太棒了。 *愉快的codefolds * – user572491 2011-01-22 12:22:26

0

一般来说,我会建议

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

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

相关问题