小狼毫输入法雾凇拼音输入方案辅码由默认的部件拆字/拼音输入方案修改为五笔画方案

article/2025/7/21 17:55:07

搜狗拼音输入法不单单是弹出广告的问题,还有收集输入习惯等隐私的嫌疑。所以最近彻底删除了这个输入法,改安装了小狼毫输入法。关于小狼毫输入法的安装和使用网上已经有了无数文章,我这里就不重复了。在试用多个拼音方案后,最终我决定使用雾凇拼音输入方案,该方案的最新版本不需要对配置文件作大的修改就能很方便的使用。唯一比较不满意的是,在输入拼音后,再键入`触发辅码输入并继续输入辅码以减少候选字的数量时,它的默认辅码拆字方案是部件拆字/拼音输入方案字典文件radical_pinyin.dict.yaml中的字表,很多汉字部件的辅码需要记忆,例如“龥”字(这个字是Unicode码表的最后一个中文字符)的左半边,它的辅码是“yue”,太不直观了,不如将它改成与搜狗拼音类似的以笔画名称第一个字母做辅码的方式,以免除记忆辅码的负担。

如果手工修改radical_pinyin.dict.yaml中的字表,6万4千多个汉字简直要命。好在小狼毫输入法自带有五笔画输入方案,可以将该方案字典文件stroke.dict.yaml(在程序文件夹“weasel-版本号”下的data目录里)中的字表复制,然后替换radical_pinyin.dict.yaml中的汉字字表即可,无须修改任何配置文件。

此外,因为`在雾凇拼音输入方案中承担了一些特殊任务,默认情况下中文输入时`没有转换为·(这对于在md文件中输入代码反而成了福音,无须进行中英文切换),这个符号可以通过输入拼音“jiangehao”输入,或者在custom_phrase.txt中添加一行:

·    jg

重新部署后输入jg,·就成了第一个候选字。如果使用双拼,则需要将custom_phrase.txt复制后粘贴到同一目录下,并将文件名修改为custom_phrase_double.txt。

经过这样的改造,小狼毫输入法比搜狗输入法还好用,因为输入颜文字和特殊符号更方便。再输入龥字时,如果输入拼音“yu”后候选字中找不到龥字,可以继续输入`,然后输入辅码pnhs,它就已经成了第一个候选字了。碰上不认识的生僻字,可以键入uU进入拆字模式,直接按顺序键入笔画将这个字输入,无须切换到五笔画输入法。五笔画拆字方案的笔画名称包括hspnz,对应横竖撇捺折,比搜狗输入法少了一个d(点),点则被当作短捺,输入n即可。当前版本有个小bug,三点水输入辅码时本来应该是nnn,但键入两个nn后候选字会消失,要键入第三个n后候选字才会出现,例如湘字,微软双拼键入:

xd`nn

这时没有候选字了,继续键入一个n

xd`nnn

湘字就成了唯一候选字。这告诉我们如果在输入某个笔画后看不到候选字了,可以继续输入后续笔画试试,让子弹飞一会儿。

另外要说明的是,stroke.dict.yaml包含九万多个汉字,远远超过radical_pinyin.dict.yaml中的汉字数量,勤快点的话,可以写个python程序过滤掉stroke.dict.yaml多余的汉字以减小文件大小,不过本益比似乎并不划算。下面即为能够实现这一目的的python代码,运行后代码所在目录中的c.txt改名为radical_pinyin.dict.yaml并拷贝到小狼毫输入法用户目录即可重新部署:

