Sublime Text 原生无智能补全,必须通过LSP插件桥接本地语言服务器(如pylsp、pyright)实现函数签名、类型推导和import感知;仅装插件不装服务器或配置错误(如command路径不对、scope识别为Plain Text、缺少jsconfig.json/pyproject.toml)均会导致Ctrl+Space无响应或仅提示变量名。

Sublime Text 原生不理解函数签名、不推导类型、不读取 import 的模块内容——它只认“你写过的词”。想获得类似 VS Code 的智能提示,必须走 LSP 路线,其他插件(如 AutoComplPop、Jedi)要么已停更,要么覆盖场景有限,且容易和新版本 Sublime 冲突。
为什么 Ctrl+Space 没反应或只提示变量名
这不是插件没装,而是语言服务器根本没连上。Sublime 的 LSP 插件本身不提供补全逻辑,它只是个转发器;真正干活的是你本地安装的 pylsp、typescript-language-server 这类命令行程序。
- 终端执行
pylsp --version或typescript-language-server --version,无输出说明服务器根本没装好 -
LSP.sublime-settings中"command"必须是完整可执行路径(如["/opt/homebrew/bin/pylsp"]),不能只写["pylsp"](除非确认该命令在系统 PATH 里) - 右下角显示
Plain Text而非Python或JavaScript:文件未被识别为对应语言,补全引擎压根不加载 - Python 项目缺少
pyproject.toml或setup.py,pylsp可能无法解析本地模块路径
LSP 配置后 os. 不出提示?检查这几个关键点
即使 LSP 插件和服务器都装了,补全仍可能静默失效。常见断点不在 Sublime 设置里,而在语言服务器自身的运行条件。
- Python 用户:确保装的是
python-lsp-server[all](带[all]才含jedi后端),不是裸装的python-lsp-server - JavaScript/TypeScript:项目根目录必须有
jsconfig.json或tsconfig.json,否则typescript-language-server会退化为纯文本匹配 - 触发时机:LSP 默认不自动弹出补全框,
os.后需手动按Ctrl+Space;如需输入.后立刻弹窗,得在用户设置里加:"auto_complete_triggers": [{"selector":"source.python","characters":"."}] - 补全项为空?打开 Sublime 控制台(
Ctrl+`),看是否有LSP: pylsp failed to start类报错,这类错误常因 Python 解释器路径配置错误导致
别浪费时间配 .sublime-completions 补函数
.sublime-completions 文件只能做静态文本替换,比如输入 log 插入 console.log($1);$0。它完全不感知作用域、不查 self、不读 import、不支持条件判断——和“智能提示”毫无关系。
- 文件必须放在
Packages/User/目录下,且后缀严格为.sublime-completions - JSON 格式零容忍:少个
{、多逗号、用单引号包字符串,整个文件就失效 - scope 值必须精确匹配当前语法,查真实 scope 的快捷方式是
Ctrl+Shift+P→Developer: Show Scope Name - 哪怕你写了
{"trigger":"print","contents":"print($1)"},它也不会出现在import builtins后的builtins.补全列表里——因为这不是它的设计目标
真正卡住人的从来不是“怎么装”,而是“怎么验证每层链路都通”。从终端能跑通服务器命令,到 Sublime 能找到它,再到语言配置识别正确、项目结构被正确解析——漏掉任意一环,补全就静默失效。别跳过验证步骤,尤其别信“装完重启就自动好”。










