sublime text悬停提示默认不生效,必须同时满足四条件:lsp插件已安装、语言服务器运行中(如pyright: ready)、"show_hover": true已启用、文件语法识别正确(如source.python)。

悬停提示(Hover)在 Sublime Text 中默认完全不生效,必须手动开启 show_hover,且语言服务器、语法识别、服务状态三者全部就绪才能显示内容。
为什么鼠标悬停没反应?先查这四个硬条件
悬停不是“装了 LSP 就有”,它卡在四道关卡上,缺一不可:
-
show_hover必须设为true:打开Preferences → Package Settings → LSP → Settings,在用户设置(右侧)加这一行:"show_hover": true - 当前文件语法必须正确:右下角应显示
Python、TypeScript等,不能是Plain text;按Ctrl+Alt+Shift+P查看 scope,应为source.python类型 - LSP 插件已安装,且对应语言服务器正在运行:状态栏左下角需出现
pyright: ready或tsserver: idle,只显示LSP说明 server 没起来 - 语言服务器本身支持 hover:比如旧版
pylsp默认禁用,clangd需通过initializationOptions显式启用,pyright则默认支持但依赖项目配置
常见语言服务器的 hover 启用要点
不同 server 对 hover 的支持策略差异很大,不能统一配置:
-
pyright:推荐首选,pip 安装后默认启用 hover,但必须项目根目录存在pyrightconfig.json(哪怕空文件),否则降级为宽松模式,hover 内容极简 -
typescript-language-server:npm 全局安装后开箱即用,hover 通常正常,但若中文乱码,可在 LSP 设置中加"minihtml_font_face": "Monaco" -
clangd:默认关闭 hover,需在clients配置里加"initializationOptions": {"clangd": {"completion": {"detailedLabel": true}}}(具体字段以 clangd 官方文档为准) -
pylsp:功能较弱,hover 可能只返回函数签名,不带 docstring;建议换pyright或确保安装了python-lsp-server[all]
悬停内容为空、截断或延迟高?优先排查这三处
内容缺失往往不是配置漏了,而是信息链在语义层断了:
- 光标落在无效位置:字符串内(
"hello".upper()中的upper)、注释里、未解析的 import 路径(import requests但没装types-requests),hover 都不会触发 - 第三方库缺类型存根:pandas、requests 等库 hover 只显示
def foo()?补装pip install types-pandas types-requests - 预览框宽度/字体问题:加
"popup_max_characters_width": 120防截断;中文乱码可试"minihtml_font_face": "PingFang SC"(需系统存在该字体)
hover 没快捷键,纯靠悬停触发;如果光标悬停后仍无响应,别调 peep_definition——那是跳转命令,弹出来的是定义窗口,不是文档浮层。真正卡点永远在:scope 对不对、server 起没起、show_hover 开没开、hover 方法在 server 侧有没有被禁用。











