Skip to content

一、 更新内容:

  1. 增加sbfm_delayed.lua脚本,以优化飞码主单延顶时的提示信息;
  2. 优化飞系的声笔字提示与顺序;
  3. 声笔简码和声笔拼音支持用四个字的声母加单引号来输入一个二简词加两个二简字的组合;
  4. 优化symbols,以便快速输入箭头符号;
  5. 纠正声笔拼音数选词中多一个「给予」的错误;
  6. 优化日期和时间的lua脚本;
  7. 增加e引导的计算器;
  8. 修改weasel.yaml,以突出注释文字的显示;
  9. 声笔Win版sbxlm目录中增加backgrounds子目录,并在其中增加.nomedia文件。

**更新方法:**运行安装程序后,把除用户词典外的所有文件和文件夹复盖一下,这样可以保留已有的调频和造词。

在更新的项目中,第一项和第七项(即斜体部分)需要特别说明一下。

二、优化飞码主单延顶时的提示信息

飞码主单的延顶模式不仅有利于尽量避免使用大写,而且输入词组时使用的编码与词组模式完全一样,如下所示。

蝴蝶 hcdc 饕餮 tsts 耄耋 mtdt 黑黢黢 hqqh 汹涌澎湃 xypp 中华人民共和国 zhrg

在词组码长为四时,需要注意观察,若其后将发生非编码顶屏,且首选不是两个二简字时,而想输入的又是两个二简字时,则需先用分号将其作为二简组合上屏,否则会误将首选词上屏。例如,输入「选重后,」时,在输到「重后」时,结果如下。

image-20230817161455921

此时,如果用逗号顶屏,那么会将「垂饵虎口」顶上屏幕,并同时上屏逗号,这不是期望的结果。若想上屏「重后」,则必须先用分号将「重后」作为两个二简字的组合上屏,然后再输入逗号。这是在初始使用主单延顶时非常容易犯的错误,请务必注意。

延顶时首选词组不能被后续的字词顶上屏幕,必须先用空格上屏,而且词组的重码还得用大写的 AEUIO 来选择。如果不习惯输入大写字母,可以修改一下 schema 文件,通过删除行前的 #号来解开下图中被注释掉的五项,用 23789 来代替大写选重键。

image-20230727140759102

需要注意的是,在用 23789 来选重后,对数字顶屏有点影响。若要同时使用增强模式,则可能与数选词发生冲突。还有,单字在四码时首选仍然是可顶屏的,单字的四码重码仍然是用小写的 aeuio 来选择的。

相比即顶模式,延顶还有个好处,那就是可以像词组模式那样用组合变换,将一二简字词组合起来,通过 Tab、分号或者单引号一起上屏,从而节约用键。

三、e 引导的脚本

用 e 加表达式来完成各种计算功能,相当于一个强大的快速计算器,例子如下。

e1+1 輸出 2
efloor(9^(8/7)*cos(deg(6))) 輸出 -3
ee^pi>pi^e 輸出 true
emax({1,7,2}) 輸出 7
emap({1,2,3},\x.x^2|) 輸出 {1, 4, 9}
emap(range(-5,5),\x.x*pi/4|,deriv(sin)) 輸出 {-0.7071, -1, -0.7071, 0, 0.7071, 1, 0.7071, 0, -0.7071, -1}
e$(range(-5,5,0.01))(map,\x.-60*x^2-16*x+20|)(max)() 輸出 21.066
etest(\x.trunc(sin(x),1e-3)==trunc(deriv(cos)(x),1e-3)|,range(-2,2,0.1)) 輸出 true

image-20230817161333742

除了一般的 lua 表达式外,该脚本还支持下列函数,按字母顺序排列。

abs = math.abs
acos = math.acos
arev = function (arr)
array = function (...)
asin = math.asin
atan = math.atan
avg = function (t)
ceil = math.ceil
chain = function (t)
cos = math.cos
date = os.date
deg = math.deg
deriv = function (f, delta, dc)
e = exp(1)
exp = math.exp
fac = function (n)
filter = function (t, ...)
floor = math.floor
foldl = function (t, f, acc)
foldr = function (t, f, acc)
inf = math.huge
integ = function (f, delta, dc)
irange = function (from, to, step)
irev = function (arr)
isinteger = function (x)
lapproxd = function (f, delta)
ln = math.log
log = function (x, base)
map = function (t, ...)
max = function (arr)
MAX_INT = math.maxinteger
min = function (arr)
MIN_INT = math.mininteger
mod = math.fmod
MSE = function (t)
nCr = function (n, r)
nPr = function (n, r)
path = function ()
pi = math.pi
rad = math.rad
random = math.random
randomseed = math.randomseed
range = function (from, to, step)
rk4 = function (f, timestep)
round = function (x, dc)
sapproxd = function (f, delta)
sin = math.sin
sqrt = math.sqrt
sum = function (t)
tan = math.tan
test = function (f, t)
time = os.time
trapzo = function (f, a, b, n)
trunc = function (x, dc)