rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器
在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。
今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translator,这个translator 的作用是将用户输入的原始字符,根据我们的需要,透传到候选项中,以便为将来的 filter 处理程序提供必要的输入。
inputShow.lua
我们在 inputShow.lua 文档内定义我们的 translator 逻辑,translator 逻辑定义如下👇:
--对于指定的输入符号,需要直接提供对应转换值的输入选项,供后处理使用
local cands={}
--以下单字母需要输出
cands['a']='a'
cands['b']='b'
cands['c']='c'
cands['d']='d'
cands['e']='e'
cands['f']='f'
cands['g']='g'
cands['h']='h'
cands['i']='i'
cands['j']='j'
cands['k']='k'
cands['l']='l'
cands['m']='m'
cands['n']='n'
cands['o']='o'
cands['p']='p'
cands['q']='q'
cands['r']='r'
cands['s']='s'
cands['t']='t'
cands['u']='u'
cands['v']='v'
cands['w']='w'
cands['x']='x'
cands['y']='y'
cands['z']='z'--以下是常用简写的输出
cands['id']='id'
cands['ip']='ip'--以下是化学元素简写,需要输出
cands['he']='He'
cands['li']='Li'
cands['be']='Be'
cands['ne']='Ne'
cands['na']='Na'
cands['mg']='Mg'
cands['al']='Al'
cands['si']='Si'
cands['cl']='Cl'
cands['ar']='Ar'
cands['ca']='Ca'
cands['sc']='Sc'
cands['ti']='Ti'
cands['cr']='Cr'
cands['mn']='Mn'
cands['fe']='Fe'
cands['co']='Co'
cands['ni']='Ni'
cands['cu']='Cu'
cands['zn']='Zn'
cands['ga']='Ga'
cands['ge']='Ge'
cands['as']='As'
cands['se']='Se'
cands['br']='Br'
cands['kr']='Kr'
cands['rb']='Rb'
cands['sr']='Sr'
cands['zr']='Zr'
cands['nb']='Nb'
cands['mo']='Mo'
cands['tc']='Tc'
cands['ru']='Ru'
cands['rh']='Rh'
cands['pd']='Pd'
cands['ag']='Ag'
cands['cd']='Cd'
cands['in']='In'
cands['sn']='Sn'
cands['sb']='Sb'
cands['te']='Te'
cands['xe']='Xe'
cands['cs']='Cs'
cands['ba']='Ba'
cands['la']='La'
cands['ce']='Ce'
cands['pr']='Pr'
cands['nd']='Nd'
cands['pm']='Pm'
cands['sm']='Sm'
cands['eu']='Eu'
cands['gd']='Gd'
cands['tb']='Tb'
cands['dy']='Dy'
cands['ho']='Ho'
cands['er']='Er'
cands['tm']='Tm'
cands['yb']='Yb'
cands['lu']='Lu'
cands['hf']='Hf'
cands['ta']='Ta'
cands['re']='Re'
cands['os']='Os'
cands['ir']='Ir'
cands['pt']='Pt'
cands['au']='Au'
cands['hg']='Hg'
cands['tl']='Tl'
cands['pb']='Pb'
cands['bi']='Bi'
cands['po']='Po'
cands['at']='At'
cands['rn']='Rn'
cands['fr']='Fr'
cands['ra']='Ra'
cands['ac']='Ac'
cands['th']='Th'
cands['pa']='Pa'
cands['np']='Np'
cands['pu']='Pu'
cands['am']='Am'
cands['cm']='Cm'
cands['bk']='Bk'
cands['cf']='Cf'
cands['es']='Es'
cands['fm']='Fm'
cands['md']='Md'
cands['no']='No'
cands['lr']='Lr'
cands['rf']='Rf'
cands['db']='Db'
cands['sg']='Sg'
cands['bh']='Bh'
cands['hs']='Hs'
cands['mt']='Mt'
cands['ds']='Ds'
cands['rg']='Rg'
cands['cn']='Cn'
cands['nh']='Nh'
cands['fl']='Fl'
cands['mc']='Mc'
cands['lv']='Lv'
cands['ts']='Ts'
cands['og']='Og'function translator(input, seg)--抛出一个选项,用于告诉下游输入的内容是什么,为了避免和正式输入内容混淆,加入一个 Str的前缀yield(Candidate("inputShow", seg.start, seg._end, 'Str'..input, "inputShowStr"))if nil~=cands[input] thenif ''==cands[input] thenyield(Candidate("inputShow", seg.start, seg._end, input, "inputShow"))elseyield(Candidate("inputShow", seg.start, seg._end, cands[input], "inputShow"))endend
endreturn translator
👆以上所展示的 lua 脚本中,定义了一组 cands 字符。当用户的输入与 cands 字符匹配时,则将这组输入的字符做为词组候选项抛出,效果如下👇:

