如何讓Emacs在Python文件的文檔字符串中使用rst-mode
?我依稀記得,文件某些區域內的不同模式是可能的,但我不記得它是如何完成的。讓Emacs使用rst-mode編輯Python文檔字符串
12
A
回答
13
支持的Emacs包是mmm-mode
。確保已安裝,然後像這樣的代碼,您的Emacs啓動的一部分,應該這樣做:
(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
(mmm-add-classes
'((python-rst
:submode rst-mode
:front "^ *[ru]?\"\"\"[^\"]*$"
:back "^ *\"\"\""
:include-front t
:include-back t
:end-not-begin t)))
(mmm-add-mode-ext-class 'python-mode nil 'python-rst)
我與一些Python程序測試此,它似乎正常工作。
請注意,對於每個三重引號字符串,這將切換到rst模式,而不僅僅是函數定義開始時的那些字符串。你可能可以將它限制在函數定義開始時的一個更復雜的前置正則表達式,但我不完全確定如何處理它,因爲我認爲默認情況下mmm模式定義一次匹配一條線。
編輯:我原來的版本會把Emacs的第一個進入模式,在單行文檔字符串的點,然後將它留在該模式下,直到下一個文檔字符串的開始。如果在同一行上有另一個雙引號作爲docstring的開始,這個版本可以避免將Emacs置於rst模式,這仍然不完美,但應該更接近。
0
你會發現另一個設置,檢查文檔字符串是一個語句本身。這避免了其他heredoc。
0
至於對編輯而言,縮小到文檔字符串和激活第一個模式應該是要走的路。
蟒蛇模式EL提供PY - 文檔字符串-P,這可能很容易適應python.el
比整個事情結合到一些閒置的定時器,會做縮小/切換。
保持一些表達式,其切換第一模式並擴大。
相關問題
- 1. 使用Emacs編輯Google文檔?
- 2. Python字符串編輯器
- 3. 如何在emacs緩衝區中區分Python字符串和文檔字符串?
- 4. 編輯字符串文件
- 5. 編輯一個字符串,Python
- 6. 要編輯的Python字符串
- 7. Python,Django,編輯表與字符串
- 8. 編輯字符串值使用的sed
- 9. 在Emacs中編輯Python
- 10. 編輯字符串距編輯距離最短的字符串
- 11. 使用Emacs編輯Googleplus文章
- 12. Python文檔字符串:這些文檔字符串參數意味着什麼?
- 13. 編輯GVFS使用Emacs
- 14. 使用與Emacs編輯器
- 15. 文檔字符串存根,Python
- 16. Python的文檔字符串在子類
- 17. 如何從Python的文檔字符串
- 18. 從javascript解析python文檔字符串
- 19. 在emacs query-replace中編輯以前的搜索字符串?
- 20. 使用JavaScript編程編輯Google文檔
- 21. 使用字符串創建流文檔
- 22. Emacs的Python模式文檔
- 23. 可編輯文本到字符串
- 24. 不能make文件編輯字符串
- 25. 字符串處理文檔字符串
- 26. Android Eclipse字符串TXT +編輯文本+字符串TXT =崩潰
- 27. 在編輯文本編輯器中將字符串作爲變量使用unix
- 28. Python使用unicode編碼的字符串
- 29. 如何使用Python將文檔讀入字符串?
- 30. Groovy編輯字符串
您需要將'include-back'設置爲't'。否則,'python-mode'認爲實際的代碼是在docstrings中。 – asmeurer 2013-03-19 17:26:49
這可行,但有時候文檔字符串分隔符似乎「泄漏」到「python-mode」,導致它將文檔之間的代碼解釋爲文檔字符串。例如,[this](https://github.com/sympy/sympy/blob/master/sympy/solvers/ode.py#L2688-2759)整個塊被呈現爲文檔字符串。 – asmeurer 2013-03-19 18:09:34
設置面的難度有多大,以便在此上下文中使用不同的「第一模式」面組而不是常規的第一模式面? – asmeurer 2013-03-19 18:18:21