Gambit 6.编辑环境

注: 下面内容若有误,请大家指正。

6.1 控制台行编辑

默认情况下控制台启动一个简单的面向Scheme友好的行编辑用户界面。它提供以下几个功能:

匹配左右括号
记录输入命令行的内容,以方便快速输入
自动补全功能
一些和emacs兼容的键盘命令

用户的输入被显示为粗体,过程的输出被系统显示为普通体。输入的历史记录被保存在’~/.gambit_history’文件里。tab键用于自动补全,当连续按tab键可以循环选择匹配的补全结果。

以下是有效的键盘命令(其中”M-“前缀代表和Esc键或Alt键组合,和”C-“前缀代表和Ctrl键组合):
C-d
当前行是空行时,产生一个文件结束符。否则,删除光标所在位置的字母。

M-delete or M-C-d
向前删除一个单词,并将删除的内容剪切到剪贴板里。

M-backspace
向后删除一个单词,并将删除的内容剪切到剪贴板里。

M-C-backspace
向后删除S表达式,并将删除的内容剪切到剪贴板里。

C-a
光标移到行头。

C-e
光标移到行尾。

C-b or left-arrow
光标向左移动一位。

M-b
光标向左移动一个单词的位置。

M-C-b or M-left-arrow
光标向左移动一个S表达式的位置。

C-f or right-arrow
光标向右移动一位。

M-f
光标向右移动一个单词的位置。

M-C-f or M-right-arrow
光标向右移动一个S表达式的位置。

C-p or M-p or up-arrow
移动到历史记录中的上一行。

C-n or M-n or down-arrow
移动到历史记录中的下一行。

C-t
调换光标当前位置和前一位置的字符。

M-t
调换光标当前位置和后一位置的字符。

M-C-t
调换光标后的S表达式和光标前的S表达式。

C-l
清空屏幕,进入等待输入状态。

C-nul (Windows键盘没有这个键)
在光标处设一个标记。

C-w
删除光标和标记之间的文本,并将删除的内容剪切到剪贴板里。

C-k
删除标记和行尾之间的文本,并将删除的内容剪切到剪贴板里。

C-y
粘贴剪贴板的内容。

F8
继续执行(相当于在REPL中输入命令’#||#,c;’)
F9
移动到更新的帧(相当于在REPL中输入命令’#||#,-;’)
F10
移动到旧的帧(相当于在REPL中输入命令’#||#,+;’)
F11
按步骤执行(相当于在REPL中输入命令’#||#,s;’)?
F12
跳跃执行(相当于在REPL中输入命令’#||#,l;’)?

在Mac操作系统中, 上面的辅助键(F1-F12)依赖于你的配置,你可能需要借助fn键来完成操作。

6.2 利用Emacs开发

Gambit自带的Emacs包’gambit.el’为Emacs编辑器提供了友好的Gambit编辑环境。

将下面的代码加入到’.emacs’配置文件中:

(autoload 'gambit-inferior-mode "gambit" "Hook Gambit mode into cmuscheme.")
(autoload 'gambit-mode "gambit" "Hook Gambit mode into scheme.")
(add-hook 'inferior-scheme-mode-hook (function gambit-inferior-mode))
(add-hook 'scheme-mode-hook (function gambit-mode))
(setq scheme-program-name "gsi -:d-")

另外,如果你不介意每次都加载’gambit.el’的配置,你可以简单地将下面这一行添加到您的’.emacs’配置文件中:

(require 'gambit)

你可以通过输入’M-x run-scheme’命令,来启动一个Gambit后台进程。在”cmuscheme”模式中,下面这些命令用到Gambit交互缓冲区(i.e. ‘*scheme*‘)并将Scheme源码文件附加到缓冲区。这里列出常用的命令(在Gambit交互缓冲中,输入’C-h m’命令,可以输出完整的命令列表):
C-x C-e
计算光标之前的表达式(这个表达式会被拷贝到Gambit交互缓冲区)。

C-c C-z
切换Gambit交互缓冲区。

C-c C-l
加载文件(默认情况下,文件附加到当前缓冲区是)。
using (load file)

C-c C-k
编译文件(默认情况下,文件附加到当前缓冲区是)。
using (compile-file file)

文件’gambit.el’提供下列附加命令:
F8 or C-c c
继续执行(相当于在REPL中输入命令’#||#,c;’)
F9 or C-c ]
移动到更新的帧(相当于在REPL中输入命令’#||#,-;’)
F10 or C-c [
移动到旧的帧(相当于在REPL中输入命令’#||#,+;’)
F11 or C-c s
按步骤执行(相当于在REPL中输入命令’#||#,s;’)?
F12 or C-c l
跳跃执行(相当于在REPL中输入命令’#||#,l;’)?
C-c _
Removes the last window that was opened to highlight an expression.

The two keystroke version of these commands can be shortened to ‘M-c’, ‘M-[’, ‘M-]’, ‘M-s’, ‘M-l’, and ‘M-_’ respectively by adding this line to your ‘.emacs’ file:

  (setq gambit-repl-command-prefix "\e")

This is more convenient to type than the two keystroke ‘C-c’ based sequences but the purist may not like this because it does not follow normal Emacs conventions.

Here is what a typical ‘.emacs’ file will look like:

(setq load-path ; add directory containing gambit.el
  (cons "/usr/local/Gambit/share/emacs/site-lisp"
        load-path))
(setq scheme-program-name "/tmp/gsi -:d-") ; if gsi not in executable path
(setq gambit-highlight-color "gray") ; if you don't like the default
(setq gambit-repl-command-prefix "\e") ; if you want M-c, M-s, etc
(require 'gambit)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值