如何在电子表格计算器sc中撤消?

如何在电子表格计算器sc中撤消?

电子表格计算器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,另请参阅这个联机帮助页),所以也许你可以获取他们的源码包并在您的系统上编译它。

相关内容