在spacemacs中禁用smartparens


12

smartparens-mode不适合我的编辑风格。但是,如果我尝试在spacemacs中全局禁用它,则会重新启用该模式:

(smartparens-global-mode -1)

如何禁用smartparens模式?

Answers:


15

您可以添加smartparensdotspacemacs-excluded-packages您的点文件列表。


6

Spacemacs使用切换的概念来启用/禁用每个缓冲区的次模式。切换开关分组在SPC t和下SPC T,但是它们仅切换到当前缓冲区。您可以通过按SPC t pspacemacs/toggle-smartparens)暂时禁用当前缓冲区的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-mode。将其关闭不会阻止您在任何地方打开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-mode,则还可以添加以下行:

(spacemacs/toggle-smartparens-globally-off)

请注意,如果您smartparens按照其他答案中的建议排除软件包,则会丢失其他功能,例如SPC j nsp-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))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.