Vim编辑器中Python全自动补全不工作

4 投票
5 回答
3304 浏览
提问于 2025-04-16 14:31

我正在学习Python,想用vim这个编辑器,参考了这篇指南

我觉得我遇到的问题和某个付费程序员的一样,但他们没有找到解决办法,所以我在这里再发一次。

不知道为什么,我在vim中用Python时,无法让自动补全功能正常工作。我已经安装了很棒的R插件,并建立了标签列表。所以在R中我可以使用自动补全。

但是在Python中却不行。我注意到几点:

  1. :echo &omnifunc的输出是pythoncomplete#Complete
  2. .vim/doc/tags文件里有R的标签,但没有Python的(不过这应该是因为Python默认就支持吧?)
  3. 如果我在我的.py文件中写import math,我可以把ma补全为math.,但找不到任何方法?

我该怎么做呢?

5 个回答

0

我假设你导入的所有模块都在Python的路径里,对吧?检查一下这个文件里所有的导入是否都能正常工作。在我的情况下,有一个导入失败了(因为被导入的模块里有语法错误),这导致了自动补全功能失效。

0

.vim/doc/tags 这个文件里存放的是 Vim 文档的标签(包括 R 插件的标签),这些和用来自动补全的标签没有关系。你可以通过以下方式重新生成这些标签:

:helptags ~/.vim/doc

说到自动补全,你通常使用哪个快捷键呢?默认情况下,自动补全的快捷键是 Ctrl-X Ctrl-O,而不是大家常用的 Ctrl-N

6

看起来,Python的默认自动补全功能(pythoncomplete#Complete)对内置函数和关键字并不了解。

当你在已经导入了“math”模块的情况下,按下 Ctrl-XCtrl-O 键,应该能看到可用的 math. 函数。但是,要想对 printsorted 等函数也能这样补全,我觉得你需要安装一些插件,比如:

撰写回答