V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
BaseException
V2EX  ›  分享创造

让 rime 输入法用上颜文字

  •  
  •   BaseException · 2023-07-21 20:41:50 +08:00 · 1503 次点击
    这是一个创建于 523 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是原文


    1. 过程详解

    如何让 rime 输入法(小狼毫、鼠须管、中州韵)输入颜文字?和 custom_phrase.txt 的实现机制类似,我们定义一个词典 xxx.dict.yaml 文件,然后定义 name version sort 等属性,词典中的内容分为三栏

    • 上屏文本
    • 权重

    rime 在三大基础桌面系统平台上的默认用户目录如下

    • [ Windows ] %APPDATA%\Rime
    • [ macOS ] ~/Library/Rime
    • [ Linux ] ~/.config/ibus/rime ( 0.9.1 以下版本是 ~/.ibus/rime

    拿 windows 举例,在 %APPDATA%\Rime 路径下创建文件 kaomoji.dict.yaml

    保存以下内容

    # Rime dictionary - kaomoji
    # encoding: utf-8
    # ref: https://tool.lmeee.com/yanwenzi
    # description: https://zh.wikipedia.org/zh-sg/%E9%A2%9C%E6%96%87%E5%AD%97
    ---
    name: kaomoji
    version: "2023-07-20"
    sort: origin
    ...
    
    (。・∀・)ノ	kmj	1
    ( ̄ε(# ̄) 	kmj	1
    <(  ̄^ ̄)> 	kmj	1
    

    特别关注:

    1. 文件需要使用 utf-8 编码保存
    2. 上屏文本 权重 之间需要使用 tab ,而不能使用空格

    保存此文件之后,检查你当前使用的输入方案,比如我用的是小鹤双拼,找到文件 double_pinyin_flypy.schema.yaml 查看 translator/dictionary 项使用的是哪个词典文件,比如我的

    rime 颜文字 1.jpg

    于是全局搜索 name: rime_ice (推荐使用 vscode 打开用户数据目录)找到 rime_ice.dict.yaml 文件,接着找到 import_tables 项,增加 kaomoji 作为颜文字词库。

    rime 颜文字 2.jpg

    然后重新部署 rime 就可以通过输入 kmj 选取颜文字,之所以使用 kmj 作为 key ,是因为颜文字的英文单词就叫 kaomoji,所以个人认为 kmj 作为键非常合适,在 26 键键盘上也非常好输入。

    rime 颜文字 3.jpg

    2. 我整理好的 kaomoji.dict.yaml

    emoji 来源主要是这个网站提供的,包含了 400 多个颜文字条目

    打开 F12 写一段 js 就能拿到所有颜文字文本

    var pTags = document.querySelectorAll('#ywzList li p');
    
    for (var i = 0; i < pTags.length; i++) {
      console.log(pTags[i].textContent);
    }
    

    现提供我整理好的 yaml 文件供大家下载,敬请使用。

    下载链接 https://emby.940304.xyz:23399/f/685586dd6bb240f9aadc/ (链接将于 2024-01-17 20:28:42 过期,如果到时候过期了请再联系我)

    3. 参考

    3 条回复    2024-06-26 13:48:06 +08:00
    ljsh093
        1
    ljsh093  
       2023-07-21 20:52:30 +08:00
    我以为 emoji 是这个😀
    BaseException
        2
    BaseException  
    OP
       2023-07-21 22:01:35 +08:00
    @ljsh093 #1 哈哈 一个是 emoji ,本文是 kaomoji
    faywong8888
        3
    faywong8888  
       182 天前
    感谢楼主整理,为中文互联网添砖加瓦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:54 · PVG 11:54 · LAX 19:54 · JFK 22:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.