【问题标题】:Python docstring with vim pythoncomplete is not displaying newlines for my own class functions带有 vim pythoncomplete 的 Python 文档字符串没有为我自己的类函数显示换行符
【发布时间】:2012-04-16 08:24:22
【问题描述】:

在我自己的类函数上尝试使用Python Omni Completion 时,我得到了一些意想不到的结果。函数的文档字符串的格式不正确,如下图所示:

当我从标准 python 库中导入模块时,我得到了我期望的结果:

根据 python docstring conventions,源文件中的换行符应该被解释为换行符。有谁知道这里发生了什么以及如何解决这个问题?

【问题讨论】:

    标签: python vim autocomplete docstring


    【解决方案1】:

    编辑:我写了一个自动补全,应该比pythoncomplete好多了https://github.com/davidhalter/jedi-vim


    vim 的Python Omni Completion 非常愚蠢。这是一个简单的脚本,它解析当前文件和imports 所有其他文件。这是非常危险的,不应该这样做。但是它的效果还不错(但也不是很好)。

    因此,您的两个方案之间的真正区别在于,正在导入标准库。您的文件也是如此,但不是当前文件。如果您使用了名为 test2 的第二个模块并使用了:

    import test
    test.mydoc.prettyStr
    

    它应该可以工作。

    正在解析您当前的文件。解析器很简单,而且不是很好。由于这一行(行号~290),dostring解析器特别奇怪:

    docstr = docstr.replace('\n', ' ')
    

    您可以修改它 - 只需更改此文件: /usr/share/vim/vim73/autoload/pythoncomplete.vim 可能在不同的目录中。

    目前我正在为 python/vi 编写更好的自动完成功能(这也是我知道这一点的原因)。但这仍然是一些工作。我希望我能在一个月内准备好测试版。我尽量让你知道。

    【讨论】:

    • 这解释了很多事情!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2015-05-19
    相关资源
    最近更新 更多