小狼毫输入法中让数字键盘上的数字键不再选择候选词而是与原始输入一起直接上屏

使用搜狗输入法的双拼时,输入“womf”然后按下主键盘上的数字1,会选择排名第一的候选词上屏(大概率是“我们),输入“womf”然后按下数字键盘上的数字1,不会选择候选词,而是将输入文本变成“womf1”,上屏的也将是“womf1”。小狼毫输入法默认则不是这样动作的,输入“womf”后,无论按下主键盘还是数字键盘上的数字,都会选择候选词上屏,而不会是原始输入加上数字键对应的数字上屏。

我看到github上rime输入法讨论区有人提问有没有办法让小狼毫输入法表现出搜狗输入法那样的行为,该问题已经很长时间了,但是没有有效的回答。查看小狼毫的文档,也没有涉及如何配置可以让主键盘与数字键盘上的数字按键表现出不同行为模式的内容,但是小狼毫输入法lua插件可以通过key_event:repr()获取按键名称,从而区分当前按下的数字键是主键盘上的数字键还是数字键盘上的数字键,这就为通过lua脚本实现按下数字键盘上的数字键时不选择候选词上屏而是直接将原始输入码与数字直接上屏创造了条件。编辑如下lua脚本(可以将文件名命名为kp_num_processor.lua),创建一个processor:

-- kp_num_processor.lua
local function processor(key_event, env)local key_code = key_event:repr() -- 获取按键名称-- 定义数字键盘数字键的映射local numpad_keys = {["KP_0"] = "0",["KP_1"] = "1",["KP_2"] = "2",["KP_3"] = "3",["KP_4"] = "4",["KP_5"] = "5",["KP_6"] = "6",["KP_7"] = "7",["KP_8"] = "8",["KP_9"] = "9"}-- 检查是否是数字键盘数字键if numpad_keys[key_code] thenlocal context = env.engine.context -- 获取输入上下文local input_text = context.input -- 获取当前输入的原始码if input_text and input_text ~= "" then-- 如果有输入的原始码,拼接原始码和数字并提交env.engine:commit_text(input_text .. numpad_keys[key_code])context:clear() -- 清空输入缓冲区else-- 如果没有原始码,只提交数字env.engine:commit_text(numpad_keys[key_code])endreturn 1 -- 表示按键已处理endreturn 2 -- 未处理,交给其他处理器
endreturn processor

然后在使用的输入法方案配置文件中配置使用该processor,例如我使用的微软双拼方案,就在double_pinyin_mspy.schema.yaml的“engine/processors”结点的第一行增加一个processor:

-- ……前面的配置内容省略

engine:

  processors:

    - lua_processor@*kp_num_processor

    - lua_processor@*select_character  # 以词定字

    - ascii_composer

-- ……后续配置内容省略

然后重新部署,就可以愉快的输入了。

本文内容在小狼毫输入法0.17.9下测试通过。花了我一两个月的摸索才算成功😀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97410.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】类和对象(终章)

作者主页:lightqjx 本文专栏:C 目录 一、构造函数 1. 构造函数体赋值 2. 初始化列表 (1)基本概念 (2)使用特性 3. explicit关键字 二、static成员 1. 概念 2. 特性 3. 应用 三、友元 1. 友元函…

水果目标检测[2]:ALAD-YOLO:一种轻便、精确的苹果叶病检测仪

原文: 目录 摘要: ALAD-YOLO的改进: 1.轻量化主干网络: 2.改进的 Neck 网络: 3.改进的 SPP 模块: 4.注意力机制引入: 实验结果 数据: 1 数据采集 (Data Collection) 2 数…

Let‘s Encrypt证书自动续期

证书失效后浏览器可以看到错误提示,以及证书过期时间。 排查服务器证书续期配置 1. 证书未正确安装或配置 确保在阿里云服务器上部署的 Let’s Encrypt 证书已经正确安装。你可以通过以下步骤确认: 使用命令 sudo certbot certificates 检查证书是否正确…

Redis-基数统计、位图、位域、流

Redis-基数统计、位图、位域、流一、基数统计 HyperLogLog二、位图 Bitmap三、位域 Bitfild四、流 Stream一、基数统计 HyperLogLog 基数统计:是用来做基数(不重复的数)统计的算法 (统计不重复出现的数据的个数) 基数统计VS集合 集合: uv …

IBMS-建筑内分散的子系统(如 BA、安防、消防、能源、电梯等)进行数据互联、功能协同与智能管控

IBMS(Integrated Building Management System,楼宇集成管理系统)并非简单的 “系统叠加”,而是通过对建筑内分散的子系统(如 BA、安防、消防、能源、电梯等)进行数据互联、功能协同与智能管控,实…

LabVIEW温采监控系统

​温度采集监控系统以LabVIEW 软件平台,构建起一套高效、可靠的温度监测与控制体系。系统可实时采集、显示、存储温度数据,超限时自动报警并执行温控操作,适用于多类场景,能满足精准温控需求,解决传统系统灵活性差、成…

