如何在Sublime Text 3中让Java的sout快捷补全功能正常生效?
Sublime Text 3 配置Java代码sout快捷补全方案
问题原因
Sublime Text 3默认Java补全词库内置了Swing组件相关的southPane词条,未配置自定义高优先级补全规则时,输入sout触发模糊匹配,该词条优先级高于System.out.println,按Tab就会补全出错误内容。
配置步骤
1. 新建专属Java代码片段
- 打开Sublime Text 3,顶部菜单栏依次选择
Tools→Developer→New Snippet...,软件会自动生成片段模板文件。 - 清空模板默认内容,粘贴以下配置:
<snippet> <content><![CDATA[System.out.println($0);]]></content> <tabTrigger>sout</tabTrigger> <scope>source.java</scope> <description>输出语句System.out.println()</description> </snippet>
字段说明:
<tabTrigger>sout</tabTrigger>:指定触发补全的关键词为sout<scope>source.java</scope>:限定该补全规则仅在Java格式文件中生效,不影响其他编程语言的补全逻辑$0:标记补全完成后光标的默认停留位置,补全后光标会自动定位到输出语句的括号内,可直接输入打印内容- 按下快捷键
Ctrl+S(macOS系统为Cmd+S)保存文件,保存路径会自动定位到Sublime的用户配置目录,文件名必须设置为sout-java.sublime-snippet,后缀不可修改。
2. 调整补全优先级排除干扰
- 顶部菜单栏依次选择
Preferences→Settings,打开软件配置面板,在右侧的用户自定义配置栏中添加以下两项配置:
"tab_completion": true, "auto_complete_preserve_order": "none"
- 配置作用:
tab_completion开启后会优先匹配自定义代码片段的Tab触发规则;auto_complete_preserve_order设为none后,补全列表会按照匹配精确度排序,精确匹配sout关键词的代码片段会排在模糊匹配的southPane之前。
3. 验证效果
保存所有配置后重启Sublime Text 3,新建后缀为.java的文件,输入sout后按下Tab键,即可自动补全为System.out.println();,光标自动停在括号内部。
如果安装了第三方Java补全插件(如LSP、SublimeCodeIntel),只需要确保插件没有禁用自定义代码片段功能,上述配置依然生效。
内容的提问来源于stack exchange,提问作者fartface87
相关产品推荐
相关产品推荐

