2

有没有办法将我定义的单词保存到文件中,以便以后继续试验?

到目前为止,我找到了从控制台复制+粘贴定义的唯一方法,如果它们仍然可见的话。


我是从头开始的,所以我犯了很多错误并在以后更正它们,我想保存我之前定义的单词并在下一个会话中重复使用它们。

这是一个简单的例子:

Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
:hello ."hello"; 
:1: Undefined word
>>>:hello<<< ."hello";
Backtrace:
$7F29BBAB3A00 throw 
$7F29BBAC9C98 no.extensions 
$7F29BBAB3CC0 interpreter-notfound1 
: hello ."hello"; 
:2: Undefined word
: hello >>>."hello";<<<
Backtrace:
$7F29BBAB3A00 throw 
$7F29BBAC9C20 no.extensions 
$7F29BBAB7338 compiler-notfound1 
: hello ." hello";  ok
: 2hello hello hello ;  ok
2hello  hellohello ok
: hello ." hello "; \ added space to end redefined hello   ok
2hello  hellohello ok                   
: 2hello hello hello ; redefined 2hello   ok
2hello  hello hello  ok
bye

现在我有工作hello(最后有空格)和工作2hello(使用编辑hello) - 可以说,我有更多的麻烦来解决2hello定义形式和定义hello现在不在屏幕上。

  1. 有没有办法保存hello并保存2hello到文件中,我可以在第二天使用它来制作更复杂的单词?
  2. 它可以是文本文件吗,所以我可以使用一些编辑器(比如vim)来清理所有错误的定义并评论那些我想保留的?

我想以文件welcome.fth 结束:

: hello \ -- ; say hello and space at the end of word, to be able simply concatenate that 
    ." hello ";
: 2hello \ -- ; repeats hello two times
    hello hello ; 

第二天就能来,继续发现

Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
include welcome.fth  ok
2hello  hello hello  ok
\ now I can continue with learning
4

2 回答 2

1

首先,gforth 将其历史记录保存在 ~/.gforth-history 文件中,任何文本编辑器都可以获取该文件以供我写作

其次,可以使用向上箭头访问历史记录,并使用编辑器保存文件,我可以爬回去并将我的输入保存到文件中。

GNU FORTH 有编辑器吗?

只需将位置设置0 t为第一行,将我的代码的最后一行添加到那里,在 as 之前插入新行i并以这种方式填写所有其他行重新开始。insertilinsert line

然后flush将缓冲区写入磁盘,下次使用此文件use test.bl并使用0 load.

(或在编辑器中将块文件转换为普通文本include test.bl

我可以在不离开 gforth 的情况下做到这一点,所以它对我有用。

(最终我可以以某种方式改进它,因为它也写在了 :)

于 2019-07-13T02:56:03.423 回答
0

这是在 GForth 中访问任何外部编辑器的一种非常简单的方法。我将在这里解释它如何在 Linux(任何版本)下工作,但我猜这个技巧也适用于其他操作系统,它适用于 Apple OSX 系统。

1) 只需确保您喜欢与 GForth 一起使用的编辑器已安装在您的系统上。VIM 已经安装在 Linux 和 OSX 上,在 Windows 10 下你可以原生运行 BASH shell(谷歌为:'如何在 Windows 10 上安装 BASH')我知道 VIM 是一个非常强大的编辑器,但我不喜欢因为它不是屏幕编辑器。一个很棒的编辑器是 MICRO,它甚至允许鼠标控制!(检查:https ://github.com/zyedidia/micro/wiki/Installing-Micro )

2) 这里是诀窍:在 GForth 中有一种向操作系统发送命令的方法: - 启动 GForth 并输入以下命令:S" pwd" system 并按 ENTER 键...(pwd = Print Working目录)

使用 S"pwd" system ,您从 GForth 中将命令 'pwd' 发送到操作系统,该命令将打印 Linux 操作系统的“工作目录”。

除了“pwd”,你当然也可以使用另一个命令......

好吧,您猜对了:您输入编辑器的名称而不是“pwd”,然后输入“./micro”,然后:MICRO 编辑器启动,现在您可以开始在编辑器中输入 GForth 代码。

当您准备好执行代码时,只需将代码保存到一个文件中,例如:mycode.f 该文件将保存在步骤 2(上图)屏幕上打印出来的目录中

要在 GForth 中运行代码,请输入以下命令:include mycode.f
(您不必输入 PATH,您的文件已保存在 GForth 的默认目录中!)

它将被添加到您的 WORDS 词汇表中,现在您可以测试代码了。

希望你会发现这个技巧很有用。享受使用您选择的编辑器在 Gforth 中编写代码的乐趣!

于 2020-04-16T21:50:57.500 回答