首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GForth中保存程序/单词

如何在GForth中保存程序/单词
EN

Stack Overflow用户
提问于 2019-07-12 04:50:25
回答 2查看 703关注 0票数 2

是否有一种方法可以保存我定义的单词存档,然后继续进行实验?

到目前为止,我只找到了从控制台获得copy+paste定义的方法,如果它们仍然可见的话。

我是从第四开始,所以我做了很多错误,并在以后纠正它们,我想保存单词,我定义的更早,并在下一届会议上重用它们。

下面是一个简单的例子:

代码语言:javascript
复制
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. 有没有办法将hello2hello保存到文件中,第二天我就可以使用它们来生成更复杂的单词了?
  2. 它可能是文本文件,所以我可以使用一些编辑器(比如vim)来清除所有错误的定义并对它们进行注释,这是我想要保留的吗?

我想以文件welcome.fth结束:

代码语言:javascript
复制
: hello \ -- ; say hello and space at the end of word, to be able simply concatenate that 
    ." hello ";
: 2hello \ -- ; repeats hello two times
    hello hello ; 

第二天就来了,继续探索

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-13 02:56:03

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

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

Does GNU FORTH have an editor?

只需将0 t位置设置为第一行,将i作为insert放在代码的最后一行,然后在il作为insert line之前插入新行,然后以这种方式将所有其他行填入开始。

然后将缓冲区flush到磁盘,下一次使用此文件use test.bl并使用0 load加载定义。

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

这件事我可以不留下痛风就行了,所以对我来说很管用。

(最后,我可以以某种方式改进它,因为它也是用第四种语言编写的:)

票数 1
EN

Stack Overflow用户

发布于 2020-04-16 21:50:57

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

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

2)诀窍是:在GForth中有一种向操作系统发送命令的方法:-启动GForth并输入以下命令: S“pwd”system并按ENTER键.(pwd =印刷工作指南)

使用S“pwd”系统,您将从GForth内部向操作系统发送'pwd‘命令,该命令将打印您的Linux操作系统的’工作目录‘。

当然,您也可以使用另一个命令来代替“pwd”。

嗯,您猜到了:而不是“pwd”,您可以键入编辑器的名称./ MICRO和presto:微编辑器启动,现在您可以开始在编辑器中键入GForth代码。

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

要在GForth中运行代码,输入以下命令:

(您不必键入路径,您的文件保存在默认的GForth!)

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

希望你会发现这个把戏有用。喜欢用你选择的编辑器用G佛斯编写代码!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57000366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档