如何在Sublime Text中为自定义语法启用自动补全功能
Sublime Text 自定义语法文件内变量补全失效解决方案
- 修正tmPreferences的scope匹配规则
从官方JavaScript包复制的Completion Rules.tmPreferences、Symbol List.tmPreferences默认绑定的是source.js作用域,需要替换为你自定义语法的scope值。
查看自定义语法scope的方法:打开对应语法的文件,按Ctrl+``打开控制台,执行view.scope_name(view.sel()[0].a),输出结果中第一个空格前的字符串就是当前语法的顶层scope,比如source.customjs。将两个tmPreferences文件中scope `下一行的字符串替换为该值后保存,重启Sublime。 - 验证自动补全全局配置
打开用户设置(Preferences > Settings),确认配置项"auto_complete_selector"包含你的自定义语法scope,或者直接设置为"auto_complete_selector": "source, text"覆盖所有文本和源码场景。同时确认disable_default_completions值为false,避免关闭默认的文件内单词补全能力。 - 调整单词分隔符规则
如果你的自定义语法允许特殊字符作为变量名的一部分(比如@、$前缀),需要在语法包配置中覆盖word_separators配置,将对应字符从默认的分隔符列表中移除,否则Sublime会将其识别为单词边界,无法补全完整标识符。 - 重置符号索引缓存
关闭Sublime后删除索引文件夹,重启后等待自动重新索引即可解决缓存导致的符号识别异常:- Windows:删除
%APPDATA%\Sublime Text\Index文件夹 - Mac:删除
~/Library/Application Support/Sublime Text/Index文件夹 - Linux:删除
~/.config/sublime-text/Index文件夹
- Windows:删除
内容的提问来源于stack exchange,提问作者12Thanjo
相关产品推荐
相关产品推荐

