回答:
Spacemacsはトグルの概念を使用して、バッファーごとにマイナーモードを有効/無効にします。切り替えは、下にグループ化されているSPC tとSPC T、彼らは、現在のバッファに切り替えます。SPC t p(spacemacs/toggle-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
)
https://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034から:
smartparens-global-modeはグローバルモードです。有効にすると、すべてのバッファーでsmartparens-modeが取得されます。オフにしても、smartparens-modeをどこからでもオンにすることはできません。(それが本当なら、スマートパレンを選択的に有効にする方法がないので、それはばかげているでしょう。それは、そのモードに応じて、どこでもどこでもありません。)実際、デフォルトでsmartparens-global-modeはオフです
Spacemacsは、フックでオンにすることで、すべてのプログラミングバッファーでsmartparensモードを有効にします。したがって、関数をprog-mode-hookから削除する必要があります。
から関数を削除するにはprog-mode-hook
、次の行をdotspacemacs/user-config
inに追加します.spacemacs
。
(remove-hook 'prog-mode-hook #'smartparens-mode)
デフォルトでsmartparens-modeが無効になっていない場合は、次の行も追加できます。
(spacemacs/toggle-smartparens-globally-off)
smartparens
別の回答で提案されているようにパッケージを除外すると、SPC j n
(sp-newline
)などの他の機能が失われることに注意してください。
邪悪な挿入モードのエントリ/出口フックを追加します。
;; 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ハイブリッドモードでは、evil-hybrid-stateフックに適用します。
;; 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)
特定のモードでのみスマートパレンを選択的に有効にする方法は次のとおりです
(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))