修复在 ST3 下 SublimeCodeIntel 对 Python 无法自动补全 import 语句里的模块名的问题

2015-02-13 17:39:48 +08:00
 Sylv

Before:

After:


修复方法:

下载修改过的 Completion Rules.tmPreferences,放到 .../Sublime Text 3/Packages/Python 中。

可能需要删除文件夹 .../Sublime Text 3/Cache 和文件 .../Sublime Text 3/Local/Session.sublime_session,并重启 Sublime Text 后才能生效。


修复方法来源:https://github.com/srusskih/SublimeJEDI/issues/150

9502 次点击
所在节点    Sublime Text
10 条回复
XiiLii
2018-05-15 11:16:37 +08:00
没太看明白,我用的是便携版无需安装的 ST3,请问下载的文件名就叫 “ Completion Rules.tmPreferences ” 吗?这个路径下全是文件 “ Sublime Text 3/Packages ” 放这里也不行,能详细点吗?
Sylv
2018-05-15 12:07:18 +08:00
@XiiLii
Sublime Text 菜单里点击 Preferences -> Browse Packages,打开的目录就是 .../Sublime Text 3/Packages/,在此目录下若没有 Python 文件夹就新建一个,把下载的修改版 Completion Rules.tmPreferences (就叫这个名字)文件放到这个 Python 文件夹里。然后可能要删除文件夹 .../Sublime Text 3/Cache 和文件 .../Sublime Text 3/Local/Session.sublime_session 并重启后才会生效。
XiiLii
2018-05-20 00:13:26 +08:00
@Sylv 非常感谢,可以了,补充下,我放在 “\Sublime Text Build 3170 x64\Data\Packages\Python ” 目录下,然后重启就可以了,没有清理缓存目录。
可能我用的是便携版的原因,和你说的路径不太一样,不过也有这个目录 ‘\Sublime Text Build 3170 x64\Packages ’ ,之前放这里不行,但看到你说从 ” Preferences -> Browse Packages “ 这里进去我就猜应该是在 “\Sublime Text Build 3170 x64\Data\Packages\“ 下新建 ” Python “ 目录。果然就可以了。还是谢谢你的提醒
XiiLii
2018-05-20 01:12:40 +08:00
又出现了一个问题,比如想使用 requests 对象的方法时,没有提示方法的关键词:如 requests.get() 这又是怎么解决呢?
先说下:我以为是没清理你说的文件的问题,但我清理之后重启还是没有提示对象的方法名称
Sylv
2018-05-20 02:05:31 +08:00
@XiiLii
SublimeCodeIntel 得依赖另外安装的 CodeIntel 来索引第三方包,但是出于某些原因 CodeIntel 经常会索引出错,于是 SublimeCodeIntel 自动补全就无法正常工作了。你可以试下让 CodeIntel 重新生成索引:
https://github.com/SublimeCodeIntel/SublimeCodeIntel#regenerate-index

因为这个原因,我是已经放弃折腾 SublimeCodeIntel,改用 Anaconda 了:
http://damnwidget.github.io/anaconda/
XiiLii
2018-05-20 09:35:16 +08:00
@Sylv anaconda 还真的可以用,不过还是会出现无法导入第三方库的问题,我用了上面同样的方法也可以同样解决,不过它会提示这样一个错误 “ error loading mete info from Packages/Python/Completion Rules.tmPreferences: Error parsing plist xml: expected = in file Packages/Python/Completion Rules.tmPreferences on line 43 ” ,虽然不影响使用,关掉错误提示就可以,但每次都要手动关掉很麻烦,你有遇到这样的问题吗?你怎么解决的?
Sylv
2018-05-20 14:38:21 +08:00
@XiiLii
我没遇到这个问题,看错误提示 Packages/Python/Completion Rules.tmPreferences 文件的第 43 行有语法错误,你检查下这个文件是不是有问题,按道理来说这个修改版的 Completion Rules.tmPreferences 文件应该只有 20 行,你是不是自己之前有修改过?
XiiLii
2018-05-20 15:42:46 +08:00
原来如此,我直接下载了 https://github.com/srusskih/SublimeJEDI/blob/master/Completion%20Rules.tmPreferences 这个页面的源代码( 71k 大小)。现在应该不再弹出提示了。
想问下 anaconda 是不是有个 bug 会导致很多代码被一条条白框框住?除非光标在编辑状态才消失?
Sylv
2018-05-20 16:01:35 +08:00
@XiiLii 这个不是 bug,是 Anaconda 的代码检查功能,被框住的代码是有语法错误或者是不符合 PEP8 规范,不需要的话可以在设置文件里禁用这个功能:
http://damnwidget.github.io/anaconda/IDE/#disabling-the-linter
XiiLii
2018-05-20 20:13:48 +08:00
没想到 Anaconda 还有代码检查功能,刚刚配置好了,非常感谢你的提醒

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170784

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX