3

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

意外的结果

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

预期结果

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

4

1 回答 1

3

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


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

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

import test
test.mydoc.prettyStr

它应该工作。

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

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

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

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

于 2012-04-06T01:25:39.363 回答