import redef replace_lines_in_a(a_filepath, b_filepath, output_filepath):"""遍历a.txt中的每一行,如该行以汉字开头,则在b.txt中查找以同一个汉字开头的行,并用b.txt中对应行的内容替代a.txt中的该行内容。Args:a_filepath (str): a.txt的路径。b_filepath (str): b.txt的路径。output_filepath (str): 存储结果的新文件的路径。"""b_lines_map = {}# 预处理b.txt,将以汉字开头的行存储到字典中,方便快速查找try:with open(b_filepath, 'r', encoding='utf-8') as f_b:for line_b in f_b:line_b = line_b.strip()if line_b:  # 确保行不为空first_char = line_b[0]# 只要汉字开头的行。r'[\u4e00-\u9fa5]'只能匹配21902个汉字,远少于文件中的汉字,# 所以根据文件内容特点用r'[^a-z\._#\s]'排除不以汉字开头的行if re.match(r'[^a-z\._#\s]', first_char):b_lines_map[first_char] = line_bexcept FileNotFoundError:print(f"错误:文件 {b_filepath} 未找到。")returnexcept Exception as e:print(f"读取文件 {b_filepath} 时发生错误:{e}")returnprint(f'{len(b_lines_map)=}')output_lines = []try:with open(a_filepath, 'r', encoding='utf-8') as f_a:for line_a in f_a:line_a = line_a.strip()if line_a:first_char_a = line_a[0]if re.match(r'[^a-z\._#\s]', first_char_a):# 如果a.txt中的行以汉字开头,并且b_lines_map中有对应的汉字开头的行if first_char_a in b_lines_map:output_lines.append(b_lines_map[first_char_a])# else:#     output_lines.append(line_a)  # 如果b.txt中没有对应行,则保留原行else:output_lines.append(line_a)  # 如果不是以汉字开头,则保留原行else:output_lines.append(line_a) # 保留空行except FileNotFoundError:print(f"错误:文件 {a_filepath} 未找到。")returnexcept Exception as e:print(f"读取文件 {a_filepath} 时发生错误:{e}")returnprint(f'{len(output_lines)=}')try:with open(output_filepath, 'w', encoding='utf-8') as f_out:for line in output_lines:f_out.write(line + '\n')print(f"处理完成,结果已保存到 {output_filepath}")except Exception as e:print(f"写入文件 {output_filepath} 时发生错误:{e}")if __name__ == "__main__":    a_file = r"D:\programs\rime\user-data\radical_pinyin.dict - 原版备份.yaml"b_file = r"D:\programs\rime\weasel-0.17.3\data\stroke.dict.yaml"output_file = "c.txt"  # 生成的新文件replace_lines_in_a(a_file, b_file, output_file)

有关文件所在目录如下图所示:

从此小狼毫输入法就成了我在Windows平台的唯一输入法。😀

最近GitHub总是上不去,完成后的方案文件(增加了五笔输入86版,对原始配置文件做了一些小修改,例如句号不上屏,左右shift键都能在中英文输入之间切换)参见https://download.csdn.net/download/yivifu/90942276。


http://www.hkcw.cn/article/kZOypQmPeL.shtml

相关文章

车载通信网络 --- OSI模型中传输层、会话层、表示层和应用层

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

Dify理论+部署+实战

概述 一个功能强大的开源AI应用开发平台,融合后端即服务(Backend as Service)和LLMOps理念,使开发者能够快速搭建生产级的生成式AI应用。 核心优势 直观的用户界面:提供简洁明了的操作界面,使得用户能够…

Java类和对象详解

文章目录 1.初步认识2.类的定义与实例化2.1 类的定义2.2 类的实例化与使用 3.this关键字4.对象的构造和初始化4.1 默认初始化4.2 就地初始化4.3 构造方法初始化 5.对象的打印6.包的理解6.1 导入包中的类6.2 自定义包6.3 包访问权限 7.封装7.1 访问限定符详解 8.static关键字8.1…

【Go语言】Fyne GUI 库使用指南 (面向有经验开发者)

引言 Fyne 是一个使用 Go 语言编写的、易于使用的跨平台 GUI 工具包和应用程序 API。它旨在通过单一代码库构建在桌面和移动设备上运行的应用程序。本文档面向有一定 Go 语言开发经验的开发者,将详细介绍 Fyne 最新版的核心功能,包括基础组件、布局系统…

1. pytorch手写数字预测

1. pytorch手写数字预测 1.背景2.准备数据集2.定义模型3.dataloader和训练4.训练模型5.测试模型6.保存模型 1.背景 因为自身的研究方向是多模态目标跟踪,突然对其他的视觉方向产生了兴趣,所以心血来潮的回到最经典的视觉任务手写数字预测上来&#xff0…

武警智能兵器室系统架构设计与关键技术解析

在现代化武警部队建设中,武器弹药的安全管理与快速响应能力直接影响部队战斗力。本文基于某实战化智能兵器室建设案例,深入解析其系统架构设计、关键技术实现及创新管理机制,为安防领域提供可借鉴的解决方案。 整体拓扑结构 系统采用分层分布…

HTML5 列表、表格与媒体元素、页面结构分析

1. 列表 无序列表 有序列表 定义列表 列表对比 2. 表格 跨列 跨行 跨行和跨列 3. HTML5的媒体元素 视频元素 注意:autoplay现在很多浏览器不支持了! 音频元素 4. 页面结构分析 5. 总结

