Desativar smartparens no spacemacs

12

O smartparens-modenão se adequa ao meu estilo de edição. Se eu tentar desativá-lo globalmente no spacemacs, no entanto, o modo será reativado:

(smartparens-global-mode -1)

Como desativo o modo smartparens?

Jeff Bauer
fonte

Respostas:

15

Você pode adicionar smartparensà dotspacemacs-excluded-packageslista do seu arquivo de pontos.

syl20bnr
fonte
6

Spacemacs usa o conceito de alterna para activar / desactivar menores-modos por tampão. Os alternadores estão agrupados em SPC te SPC T, mas alternam apenas para o buffer atual. Você pode desativar temporariamente o smartparens para o buffer atual pressionando SPC t p( spacemacs/toggle-smartparens).

Mas se você deseja desativar permanentemente os smartparens para cada buffer, coloque spacemacs/toggle-smartparens-globally-offsua dotspacemacs/user-configfunção. Para fazer isso, pressione SPC f e d, isso abrirá seu .spacemacsarquivo. Então verifique se você tem algo parecido com isto:

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

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

smartparens-global-mode é um modo global. Se estiver ativado, você obtém o modo smartparens em cada buffer. Desligá-lo não impede que você ative o modo smartparens em qualquer lugar. (Isso seria bobagem, porque, se isso fosse verdade, não haveria maneira de ativar seletivamente os smartparens. Ele estaria em qualquer lugar ou lugar nenhum, dependendo desse modo.) De fato, o smartparens-global-mode já está desativado por padrão.

O Spacemacs habilita o modo smartparens em todos os buffers de programação, ativando-o no gancho. Portanto, você deve remover a função do gancho no modo prog.

Para remover a função de prog-mode-hook, adicione a seguinte linha dotspacemacs/user-configem .spacemacs:

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

Se você não tiver o modo smartparens desativado por padrão, também poderá adicionar a seguinte linha:

(spacemacs/toggle-smartparens-globally-off)

Observe que, se você excluir o smartparenspacote conforme sugerido em outra resposta, perderá outros recursos, como SPC j n( sp-newline).

Jaakko Luttinen
fonte
1

Adicione ganchos de entrada / saída para o modo de inserção incorreta:

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

No modo híbrido spacemacs, aplique aos ganchos do estado híbrido maligno:

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

Veja como ativar seletivamente smartparens apenas em 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
fonte