在Vim中输入时如何获得数组选项的自动建议?

11 python vim intellisense autocomplete

在此输入图像描述

比方说我输入

a = [1, 2]
Run Code Online (Sandbox Code Playgroud)

在vim中的.py文件中,当我输入"a"时.并点击TAB,我想获得与列表相关的建议菜单.

编辑1以回应Robin的评论:我认为这在vim中是可能的,因为有一个插件可以检查给定的python代码是否是有效的代码(我不知道插件的名称是什么).看一看:

在此输入图像描述

act*_*imp 7

最新版本的vim带有一个名为pythoncomplete的omnicompletion脚本.

打开一个python文件,然后输入

:set completefunc?
Run Code Online (Sandbox Code Playgroud)

检查当前的完成功能是什么.如果你回来

completefunc=
Run Code Online (Sandbox Code Playgroud)

那么目前没有设置完成功能.您可以通过键入将pythoncomplete设置为完成功能

:set completefunc=pythoncomplete#Complete
Run Code Online (Sandbox Code Playgroud)

你可以使用(在你的vimrc中)将它设置为python文件的默认值

autocmd FileType python set completefunc=pythoncomplete#Complete
Run Code Online (Sandbox Code Playgroud)

现在当你在vim中时,可以使用omnicomplete Ctrl+X Ctrl+O,你应该得到一个弹出菜单,如下所示:

清单完成

您也可以使用(在您的vimrc中)以插入模式将其绑定到tab键:

inoremap <Tab> <C-x><C-o>
Run Code Online (Sandbox Code Playgroud)

要了解有关与显示的下拉菜单进行交互的更多信息,请尝试

:help ins-completion
Run Code Online (Sandbox Code Playgroud)

  • 检查:设置completeopt?.其中的"预览"选项使预览窗口显示为文档字符串.如果在没有预览的情况下设置completeopt,则不应再显示. (2认同)
  • @Spiritwalker还会看到http://info.birnamdesigns.com/wiki/Vim_close_preview_window_after_omnifunc_selection以获取有关如何在退出插入模式或移动光标时自动关闭预览窗口的提示(我更喜欢插入模式方法) (2认同)