2011-01-22 31 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特定的模式。

相關問題