sublime text原生补全仅基于单词匹配,要实现函数签名、docstring悬停和跳转定义,必须配置lsp协议及对应语言服务器(如pyright或python-lsp-server),且需禁用anaconda等冲突插件并确保语法识别正确(如source.python)。

Sublime Text 默认的补全能力只基于当前文件里的单词,装错插件、配错路径、或忽略语言服务器依赖,补全就会静默失效——不是“没反应”,而是根本没启动。
装 LSP 插件是唯一能拿到函数签名和文档提示的路径
原生补全和 AllAutocomplete 都只做字符串匹配,不理解 self、this 或类型定义。要看到参数列表、悬停显示 docstring、跳转到定义,必须走 Language Server Protocol(LSP)路线。
-
LSP是客户端,只负责通信;真正干活的是你本地装的语言服务器,比如python-lsp-server或typescript-language-server - 别装
SublimeCodeIntel:已停止维护,对 Python 3.11+ 和 TS 5.x 支持差,还容易卡死 - 推荐用封装好的分支:比如 Python 选
LSP-pyright,它自带下载逻辑和默认配置,省去手动填command路径的麻烦
Anaconda 插件仍可用,但必须关掉冲突的 LSP
如果你习惯 Anaconda 的 Python 补全,它在 Sublime Text 4 下依然有效,但前提是不能和 LSP 类插件共存——两者会争抢补全服务,导致签名不显示、CPU 占用飙升。
- 确认是否启用了其他 Python LSP 插件:菜单 →
Preferences → Package Settings里看有没有LSP或LSP-pyright - 临时禁用方法:
Preferences → Package Control → Disable Package,选中LSP或LSP-pyright - Anaconda 必须手动设
python_interpreter:指向真实可执行路径(如/opt/homebrew/bin/python3),不能是软链接或别名
路径补全要用 AutoFileName_ST4,原版在 ST4 上静默失效
原版 AutoFileName 在 Sublime Text 4 上不会报错,也不会加载,状态栏连 AutoFileName: enabled 都不显示——它被 Sublime 静默忽略。
- 必须用适配 Python 3 和新 API 的
AutoFileName_ST4分支,GitHub Releases 页面下载auto_file_name.py - 放进
Packages/AutoFileName/目录(注意:文件夹名必须是AutoFileName,不是AutoFileName_ST4) - 补全触发有硬性条件:光标必须在未闭合的英文引号内(
src="|✅,src=|❌),且当前语法识别为CSS、HTML或带source.cssscope 的<style></style>块
跨文件变量补全靠 AllAutocomplete,但它只读已打开的文件
AllAutocomplete 不扫描整个项目目录,也不解析语法结构,它只是把所有已加载进编辑器标签页的文本当作字符串池来匹配。
- 它默认不干扰原生补全,补全是自动触发的:光标停在单词前/中,等半秒就会弹出,不需要按
Ctrl+Space - 如果补全只出现在当前文件,检查是否和其他补全类插件冲突(比如
SublimeCodeIntel或未禁用的LSP) - 它不监控未保存更改:a.js 里刚写了
getUserInfo()但没保存,b.js 里就搜不到这个函数名
最常被忽略的一点:语法识别失败,LSP 和 AutoFileName 都不会启动。右下角显示 Plain Text 而不是 Python 或 JavaScript,补全框压根不会弹——先调 Tools → Developer → Show Scope Name 确认当前 scope 是否正确,再往下排查配置。











