mac-鼠须管-使用lua脚本

mac-鼠须管-使用lua脚本

  1. lua 目录中,添加脚本,以 date 日期文件为例:
--[[
date_translator: 将 `date` 翻译为当前日期

translator 的功能是将分好段的输入串翻译为一系列候选项。

欲定义的 translator 包含三个输入参数:
 - input: 待翻译的字符串
 - seg: 包含 `start` 和 `_end` 两个属性,分别表示当前串在输入框中的起始和结束位置
 - env: 可选参数,表示 translator 所处的环境(本例没有体现)

translator 的输出是若干候选项。
与通常的函数使用 `return` 返回不同,translator 要求您使用 `yield` 产生候选项。

`yield` 每次只能产生一个候选项。有多个候选时,可以多次使用 `yield` 。

请看如下示例:
--]]

local function translator(input, seg)
   -- 如果输入串为 `date` 则翻译
   if (input == "date" or input == "shijian") then
      --[[ 用 `yield` 产生一个候选项
           候选项的构造函数是 `Candidate`,它有五个参数:
            - type: 字符串,表示候选项的类型
            - start: 候选项对应的输入串的起始位置
            - _end:  候选项对应的输入串的结束位置
            - text:  候选项的文本
            - comment: 候选项的注释
       --]]
      yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), "日期"))
      --[[ 用 `yield` 再产生一个候选项
           最终的效果是输入法候选框中出现两个格式不同的当前日期的候选项。
      --]]
      yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), "日期"))
      yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d %H:%M:%S"), "日期时间"))
   end
end

-- 将上述定义导出
return translator

  1. rime.lua 中引入此脚本:
-- date_translator: 将 `date` 翻译为当前日期
-- 详见 `lua/date.lua`:
date_translator = require("date")
  1. double_pinyin.custom.yamldouble_pinyin.schema.yaml 中配置上此处理程序
  engine/translators:
    - lua_translator@date_translator
    - lua_translator@week_translator
    - lua_translator@time_translator
    - lua_translator@number_translator
    - lua_translator@reverse_lookup_filter

最终效果

1 date

鼠须管-date效果 20211226003919.png

2 time

鼠须管-time效果 20211226004010.png

3 number

输入 / ,然后输入数字 1,会显示大写数字
鼠须管-数字展示效果 20211226012849.png

参考

https://github.com/hchunhui/librime-lua


本站总访问量次 本站访客数人次 本文总阅读量