Tidak smartparens-mode
sesuai dengan gaya pengeditan saya. Namun, jika saya mencoba untuk menonaktifkannya secara global dalam spacemacs, mode ini diaktifkan kembali:
(smartparens-global-mode -1)
Bagaimana cara menonaktifkan mode smartparens?
Tidak smartparens-mode
sesuai dengan gaya pengeditan saya. Namun, jika saya mencoba untuk menonaktifkannya secara global dalam spacemacs, mode ini diaktifkan kembali:
(smartparens-global-mode -1)
Bagaimana cara menonaktifkan mode smartparens?
Jawaban:
Spacemacs menggunakan konsep matikan untuk mengaktifkan / menonaktifkan mode minor per buffer. Matikan dikelompokkan di bawah SPC tdan SPC T, tetapi mereka hanya beralih untuk buffer saat ini. Anda dapat menonaktifkan smartparens untuk buffer saat ini dengan menekan SPC t p( spacemacs/toggle-smartparens
).
Tetapi jika Anda ingin menonaktifkan smartparens untuk setiap buffer secara permanen, masukkan fungsi spacemacs/toggle-smartparens-globally-off
Anda dotspacemacs/user-config
. Untuk melakukannya, tekan SPC f e d, ini akan membuka .spacemacs
file Anda . Kemudian pastikan Anda memiliki sesuatu seperti ini:
(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
)
Dari https://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034 :
smartparens-global-mode adalah mode global. Jika diaktifkan, Anda mendapatkan mode-smartparens di setiap buffer. Mematikannya tidak mencegah Anda untuk mengaktifkan mode smartparens di mana saja. (Itu akan konyol, karena jika itu benar tidak akan ada cara untuk mengaktifkan smartparens secara selektif. Ini akan berada di mana-mana atau di mana pun, tergantung pada mode itu.) Sebenarnya smartparens-global-mode sudah mati secara default.
Spacemacs memungkinkan mode-smartparens di semua buffer pemrograman dengan mengaktifkannya di hook. Karena itu Anda harus menghapus fungsi dari prog-mode-hook.
Untuk menghapus fungsi dari prog-mode-hook
, tambahkan baris berikut ke dotspacemacs/user-config
dalam .spacemacs
:
(remove-hook 'prog-mode-hook #'smartparens-mode)
Jika Anda tidak menonaktifkan mode smartparens, Anda juga dapat menambahkan baris berikut:
(spacemacs/toggle-smartparens-globally-off)
Perhatikan bahwa jika Anda mengecualikan smartparens
paket seperti yang disarankan dalam jawaban lain, Anda akan kehilangan beberapa fitur lain seperti SPC j n
( sp-newline
).
Tambahkan kait masuk / keluar untuk mode sisipan jahat:
;; 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)
Dalam mode hybrid spacemacs, terapkan ke hook-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)
Berikut ini cara mengaktifkan smartparens secara selektif hanya dalam mode tertentu
(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))