我試圖創建一個輔助模式爲Twig語法非常類似於Django和我想改變註釋風格的值使用{#和#}如何在emacs次要模式下設置註釋開始和註釋結束?
如果我做
(setq comment-start "{#")
(setq comment-end "#}")
運行正常,但是當改變LISP模式註釋端仍然是「#}」,而不是「」
的代碼是here
由於
我試圖創建一個輔助模式爲Twig語法非常類似於Django和我想改變註釋風格的值使用{#和#}如何在emacs次要模式下設置註釋開始和註釋結束?
如果我做
(setq comment-start "{#")
(setq comment-end "#}")
運行正常,但是當改變LISP模式註釋端仍然是「#}」,而不是「」
的代碼是here
由於
你可以做how to change the cursor based on a minor mode沿着答案線的東西:
(defvar twig-mode-previous-comments nil
"Storage for comment start/end that was before twig mode was enabled")
(define-minor-mode twig-mode "twig" :lighter ""
(unless twig-mode-previous-comments
(set (make-local-variable 'twig-mode-previous-comments) (cons comment-start comment-end)))
(if twig-mode
(progn
(set (make-local-variable 'comment-start) "{#")
(set (make-local-variable 'comment-end) "#}"))
(setq comment-start (car twig-mode-previous-comments))
(setq comment-end (cdr twig-mode-previous-comments))))
您需要通過添加這讓他們buffer-local
:
(set (make-local-variable 'comment-start) "{#")
(set (make-local-variable 'comment-end) "#}")
到define-minor-mode
體。
聽起來像你對我應該創建一個派生的主要模式,而不是。 – tripleee
@tripleee如何幫助? –
因爲這樣你就只有一個機制來處理這種模式處於活動狀態的緩衝區。聽起來像一個可用的Django模式將是一個很好的起點; https://code.djangoproject.com/wiki/Emacs – tripleee