Отключить smartparens в spacemacs

12

smartparens-modeНе устраивает мой стиль редактирования. Однако, если я пытаюсь отключить его глобально в spacemacs, режим снова включается:

(smartparens-global-mode -1)

Как отключить режим smartparens?

Джефф Бауэр
источник

Ответы:

15

Вы можете добавить smartparensв dotspacemacs-excluded-packagesсписок свой точечный файл.

syl20bnr
источник
6

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
)
Миржан Иркегулов
источник
2

С 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).

Яакко Луттинен
источник
1

Добавьте входные / выходные хуки для режима вставки зла:

;; 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)
Джефф Бауэр
источник
1

Вот как можно выборочно включать 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))
loevborg
источник