对于我最喜欢的模式,我使用以下片段在启动时加载HS-Minor模式:

(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模式包装在功能中,但仍不会加载。但是,我的钥匙超载。这是怎么回事?

有帮助吗?

解决方案

模式函数通常接受数字参数以启用/禁用它们,并在不提供参数的情况下用作切换,因此作为一般规则,您应该使用:

(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归因
不隶属于 StackOverflow
scroll top