better completion插件不自动提示是因为它仅是补全规则模板管理器,需手动在packages/user/下创建严格符合json格式、scope匹配当前语法(如source.python)的.sublime-completions文件,否则默认无规则加载。

Sublime Text里Better Completion插件根本不会自动提示?
它压根不提供开箱即用的代码补全,Better Completion只是个“补全规则模板管理器”,所有语言支持都得手动配。你装完就期待Python或JS自动弹出函数列表,结果光标一动没反应——不是插件坏了,是你还没给它喂规则。
常见错误现象:Ctrl+Space没反应、输入os.后不显示方法、JS对象属性始终不提示。本质是插件默认只加载空规则集,sublime-completions文件一个没放进去。
- 必须在
Packages/User/下新建对应语言的.sublime-completions文件(比如python.sublime-completions) - 文件内容格式必须严格符合JSON,且
scope字段要匹配当前语法高亮作用域(查当前scope用Ctrl+Alt+Shift+P) - Windows路径别用反斜杠
,一律用正斜杠/或双反斜杠\,否则插件直接跳过加载
Better Completion和SublimeCodeIntel能共存吗?
能,但必须关掉其中一个的触发逻辑,否则会互相干扰。两者都监听on_query_completions事件,Better Completion优先级更高,一旦启用,SublimeCodeIntel的智能推导(如跨文件函数跳转、类型识别)就失效了。
使用场景:如果你只需要静态关键词补全(比如Django模板标签、自定义配置项),用Better Completion;如果要参数提示、函数签名、变量溯源,必须停用它,改用SublimeCodeIntel或EasyClangComplete(C/C++)这类引擎型插件。
- 临时禁用
Better Completion:Preferences → Package Settings → Better Completion → Settings – User,设"enabled": false - 检查冲突:打开命令面板
Ctrl+Shift+P,输Package Control: Disable Package,选Better Completion试试是否恢复CodeIntel提示 - 别硬凑——它和
AutoFileName、Emmet也容易抢Tab键行为,补全时卡顿多半是这个原因
为什么Python补全规则写了却只对.py文件生效?
scope写错了。Python文件默认作用域是source.python,但如果你开了SublimeJEDI或Anaconda插件,可能把scope覆盖成source.python.ipython或source.python.django,原规则就匹配不上。
参数差异:补全文件里的"scope": "source.python"必须和当前文件左下角显示的语法名称完全一致(点状态栏语言名可切换,切换后scope会变)。
- 快速确认当前scope:按
Ctrl+Alt+Shift+P,状态栏会显示类似source.python meta.function.python的完整链 - 兼容写法:用
"scope": "source.python -meta.tag"排除HTML内嵌Python片段干扰 - 别漏逗号:JSON末尾多一个逗号,整个
.sublime-completions文件会被忽略,且不报错
Mac上Better Completion中文路径补全失败
macOS的UTF-8路径编码和Sublime Text的内部解析有偏差,尤其含中文目录名时,Better Completion读取completions目录下的文件会失败,表现为补全列表为空。
性能影响:不是卡顿,是直接跳过加载——插件日志里看不到错误,但console里会打印Unable to load completions from ...(路径被截断或乱码)。
- 解决方案:把所有含中文的
.sublime-completions文件移到Packages/User/根目录,别放在子文件夹里 - 路径别用波浪号
~,写绝对路径/Users/xxx/Library/Application Support/Sublime Text/Packages/User/ - 重启Sublime Text后,在Console里输
sublime.log_commands(True),再触发补全,看实际加载了哪些文件
pyproject.toml或tsconfig.json,所有上下文感知都得手动硬编码。











