尝试在我自己的类函数上使用Python Omni Completion时,我得到了一些意想不到的结果。函数的docstring没有使用换行符正确格式化,如下图所示:
当我从标准python库导入模块时,我得到了我期望的结果:
根据python docstring conventions,源文件中的换行符应该被解释为换行符。有谁知道这里发生了什么,也许还有如何解决这个问题?
答案 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。我试着让你发布。