前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >linux 拼音输出繁体_解决rime仓颉拼音反查为繁体的问题

linux 拼音输出繁体_解决rime仓颉拼音反查为繁体的问题

作者头像
全栈程序员站长
发布于 2022-09-14 08:13:33
发布于 2022-09-14 08:13:33
2.4K0
举报

大家好,又见面了,我是你们的朋友全栈君。

和昆明IT没关系, 不过困扰我好几年的事解决了, 占地发一下:

rime 有个很强的地方: 仓颉输入的时候, 想不起来, 可以输入拼音, 能提示对应字的仓颉的输入法. 也就是能用拼音反查对应的仓颉输入码.

这样太方便学习了, 可是… 切到简体输入后, 输拼音反查时, 有时提示的是对应字的繁体字, 囧.

改配置(无效)

编辑文件

linux 在

vim /home/bigzhu/.config/fcitx/rime/cangjie5.schema.yaml

mac 在

vim /Users/bigzhu/Library/Rime/cangjie5.schema.yaml

看到有这一段

simplifier:

tips: all * 簡化字模式下提示對應的傳統漢字

看了对应源代码, 只接受 all 和 char 两个参数, 不知有什么区别

以为注释以后就可以, 结果反查出来的仓颉码是对应繁体字的, 字显示的是简体的. 没用嘛.

问了作者佛振, 他说因为优先支持繁体, 简体字是繁体字对应出来的, 反查时找到的其实是繁字, 所以当拼音反查同一个字有繁有简时, 只能让简体的反查那里显示对应繁字, 而且他也不准备改.

看来改配置是没法达到我想要的效果了.

改为繁体(半无效)

ctrl+`

叫出配置, 改为繁体

拼音反查时, 多翻几页, 还是能找到对应的简体字的打法的.

但这个方法太可怕了, 有时要在各种奇怪的字里找十多页, 才能看到那个简体字和它的输入码, 这时的输入码倒是对的, 是对应简体字的仓颉输入码.

看来全世界只有我有用 rime 打简体的需求了, 就这么过了好几年, 我都弄的养成了仓颉拼音混用的坏习惯

终于在昨天发现了办法

改反查字典(完美)

最近写微信公众号, 打字多了太痛苦了, 不死心, 找了 rime 的源代码下来看.

void Simplifier::PushBack(const an& original,

CandidateQueue* result, const string& simplified) {

string tips;

string text;

size_t length = utf8::unchecked::distance(original->text().c_str(),

original->text().c_str()

+ original->text().length());

bool show_tips = (tips_level_ == kTipsChar && length == 1) || tips_level_ == kTipsAll;

if (show_in_comment_) {

text = original->text();

if (show_tips) {

tips = simplified;

comment_formatter_.Apply(&tips);

}

} else {

text = simplified;

if (show_tips) {

tips = original->text();

bool modified = comment_formatter_.Apply(&tips);

if (!modified) {

tips = quote_left + original->text() + quote_right;

}

}

}

result->push_back(

New(

original,

“simplified”,

text,

tips));

}

这段就是决定反查时是显示仓颉码还是对应繁体字的, 看了才真正明白作者说的意思了.

不是改代码, 编译个自已的版本就能解决的.

原因出在反查的 luna_pinyin 输入法是全中文的, 也就是它的字典库里有所有的繁体字和简体字. 作者在输入法上做了对应转换的功能, 来实现切换繁简输入的功能.

那我弄个只有简体字的反查库, 不就搞定了?

都想自已做个库了, 结果发现了这个项目 pinyin-simp, 现成有了, 赞!

clone 下来, 放到 ~/Library/Rime 里, 加一个自已的 default.custom.yaml

patch:

menu:

page_size: 9

schema_list:

– schema: pinyin_simp

#- schema: luna_pinyin

– schema: cangjie5

#- schema: luna_pinyin_fluency

#- schema: luna_pinyin_simp

#- schema: luna_pinyin_tw

把 pinyin_simp 加到了输入法里, 这样 rime 才会把它的 dict 文件编译成对应反查字典.

直接改了 cangjie5.schema.yaml 把反查字典由 luna_pinyin 改为 pinyin_simp

reverse_lookup:

comment_format:

– “xlit|abcdefghijklmnopqrstuvwxyz|日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜符|”

dictionary: pinyin_simp

……

schema:

author:

– “發明人 朱邦復先生”

dependencies:

– pinyin_simp

重新部署!

完美!

bigzhu:「我就是在瞎说, 别让我举证」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158315.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档