补全不弹出的主因是python_interpreter路径未生效,需用anaconda: show current python interpreter验证;os.补全需先import或开启anaconda_complete_all_names;注释内补全需启用anaconda_complete_in_comments;lsp插件冲突会导致卡顿,应禁用lsp类插件。

补全不弹出?先验证 python_interpreter 是否真正生效
补全失效八成是解释器路径没走通——插件启动 anaconda_server 时静默失败,连错误提示都不显示。别只看 Settings – User 里写了路径,得确认它能被 Sublime 真实调用。
- 打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P),输入Anaconda: Show Current Python Interpreter,看输出是否和配置一致;如果显示None或报错OSError: [Errno 2],说明路径无效 -
python_interpreter必须是绝对路径,且指向可执行文件(不是目录、不是软链接别名),比如/opt/homebrew/bin/python3,而不是/opt/homebrew/bin/ - 路径含空格或中文会直接导致启动失败,哪怕终端里能运行,Sublime 也加载不了——常见于 Windows 用户把 Python 装在
C:\Program Files\下 - conda 环境推荐用
conda activate myenv && python -c "import sys; print(sys.executable)"获取真实路径,避免用which python拿到的是 shell 别名
os. 补全不出来?检查 anaconda_complete_all_names 开关
默认情况下,Anaconda 只对已 import 的模块提供点号补全,import os 之后的 os. 才有建议;但写 os. 前没 import,就什么都不会弹——这不是 bug,是性能妥协。
- 若需未导入即补全(如快速写文档示例、调试时临时试探),必须在 Settings – User 中显式开启:
"anaconda_complete_all_names": true - 开启后首次补全会明显变慢(插件要加载标准库符号表),后续缓存命中才快;但对
numpy、pandas这类大量使用__getattr__或 C 扩展的包,效果仍有限 - 该选项不影响已导入模块的补全质量,仅扩展“未导入模块名”的触发范围
注释里写 # requests.get( 没提示?改 anaconda_complete_in_comments
Sublime 原生补全默认不进注释区,Anaconda 默认沿用这一行为。所以你在 # 后面敲 os.,不会弹窗——不是插件坏了,是设计如此。
- 需要注释内补全,加一行:
"anaconda_complete_in_comments": true - 注意:这仅影响注释文本区域,不影响字符串字面量(
"os.")或import右侧(from os import path中的path) - 同时确保原生补全没被关掉:
"auto_complete": true必须存在且为true;如果设了"auto_complete_selector",要包含source.python,否则整个语法下都无补全框
补全卡住白框、CPU 占满?排查 LSP 插件冲突
Sublime Text 4 内置 LSP 支持,若同时启用了 LSP-pyright 或 LSP-python,两个语言服务会争抢 AST 解析权,结果就是补全延迟、函数签名不显示、甚至 anaconda_server 进程反复崩溃。
- 检查是否启用其他 Python LSP 插件:菜单 →
Preferences → Package Settings,看有没有LSP相关条目 - 最稳妥做法:菜单 →
Preferences → Package Control → Disable Package,禁用LSP和LSP-pyright(哪怕你没主动装过,ST4 可能自带) - 不建议共存方案:强行保留 LSP 并关闭 Anaconda 的 linting 和 server(
"anaconda_linting": false,"anaconda_disable_completions": true),但这等于放弃 Anaconda 核心能力
真正麻烦的从来不是配哪几行 JSON,而是路径是否真实可执行、LSP 是否在后台偷偷抢资源、以及你期望的补全行为是否符合插件的设计边界——比如未导入模块补全,默认就不开,开了就得接受首次延迟。











