如何在 GForth 中保存程序/单词
How save program / words in GForth
有没有办法将我定义的单词保存到文件中,以便以后继续试验?
到目前为止,我只找到了从控制台复制+粘贴定义的方法,如果它们仍然可见的话。
我是从forth开始的,所以我犯了很多错误并稍后更正它们,我想保存我之前定义的单词并在下一个会话中重用它们。
这是一个简单的例子:
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:
F29BBAB3A00 throw
F29BBAC9C98 no.extensions
F29BBAB3CC0 interpreter-notfound1
: hello ."hello";
:2: Undefined word
: hello >>>."hello";<<<
Backtrace:
F29BBAB3A00 throw
F29BBAC9C20 no.extensions
F29BBAB7338 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
(最后是 space)和工作 2hello
(使用编辑后的 hello
)- 可以说,我遇到了更多麻烦修复 2hello
以定义形式,hello
的定义现在不在屏幕上。
- 有没有办法将
hello
和 2hello
保存到文件中,我
能不能用next day来造更复杂的词?
- 它可以是文本文件吗,这样我就可以使用一些编辑器(比如
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
首先,gforth 将其历史记录保存在 ~/.gforth-history 文件中,任何文本编辑器都可以获取该文件以供我写作
其次,使用 up-arrow 可以访问历史记录,并且有编辑器可以保存文件,我可以返回并将我的输入保存到文件中。
只需将位置 0 t
设置为第一行,将 i
作为 insert
添加到我代码的最后一行以将其放在那里,在 il
之前插入新行作为 insert line
并以这种方式填写所有其他行回到开始。
然后 flush
将缓冲区写入光盘,下次使用此文件 use test.bl
并使用 0 load
.
加载定义
(或在编辑器中将块文件转换为普通文本并 include test.bl
它)
我可以在不离开 gforth 的情况下做到这一点,所以它对我有用。
(最终我可以以某种方式改进它,因为它也写在前面:)
这是访问 GForth 中任何外部编辑器的一种非常简单的方法。
我将在这里解释它在 Linux(任何版本)下是如何工作的,但我想这个技巧也适用于其他操作系统,它将适用于 Apple OSX 系统。
1) 只需确保您喜欢与 GForth 一起使用的编辑器已安装在您的系统上。
VIM 已经安装在 Linux 和 OSX 上,在 Windows 10 下,您可以 运行 BASH shell 本机(Google 用于:'how to install BASH on Windows 10')
我知道 VIM 是一个非常强大的编辑器,但我不喜欢它,因为它不是屏幕编辑器。
一个伟大的编辑器是 MICRO,它甚至允许鼠标控制!
(检查:https://github.com/zyedidia/micro/wiki/Installing-Micro)
2) 这是诀窍:
在 GForth 中,有一种方法可以向操作系统发送命令:
- 启动 GForth 并输入以下命令:
S"pwd" 系统并按 ENTER 键... (pwd = Print Working Directory)
使用 S"pwd" 系统,您从 GForth 中向操作系统发送命令 'pwd',
该命令将打印 Linux 操作系统的 'working directory'。
除了'pwd'你当然也可以使用另一个命令....
嗯,你猜对了:
而不是 'pwd' 你键入你的编辑器的名称 './micro' 并很快:MICRO 编辑器启动,现在你可以开始在编辑器中输入你的 GForth 代码。
当您准备好执行代码时,只需将代码保存到一个文件中,例如:
mycode.f
该文件将保存在步骤 2(上文)中屏幕上打印出的目录中
要运行 GForth中的代码,键入以下命令:
包括 mycode.f
(您不必输入 PATH,您的文件已保存在 GForth 的默认目录中!)
它将添加到您的 WORDS 词汇表中,现在您可以测试代码了。
希望您会发现这个技巧有用。
使用您选择的编辑器享受在 Gforth 中编写代码的乐趣!
有没有办法将我定义的单词保存到文件中,以便以后继续试验?
到目前为止,我只找到了从控制台复制+粘贴定义的方法,如果它们仍然可见的话。
我是从forth开始的,所以我犯了很多错误并稍后更正它们,我想保存我之前定义的单词并在下一个会话中重用它们。
这是一个简单的例子:
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:
F29BBAB3A00 throw
F29BBAC9C98 no.extensions
F29BBAB3CC0 interpreter-notfound1
: hello ."hello";
:2: Undefined word
: hello >>>."hello";<<<
Backtrace:
F29BBAB3A00 throw
F29BBAC9C20 no.extensions
F29BBAB7338 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
(最后是 space)和工作 2hello
(使用编辑后的 hello
)- 可以说,我遇到了更多麻烦修复 2hello
以定义形式,hello
的定义现在不在屏幕上。
- 有没有办法将
hello
和2hello
保存到文件中,我 能不能用next day来造更复杂的词? - 它可以是文本文件吗,这样我就可以使用一些编辑器(比如
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
首先,gforth 将其历史记录保存在 ~/.gforth-history 文件中,任何文本编辑器都可以获取该文件以供我写作
其次,使用 up-arrow 可以访问历史记录,并且有编辑器可以保存文件,我可以返回并将我的输入保存到文件中。
只需将位置 0 t
设置为第一行,将 i
作为 insert
添加到我代码的最后一行以将其放在那里,在 il
之前插入新行作为 insert line
并以这种方式填写所有其他行回到开始。
然后 flush
将缓冲区写入光盘,下次使用此文件 use test.bl
并使用 0 load
.
(或在编辑器中将块文件转换为普通文本并 include test.bl
它)
我可以在不离开 gforth 的情况下做到这一点,所以它对我有用。
(最终我可以以某种方式改进它,因为它也写在前面:)
这是访问 GForth 中任何外部编辑器的一种非常简单的方法。 我将在这里解释它在 Linux(任何版本)下是如何工作的,但我想这个技巧也适用于其他操作系统,它将适用于 Apple OSX 系统。
1) 只需确保您喜欢与 GForth 一起使用的编辑器已安装在您的系统上。 VIM 已经安装在 Linux 和 OSX 上,在 Windows 10 下,您可以 运行 BASH shell 本机(Google 用于:'how to install BASH on Windows 10') 我知道 VIM 是一个非常强大的编辑器,但我不喜欢它,因为它不是屏幕编辑器。 一个伟大的编辑器是 MICRO,它甚至允许鼠标控制! (检查:https://github.com/zyedidia/micro/wiki/Installing-Micro)
2) 这是诀窍: 在 GForth 中,有一种方法可以向操作系统发送命令: - 启动 GForth 并输入以下命令: S"pwd" 系统并按 ENTER 键... (pwd = Print Working Directory)
使用 S"pwd" 系统,您从 GForth 中向操作系统发送命令 'pwd', 该命令将打印 Linux 操作系统的 'working directory'。
除了'pwd'你当然也可以使用另一个命令....
嗯,你猜对了: 而不是 'pwd' 你键入你的编辑器的名称 './micro' 并很快:MICRO 编辑器启动,现在你可以开始在编辑器中输入你的 GForth 代码。
当您准备好执行代码时,只需将代码保存到一个文件中,例如: mycode.f 该文件将保存在步骤 2(上文)中屏幕上打印出的目录中
要运行 GForth中的代码,键入以下命令:
包括 mycode.f
(您不必输入 PATH,您的文件已保存在 GForth 的默认目录中!)
它将添加到您的 WORDS 词汇表中,现在您可以测试代码了。
希望您会发现这个技巧有用。 使用您选择的编辑器享受在 Gforth 中编写代码的乐趣!