我开始学习Python,我试图为它设置我的vim。我有vim 7.3.5.3
,它有omnicompletion,我下载了pyflakes
。我看过this article
并且它说omnicompletion还应该显示一些文档(还有一个带有string.atoi
的图像和一些文档),但当我尝试这样的事情时:
import string
string.
并执行 CTRL-x CTRL-o 我得到了正确的列表,但我没有得到任何文档。
我应该安装其他插件还是更改一些配置文件?
修改:
我需要安装supertabs
才能获得我想要的效果。
答案 0 :(得分:3)
要启用代码(omni)完成,请将此行添加到vimrc($ HOME / vimrc):
autocmd FileType python set omnifunc=pythoncomplete#Complete
如果它不起作用,那么你需要这个plugin。
答案 1 :(得分:2)
检查我的插件:https://github.com/klen/python-mode
从盒子里绳索omnicompletion。还有许多其他功能。
答案 2 :(得分:0)
Omni完成i_CTRL-X_CTRL-O
可以在Vim中运行,而无需安装插件,但前提是您满足以下三个条件:
+python3
import
语句import numpy as np
,则是在键入i_CTRL-X_CTRL-O
而不是np.
后执行numpy.
在Vim附带的python3complete.vim
中定义了Python3全能。
:new
:set filetype=python
:echo &omnifunc
python3complete#Complete
我在这里的Vim安装中找到了它:
/usr/share/vim/vim81/autoload/python3complete.vim
:ve
检查Vim版本和启用的功能。这是我运行:ve
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jul 28 2019 15:01:57)
...
Huge version without GUI. Features included (+) or not (-):
...
+python3/dyn
...
当有多个Python安装时,这很容易混淆。 例如,我有一个 Windows Python3安装:
PS> python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
$ python.exe
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Windows Python3 不能从Cygwin Vim命令行运行
:python3
:!python.exe
在bash中运行python.exe
:!python.exe
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Test Vim可以调用Python3:
:py3 print("hey")
hey
我必须使用Cygwin软件包管理器安装Python 以获得输出hey
。
如果您在安装多个Python时遇到问题,请另外安装要全方位完成的Python软件包的副本。
例如,我使用Cygwin软件包管理器安装了Python软件包。
如果无法通过包管理器获得Python包,请在site.USER_SITE
标识的路径上克隆包存储库的副本。这是程序包搜索路径的一部分,因此全能补全也在此路径中搜索。
从Vim中找到USER_SITE
路径:
: py3 import site; print(site.getusersitepackages())
路径应如下所示:
/home/myname/.local/lib/python3.7/site-packages
或者,从bash中检查:
$ python3.7 -m site --user-site
/home/myname/.local/lib/python3.7/site-packages
请注意,即使路径不存在,也已定义。如果这是第一次将软件包放在此处,则需要创建路径。
在满足以上条件的情况下,全方位完成工程。启动一个.py
文件(或打开一个新缓冲区并:set filetype=python
),然后尝试键入以下内容:
import numpy as np
np.CTRL-X_CTRL-O
弹出完整的窗口,以循环显示CTRL-N
(下一个)CTRL-P
(上一个)。
还有另外的困惑,因为python3complete
不像ccomplete
那样使用标记文件。请参阅我对这篇文章的解决方法:Vim's Omnicompletion with Python just doesn't work