首页 > 代码库 > [Scheme入门]1 Edwin的基本使用

[Scheme入门]1 Edwin的基本使用

 

EdwinMIT Scheme系统的一个窗口式的编辑使用前端。启动Edwin实际是先启Scheme系统,再启动也给Edwin前端。Edwin是一个使用Scheme写的交互式编辑器,其特点是支持Scheme表达式的编辑和求职。


Edwin模式:

编辑Scheme文件的模式,如果装入一个.scm文件,相应的Edwin的这个编辑区处于Edwin模式。这种模式下可以编写Scheme程序,也可以对表达式求值。正常求出的值显示在最下面交互行,但不会显示出错信息,也不能进入调试系统。

REPL模式:

REPL也就是Read-Evaluation-Print-Loop,读入-求值-打印-循环。在该模式下,你可以看到状态条显示”REPL:lsten“。这时系统处于正常的Scheme交互模式,所有输出都显示在编辑器的窗口中,只不过是在Edwin中执行。这种情况下可以输出所有信息,包括进入debug模式。



对于多行输入的表达四,换行后按C-i,系统能够将光标自动对齐到合适位置。

C-v:向下翻一屏   M-v:向上翻一屏
C-a
:移动到行首   C-e:移动到行尾

C-b:往左移一位          C-f:往右移一位

C-p:往上移一位          C-n:往下移一位

C-x C-e则会对左边(光标位于表达式后但在同一行)或上一个(光标位于表达式后但位于下一个表达式前且不在同一行)表达式求值。

对区域内所有代码求值可以用C-M-z,若在Windows下使用Edwin,必须得前清理掉最上方的版权信息等。


装入文件可以采用

(cd "d:\\lisp\\scheme")

(load "scheme1.scm")

然后按下C-x C-e之后会显示

Loading “scheme1.scm”…done

当有大量的函数等需要写入的时候,建议用另外的记事本等来保存。


一旦进入了Edwin,可以通过如下的方式退出:

C-xz              停止Edwin并返回到Scheme(suspend-edwin)。进入Edwineditor过程调用正常返回。接下来若调用edit则会从上次停止的地方重启Edwin

C-xc              保存任何修改过的缓冲区,关闭Edwin并返回到Scheme(save-buffers-kill-edwin)。这个与suspend-edwin命令类似,不过下次调用edit会重新初始化编辑器。

C-x C-z          停止Edwin并挂起Scheme,把控制权交给操作系统的命令解释器(suspend-scheme)。当Scheme被重新启用(使用命令解释器的作业控制(job-control)命令)Edwin会自动从它停止的地方重启。这个命令与EmacsC-x C-z命令是一样的。

C-xC-c           保存任何修改的缓冲区,然后关闭EdwinScheme(save-buffers-kill-scheme)。把控制权交给操作系统的命令解释器,Scheme进程也被终止。此命令与EmacsC-x C-c命令相同。

全局变量的补全功能:键入变量的前面几个字符,然后键入C-M-iEdwin就会尝试去补全变量的名称,根据当前界限内的变量集。若给出了一个参数前缀,C-M-i会补全这个名称,根据当前的限制的(interned)符号集合(包括了边界变量作为一个子集)



文件的打开与关闭,编辑器的关闭。按下Ctrl-XCtrl-F来打开一个文件。如果你指定的文件并不存在,则会创建一个新文件。初始路径被设置为了‘C:\’,你在打开文件前应该修改这个路径。按下C-XC-S来保存文件,而按下C-x C-w则是文件另存为。退出编辑器请按下C-x C-c


缩进。按下C-i或者TAB可以缩进。


剪切,复制和粘贴。我们无法使用鼠标,因此复制(剪切)、粘贴起来就会显得不太方便。但你可以像下面这样做:

首先,通过方向键将光标移动至待选区域的开头,然后按下C-SPACE

然后移动至结束位置按下C-w来剪切区域,按下M-w来复制区域。

最后,移动至你想要复制的区域,按下C-y


求值S-表达式

按键M-z用于求值以define开头的S-表达式。

按键M-:用于在一个小型的缓冲区中求值S-表达式。这个通常用在测试用M-z求值的函数。

按键C-x C-e用于求值整个*scheme*缓冲区中的S-表达式。

[Scheme入门]1 Edwin的基本使用