Désactiver les smartparens dans les spacemacs

12

Le smartparens-modene convient pas à mon style d'édition. Si j'essaie de le désactiver globalement dans spacemacs, cependant, le mode est réactivé:

(smartparens-global-mode -1)

Comment désactiver le mode smartparens?

Jeff Bauer
la source

Réponses:

15

Vous pouvez ajouter smartparensà la dotspacemacs-excluded-packagesliste de votre fichier dot.

syl20bnr
la source
6

Spacemacs utilise le concept de bascule pour activer / désactiver les modes mineurs par tampon. Les bascules sont regroupées sous SPC tet SPC T, mais elles ne changent que pour le tampon actuel. Vous pouvez désactiver temporairement les smartparens pour le tampon actuel en appuyant sur SPC t p( spacemacs/toggle-smartparens).

Mais si vous voulez désactiver définitivement les smartparens pour chaque tampon, mettez spacemacs/toggle-smartparens-globally-offvotre dotspacemacs/user-configfonction. Pour ce faire, appuyez sur SPC f e d, cela ouvrira votre .spacemacsfichier. Assurez-vous ensuite d'avoir quelque chose comme ceci:

(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
)
Mirzhan Irkegulov
la source
2

Depuis https://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034 :

smartparens-global-mode est un mode global. S'il est activé, vous obtenez le mode smartparens dans chaque tampon. La désactiver ne vous empêche pas d'activer le mode smartparens n'importe où. (Ce serait idiot, car si c'était vrai, il n'y aurait aucun moyen d'activer sélectivement les smartparens. Ce serait soit partout, soit nulle part, selon ce mode.) En fait, smartparens-global-mode est déjà désactivé par défaut.

Spacemacs active le mode smartparens dans tous les tampons de programmation en l'activant dans le hook. Par conséquent, vous devez supprimer la fonction de prog-mode-hook.

Pour supprimer la fonction de prog-mode-hook, ajoutez la ligne suivante à dotspacemacs/user-configdans .spacemacs:

(remove-hook 'prog-mode-hook #'smartparens-mode)

Si le mode smartparens n'est pas désactivé par défaut, vous pouvez également ajouter la ligne suivante:

(spacemacs/toggle-smartparens-globally-off)

Notez que si vous excluez le smartparenspackage comme suggéré dans une autre réponse, vous perdrez d'autres fonctionnalités telles que SPC j n( sp-newline).

Jaakko Luttinen
la source
1

Ajoutez des crochets d'entrée / sortie pour le mode d'insertion maléfique:

;; 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)

En mode hybride spacemacs, appliquez aux hooks mal-hybrides:

;; 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)
Jeff Bauer
la source
1

Voici comment activer sélectivement les smartparens uniquement dans des modes spécifiques

(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
la source