中文文本分析及词云生成

一、代码解析(按执行顺序) 1. 库导入 import jieba # 中文分词工具 from wordcloud import WordCloud # 词云生成器 from collections import Counter # 词频统计 import matplotlib.pyplot as plt # 可视化 import numpy as np # 图像矩阵处理 f…

芯片手册解读

一: 1.这是一款差分转单端的芯片: 2.给出了逻辑高低的识别门限:并不是大于100mv和小于-100mv就识别不到了——而是大于100mv和小于-100mv都可以识别到,手册的意思仅仅代表门限节点而已,完全可以在进入门限后的其他电…

LangChain-Tool和Agent结合智谱AI大模型应用实例2

1.Tool(工具) 定义与功能 单一功能模块:Tool是完成特定任务的独立工具,每个工具专注于一项具体的操作,例如:搜索、计算、API调用等 无决策能力:工具本身不决定何时被调用,仅在被触发时执行预设操作 输入输出明确:每个工具需明确定义输入、输出参数及格式 2.Agent(…

专业级图片分割解决方案

在日常处理图片的过程中,我们常常会遇到需要将一张图分割成多个小图的情况。这一款高效又实用的图片分割工具——它操作简单、功能强大,关键是完全免费开源,适合所有有图像处理需求的朋友! 在使用之前,先花几分钟把它…

Re--题

一.[NSSCTF 2022 Spring Recruit]easy C 直接看for循环,异或 写代码 就得到了flag easy_Re 二.[SWPUCTF 2021 新生赛]非常简单的逻辑题 先对这段代码进行分析 flag xxxxxxxxxxxxxxxxxxxxx s wesyvbniazxchjko1973652048$-&*&l…

iOS 集成网易云信IM

云信官方文档在这 看官方文档的时候&#xff0c;版本选择最新的V10。 1、CocoPods集成 pod NIMSDK_LITE 2、AppDelegate.m添加头文件 #import <NIMSDK/NIMSDK.h> 3、初始化 NIMSDKOption *mrnn_option [NIMSDKOption optionWithAppKey:"6f6568e354026d2d658a…

边缘计算网关支撑医院供暖系统高效运维的本地化计算与边缘决策

一、项目背景 医院作为人员密集的特殊场所&#xff0c;对供暖系统的稳定性和高效性有着极高的要求。其供暖换热站传统的人工现场监控方式存在诸多弊端&#xff0c;如人员值守成本高、数据记录不及时不准确、故障发现和处理滞后、能耗难以有效监测和控制等&#xff0c;难以满足…

Google Earth Pro 7.3 中文绿色版 - 谷歌地球专业版(精准定位,清晰查看您家位置)

谷歌卫星高清地图 下载链接&#xff1a;https://pan.quark.cn/s/c6069864c9f3 Google Earth Pro-7.3.6.9796-x64 Google Earth WinMac安装版 GoogleEarthProPortable googleearthpromac-intel-7.3.6.10155 GoogleEarthProWin-7.3.6.10155 GoogleEarthProWin-x64-7.3.6.10…

【工作笔记】 WSL开启报错

【工作笔记】 WSL开启报错 时间&#xff1a;2025年5月30日16:50:42 1.现象 Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x80370114 Error: 0x80370114 ??????????????????Press any key to continue...

《TCP/IP 详解 卷1:协议》第3章:链路层

以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE&#xff08;电气与电子工程师协会&#xff09;定义的局域网和城域网通信标准系列&#xff0c;涵盖了从物理层到链路层的多个网络技术。其中&#xff1a; IEEE 802.3 定义的是传统的以太网…

【定昌linux开发板】设置密码的有效时间

查看密码策略命令 sudo chage -l 用户名 先查询下默认情况下&#xff0c;密码策略 结果&#xff1a; 可以看出&#xff0c;密码没什么策略 那么我要设置30天后过期&#xff0c;并且七天前要进行提醒 sudo chage -M 30 用户名 再进行查询&#xff0c;结果如下 显示密码的有…

Vue-数据监听

数据监听 基础信息 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>数据监听</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js&qu…

Java 注解式限流教程(使用 Redis + AOP)

Java 注解式限流教程&#xff08;使用 Redis AOP&#xff09; 在上一节中&#xff0c;我们已经实现了基于 Redis 的请求频率控制。现在我们将进一步升级功能&#xff0c;使用 Spring AOP 自定义注解 实现一个更优雅、可复用的限流方式 —— 即通过 RateLimiter 注解&#xf…