Deshabilitar smartparens en spacemacs

12

El smartparens-modeno se adapta a mi estilo de edición. Sin embargo, si intento deshabilitarlo globalmente en spacemacs, el modo se vuelve a habilitar:

(smartparens-global-mode -1)

¿Cómo desactivo el modo smartparens?

Jeff Bauer
fuente

Respuestas:

15

Puede agregar smartparensa la dotspacemacs-excluded-packageslista de su archivo de puntos.

syl20bnr
fuente
6

Spacemacs utiliza el concepto de alternar para habilitar / deshabilitar modos menores por búfer. Las palancas se agrupan en SPC ty SPC T, pero solo cambian por el búfer actual. Puede deshabilitar temporalmente los smartparens para el búfer actual presionando SPC t p( spacemacs/toggle-smartparens).

Pero si desea deshabilitar smartparens para cada búfer de forma permanente, configure spacemacs/toggle-smartparens-globally-offsu dotspacemacs/user-configfunción. Para hacer eso, presione SPC f e d, esto abrirá su .spacemacsarchivo. Luego, asegúrese de tener algo como esto:

(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
fuente
2

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

smartparens-global-mode es un modo global. Si está habilitado, obtiene el modo smartparens en cada búfer. Desactivarlo no le impide activar el modo smartparens en cualquier lugar. (Eso sería una tontería, porque si eso fuera cierto, no habría forma de habilitar selectivamente smartparens. Sería en todas partes o en ninguna parte, dependiendo de ese modo). De hecho, smartparens-global-mode ya está desactivado por defecto.

Spacemacs habilita el modo smartparens en todas las memorias intermedias de programación activándolo en el gancho. Por lo tanto, debe eliminar la función de prog-mode-hook.

Para eliminar la función de prog-mode-hook, agregue la siguiente línea dotspacemacs/user-configen .spacemacs:

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

Si no tiene el modo smartparens desactivado de forma predeterminada, también puede agregar la siguiente línea:

(spacemacs/toggle-smartparens-globally-off)

Tenga en cuenta que si excluye el smartparenspaquete como se sugiere en otra respuesta, perderá algunas otras características como SPC j n( sp-newline).

Jaakko Luttinen
fuente
1

Agregue ganchos de entrada / salida para el modo de inserción malvado:

;; 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 el modo híbrido de spacemacs, aplique a los ganchos de mal estado híbrido:

;; 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
fuente
1

Aquí se explica cómo habilitar selectivamente los smartparens solo en modos específicos

(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
fuente