装了lsp插件不代表能补全,真正起作用的是语言服务器是否跑起来、路径能否执行、作用域是否匹配——三者缺一不可;必须先装package control,再配置command路径、scopes和syntaxes,并启用auto_complete_commit_on_tab。

装了 LSP 插件不代表能补全,真正起作用的是语言服务器是否跑起来、路径能否执行、作用域是否匹配——三者缺一不可。
Package Control 没装,后面全白搭
Sublime 默认不带包管理器,Package Control: Install Package 命令调不出来,后续所有操作都卡死。按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(Mac)输入该命令,能出现列表才算就位;如果提示 “command not found”,就得手动装:
- 打开
View → Show Console - 粘贴官方安装脚本(含哈希校验),回车执行
- 重启 Sublime —— 这步不能跳,很多“装了没反应”问题根子就在这儿
command 路径写错,LSP 就是哑巴
LSP.sublime-settings 里 "command" 字段填错,语言服务器根本启动不了。常见错误包括:
- 写成
["pyright"]却没把pyright-langserver加进系统PATH,Windows 上尤其容易失败 - 用相对路径或单反斜杠:
"C:\Users\me\AppData\Roaming\npm\pyright-langserver.cmd"会解析失败,得写双反斜杠或正斜杠:"C:/Users/me/AppData/Roaming/npm/pyright-langserver.cmd" - 没验证可执行性:终端运行
which pyright-langserver(macOS/Linux)或where pyright-langserver(Win),失败就得填绝对路径
scopes 和 syntaxes 不对,LSP 根本不加载
哪怕服务器进程跑起来了,如果文件 scope 或语法不匹配,LSP 客户端也不会发任何请求。实操要点:
- 打开 .py 文件后按
Ctrl+Alt+Shift+P(Win/Linux)或Cmd+Alt+Shift+P(Mac),状态栏必须显示source.python;若显示source.python.django或text.plain,就得把 scope 写全 -
"syntaxes"必须指向 Sublime 4+ 自带语法:"Packages/Python/Python.sublime-syntax",不是旧版.tmLanguage - 如果用了 Anaconda 或其他第三方 Python 插件,它可能覆盖原生语法,建议临时禁用再试
Tab 键不确认补全,auto_complete_commit_on_tab 没开
很多人看到补全框弹出来了,但按 Tab 只插入缩进——这不是插件问题,是 Sublime 默认禁用该行为。必须在用户设置里显式启用:
"auto_complete": true-
"auto_complete_commit_on_tab": true(最关键,缺它就等于没开补全) -
"auto_complete_with_fields": true(支持${1}类模板跳转) - 如果仍无效,检查是否被
AutoFileName或All Autocomplete劫持了Tab行为
最常被忽略的细节是:scope 匹配和 auto_complete_commit_on_tab 这两个点,一个错,补全就静默失效;日志里不会报错,只会安静地什么也不干。











