sublime原生无intellisense,必须通过lsp插件桥接本地语言服务器实现;默认auto_complete仅前缀匹配、不解析ast或import,无法提供函数签名、类型推导等语义补全。

Sublime 没有原生 IntelliSense,所谓“智能提示”必须靠 LSP 插件桥接本地语言服务器实现——不是可选增强,是唯一可行路径。
为什么原生 auto_complete 不等于 IntelliSense
Sublime 默认只做前缀匹配:你写过 print,它才提示 print;你没在当前文件或已打开标签页里写过 requests.get,它就完全不知道这个函数存在。它不读 import、不解析 AST、不理解 self 或 this 绑定,更不会显示参数签名或 docstring。
常见错误现象包括:
- 输入
os.后补全框空白或只列几个变量名 - 按
Ctrl+Space弹出的仍是单词列表,没有类型标注或函数说明 - 右下角显示
Plain Text,状态栏无LSP活动标识
LSP + 语言服务器才是真实 IntelliSense 的最小组合
装了 LSP 插件 ≠ 有 IntelliSense。它只是个协议桥接器,真正干活的是你本地安装的语言服务器。
实操建议:
- 用
Ctrl+Shift+P→Package Control: Install Package安装LSP(别装SublimeCodeIntel,已停更,Python 3.11+ 下常卡死) - 根据语言装对应服务器:
– Python:运行pip install python-lsp-server[all]或pip install pyright
– TypeScript/JS:运行npm install -g typescript-language-server - 重启 Sublime,再执行
LSP: Enable Language Server Globally并选中对应服务(如pyright) - 打开一个
.py文件,等右下角出现LSP-pyright active才算真正就绪
关键设置漏一项,IntelliSense 就失效
即使 LSP 和服务器都装好了,Sublime 用户设置里缺以下任一配置,补全行为就会退化回“纯单词匹配”:
-
"auto_complete": true—— 不开这个,连弹窗都不出来 -
"auto_complete_commit_on_tab": true—— 不开这个,按Tab只是插制表符,不是确认补全项 -
"auto_complete_with_fields": true—— 不开这个,obj.这种点号后补全可能延迟或不触发 - 确保语法识别正确:右下角必须是
Python/JavaScript,不能是Plain Text
这些都得写进 Preferences → Settings(右侧用户设置),不是插件配置。
补全信息少?得看 LSP 插件配置和服务器能力双生效
原生菜单只显示名字;要看到参数、类型、文档摘要,两个条件缺一不可:
- 语言服务器本身返回这些字段(比如
python-lsp-server默认支持 docstring,pyright需配LSP-pyright插件) - Sublime 允许展示:在
Preferences → Package Settings → LSP → Settings中启用:"show_symbol_descriptions": true"show_documentation": true
如果补全菜单还是干瘪,先检查状态栏是否真有 LSP 激活,再确认服务器进程是否在后台运行(例如 ps aux | grep pyright),而不是只盯着 Sublime 设置。











