home
home copied to clipboard
关于自定义短语的字数限制
请问自定义短语有字数限制吗?具体规则是怎样的? 我简单测试了一下,只加载明月拼音简化字,定义一条编码为vv的短语,取编码为vv是为了避免其他词库的重码混进来,测得短语长度最大为313个汉字,超过的话就会崩溃; 再定义两条编码为vv的短语,这时每条短语长度就不能再为313个汉字了,会崩溃,经多次测试,每条长度只能为153个汉字,两条合计为306个汉字,比313少了7。而且,两条可以不一样长,只要长度合计不超过306即可。 似乎字数限制是与同屏显示的重码短语的总字数有关。如果有三条重码短语,估计字数之和应该又比306要少几个汉字吧? 这种超字数崩溃或许就是一个bug。希望能修复这个bug,解除这个限制,至少这个同屏重码字数要在3000字以上。
iDvel给我推荐 Alfred 的 snippets ,看介绍,它是一个效率工具。个人觉得输入法的短语功能可能比它好用,一样可以是效率工具。 以前的拼音加加的短语功能比较强大,可以定义很多需要快速输出的内容,堪称人类大脑的扩展,本人一直使用,但它可能有十年没升级了,直到最近系统从win7升级为win10,必须寻找替代工具。 它的短语定义使用TXT文件,这点和rime很像,直接编辑,保存即可生效(应该是后台自动编译)。格式:编码=短语,无需定义权重,权重就是定义的先后顺序,比较傻瓜。允许使用“/”进行分行,没有单条短语的字数限制,也没有短语条数的限制,我目前最多一条短语300多个汉字,有近万行。这或许就是它长久保持生命力的原因。 期望rime也能实现相关的功能,最关键是字数限制的问题。
我猜是太長一屏顯示不下,前端崩潰了
atext 也可以試試 Espanso
我猜是太長一屏顯示不下,前端崩潰了
测试时,短语太长已经撑出屏幕了,但rime还没死,继续加长到一定程度,才死。估计是另一个参数在影响。建议自动识别长度自适应,或增加设置显示宽度的参数,而不限制定义长度。
atext 也可以試試 Espanso
谢谢!不想试其他工具,就想使用rime,能用输入法解决的问题,就用输入法解决。
或使用librime-lua lua_processor 不要使用 candidate 只要match keyword 直接commit_text
-- filename: snippet_proc.lua
local function load_snippets()
return {
['/abc'] = ('abc'):rep(10000),
}
end
local function commit_text(eng,text)
eng:commit_text(text)
end
local M = {}
function M.init(env)
env.snippets= load_snippets()
end
function M.func(key,env)
local input = env.engine.context.input or ""
local char = key.keycode >0x21 and key.keycode <0x80
and string.char( key.keycode) or ""
local text = #char >0 and env.snippets[input .. char]
if text then
commit_text(env.engine, text)
env.engine.context:clear() -- 增加 clear input
return 1 -- accepted
end
return 2 -- Noop
end
return M
-- in rime.lua
-- snippet_proc= require('snippet_proc')
-- in custom.yaml
engine/processors/@after 0: lua_processor@snippet_proc
或使用librime-lua lua_processor 不要使用 candidate 只要match keyword 直接commit_text
-- filename: snippet_proc.lua local function load_snippets() return { ['/abc'] = ('abc'):rep(10000), } end local function commit_text(eng,text) eng:commit_text(text:sub(1,2020) ) end local M = {} function M.init(env) env.snippets= load_snippets() end function M.func(key,env) local input = env.engine.context.input or "" local char = key.keycode >0x21 and key.keycode <0x80 and string.char( key.keycode) or "" local text = #char >0 and env.snippets[input .. char] if text then commit_text(env.engine, text) return 1 -- accepted end return 2 -- Noop end return M -- in rime.lua -- snippet_proc= require('snippet_proc') -- in custom.yaml engine/processors/@after 0: lua_processor@snippet_proc
arch linux Ver: librime 1.7.3 librime-lua 177 lua Lua 5.4 還是有長度限制 我測試 text:sub(1,202x) ok 超過就不行了,整個卡住