假设我突出显示了缓冲区中的一段文本。该区域包含由空格分隔的数字。例如
1 19 23 28 41
是否有一些带有现成的交互式命令的软件包,可以解析来自该区域的数字并执行诸如求和和平均值之类的常见计算,类似于电子表格程序在其状态栏中显示的内容?类似于:
- M-x
sum-region
=>112
显示在迷你缓冲区中 - M-x
average-region
=>22.4
显示在迷你缓冲区中
或者使用组合命令来同时进行不同的计算,或者使用模式行显示。
我认为org-mode
电子表格有这样的功能,但如果您还没有使用 org 电子表格,它们是否可以轻松使用?是否calc
有针对区域进行操作的功能?
答案1
发现一个非常简单的方法calc
:
- 突出显示源缓冲区中的数字
- M-x
calc-grab-region
(或者C-x * g) - M-x
calc-vector-sum
,M-xcalc-vector-mean
,M-xcalc-vector-sdev
, ETC。
C-x *是一个前缀序列,它以多种方式调用 Calc;后面的字母决定使用哪一种(例如,ginvokes calc-grab-region
、rinvokes calc-grab-rectangle
)。
统计函数也可以通过键序列调用。例如:
- u+:和(
calc-vector-sum
) - uC:协方差(
calc-vector-covariance
) - uM: 意思是 (
calc-vector-mean
) - uS:标准差(
calc-vector-sdev
) - vR+:和(
(calc-reduce '(2 calcFunc-add "+"))
) - vR*: 产品 (
(calc-reduce '(2 calcFunc-mul "*"))
)
答案2
我建议用 Emacs Lisp 来简单计算总和,
(+ 1 19 23 28 41)
然后使用Cx Ce进行求值,其值就会出现在回声区域中。