影子输入法魔法字符串和超级命令
<style>.artBox { margin: 30px 0; padding: 30px; left: calc(50% - 81px); transform: translateX(-50%); font-size: 18px; background: beige; box-shadow: 2px 2px 4px gray; border-radius: 10px; width: 1200px; position: relative; z-index: 2; }
.artBox > p { margin: 10px 0; line-height: 30px; }
.artBox mark { padding: 4px 6px; background: lightblue; }
</style>
<div class="artBox">
<p>影子输入法魔法字符串和超级命令对应于数据库扩展主键的 extend 的对应表:</p>
<div class="codebox" data-title="extend 数据表">
剪贴板 → ClipHistory
英文 → English
用户自设短语 → customs
<txt-blue>魔法字符串 → hotstrings</txt-blue>
<txt-blue>超级命令 → functions</txt-blue>
符号 → symbol
</div>
<p>假如数据库中不存在以上数据表,可以使用导入或第三方DB管理软件创建,字段参照后面提供的示例。</p>
<h3>一、魔法字符串</h3>
<p>魔法字符串是用户自定义短语(extend → customs)的扩展与补充,customs 能做的 hotstrings 都能做,customs 做不到的它可以。我们谈到过,用户自定义短语已经支持多行文本,但在多行文本的缩进方面存在缺陷,主要表现为支持自动缩进的文本编辑器会将词条各行的缩进进行累加,从而输出的结果不是词条所设计的预期,魔法字符串因此有了存在的理由。 </p>
<p>魔法字符串和用户自定义短语在数据结构上没有本质差异,不连 rowid 就三个字段,区别仅在于 comment(备注)的表述,现将二者对比描述如下:</p>
<div class="codebox">
<txt-pink>名称/rowid Key value comment</txt-pink>
自定义短语 输入码 词条内容 005
魔法字符串 输入码 词条内容 <txt-blue>{fast}</txt-blue>备注内容
<txt-green># 示例一 : 自定义短语</txt-green>
23 p <p></p> 005
<txt-green># 示例二 : 魔法字符串</txt-green>
07 div <div>`n`t<p></p></div> <txt-blue>{fast}</txt-blue>div
</div>
<p>看到了吧?不同的是魔法字符串的备注,它不是序号而是文本内容,备注内容可以加一个前缀,<mark>{fast}</mark>,这个前缀可以缺省,若缺省其功效等同于自定义短语,反之,加了上述前缀,魔法字符串会处理词条中的换行符(`n)和制表符(`t),输出结果是多行文本实现了缩进预设且在设置了自动缩进的文本编辑器中表现正常。</p>
<p>小技巧:运行影子输入法的词库管理,可以在线方便地制作有换行和缩进的多行文本,方法是在编辑词条内容时切换到右侧栏的“编辑单元格”简易编辑器,这里的编辑操作和普通文本编辑器无异,编辑完毕点底部的“应用”按钮,数据库对应单元格的内容将与其同步且内容中没有`n`t符号。</p>
<p>魔法字符串主要用来处理复杂结构的多行文本,功能比用户自定义短语要强大得多。使用影子输入法的词库管理编辑词条时借助其集成的简易编辑器可以实现所见即所得的词条编辑效果,利用 .txt/.csv 文档批量导入的则需要将每一个词条数据写在一行,Key、value、comment之间用小角逗号隔开,换行符、制表符(缩进)使用<mark>`n</mark> 和 <mark>`t</mark> 表示。</p>
<p>魔法字符串创建后,它进入候选词的方式是加在候选词窗口的底部,按逗号键上屏(词条前有提示语 <mark>(,)</mark>)。</p>
<h3>二、超级命令</h3>
<p>魔法字符串能干的事情,超级命令都能干。这意味着前面的示例二放到超级命令里来也是可以执行的,不同的是,放在候选词窗口底部的词条提示语是 <mark>(.)</mark>,意思是按下句号键上屏;此外,词条显示的内容不是词条本身,而是备注里去除了前缀 <mark>{...}</mark> 的备注内容。当然使用超级命令做这个文本输出的工作有点杀鸡用牛刀了,它要干的事情更为高级。下面举例说明:</p>
<div class="codebox">
<txt-pink>Key value comment</txt-pink>
php D:\phpts\data\wwwroot\ 打开phpts目录
kvmb Run ::{26EE0668-A00A-44D7-9371-BEB064C98683} {script}控制面板
calc calc.exe 启动计算器
ahk https://autohotkey.top 访问AHK官网
test test {func}测试100*100
</div>
<p>上述词条示例中,最后一个 test 有个前提,即影子输入法子目录 data 下的AHK文档 usercustoms.ahk 中有 test() 函数,函数内容如下:</p>
<div class="codebox" data-title="test() 函数代码:">
test() {
return "100 * 100 = " + 100 * 100
}
</div>
<p>这是测试用的函数,测试完结应将其删除。必须注意,该文档任何错误都会导致输入法不能正常运行。</p>
<p>现在回头看看超级命令备注的结构。普通的运行软件、打开网页或文件目录可以不需要前缀,此时默认的前缀是 <mark>{fast}</mark>,和魔法字符串处理文本的前缀一致;<mark>{script}</mark> 前缀表示运行脚本,上例的打开控制面板的词条就是一句AHK脚本语句;<mark>{func}</mark> 前缀表示运行AHK函数,上例的 test 词条 test() 函数使用函数名 test(这里恰好和输入码一样),备注主要表明词条内容是个函数,备注内容随意看得懂就行,但备注的前缀不能有误。备注前缀可能还有其他的存在,由于官网未作相关说明,暂不介绍。</p>
<p>『小结』</p>
<p>魔法字符串,顾名思义,专门处理用户自定义短语不能处理的文本,词条数据在数据库中的备注 comment 前缀通常使用 <mark>{fast}</mark>;超级命令能处理用户自定义短语和魔法字符串可以处理的文本,还超强牛叉,可以启动计算机软件、打开目录、访问网站以及其他很多事情,备注内容以词条形式出现在候选词窗口底部,备注需要一个前缀,用前缀或不用、用时用什么前缀等等视情况而定,普通命令(例如打开软件、文件夹、网站)不用或用 <mark>{fast}</mark>,运行函数使用 <mark>{func}</mark>(运行函数需要函数真是存在并能正常运行),运行脚本使用 <mark>{script}</mark>。另外,看到候选词窗口底部词条有 <mark>(,)</mark> 的是魔法字符串,有 <mark>(.)</mark> 的是超级命令。</p>
</div>
<script type="module">
import linenumber from 'https://638183.freep.cn/638183/web/js/linenumber.js';
linenumber();
</script> 为了确保数据库文本结构的整齐布局,本文使用了宽屏 又整理出这些特殊用法,黑黑辛苦了{:4_187:} 这个魔法字符串还能启动计算机软件、打开目录、访问网站,以及做其他很多事情。
这个太方便了。{:4_187:} 红影 发表于 2025-12-14 23:40
这个魔法字符串还能启动计算机软件、打开目录、访问网站,以及做其他很多事情。
这个太方便了。
就是要回定制,得有一点点AHK编程基础 红影 发表于 2025-12-14 23:35
又整理出这些特殊用法,黑黑辛苦了
这个也算是对自己使用经历的一个总结吧 马黑黑 发表于 2025-12-14 23:46
就是要回定制,得有一点点AHK编程基础
定制好了,用起来就方便多了{:4_187:} 马黑黑 发表于 2025-12-14 23:47
这个也算是对自己使用经历的一个总结吧
这个总结让大家也跟着学习了呢{:4_187:} 红影 发表于 2025-12-15 23:14
这个总结让大家也跟着学习了呢
我是一直在用,但大家不一定用 红影 发表于 2025-12-15 23:14
定制好了,用起来就方便多了
趁手
页:
[1]