Gforth 控制台中的多行命令行编辑

Multiline command-line editing in Gforth console

我刚刚开始学习 Forth 编程语言。 我在 Ubuntu 上使用 Gforth。在 Gforth 交互式控制台中,我想进行缩进,但需要换行。 Enter 键不起作用,它执行了代码。对比一下,比如在web浏览器控制台测试JavaScript代码时,shift+enter换行不执行代码。我想要那样的东西。我应该按什么键?除了使用像 vim 这样的文本编辑器,还有其他方法吗? 最好的。

Gforth 不支持多行编辑(参见 manual)。

解决方法是在另一个 window 中使用您最喜欢的编辑器编辑文件,然后在 Gforth 控制台中重新加载此文件:

include /tmp/scratch.fs

外部文件也可以通过如下命令在 Gforth 控制台中编辑:

"vim /tmp/scratch.fs" system

所以一句话是:

"vim /tmp/scratch.fs" system  "/tmp/scratch.fs" included

这可以包装成一个定义:

: scratch "vim /tmp/scratch.fs" system  "/tmp/scratch.fs" included ;

所以单词 scratch 将打开一个编辑器,然后加载编辑后的文件。

注意:如果您使用的是非常旧的 Gforth 版本,则必须对字符串文字使用 s" ccc" 而不是 "ccc"

要有条件地include/exclude文件中的某些部分,单词[defined] and [if] can be used; to erase the previous instance of the loaded definitions the word marker可以用作:

[defined] _clear [if] _clear [then]
marker _clear

\ some definitions
\ ...

考虑到通常的控制流词只能在定义中使用。