tab键不补全需启用"auto_complete_commit_on_tab": true,否则仅插入缩进;该设置生效后tab才提交高亮补全项,但对emmet、autofilename等插件无效。

Tab键不补全?检查auto_complete_commit_on_tab是否启用
默认情况下,Sublime 的 Tab 键只插入制表符,不会确认补全项——哪怕补全弹窗已经出现。这不是插件没装好,而是核心设置被忽略。
打开 Preferences → Settings(用户侧),确保右侧有这三项:
"auto_complete": true-
"auto_complete_commit_on_tab": true(最关键,缺它就等于没开补全) -
"auto_complete_with_fields": true(支持模板占位符如${1}的 Tab 填充)
如果已配置仍无效,可能是其他插件干扰,比如 AutoFileName 或 All Autocomplete,可临时禁用测试。
LSP 插件装了但没反应?语言服务器根本没连上
LSP 插件本身不提供任何补全能力,它只是个通信桥。没配对语言服务器,状态栏就不会显示 LSP-pylsp active 或类似标识,补全菜单也永远只有几个变量名。
以 Python 为例,必须额外执行:
-
pip install python-lsp-server[all](推荐,含 jedi、pyflakes 等) - 或安装
LSP-pyright插件(通过 Package Control),它自带 pyright 二进制
装完后,按 Ctrl+Shift+P 输入 LSP: Enable Language Server Globally,选中对应语言。若状态栏无响应,检查终端能否直接运行 pylsp 或 pyright;Windows 用户常因 Scripts 目录未加入 PATH 而失败。
补全弹窗压根不出现?语法识别和触发器双失效
补全弹窗不弹,90% 是因为 Sublime 没把当前文件识别为对应语言——右下角显示的是 Plain Text 而非 Python,LSP 根本不会加载。
另一个常见原因是没设触发器。原生行为下,输入 os. 不会自动唤出补全,必须手动按 Ctrl+Space。要实现“输点就弹”,需在用户设置里加:
"auto_complete_triggers": [
{"selector": "source.python", "characters": "."},
{"selector": "source.js", "characters": "."}
]
注意:selector 必须是 source.python,不是 text.python 或 python;大小写、前缀都不能错。改完不用重启,但已打开的文件需切换 tab 或执行 Reload Snippets。
C/C++ 补全卡死或跳转失败?compile_commands.json 缺失或路径不对
C/C++ 依赖 clangd,而 clangd 需要编译数据库才能理解项目结构。没这个文件,补全基本靠猜,跳转大概率失败。
生成方式取决于构建系统:
- CMake 项目:在 build 目录运行
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..,生成compile_commands.json - 手动复制到项目根目录,或在 LSP 设置的
clients.clangd.settings中指定完整路径 - 务必加上
--background-index参数,否则索引不启动,补全响应极慢甚至无响应
Windows 下 command 字段要写成绝对路径,例如:["C:/tools/clangd/bin/clangd.exe", "--background-index"];斜杠用正斜杠或双反斜杠都行,单反斜杠会解析失败。
真正卡住的地方往往不是插件装没装,而是语言服务器能不能被找到、语法能不能被识别、触发条件有没有满足——三者缺一,LSP 就是空壳。