Docker核心概念与镜像仓库操作指南

文章目录一、名词概念Docker镜像Docker镜像仓库二、Docker镜像仓库常用命令三、容器启动相关指令Nginxdocker rundocker ps四、综合实例1.搭建Nginx服务2.Docker hub上创建私有仓库一、名词概念 Docker镜像 Docker 镜像:是一个只读的模板,它包含了创建…

科技信息差(8.30)

🌍DeepSeek V3.1 Base突袭上线!击败Claude 4编程爆表,全网在蹲R2和V4🎄语音界Sora!微软刚开源新模型,一次生成90分钟语音、3200倍压缩率VibeVoice-1.5B开创了语音界多个重大技术突破:一次性可连…

【国内电子数据取证厂商龙信科技】ES 数据库重建

我们公司在协助侦办一起案件现场勘查遇到这样一个案件,现场没有 获取到服务器数据库密码,且涉案服务器数据巨大,涉及到的数据库并不 是 mysql 数据库,而是 elasticsarch 数据库,这给我们侦办案件带来了极 大的困难&…

【51单片机定时1秒中断控制流水灯方向】2022-11-14

缘由C语言怎么编可中断取反流水灯-编程语言-CSDN问答 用P1口做输出口,接八只发光二极管。编写程序,使发光二极管循环点亮,循环点亮时间间隔为1秒,该时间间隔用定时器中断实现。/ INT0 接单次脉冲输出,每当有外部中断信…

Megatron-LM(模型并行)

Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism 1. 技术设计原则 Megatron-LM 提出轻量级层内模型并行,无需定制编译器或修改框架,仅通过在 PyTorch 原生代码中插入少量通信操作(如all-reduce&…

C/C++:AddressSanitizer内存检测工具

AddressSanitizer是gcc自带的内存检测工具&#xff0c;无需额外安装 常见问题 #include <stdlib.h>// 越界访问 void stack_buffer_overflow() {char buffer[1];int i 10;buffer[i] A; // 访问越界 }// 野指针 void use_after_free() {char *text (char *)malloc(size…

【源码】智慧工地系统:智能化施工现场的全新管理方案

智慧工地系统是一个综合利用物联网&#xff08;IoT&#xff09;、大数据、云计算、人工智能&#xff08;AI&#xff09;、移动互联网和BIM&#xff08;建筑信息模型&#xff09;等新一代信息技术&#xff0c;对施工现场的“人、机、料、法、环”等关键要素进行实时、全面、智能…

网络安全等级保护(等保2.0)

网络安全等级保护&#xff08;等保2.0&#xff09;工作全流程指南 等级保护&#xff08;全称“网络安全等级保护”&#xff09;是我国网络安全领域的核心制度&#xff0c;是《网络安全法》规定的法定义务&#xff0c;等保2.0相关国家标准于2019年5月10日正式发布。2019年12月1日…

【Docker】Docker初识

目录 容器技术发展史 Jail时代 1979年贝尔实验室发明chroot 2000年FreeBSD 4.0发行FreeBSD Jail 2001年Linux VServer发行 2004年Solaris Containers发行 云时代 2006年google推出Process Containers 2008年LXC推出 2011年CloudFoundry推出Warden 2013年LMCTFY启动 …

SNMPv3开发--snmptrapd

SNMPv3开发–snmptrapd REF:3min搞定snmpdtrap的配置与使用

机器学习时间序列算法进行随机划分数据是不合适的!

问题代码&#xff1a;数据集划分方式不适合时间序列&#xff0c;会导致评估结果不可靠。 代码在整体流程上是合理的&#xff0c;但针对时间序列数据&#xff0c;存在一个关键问题&#xff1a;使用train_test_split进行随机划分是不合适的。时间序列的特殊性风速数据属于时间序列…

逆向思维下,如何把基金投资做亏?

投资界常说“聪明的人学习别人赚钱的方式”&#xff0c;但如果我们刻意采用逆向思维&#xff0c;想要把基金投资做亏&#xff0c;其实也有科学依据。 今天&#xff0c;我们就从心理学和行为金融的角度&#xff0c;揭示那些真实的投资亏损方法。 ⚡️ 1. 总想追热点&#xff0c…

1-python 自定义模板导出文档-基础实现

使用 Python 根据自定义的 Word 模板和传入的 JSON 数据生成 Word 报告&#xff0c;是自动化文档生成的常见需求。最常用的方法是使用 python-docx 和 docxtpl 库。其中&#xff0c;docxtpl 是基于 python-docx 的模板引擎&#xff0c;支持 Jinja2 模板语法&#xff0c;非常适合…

LeetCode算法日记 - Day 24: 颜色分类、排序数组

目录 1. 颜色分类 1.1 题目分析 1.2 解法 1.3 代码实现 2. 排序数组 2.1 题目解析 2.2 解法 2.3 代码实现 1. 颜色分类 75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序…