Deaktivieren Sie Smartparens in Spacemacs

12

Das smartparens-modepasst nicht zu meinem Schnittstil. Wenn ich versuche, es global in Spacemacs zu deaktivieren, wird der Modus wieder aktiviert:

(smartparens-global-mode -1)

Wie deaktiviere ich den Smartparens-Modus?

Jeff Bauer
quelle

Antworten:

15

Sie können smartparensder dotspacemacs-excluded-packagesListe Ihrer Punktedatei hinzufügen.

syl20bnr
quelle
6

Spacemacs verwendet das Toggle- Konzept , um Nebenmodi pro Puffer zu aktivieren / deaktivieren. Toggles sind unter SPC tund gruppiert SPC T, schalten aber nur für den aktuellen Puffer. Sie können Smartparens für den aktuellen Puffer vorübergehend deaktivieren, indem Sie SPC t p( spacemacs/toggle-smartparens) drücken .

Wenn Sie jedoch Smartparens für jeden Puffer dauerhaft deaktivieren möchten, geben Sie spacemacs/toggle-smartparens-globally-offIhre dotspacemacs/user-configFunktion ein. Drücken Sie dazu SPC f e d, um Ihre .spacemacsDatei zu öffnen . Dann stellen Sie sicher, dass Sie so etwas haben:

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

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

Der SmartParens-Global-Modus ist ein globaler Modus. Wenn es aktiviert ist, erhalten Sie in jedem Puffer den Smartparens-Modus. Das Ausschalten hindert Sie nicht daran, den Smartparens-Modus überall einzuschalten. (Das wäre albern, denn wenn dies der Fall wäre, gäbe es keine Möglichkeit, Smartparens selektiv zu aktivieren. Abhängig von diesem Modus ist dies entweder überall oder nirgendwo möglich.) Tatsächlich ist der Smartparens-Global-Modus bereits standardmäßig deaktiviert.

Spacemacs aktiviert den Smartparens-Modus in allen Programmierpuffern, indem es im Hook eingeschaltet wird. Dazu muss die Funktion aus dem Prog-Mode-Hook entfernt werden.

Um die Funktion von zu entfernen prog-mode-hook, fügen Sie die folgende Zeile zu dotspacemacs/user-configin hinzu .spacemacs:

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

Wenn Sie den Smartparens-Modus nicht standardmäßig deaktiviert haben, können Sie auch die folgende Zeile hinzufügen:

(spacemacs/toggle-smartparens-globally-off)

Beachten Sie, dass Sie smartparenseinige andere Funktionen wie SPC j n( sp-newline) verlieren , wenn Sie das Paket wie in einer anderen Antwort vorgeschlagen ausschließen .

Jaakko Luttinen
quelle
1

Hinzufügen von Ein- / Ausstiegshaken für den bösen Einfügemodus:

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

Wenden Sie im Spacemacs-Hybridmodus auf die Hooks mit dem bösen Hybridstatus an:

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

Hier ist , wie selektiv aktivieren smartparens nur in bestimmten Modi

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