smartparens-mode
Не устраивает мой стиль редактирования. Однако, если я пытаюсь отключить его глобально в spacemacs, режим снова включается:
(smartparens-global-mode -1)
Как отключить режим smartparens?
smartparens-mode
Не устраивает мой стиль редактирования. Однако, если я пытаюсь отключить его глобально в spacemacs, режим снова включается:
(smartparens-global-mode -1)
Как отключить режим smartparens?
Ответы:
Spacemacs использует концепцию переключателей для включения / выключения второстепенных режимов для каждого буфера. Переключатели сгруппированы в SPC tи SPC T, но они переключаются только для текущего буфера. Вы можете временно отключить smartparens для текущего буфера, нажав SPC t p( spacemacs/toggle-smartparens
).
Но если вы хотите отключить smartparens для каждого буфера навсегда, включите spacemacs/toggle-smartparens-globally-off
свою dotspacemacs/user-config
функцию. Для этого нажмите SPC f e d, это откроет ваш .spacemacs
файл. Затем убедитесь, что у вас есть что-то вроде этого:
(defun dotspacemacs/user-config ()
"Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration. You are free to put any user code."
; other code
(spacemacs/toggle-smartparens-globally-off)
; other code
)
С https://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034 :
smartparens-global-mode - это глобальный режим. Если он включен, вы получаете режим smartparens в каждом буфере. Отключение не мешает вам включить режим smartparens в любом месте. (Это было бы глупо, потому что, если бы это было правдой, не было бы способа выборочно включить smartparens. Это было бы либо везде, либо нигде, в зависимости от этого режима.) На самом деле smartparens-global-mode по умолчанию уже отключен.
Spacemacs включает режим smartparens во всех буферах программирования, включив его в ловушку. Поэтому вы должны удалить функцию из prog-mode-hook.
Чтобы удалить функцию из prog-mode-hook
, добавьте следующую строку dotspacemacs/user-config
в .spacemacs
:
(remove-hook 'prog-mode-hook #'smartparens-mode)
Если по умолчанию режим smartparens отключен, вы также можете добавить следующую строку:
(spacemacs/toggle-smartparens-globally-off)
Обратите внимание, что если вы исключите smartparens
пакет, как предлагается в другом ответе, вы потеряете некоторые другие функции, такие как SPC j n
( sp-newline
).
Добавьте входные / выходные хуки для режима вставки зла:
;; Defeat smartparens-mode in evil mode
(add-hook 'evil-insert-state-entry-hook 'turn-off-smartparens-mode)
(add-hook 'evil-insert-state-exit-hook 'turn-on-smartparens-mode)
В гибридном режиме spacemacs примените к перехватчикам состояния злого гибридного:
;; Alternative way to defeat smartparens-mode in hybrid mode
(add-hook 'evil-hybrid-state-entry-hook 'turn-off-smartparens-mode)
(add-hook 'evil-hybrid-state-exit-hook 'turn-on-smartparens-mode)
Вот как можно выборочно включать smartparens только в определенных режимах
(defun dotspacemacs/user-config ()
(require 'smartparens)
(remove-hook 'prog-mode-hook #'smartparens-mode)
(remove-hook 'markdown-mode-hook #'smartparens-mode)
(spacemacs/toggle-smartparens-globally-off)
(add-hook 'clojure-mode-hook '(lambda () (smartparens-mode 1)) t))