【问题标题】:Vim,omnicomplete and python documentationVim,omnicomplete 和 python 文档
【发布时间】:2012-03-22 06:06:22
【问题描述】:

我开始学习 Python,并尝试为它设置我的 vim。我有vim 7.3.5.3,它有omnicompletion,我下载了pyflakes。我读了this article 它说omnicompletion 还应该显示一些文档(还有一个带有string.atoi 的图像和一些文档),但是当我尝试这样的事情时:

import string
string.

然后执行 CTRL-xCTRL-o 我得到了正确的列表,但我没有得到任何文档。

我应该安装其他插件还是更改一些配置文件?

编辑: 我需要安装supertabs才能得到我想要的效果。

【问题讨论】:

标签: python vim omnicomplete


【解决方案1】:

要启用代码(omni)完成,请将此行添加到您的 vimrc ($HOME/vimrc):

autocmd FileType python set omnifunc=pythoncomplete#Complete

如果它不起作用,你将需要这个plugin

【讨论】:

【解决方案2】:

检查我的插件:https://github.com/klen/python-mode

从盒子里绳索omnicompletion。还有许多其他功能。

【讨论】:

    【解决方案3】:

    Omni 补全i_CTRL-X_CTRL-O 无需安装插件即可在 Vim 中工作,但前提是您满足以下三个条件:

    1. Vim 用+python3 编译
    2. Python3 已安装
    3. 对于您想要全方位完成的 Python 包:
      • 软件包已安装
      • 您正在编辑的脚本有一个用于 Python 包的 import 语句
      • 如果输入import numpy as np,则在输入np. 后,您正在输入i_CTRL-X_CTRL-O,而不是numpy.

    Python3 全能补全在 Vim 自带的python3complete.vim 中定义。

    :new
    :set filetype=python
    :echo &omnifunc
    python3complete#Complete
    

    我在这里的 Vim 安装中发现了这个:

    /usr/share/vim/vim81/autoload/python3complete.vim
    

    详情

    1。用 +python3 编译的 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
    ...
    

    2。 Python安装

    当有多个 Python 安装时,这很容易混淆。 例如,我有一个 Windows Python3 安装

    • Windows Python3 从 PowerShell 运行
    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
    
    • Windows Python3 从 Cygwin bash 运行
    $ 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 让 Vim 在 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
      
      • 但这无助于全方位完成
      • 对于 omni 补全,Vim 需要能够直接从 Vim 命令行进行 Python3

    测试 Vim 可以调用 Python3:

    :py3 print("hey")
    hey
    

    我必须使用 Cygwin 包管理器安装 Python 才能获得输出 hey

    3。 Python包安装

    如果您有多个 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

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2011-11-08
      • 2013-02-01
      • 2012-09-08
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多