2

私のお気に入りのモードでは、次のスニペットを使用して、起動時にhs-minor-modeをロードします。

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

これまでのところ、css-mode、perl-mode、sh-mode(bash)、およびlisp-modeで動作しています。しかし、手動でロードできたとしても、何らかの理由でphp-modeではロードされません。

これが私の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を関数でラップしようとしましたが、それでもロードされません。しかし、私のオーバーロードされたキーはそうします。どうしたんだ?

4

2 に答える 2

6

モード関数は通常、数値引数を受け入れて有効/無効にし、引数が指定されていない場合はトグルとして機能するため、一般的なルールとして次を使用する必要があります。

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

于 2011-01-22T11:55:59.090 に答える
0

一般的に私はお勧めします

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

これは、hideshowPHP固有のモードではないためです。

于 2015-02-02T13:11:05.503 に答える