我的小研究表明,在Emacs(24.4)中获取Python代码折叠的最简单方法是(参见this answer上@scytale的注释):
(add-hook 'python-mode-hook 'outline-minor-mode)
这很有效。问题是折叠的范围。请考虑以下示例:
if foo == bar:
do 1
do 2
else:
do 3
do 4
do 5
do 6
如果前三行中的任何一行中有point
,则折叠如下:
if foo == bar:...
else:
do 3
do 4
do 5
do 6
到目前为止一切顺利。但是,如果该点位于第4-6行,则折叠视图为:
if foo == bar:
do 1
do 2
else:...
请注意,do 5
和do 6
也会被折叠。有没有办法将折叠限制在右侧块?
答案 0 :(得分:1)
包yafolding
看起来像你想要的那样:http://wikemacs.org/wiki/Folding#Yafolding
我可以隐藏else
部分而不隐藏其余部分。
由于一些提交,yafolding带有discover命令的类似magit的界面,yafolding-discover
如果我记得很清楚,我发现它很方便。