sublime text代码提示需语法识别、语言服务器、补全触发三者对齐,否则仅显示文件内单词;右下角语法须为python/css等具体类型而非plain text或python 3,lsp才加载;须配置auto_complete_commit_on_tab、auto_complete_triggers等项,并验证pyright/pylsp命令可用及状态栏显示lsp-pyright active。

Sublime Text 的代码提示不是装个插件就自动生效,必须让语法识别、语言服务器、补全触发三者对齐,缺一不可;否则你看到的只是当前文件里打过的单词,os.listdir、requests.get 这类函数根本不会出现。
右下角语法名不对,LSP 和补全直接失效
这是最常被忽略的起点:如果右下角显示的是 Plain Text、Python 3 或 CSS3,那所有语言相关功能(包括 LSP 补全、hover 提示、括号匹配)都会静默关闭——不是插件坏了,是 Sublime 根本没加载对应语法作用域。
手动切换语法才是正解:
- 点击右下角当前语法名 → 选择正确项:
Python(不是 Python 3)、CSS(不是 CSS3)、JavaScript(不是 JS Custom) - 再点一次右下角 →
Open all with current extension as…→ 确认选中同名语法,这样下次打开同后缀文件才自动生效 - 冷门后缀如
.env、.pug、.pcss必须走这一步,否则永远灰字
LSP 插件装了但 Ctrl+Space 没反应?检查这三处
SublimeLSP 是目前唯一稳定支持 LSP 协议的插件,但它不自带语言能力,只做转发。没反应 ≠ 插件没装,大概率是链路断在中间。
验证顺序如下:
- 终端运行
pyright --version或pylsp --version,有输出才算语言服务器真装好了 - 在
LSP.sublime-settings中确认"command"是完整路径(如["/usr/local/bin/pyright"]),不能只写["pyright"]—— 否则服务器启动失败但控制台不报错 - 确认
"enabled": true已设为true,且右下角状态栏出现LSP-pyright active(通常要等 2–5 秒)
Tab 不确认补全、点号不弹框?用户设置里缺关键项
默认状态下,Sublime 的 Tab 只负责缩进,. 也不触发 LSP 补全——这不是 bug,是设计如此。必须显式覆盖。
在 Preferences → Settings(用户设置)中添加:
-
"auto_complete_commit_on_tab": true—— 让 Tab 键真正选中补全项 -
"auto_complete_with_fields": true—— 支持${1}类代码片段跳转 -
"auto_complete_triggers": [{"selector":"source.python","characters":"."}, {"selector":"source.css","characters":":"}]—— 显式告诉 Sublime:在 Python 文件里遇到.就该唤出补全框
别碰 auto_complete_selector,设成 "source, text" 会导致 Markdown 里也乱弹补全。
Vue / Pug / PostCSS 文件补全不工作?语法嵌套和子语言得单独开
Vue Syntax Highlight 只负责高亮,不提供语义补全;Pug 和 PostCSS 插件默认也不转发子语言块到对应语言服务器。不配置,<script setup lang="ts"></script> 里的 ref() 就不会提示。
关键动作:
- Vue 文件:在
Preferences → Package Settings → Vue Syntax Highlight → Settings – User中加"pug": {"enabled": true}和"typescript": {"enabled": true} - Pug 文件:确保
.pug已绑定语法,且LSP.sublime-settings中"enabled": true对应source.pug作用域 - PostCSS 文件:.css 文件需首行顶格写
/* syntax: postcss */,且禁用菜单里的View → Syntax → CSS,否则会覆盖 PostCSS 高亮和补全
补全延迟、hover 不出参数、右下角状态栏不显示 LSP 客户端名——这些都不是“再等等”,而是某一层作用域或配置没对上,得逐层查。











