之前有跟大家介绍过 Rime 这款可定制化输入法软件,也说过一些它出众的地方,后面会跟大家逐步介绍这些出众的地方。
Rime 其实正确的来说是一个跨平台的输入法算法框架,在不同平台下有不同的叫法(Windows 下叫小狼毫、Mac 下叫鼠须管),不过习惯将其称为 Rime。
前面有跟大家介绍了 Rime 的一些配置文件以及其用途,今天开始跟大家对一些比较重要的配置文件逐个讲解其用法。
上次给大家讲了如何设置输入法候选词横排显示,今天再来说说如何给 Rime 设置成动态时间、日期、星期显示,什么是动态显示?大概就是下面微软输入法这样输入「sj」 就会显示当前时间。
修改方法也很简单,只需要修改与添加一个文件即可;
要修改的文件:%APPDATA%\Rime\build\luna_pinyin_simp.schema.yaml
下面只摘录了部分信息,只需要在 translators: 的下面一行添加上一行代码即可,记得要使用空格与下面的内容对齐。
# luna_pinyin_simp.schema.yaml
...
translators:
- lua_translator@date_translator #动态时间、日期、星期展示
- punct_translator
...
添加内容的路径:%APPDATA%\Rime\ (就在 Rime 的主目录下)
新建一个文件名字为 rime.lua 的文件,将下面的内容写入进文件后保存,最后重新部署即可。
其中 "rq"、"sj"、"xq" 的三个自定义值可以按你自己的喜好修改为 date、time、week 都可以。
function date_translator(input, seg)
if (input == "rq") then
--- Candidate(type, start, end, text, comment)
yield(Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%Y年%m月%d日"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%m-%d"), ""))
yield(Candidate("date", seg.start, seg._end, os.date("%Y/%m/%d"), ""))
end
if (input == "sj") then
--- Candidate(type, start, end, text, comment)
yield(Candidate("time", seg.start, seg._end, os.date("%H:%M"), ""))
yield(Candidate("time", seg.start, seg._end, os.date("%H:%M:%S"), ""))
end
if (input == "xq") then
local weakTab = {'日', '一', '二', '三', '四', '五', '六'}
yield(Candidate("week", seg.start, seg._end, "周"..weakTab[tonumber(os.date("%w")+1)], ""))
yield(Candidate("week", seg.start, seg._end, "星期"..weakTab[tonumber(os.date("%w")+1)], ""))
yield(Candidate("week", seg.start, seg._end, "礼拜"..weakTab[tonumber(os.date("%w")+1)], ""))
end
end
--- 过滤器:单字在先
function single_char_first_filter(input)
local l = {}
for cand in input:iter() do
if (utf8.len(cand.text) == 1) then
yield(cand)
else
table.insert(l, cand)
end
end
for cand in ipairs(l) do
yield(cand)
end
end
那么今天就先写到这儿,有疑问记得在评论区留言、后台私信留言
往期推荐阅读:
文/奇趣异阁(始发于公众号)
一个致力于日更365天的利他主义者,Windows效率软件重度使用者,也是一个懒人,有关于软件效率提升的问题都欢迎与我链接,今天是日更的第255天,作于2023/12/16。
网友评论