首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在VIM中折叠python源代码中的长文档字符串?

如何在VIM中折叠python源代码中的长文档字符串?
EN

Stack Overflow用户
提问于 2010-06-22 22:51:58
回答 6查看 2.4K关注 0票数 9

有没有人知道有一种方法或者插件可以在Python中自动折叠很长的文档字符串?我的代码中有跨越多个页面的文档字符串,因此不断地对它们进行分页是很麻烦的。另一个棘手的部分是,文档字符串中嵌入了python测试代码,因此可能会使解析它们变得困难。请注意,我只需要自动折叠整个文档字符串,而不管其中包含什么内容。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-06-23 09:04:34

这是一个卑劣的技巧,但是您可以查看Python语法文件(:sp $VIMRUNTIME/syntax/python.vim),找到三重引号字符串的所有语法区域(搜索'''"""),并将fold关键字添加到这些语句的末尾。然后只需为python文件设置foldmethod=syntax,注释就应该被折叠起来。

票数 8
EN

Stack Overflow用户

发布于 2010-06-23 00:45:04

我不确定是否有插件或自动化,但如果你输入zf/,你就可以搜索一些东西,它会折叠到它的下一个实例。因此,在如下所示的文档中(其中[]是光标):

def foo():
    """[]
    Some long docstring
    that takes up many
    lines
    """
    pass

首先在edit2中查找更新后的搜索字符串!

如果您使用命令zf/"""[ENTER],它应该将从当前行(文档字符串的开头)到下一次出现的""" (应该是文档字符串的结尾)的所有内容折叠起来。

我知道这不是自动化,但也许它会在过渡期间有所帮助,或者引导您走上自动化的正确道路。查看edit2以获得更好的搜索功能,尽管我仍然不知道如何实现自动化。

希望这能有所帮助。

编辑:作为推论,您可以使用/"""\_.\{-}"""搜索任何文档字符串,尽管这也会返回文档字符串中的代码。要搜索后跟文档字符串的函数定义,可以使用/def\_.\{-}"""\_.\{-}""",尽管这会在文档字符串中的def处中断。

Edit2:实际上,更多的正则表达式将我带到了这个位置:/def.\{-}):\_s*"""\_.\{-}""",它可以找到任何后跟文档字符串的函数。它搜索def,后跟任何字符,然后是):,然后是换行符和/或空格,然后是""",后跟的行数不超过下一个""",但始终确保第二个三重引号是紧跟在第一个三重引号之后的那个。

票数 2
EN

Stack Overflow用户

发布于 2010-06-23 01:06:36

在您的.vimrc中添加:

" folding
set foldmethod=indent

这将在每次缩进时自动折叠,在python中,缩进会转换为docstring。它工作得非常非常好。试试看。上面的答案是正确的,但需要多次击键(废话!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3094331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档