emacs中python代码折叠的范围

时间:2014-12-23 09:02:41

标签: python emacs folding

我的小研究表明,在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 5do 6也会被折叠。有没有办法将折叠限制在右侧块?

1 个答案:

答案 0 :(得分:1)

yafolding看起来像你想要的那样:http://wikemacs.org/wiki/Folding#Yafolding

我可以隐藏else部分而不隐藏其余部分。

由于一些提交,yafolding带有discover命令的类似magit的界面,yafolding-discover如果我记得很清楚,我发现它很方便。