spacemacsでsmartparensを無効にする


12

これsmartparens-modeは私の編集スタイルには合いません。ただし、spacemacsでグローバルに無効にしようとすると、モードが再度有効になります。

(smartparens-global-mode -1)

smartparens-modeを無効にするにはどうすればよいですか?

回答:


15

ドットファイルsmartparensdotspacemacs-excluded-packagesリストに追加できます。


6

Spacemacsはトグルの概念を使用して、バッファーごとにマイナーモードを有効/無効にします。切り替えは、下にグループ化されているSPC tSPC T、彼らは、現在のバッファに切り替えます。SPC t pspacemacs/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
)

2

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-configinに追加します.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ハイブリッドモードでは、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)

1

特定のモードでのみスマートパレンを選択的に有効にする方法は次のとおりです

(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))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.