电子表格计算器SC是一个非常古老的基于控制台的程序。它的作用正如其名称所示。我在其手册页中找不到如何撤消操作。我目前将它与 RCS 一起使用,IE。在进行重大更改之前,在 RCS 中手动创建版本,并根据需要轮换回某个版本。我想知道是否有更好的方法来做到这一点。谢谢。
答案1
我正在制作一个基于“sc”的终端电子表格。它具有撤消/重做、映射和其他功能。如果有兴趣,你可以看看: https://github.com/andmarti1424/scim
答案2
这可能是虚假的希望,但使用来自 Fedora 的 7.16 RPM 源似乎可以撤消,可能是 Debian 软件包源,具有“Yank”和“Pull”功能,以及一些策略调整。
例如,=命令,在sc.c中,第1140行,改变了一行,
case '=':
if (locked_cell(currow, curcol))
break;
/* set mark 0 */
savedrow[27] = currow;
savedcol[27] = curcol;
savedstrow[27] = strow;
savedstcol[27] = stcol;
/* btiffin, yank current cell to buffer 0 */
yankr(lookat(currow, curcol), lookat(currow, curcol));
(void) sprintf(line,"let %s = ", v_name(currow, curcol));
linelim = strlen(line);
insert_mode();
break;
调用将yankr
当前单元格内容放入“0”缓冲区中,如“x”命令或“yy”命令。因此,如果犯了错误,至少是简单的输入,“pp”会将旧的单元格内容放回原处。
这可能是错误的,但它在这里发挥了魅力。接下来是yankr
范围操作。乍一看,应该不再需要 50 个左右的战略调用来yankr(start, end)
在出现错误时依靠 Pull 命令。至少达到一个水平。
前四个实验成功了
= LET, < LEFTSTRING, > RIGHTSTRING and \ LABEL
使用时的“边缘”感觉已经sc
大大减弱。用例不仅仅是电子表格,而是从外部脚本驱动电子表格并通过简单的popen
调用设置/获取单元格值,顺便说一句,在 COBOL 中,GnuCOBOL。
请注意,这只是今天。明天可能会发现致命的错误头脑,似乎是一个简单的解决方案。嗯,现在思考一下,在点击“发布”之前先读一遍,它可能不是缓冲区“0”,...更多阅读源代码,无论如何点击“发布”。
答案3
这Debian 软件包知道撤消(键绑定u,另请参阅这个联机帮助页),所以也许你可以获取他们的源码包并在您的系统上编译它。