Как навсегда включить hs-minor-mode в emacs

Я использую код ths в файле .emacs, чтобы навсегда включить hs-minor-mode и изменить ярлык:

(setq-default hs-minor-mode t)
(global-set-key (kbd "C-c C-h") (kbd "C-c @ C-h"))         ;;hiding block of code
(global-set-key (kbd "C-c C-r") (kbd "C-c @ C-s"))         ;;revealing block of code

Но режим не активируется автоматически. что я должен делать?

Ответ 1

Если вы хотите, чтобы он был действительно глобальным, это делает трюк:

(define-globalized-minor-mode global-hs-minor-mode
  hs-minor-mode hs-minor-mode)

(global-hs-minor-mode 1)

Ответ 2

Вы можете включить hs-minor-mode для определенного режима, такого как режим C, С++, используя c-mode-common-hook.

(add-hook 'c-mode-common-hook #'hs-minor-mode)

В Emacs 24 или более поздней версии вы можете включить его во всех режимах программирования, используя prog-mode-hook.

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

Ответ 3

Если вы хотите включить его всюду и запустить буфер с кодом, сложенным hs-hide-all, выполните

(defun my-hide-all()
  (interactive)
  (hs-minor-mode)
  (hs-hide-all))
(add-hook 'prog-mode-hook 'my-hide-all)