
Smart Completion
提供更好的建议来完成命令
查看大图
因为打字太费劲了
📖 关于
这是一个客户端模组,为命令提供更好的自动补全建议。
支持来自数据包或服务器插件的模组命令和自定义命令,并且无需在服务器端安装即可工作。
💡 用法
要输入一个由多个单词组成的命令或参数时,只需输入每个单词的几个首字母即可。
例如,如果你想输入 /gamerule doDaylightCycle true,你可以输入 /gr dc t

⌨ 键盘快捷键
除了 <Tab> 键,你还可以使用 <Ctrl>+<Space> 来接受建议,这会自动插入一个空格,方便你继续输入下一个参数。
此外,如果当前命令已知不完整(你的文本显示为红色),按 <Enter> 将接受选中的建议(如果有),而不是尝试执行无效命令。
默认情况下,使用 <Ctrl>+<Space> 或鼠标中键点击接受建议时,也会清除光标后的剩余文本,方便你在编辑前面的参数时使用。此行为可以按按键或鼠标按钮进行配置。
🔀 区分建议
为了区分不同的建议,你可能需要为每个单词输入更多字母。
例如,要输入 fireDamage 而不是 fallDamage(当输入 fd 时首先出现的建议),你可以输入 fid。

总的来说,多输入几个字母来得到你想要的建议,比使用方向键或 <Tab> 循环选择要快得多,因为打字可以形成肌肉记忆。
随着时间的推移,你会逐渐熟悉输入常用命令所需的最少字母数,输入命令将变得轻松自如。
🔍 浏览建议
由于你输入的单词不一定要在名称的开头,你可能会发现比 Minecraft 通常的建议更多有用的内容。
例如,如果你输入 /give @p wood,你将看到所有包含以 wood 开头的单词的物品建议。

此外,如果你的查询没有匹配到任何建议的首字母,它还会在建议中搜索模糊匹配,这些匹配会列在智能匹配之后。当你不确定自己要找什么时,这很有帮助。
🎁 额外功能
该模组默认会反转建议的顺序,使最相关的建议离输入栏最近,并且就在你视线所及之处。
如果你觉得这让人困惑,可以使用以下命令禁用此功能:
/smartcompletion invert_suggestion_order false
它还防止鼠标在建议出现时意外选中它们,修复了一个在较小窗口中输入命令时更麻烦的旧问题。
✨ 它是如何工作的?
对于你输入的每个命令,我们会向服务器请求两次建议。一次是省略你输入的最后一个参数(盲查询),另一次则包含所有内容作为保证(知情查询)。大多数情况下,只发送一个请求,因为我们在你输入时还会缓存请求,以减少延迟和建议列表的闪烁。
然后,我们假设服务器会回复盲查询的所有可能建议,并在客户端执行智能过滤和排序。
如果知情列表中有任何未匹配的意外建议,它们也会以不同颜色显示,这样你永远不会错过那些提供自身智能建议的复杂命令的建议。
为了过滤建议,我们使用两种方法:
- 你的查询片段与建议各部分首字母之间的智能匹配(gr 匹配 gamerule)(如同代码编辑器中的补全方式)
- 在建议中弱搜索你查询的每个部分(lock on 匹配 blockExplosionDropDecay)(当你不确定要找什么时很有用)
✂ 单词是如何分割的?
我们会在任何非字母字符处以及驼峰式大小写处分割单词。
此外,如果一个命令无法这样分割,我们会假设它是 flatcase 风格,就像大多数 Minecraft 命令一样。
不幸的是,除非你有字典,否则系统地拆分 flatcase 是不可能的。这就是为什么我们使用一个小型字典,包含 Minecraft、Fabric、(Neo)Forge 和 WorldEdit 命令中使用的单词,来尝试将命令拆分成单词。
这个字典可以被资源包覆盖(参见 wiki),但如果单词没有被正确拆分,也欢迎报告问题。
📋 建议是如何排序的?
建议按照以下标准排序,先应用哪个就采用哪个:
- 离光标更近的建议优先显示 (/give @p chest 建议 [ 在 minecart_chest 之前)
- 单词首字母的匹配优先于回退匹配 (doWeatherCycle > sendCommandFeedback)
- 超过某些阈值的显著匹配优先显示(apple > acacia_pressure_plate)
- 首字母匹配更多的匹配优先显示 (doInsomnia > disableRaids)
- 某些首字母可能匹配多个单词的匹配优先显示 (doDaylightCycle > doWeatherCycle)
- 单词更少的建议优先显示 (doInsomnia > doImmediateRespawn)
- 更靠近建议开头的匹配优先显示 (gamemode > defaultgamemode)
- 更短的建议优先显示 (tp > tell)
如果以上条件均不适用,则按照服务器提供的原始顺序显示(通常是字母顺序)(fallDamage > fireDamage)。
目前,无法自定义这个排序顺序。如果你有任何改进建议,欢迎反馈给我。这些标准的背后逻辑是匹配用户的自然预期,并通过立即输入更多首字母来消除冲突。
🎨 自定义
建议的高亮样式在 style.json 文件中定义,该文件可以被资源包覆盖(参见 wiki)。
默认情况下,建议中的匹配部分以蓝色高亮显示。
查询部分的替代匹配 (doDaylightCycle)、回退匹配 (sendCommandFeedback) 和意外的服务器建议均以深青色高亮显示。
此外,如果建议以单词的前缀开头,后跟冒号(例如,资源位置命名空间),除非匹配到,否则将以深灰色高亮显示 (minecraft:golden_apple)。
❓ 帮助
这个模组有一个 wiki,你可以查看。
另外,如果你遇到任何问题,或者只是想打个招呼,欢迎加入我们的 Discord 服务器。
🤝 支持这个项目
如果你想支持这个项目,把它分享给你的朋友吧!
正在加载版本记录…







正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。