emacs有什么major-mode适合用于编辑电子表格的公式吗?

这不是vba脚本,就是使用excel里的几个公式函数组合,比如在表格中做一个下拉菜单,选中后其它单元格值要对应变化,在单元格中写类似这样的if语句实现

=IF(b2="a","选择了a",
  IF(b2="b","你选择了b",
   IF(b2="c","您选择了c",sum(f1:f200))))

在org-mode中文学编程写好后复制到电子表的单元格中,然而发现不知道该用那个major-mode合适

有个 cell-mode,可以看看reddit的讨论

orgmode 并没有特别为 formula 准备 major mode,写死了 fundamental-mode:

如果更改的话,需要重新绑定 *Edit Formulars* 窗口的快捷键&局部变量等等,详见 org-table-edit-formulas 函数。

除了没有语法高亮&缩进距离有点大看起来不太美观之外,fundamental-mode 似乎也够用,开启括号&引号自动补齐,编辑不存在太大问题。

缩进可以修改 org-table-fedit-lisp-indent,它内部调用的是 lisp 缩进函数。

image

虽说是“写死了”,但是可以把函数整个 copy 过来把 fundamental-mode 换成其他的 mode,然后覆盖掉原有函数,也很方便。