Boşluklardaki smartparens'i devre dışı bırakma


12

smartparens-modeDüzenleme benim tarzımı uymuyor. Ancak, spacemac'larda genel olarak devre dışı bırakmaya çalışırsam, mod yeniden etkinleştirilir:

(smartparens-global-mode -1)

Smartparens modunu nasıl devre dışı bırakabilirim?

Yanıtlar:


15

Ekleyebilir smartparensiçin dotspacemacs-excluded-packagessizin dotfile listesinde.


6

Ara boşluklar, arabellek başına küçük modları etkinleştirmek / devre dışı bırakmak için geçiş kavramını kullanır . Geçişler SPC tve altında gruplanır SPC T, ancak yalnızca geçerli arabellek için geçiş yaparlar. SPC t p( spacemacs/toggle-smartparens) Tuşuna basarak geçerli arabellek için smartparens'i geçici olarak devre dışı bırakabilirsiniz .

Ancak her arabellek için smartparens'i kalıcı olarak devre dışı bırakmak istiyorsanız spacemacs/toggle-smartparens-globally-off, dotspacemacs/user-configişlevinizi girin. Bunu yapmak için, tuşuna basın SPC f e d, bu .spacemacsdosyanızı açar . Sonra böyle bir şey olduğundan emin olun:

(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

Gönderen https://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034 :

smartparens-global-mode global bir moddur. Etkinleştirilirse, her arabellekte smartparens modu elde edersiniz. Kapatılması, herhangi bir yerde smartparens modunu açmanızı engellemez. (Bu aptalca olurdu, çünkü bu doğruysa smartparens'i seçici olarak etkinleştirmenin bir yolu olmazdı. Bu moda bağlı olarak her yerde ya da hiçbir yerde olmazdı.) Aslında smartparens-global-modu zaten varsayılan olarak kapalı.

Boşluklar, kancada açarak tüm programlama tamponlarında smartparens modunu etkinleştirir. Bu nedenle fonksiyonu prog-mod-hook'dan çıkarmanız gerekir.

Dan işlevini kaldırmak için prog-mode-hook, aşağıdaki satırı ekleyin dotspacemacs/user-configiçinde .spacemacs:

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

Varsayılan olarak smartparens modunu devre dışı bırakmadıysanız, aşağıdaki satırı da ekleyebilirsiniz:

(spacemacs/toggle-smartparens-globally-off)

smartparensPaketi başka bir yanıtta önerildiği gibi hariç tutarsanız, SPC j n( sp-newline) gibi diğer bazı özellikleri kaybedeceğinizi unutmayın .


1

Kötü ekleme modu için giriş / çıkış kancaları ekleyin:

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

Boşluk melez modunda, kötü melez durumlu kancalara uygulayın:

;; 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'i yalnızca belirli modlarda seçici olarak nasıl etkinleştireceğiniz aşağıda açıklanmıştır

(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))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.