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…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
无需布线的革命:电力载波技术赋能楼宇自控系统 在楼宇自动化领域,传统控制系统依赖复杂的专用通信线路,不仅施工成本高昂,后期维护和扩展也极为不便。电力载波技术(PLC)的突破性应用,彻底改变了…...
用 FFmpeg 实现 RTMP 推流直播
RTMP(Real-Time Messaging Protocol) 是直播行业中常用的传输协议。 一般来说,直播服务商会给你: ✅ 一个 RTMP 推流地址(你推视频上去) ✅ 一个 HLS 或 FLV 拉流地址(观众观看用)…...
window 显示驱动开发-如何查询视频处理功能(三)
D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...
NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地
NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配,成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景,通过标准化 SQL 工作台与细粒度权限管控两大能力,助力企业安全高效…...
SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
【导读】 本文针对无人机(UAV)视频中目标尺寸小、运动快导致的多目标跟踪难题,提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪(贴合无人机场景特性),并改进传统外观匹配算法以关联此类检测…...
