说实话,喵老师刚刚打开 Numi的时候基本上惊呆了,毕竟很久没有看到设计如此优雅清爽的软件了,要不是默认打开的 Example 文件上一堆演算,很难把这个漂亮的「记事本」和一个「计算器」软件联系起来:
是的,正如你所见,这个计算器就像在记事本里打草稿记流水账,然后优雅的在右边帮你显示一个答案,一切即自然又优美,不得不说非常的赏心悦目「GORGEOUS」。Markdown 一样的简洁语言风格外加清爽的语法着色,每次的演算和账单都可以以文本形式永久保存,如果熟悉 Mathematica 软件的理工科同学,应该对这个简化版的「Notebook」感到并不陌生,甚至在许多自然语言处理的细节上,Numi 相较于 Mathematica 显得更加亲民。
其实 Numi 并不是「自然语言文本计算器」的鼻祖,早在 2013 年底 @化学心情 撰写的「能听懂人话的计算器:Soulver」中介绍到的 Soulver 就是一款老牌的文本计算器,此外 Soulver 还有 Mac 版本「这不是你常见的那种计算器,它善解人意:Soulver for Mac」。但与古老而笨重的 Soulver 相比,Numi 这个后起之秀在软件的颜值上可以说紧跟了时代的潮流,淡雅的白色和简约的黑色(夜间模式)配上 Coding Style 的语法着色,很有现代 IDE 或文本编辑器的神韵,而全身上下极少的按钮和交互彻底把界面让给了「计算」这一核心。而且,相较于 Soulver 全各个平台独立 $10+ 的收费,免费的 Numi 显得很温文尔雅,更何况,Numi 还支持非常丰富的扩展。这些,后文我都会详细地介绍到。
首先,作为一款「计算器」,最重要的就是计算功能,我们先来看看 Numi 支持一些什么样的计算。
单位转换
使用关键词 in/into/to/as
来进行单位转换,多个单位进行混合运算的时候 Numi 会自动进行转换。
常见货币单位如下(来源 ISO 4217):
货币名称 | 货币符号 | 货币名称 | 货币符号 |
---|---|---|---|
人民币 | RMB / CNY | 美元 | USD / $ |
日元 | JPY | 欧元 | EUR |
英镑 | GBP | 德国马克 | DEM |
瑞士法郎 | CHF | 法国法郎 | FRF |
加拿大元 | CAD | 澳大利亚元 | AUD |
港币 | HKD | 奥地利先令 | ATS |
芬兰马克 | FIM | 比利时法郎 | BEF |
爱尔兰镑 | IEP | 意大利里拉 | ITL |
卢森堡法郎 | LUF | 荷兰盾 | NLG |
葡萄牙埃斯库多 | PTE | 西班牙比塞塔 | ESP |
印尼盾 | IDR | 马来西亚林吉特 | MYR |
新西兰元 | NZD | 菲律宾比索 | PHP |
俄罗斯卢布 | SUR | 新加坡元 | SGD |
韩国元 | KRW | 泰铢 | THB |
时区转换
可以使用 time
和 now
关键词来获取本地时间,当想要获取别的时区的时间时,可以在关键词前面加上时区缩写作为前缀或者结合 in
关键词把时区作为后缀。转换的结果会实时与全球时间同步,因此任何时刻运算的结果都会基于当前时刻给出。(截止到发稿为止,此功能尚有小部分故障,不能正确转换时区)
PST timeBeijing timeTime in Madrid2:30 pm HKT in Berlin
同时,也可以利用 Numi 计算两个时区之间的时差。
数学运算
你可以用运算符号或者关键词来进行数学运算,括号前后可以省略乘号。
常见的数学运算符号:
运算 | 示例 | |
---|---|---|
加法 | + , plus , and , add , with | |
减法 | - , minus , subtract , without | |
乘法 | * , x , times , multiplied by , mul | |
除法 | / , divide , divided by | |
乘方 | ^ | |
按位与 | & | |
按位或 | ` | ` |
按位异或 | xor | |
左位移 | << | |
右位移 | >> | |
取模/求余 | mod |
数制换算
除了使用十进制数系以外,Numi 还提供了二进制、八进制和十六进制数系,分别使用 0b
、0o
和 0x
前缀即可。另外,还可以使用 sci
或者 scientific
关键词来把结果显示为科学计数法。
百分比
除了简单的使用加/减一个百分比之外($10 - 40%
),Numi 还提供了额外的高级用法:
运算 | 示例 |
---|---|
百分比值 | 20% of $10 |
按百分比增加 | 5% on $30 |
按百分比减少 | 15% off 40RMB |
相对百分比 | $50 as a % of $100 |
多出百分比 | $70 as a % on $20 |
少于百分比 | $20 as a % off $70 |
按百分比反推 | 5% of what is 60RMB |
按多出百分比反推 | 5% on what is 60RMB |
按少于百分比反推 | 5% off what is 60RMB |
尺度缩写
对于英文用户而言,千 thousand、百万 million、十亿 billion是常用的尺度单位,用以描述大数字。因为 m
是米的单位符号,K
是卡尔文的单位符号,所以 Numi 采用大小写敏感的方式,用 M
来代替 million
的缩写,用 k
来代替 thousand
的缩写。
$2k 2M RMB
变量和常数
Numi 提供了 =
运算符来声明变量和重复使用。需要注意的是,和大多数编程语言一样,被保护的关键词都是不能用来命名变量的。比方说,K
就不能命名变量,因为它是热力学单位开尔文的单位符号。同样,变量命名也不能以数字开头。
然后 Numi 内置了一些常用的数学常数:
常数 | 值 |
---|---|
Pi | 3.1415926536 |
E | 2.7182818285 |
函数
Numi 还内置了许多常见的函数:
描述 | 函数 | 示例 |
---|---|---|
开 N 次根 | root | root 2 (8) |
开平方根 | sqrt | sqrt 16 |
开立方根 | cbrt | cbrt 8 |
取绝对值 | abs | abs(-8) |
取对数 | log | log 2 (10) |
自然对数 | ln | ln 3 |
阶乘 | fact | fact 5 |
四舍五入取整 | round | round 3.45 |
向上取整 | ceil | ceil 3.76 |
向下取整 | floor | floor 2.56 |
正弦函数 | sin | sin 45 degree |
余弦函数 | cos | cos 3.45 |
正切函数 | tan | tan 8 |
反正弦函数 | arcsin | ascsin 1 in degree |
反余弦函数 | arccos | arccos 0.5 in degree |
反正切函数 | arctan | arctan 30 |
双曲正弦函数 | sinh | sinh 3 |
双曲余弦函数 | cosh | cosh 9 |
双曲正切函数 | tanh | tanh 11 |
需要注意的是,Numi 的三角函数默认使用的是弧度制,如果想使用角度进行运算,需要使用 degree
关键词。
结果重用
Numi 支持部分的结果重用,比如可以使用 prev
关键词来调用上一行的结果;使用 sum
或者 total
关键词来计算上面所有行(直到空白行为止)的加和:
常用单位制的支持
温度:kelvin, celsius, fahrenheit。
长度:meter, mil, points, lines, inch, hand, foot, yard, rod, chain, furlong, mile, cable, nautical mile, league。需要注意 in
由于是单位转换的关键词,所以并不用来代表英寸(inch)。
面积:square
或者 sq
加上所有长度单位均可,另外还有 hectare, are, acre。
体积:cubic
、cu
或者 cb
加上所有长度单位,同时还提供美国厨房常用的蜜汁单位:pint, quart, gallon, tea spoon, table spoon, cup。
重量:gram, tonne, carat, centner, pound, stone, ounce。
角度:radians 和 degree。
格式
在行首使用 #
符号来确定一个头部,相当于这张稿纸的标题。如果你想注释掉行内的一个部分,则使用双引号 ""
,而如果要注释掉整行的话,则需要使用双斜杠 //
。
丰富的扩展
如果说 Numi 定义了一种耳目一新的「文本计算」方式的话,那其可以支持 JavaScript 语言的扩展可以说进一步把软件的可用性提升到了更高的高度。作者在 GitHub上提供了详细的文档教你如何使用 JavaScript 语言来扩展 Numi 的全局变量、单位和函数。
而对于我而言,最方便的一个扩展当属对于 Alfred 的支持。Alfred 的 PowerUser 可以下载并添加 Alfred Workflow导入这个动作。
Numi 的关键词是 n
,比如前面的计算百分比的算式,在 Alfred 中可以这样使用 n 5% off what is 60RMB
:
回车可以把结果保存到剪贴板,方便在别处使用结果。
有了这个动作之后,Alfred 的计算功能得到了大幅度增强,我使用 Numi 的频率提高了许多。而且得益于我一天呼出 Alfred 上百次的肌肉记忆,让计算变得效率又便捷。
写在后面
总的说来,说 Numi 是 Mac 平台上最「美」的计算器也毫不为过。更何况,Numi 还是一款免费软件,现在可以在 官方网站直接下载,大家何不下载下来体验一番。