使用vim pythoncomplete的Python docstring不会为我自己的类函数显示换行符

时间:2012-04-02 16:50:11

标签: python vim autocomplete docstring

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

Unexpected result

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

Expected result

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

1 个答案:

答案 0 :(得分:3)

编辑:我写了一个自动完成功能,它应该比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编写更好的自动完成功能(这也是我知道这一点的原因)。但这仍然是一些工作。我希望我能在一个月内准备好Beta。我试着让你发布。