如何让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. Python字符串编辑器
- 2. 如何在emacs缓冲区中区分Python字符串和文档字符串?
- 3. 编辑字符串文件
- 4. 要编辑的Python字符串
- 5. 编辑字符串值使用的sed
- 6. 在Emacs中编辑Python
- 7. 编辑字符串距编辑距离最短的字符串
- 8. Python文档字符串:这些文档字符串参数意味着什么?
- 9. 使用Emacs编辑Googleplus文章
- 10. 文档字符串存根,Python
- 11. 从javascript解析python文档字符串
- 12. Python的文档字符串在子类
- 13. 在emacs query-replace中编辑以前的搜索字符串?
- 14. 使用字符串创建流文档
- 15. 不能make文件编辑字符串
- 16. 可编辑文本到字符串
- 17. 字符串处理文档字符串
- 18. Python使用unicode编码的字符串
- 19. 如何使用Python将文档读入字符串?
- 20. 如何编辑字符串?
- 21. 正则表达式编辑使用python的二进制文件/字符串
- 22. 使用javascript让字段不可编辑
- 23. 用C编辑XML文档#
- 24. 使用jQuery编辑外部HTML文档
- 25. 如何使用Java编辑Word文档
- 26. 编辑MongoMapper文档
- 27. 编辑Word文档
- 28. 编辑字符串在XSLT分析串
- 29. 财产文档字符串
- 30. jQuery文档()对字符串
您需要将'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