smartparens-mode
ไม่เหมาะกับสไตล์ของฉันของการแก้ไข หากฉันพยายามที่จะปิดการใช้งานทั่วโลกใน spacemacs โหมดจะเปิดใช้งานอีกครั้ง:
(smartparens-global-mode -1)
ฉันจะปิดการใช้งานโหมด smartparens ได้อย่างไร
smartparens-mode
ไม่เหมาะกับสไตล์ของฉันของการแก้ไข หากฉันพยายามที่จะปิดการใช้งานทั่วโลกใน spacemacs โหมดจะเปิดใช้งานอีกครั้ง:
(smartparens-global-mode -1)
ฉันจะปิดการใช้งานโหมด smartparens ได้อย่างไร
คำตอบ:
คุณสามารถเพิ่มลงsmartparens
ในdotspacemacs-excluded-packages
รายการ dotfile ของคุณ
Spacemacs ใช้แนวคิดของการสลับเพื่อเปิด / ปิดการใช้งานโหมดรองต่อบัฟเฟอร์ สลับเป็นกลุ่มภายใต้SPC tและSPC Tแต่พวกเขาสลับสำหรับบัฟเฟอร์ปัจจุบันเท่านั้น คุณสามารถปิดใช้งาน smartparens ชั่วคราวสำหรับบัฟเฟอร์ปัจจุบันโดยกดSPC t p( spacemacs/toggle-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
)
จากhttps://github.com/syl20bnr/spacemacs/issues/1603#issuecomment-213553034 :
smartparens-global-mode เป็นโหมดโกลบอล หากเปิดใช้งานคุณจะได้รับโหมด smartparens ในทุกบัฟเฟอร์ การปิดเครื่องไม่ได้ป้องกันไม่ให้คุณเปิดโหมด smartparens ได้ทุกที่ (นั่นคงโง่เพราะถ้าเป็นจริงจะไม่มีวิธีเลือกเปิดใช้งาน smartparens อย่างใดอย่างหนึ่งมันจะเป็นได้ทุกที่หรือที่ไหนก็ได้ขึ้นอยู่กับโหมดนั้น) ในความเป็นจริงโหมด smartparens-global-global ถูกปิดโดยปริยายแล้ว
Spacemacs เปิดใช้งานโหมด smartparens ในบัฟเฟอร์การตั้งโปรแกรมทั้งหมดโดยการเปิดใน hook ดังนั้นคุณต้องลบฟังก์ชั่นออกจาก prog-mode-hook
ในการลบฟังก์ชันออกจากprog-mode-hook
เพิ่มบรรทัดต่อไปนี้dotspacemacs/user-config
ใน.spacemacs
:
(remove-hook 'prog-mode-hook #'smartparens-mode)
หากคุณไม่ได้ปิดใช้งานโหมด smartparens ตามค่าเริ่มต้นคุณสามารถเพิ่มบรรทัดต่อไปนี้:
(spacemacs/toggle-smartparens-globally-off)
โปรดทราบว่าหากคุณแยกsmartparens
แพคเกจตามที่แนะนำในคำตอบอื่นคุณจะสูญเสียคุณสมบัติอื่น ๆ เช่นSPC j n
( sp-newline
)
เพิ่ม hooks entry / exit สำหรับโหมด insert ชั่ว:
;; 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 ให้ใช้กับ hooks 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)
นี่คือวิธีการเปิดใช้งาน 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))