有没有一种方法可以将我定义的单词保存到文件中,以便以后继续进行实验?
到目前为止,我仍然找到了从控制台复制+粘贴定义的唯一方法,前提是它们仍然可见。
我从头开始,所以我犯了很多错误,后来更正了这些错误,我想保存我早先定义的单词,并在下一个会话中重用它们。
这是一个简单的例子:
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
的格式和定义。
hello
和2hello
保存到文件中
第二天就能使用更复杂的单词吗?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
答案 0 :(得分:0)
首先,gforth将其历史记录保存在〜/ .gforth-history文件中,该文件可以由任何文本编辑器收集以用于我的写作
第二,可以使用向上箭头访问历史记录,并可以使用编辑器来保存文件,我可以向后爬并将输入内容保存到文件中。
Does GNU FORTH have an editor?
只需将位置0 t
设置为第一行,将i
设置为insert
到我的代码的最后一行,以将其放置在此处,在il
之前插入新行,将{ {1}},然后以这种方式重新填写所有其他行。
然后insert line
缓冲到光盘,下一次使用此文件flush
并用use test.bl
加载定义。
(或将阻止文件转换为编辑器中的普通文本,然后0 load
将其转换为文本)
我可以在不离开gforth的情况下做到这一点,因此对我有用。
(并且最终我可以以某种方式进行改进,因为它也是用第四种语言写的:)
答案 1 :(得分:0)
这是访问GForth中任何EXTERNAL编辑器的一种非常简单的方法。 我将在这里解释它在Linux(任何版本)下如何工作,但是我猜想该技巧也可以在其他操作系统上使用,并且可以在Apple OSX系统上使用。
1)只需确保将要与GForth一起使用的编辑器已安装在系统上。 VIM已经安装在Linux和OSX上,并且在Windows 10下,您可以本地运行BASH Shell(Google表示:“如何在Windows 10上安装BASH”) 我知道VIM是一个非常强大的编辑器,但是我不喜欢它,因为它不是屏幕编辑器。 MICRO是一个很棒的编辑器,它甚至允许鼠标控制!! (检查:https://github.com/zyedidia/micro/wiki/Installing-Micro)
2)这是窍门: 在GForth中,有一种向操作系统发送命令的方法: -启动GForth并输入以下命令: S“ pwd”系统,然后按ENTER键...(pwd =打印工作目录)
对于S“ pwd”系统,您正在从GForth内部向操作系统发送命令'pwd', 然后该命令将打印Linux操作系统的“工作目录”。
您当然也可以使用其他命令来代替“ pwd”。
好吧,你猜对了: 不用'pwd'而是输入编辑器的名称'./micro'并保存:MICRO编辑器启动,现在您可以开始在编辑器中输入GForth代码了。
准备执行代码时,只需将代码保存到文件中即可,例如: mycode.f 该文件将保存在第2步(以上)在屏幕上打印出的目录中
要在GForth中运行代码,请键入以下命令:
包括mycode.f
(您不必键入PATH,文件已保存在GForth的默认目录中!)
它将被添加到您的WORDS词汇表中,现在您可以测试代码了。
希望您会发现此技巧很有用。 享受与您选择的编辑器一起在Gforth中编写代码的乐趣!