sublime text 原生不支持 python 语义级补全,需安装 sublimejedi 插件并配置 jedi 库;补全依赖已保存文件、正确语法标识、本地 python 环境及项目路径设置。

Sublime Text 默认不支持 Python 智能补全,必须靠插件实现
Sublime Text 本身只提供基础的单词级自动补全(即已输入过的变量、函数名回显),import os 后敲 os. 不会弹出方法列表,str. 也不会显示 split()、strip() 等成员。这不是配置没开对,是原生能力缺失——必须装插件才能做到语义级补全。
推荐用 Jedi + SublimeJEDI,而非 Anaconda 插件
Anaconda 曾经流行,但长期未更新,与 Sublime Text 4 兼容差,常报 ImportError: No module named 'sublime' 或导致保存卡顿;SublimeJEDI 轻量、维护活跃,依赖本地 Python 环境中的 jedi 库,补全准确率高、响应快。
- 先确保系统已安装
jedi:pip install jedi==0.18.2
(注意:jedi 0.19+ 需 Python 3.8+,若用 Python 3.7 或更早,固定用 0.18.2) - 用 Package Control 安装
SublimeJEDI,重启 Sublime - 补全触发方式:输入
.后等 0.3 秒,或手动按Ctrl+Space(Windows/Linux)/Cmd+Space(macOS) - 若补全不出现,检查右下角语法是否为
Python(不是Python 3或其他),可通过View → Syntax → Python手动切换
补全失效常见原因和对应检查项
不是插件装了就万事大吉,补全行为高度依赖环境上下文,以下情况会直接导致 obj. 后无提示:
-
obj是动态构造的(如getattr(module, name)、eval()、exec()),Jedi 无法静态推导类型 - Python 文件未保存(.py 后缀),SublimeJEDI 默认只对已保存文件启用完整分析
- 项目根目录下有
.env或venv,但 Sublime 没指向该解释器——需在项目设置中指定:"python_interpreter": "/path/to/venv/bin/python"
- 补全被其他插件干扰(如
AutoFileName或旧版SublimeCodeIntel),建议禁用再测试
进阶:开启参数签名提示和跳转定义
SublimeJEDI 默认只做补全,但可以启用两个实用功能:
- 函数调用时显示参数签名:在
Preferences → Package Settings → SublimeJEDI → Settings中设"show_call_signatures": true
- 按住
Ctrl(Windows/Linux)或Cmd(macOS)并鼠标悬停函数名,可高亮显示定义位置;点击即可跳转(需文件已保存且路径可解析) - 若跳转失败,大概率是跨包导入问题,比如
from mypackage.sub import func,但mypackage不在PYTHONPATH中——此时需在项目设置里加"extra_paths": ["./src"]
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











