ปิดใช้งาน smartparens ใน spacemacs


12

smartparens-modeไม่เหมาะกับสไตล์ของฉันของการแก้ไข หากฉันพยายามที่จะปิดการใช้งานทั่วโลกใน spacemacs โหมดจะเปิดใช้งานอีกครั้ง:

(smartparens-global-mode -1)

ฉันจะปิดการใช้งานโหมด smartparens ได้อย่างไร

คำตอบ:



6

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
)

2

จาก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)


1

เพิ่ม 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)

1

นี่คือวิธีการเปิดใช้งาน 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))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.