👆如上图所示的效果,在我们的 inputShow.lua 脚本中, 我们会将用户的原始输入加 Str 前缀后抛出;如果所输入的字符存在于 cands 列表内,则抛出列表内的对应的值;同时,抛出的选项中,还加入了 inputShowStr 或者 inputShow 的 comment 内容以做标记。
👇如下,inputShow.lua 文档应该位于 用户文件夹 下的 lua 文件夹内:

rime.lua
如果你对 rime中州韵小狼毫 help lua Translator 还有印象,那么你应该已经猜到,我们在 inputShow.lua 中所定义的 translator 方法,需要在 用户文件夹 下的 rime.lua 内转换成 translator 接口,方可被 rime中州韵小狼毫输入引擎所引用。我们在 rime.lua 中配置以下👇内容以转换 inputShow_translator:
help_translator = require("help")
inputShow_translator = require("inputShow")
如果你的 用户文件夹 下没有 rime.lua 文档,你需要创建它,然后对其进行配置:
touch rime.lua
wubi_pinyin.custom.yaml
经过以上步骤,我们已经完成了对 inputShow_translator 的定义,根据我们的需要,我们在我们的输入方案的补丁文档中的 translators 节点下引用 inputShow_translator即可。
本文依旧以 五笔・拼音 输入方案为例演示 inputShow_translator 的配置方式。我们需要在 五笔・拼音 输入方案的方案文档 wubi_pinyin.schema.yaml 的补丁文档 wubi_pinyin.custom.yaml 中做如下👇配置:
# encoding:utf-8
patch:engine/translators/+: #增加以下translator- lua_translator@inputShow_translator- table_translator@custom_phrase # 指定使用 custom_phrase 进行输入字符的翻译- lua_translator@help_translatorcustom_phrase: # 设置用户字/词典dictionary: ""user_dict: Custom_phrase # 指向 Custom_phrase.txt 文档db_class: stabledbenable_completion: falseenable_sentence: trueinitial_quality: 1punctuator: # 设置标点符号集import_preset: symbols# 设置以下 translator 相关的开关translator/enable_sentence: true #是否整句连打translator/enable_user_dict: true #开启用户词典translator/enable_encoder: true #是否自动造词translator/encode_commit_history: false #对已上屏的内容整合成词条,看需求translator/max_phrase_length: 4 #自动造词的最长字数translator/enable_completion: true #编码逐渐提示开关;编码提示
最后,当你完成以上所有的文档和配置后,你需要 重新部署 你的 rime中州韵小狼毫输入法,方可使以上所做的配置生效。
inputShow.lua 文档
👆上述 inputShow.lua 文档,你也可以通过 inputShow.lua 下载取用。
rime.lua 文档
👆上述 rime.lua 文档,你也可以通过 rime.lua 下载取用。
wubi_pinyin.custom.yaml 文档
👆上述 wubi_pinyin.custom.yaml 文档,你也可以通过 wubi_pinyin.custom.yaml 下载取用。
小结
以上就是今天分享的如何在 rime中州韵小狼毫输入法中配置 inputShow_translator 的过程。今天所做的配置本身没有十分惊艳的效果,但这却是将来其它增强功能的基础。希望可以帮助到大家。
相关文章:
rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器
在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。 今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translat…...
【RockChip | RV1126】学习与开发
【RockChip | RV1126】学习与开发 文章目录 【RockChip | RV1126】学习与开发1. 资料1. 资料 您好,这是关于A191型RV1126的资料包,请您及时接收哦~链接: https://pan.baidu.com/s/1FXWVxa27Q78nI78d2QKlBQ?pwd=j7mk 提取码: j7mk 若您在开发过程中遇到技术问题,需要帮助时:…...
copilot在pycharm的应用
Copilot在PyCharm中的应用 一、引言 随着人工智能技术的飞速发展,AI在编程领域的应用也越来越广泛。Copilot,作为一款由微软开发的AI编程助手,已经引起了广大开发者的关注。它利用深度学习技术,通过分析大量开源代码,…...
HDU 2841:Visible Trees ← 容斥原理
【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid2841【题目描述】 There are many trees forming a m * n grid, the grid starts from (1,1). Farmer Sherlock is standing at (0,0) point. He wonders how many trees he can see. If two trees and Sherlock are in…...
分布式数据之复制(Replication)
1.简介 1.1简介——使用复制的目的 在分布式系统中,数据通常需要被分散在多台机器上,主要为了达到以下目的: 扩展性,数据量因读写负载巨大,一台机器无法承载,数据分散在多台机器 上可以有效地进行负载均衡…...
【多线程】
文章目录 一、线程与进程的概念:二、多线程实现三、线程锁四、线程数量的设置 一、线程与进程的概念: 简单理解 假设总共有3个孩子需要喂饭,孩子每吃一口饭需要咀嚼消化一下。 多线程方案: 雇佣1个保姆,在喂A孩子吃饭…...
基于Vue开发的一个仿京东电商购物平台系统(附源码下载)
电商购物平台项目 项目完整源码下载 基于Vue开发的一个仿京东电商购物平台系统 Build Setup # csdn下载该项目源码压缩包 解压重命名为sangpinghui_project# 进入项目目录 cd sangpinghui_project# 安装依赖 npm install# 建议不要直接使用 cnpm 安装以来,会有各…...
Nginx多ip部署多站点
目录 1.修改网卡配置信息 2.修改主要配置文件nginx.conf 1.修改网卡配置信息 1)来到网卡配置文件存放目录下 cd /etc/sysconfig/network-scripts/ 2)对 ifcfg-ens33 文件进行配置修改前先进行备份 cp ifcfg-ens33 ifcfg-ens33.default 3)先修改成最小配置,使用 d…...
Unity SVN更新提交小工具
Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN,在文件夹右键能够看到安装的SVN 源码 using System…...
听GPT 讲Rust源代码--compiler(19)
File: rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs 该文件(rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs)是Rust编译器针对MIPS架构上的Linux系统的目标描述文件。它的作用是定义了在这个目标上编译时的一些配置…...
redis单机部署
一、下载redis压缩包tar.gz 官网下载,现在一般用6.x以上版本 二、上传指定目录,解压缩 #假如上传到redis用户的家目录 cd /home/redis tar -zxvf redis-6.2.14.tar.gz 三、进入解压缩目录,进行编译 cd redis-6.2.14 make &&a…...
el-upload上传文件
需求:选中或拖拽文件后,使用http-request属性实现自动上传,并根据后端传回来的结果显示错误和控制fileList的显示,如果后端返回成功,则文件显示在文件列表处,如果后端返回失败,则文件列表不显示…...
算法导论复习——CHP16 贪心算法
定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S,在已知每个活动开始时间和结束时间的条件下,从中选出最多可兼容活动的子集合,称为最大兼容活动集合。 不失一般性&a…...
【霹雳吧啦】手把手带你入门语义分割の番外12:U2-Net 源码讲解(PyTorch)—— 网络的搭建
目录 前言 Preparation 一、U2-Net 网络结构图 二、U2-Net 网络源代码 1、model.py (1)ConvBNReLU 类 (2)DownConvBNReLU 类 (3)UpConvBNReLU 类 (4)RSU 类 & RSU4F 类…...
phpstudy面板Table ‘mysql.proc‘ doesn‘t exist解决办法
原因分析:误删了mysql数据库 解决办法如下: 1、停止服务 2、先把mysql文件夹下的data文件夹备份,因为data文件里存有数据库文件。然后再删除data文件。 3、cmd管理员命令进入到mysql中的bin目录下 ,执行mysqld --initialize-…...
网安入门09-Sql注入(绕过方法梳理)
ByPass SQL注入ByPass是指攻击者通过各种手段绕过应用程序中已经实施的SQL注入防御措施,例如输入恶意数据、修改请求头等方式,绕过过滤、转义、限制等操作,从而成功地执行恶意SQL语句。攻击者使用SQL注入ByPass技术可以让应用程序的防御措施…...
本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
客户反馈说mysql启动不了,报错信息: 本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。 查了不少资料,最后分析问题是这样的,手动或者重复安装mysql时,创建了多个…...
2023机器人行业总结,2024机器人崛起元年(具身智能)
2023总结: 1.Chatgpt引爆了通用人工智能,最大的受益者或是机器人,2023年最热门的创业赛道便是人形机器人,优必选更是成为人形机器人上市第一股, 可以说2023年是机器人开启智能化的元年,而2024则将成为机器…...
go 语言中的类型判断
_. ok : interface{}(a).(B)此语句用于判断对象a是否是B类型 也可以判断对象a是否实现了B接口 package mainimport "fmt"type Pet interface {SetName(name string)Name() stringCategory() string } type Dog struct {name string }func (dog *Dog) SetName(name …...
java基于ssm的房源管理系统+vue论文
目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...
