簡體   English   中英

如何使hs-minor-mode自動在emacs的php-mode上加載?

[英]how do I get hs-minor-mode to load automatically on php-mode in emacs?

對於我最喜歡的模式,我使用以下代碼段在啟動時加載hs-minor-mode:

(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包裝在函數中,但仍然無法加載。 但是,我的重載鍵確實可以。 這是怎么回事?

模式函數通常接受一個數字參數來啟用/禁用它們,並且在不提供任何參數的情況下用作切換,因此通常應使用:

(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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM