Sublime Text 2 :: Python代码自动完成

5

我正在尝试让“代码建议”(下拉框)正确地进行建议。

目前它不能。它只建议已经在编辑的文件中(即文件作用域内)的标识符和模块,或多或少。例如,如果我尝试这样做:

import numpy <--- 在我输入时,不会建议numpy。

numpy.a <--- 在这里,没有以“a”开头的任何建议。

我实施了在各个网站上建议的一系列方法,包括以下方法,但无法成功获取正确的代码完成建议,有时甚至根本无法出现:

- Installed SublimeRope
- "use_simple_completion": true  (in SublimeRope.sublime-settings)
- "auto_complete_triggers": [ {"selector": "source.python - string - comment - constant.numeroc", "characters": "."} ]  (in Pyhon.sublime-settings)
- etc.

我是否遗漏了什么(当然我肯定是的 :))。感谢您的建议。


1
这正常工作。据我所知,Sublime Text甚至在Python中也不会自动完成任意模块名称或其内容。 - Ry-
正如minitech所说,你没有做错任何事情,除了你把SublimeText看作是一些IDE。它只是一个带有漂亮界面的文本编辑器。即使geany更好(但自动完成也很糟糕)。如果你需要从包/模块中“探索”函数,请尝试使用dreampie作为shell(你可以复制/粘贴代码)或者一个真正的IDE(SPE、Ninja、Eric、Aptana、NetBeans、PyCharm...)。 - cox
感谢minitech3和cox。我已经使用“Komodo”和“Wing IDE”作为完整的Python IDE(特别是喜欢Wing IDE);从tty中,我使用基于curses的“bpython”(非常好用,具有完整的自动完成)。我希望SublimeText能够在轻便性和Wing/Komodo的重量级体验之间找到一个不错的平衡点。但我想现在还没有。尽管如此,我仍然喜欢SublimeText并会继续使用它。感谢回复。 :) - NYCeyes
不满意SublimeText没有做到我所读到的(如上所述),我又进行了一些调试。看起来我可能只差一个设置,因为我发现有两组建议出现…… (1)第一个是基于文件中已有内容的范围内建议,而(2)如果我将光标向后移动一个位置并再次按下点号(.)分隔符(例如:collections.Counter),然后完整列表详细列出了我想要看到的模块和函数。因此,可能需要调整消歧设置。我会在能够时报告那是什么。 - NYCeyes
我相信这个问题其实是与“在Sublime Text下获取完整的JS自动完成”重复了,而不是被标记的那个问题。 - dbn
1个回答

11

Sublime的自动完成功能旨在匹配当前文件中的内容。

如果您想基于语言的语法特性进行代码补全,则有许多选项可供选择,但我建议使用以下组合:

希望能对您有所帮助。


谢谢。它确实有用。我实际上已经尝试了CodeIntel,这让我更接近我想要的东西,尽管它仍然难以正确地自动建议(而且它会减慢事情的速度——像任何插件一样——有些比其他插件更慢)。您的评论让我知道我正在朝着正确的方向前进(有着无数的设置)。我会点赞您的回复(因为它是正确的),但我只有可怜的6分。 :) - NYCeyes
提醒其他人,CodeIntel的设置非常困难,文档非常糟糕。 - NL23codes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接