Answer

问题及解答

[GGAP]GAP的前端图形用户界面

Posted by haifeng on 2012-02-04 18:51:17 last update 2012-02-08 22:17:21 | Edit | Answers (0)

Author: Yevgen Muntyan

开发周期: 2004-2008

http://sourceforge.net/projects/ggap/

GGAP 使用了Medit 这个文本编辑器, 也是由 Yevgen Muntyan 于 2004-2007 开发的.

http://mooedit.sourceforge.net/

Medit 是一款强大的编辑器, 对于 GAP 来说有如下特点, 可以将它当作程序编辑器. Medit 集成了插件Terminal(终端). 因此如果要运行GAP程序文件, 比如 test.g, 只需在 Terminal 中先运行gap, 然后在gap的终端状态下键入 Read("test.g") 即可. (当然写要保证这个文件所在的目录与gap启动的目录要一致). 所以我还是非常喜欢这个编辑器的. 但是这个功能似乎没有加入到GGAP中去, 也就是说 GGAP 要改进的地方还有很多.

-----------------

GGAP 最大的亮点是代码自动完成. 比如当键入 "Inv" 后按 Tab 键, 就会出现一个命令列表, 所有以 Inv 开始的命令都被列了出来, 并且按字典序排序.

其实类似的功能在终端下也是有的, 只不过要按两次 Tab 键, 而且终端下只是简单的将所有命令打印出来.

GGAP 可以保存 workspace, 它可将用户所定义的变量、显示的字符, 甚至完整的系统状态都给保存下来. 保存的文件以 .gwp 作为后缀. 当然这个文件会比较大, 因为其大小与系统分配给 GAP 的内存基本相一致, 因此很容易就达到几十兆或上百兆. 而且该文件不能在不同的操作系统或不同版本的GAP下互用, 即不是“跨平台”的.

GGAP 还可以保存 worksheet, 它只保存文本性质的内容(如系统的命令、输入输出的记录等), 因此文件一般来说非常小, 易于保存并传输. 而且还是“跨平台”的, 即具有通用性. 方便交流. 该文件是 XML 格式的.

GGAP 还有一个功能, 就是提供了一个很方便的图形界面帮助系统. 如输入 ??gcd 就会启动该帮助系统, 并定位到相应内容的位置. 还可以加入书签, 方便查阅已读过的重要文档.

GGAP 命令的回溯功能: Ctrl+上/下光标键.

GGAP 的编辑功能: 如果用键盘选择文本, 可以按 Shift+上/下/左/右光标键.

不足之处

其内置的帮助页面虽然也是显示相应的 html 文件, 但是暂时还不能做到借助 MathJax 或 jsMath 等工具像在浏览器中显示数学公式.

GGAP 所提供的 GAP 设置功能相对比较少, 比如应该可以提供在 GAP 启动时自动加载所需要的宏包的功能, 这方面 CocoaGap 已经加入了该选项, 不过 CocoaGap 仅能运行在 MAC 系统下, 它是类似与 XGAP 的一个软件. 而且也可以设想, 当键入 LoadPackage 时, 自动显示 GAP 系统尚未加载的宏包列表, 让用户很方便地自行选择加载, 并预先判断宏包之间的依赖性.

GGAP 未提供快捷键的帮助显示或设置. 更好地应可以让用户自行设置. 使得符合用户的个人习惯.

GAP 的错误提示功能还可以再加强. 比如: Package 中的命令必须要在 Package 被加载后才能识别, 用户如果想键入 GuavaVersion(); 但一时想不起来是 Guava 还是 guava, 此时如果也有 Tab 自动补全提示就好了, 当然可以设置为 Shift+Tab 自动补全. (目前按 Shift+Tab 会出现 Z 字符)

GGAP (或者在其帮助系统中)最好能有一个 panel, 其中按分类整理一些命令, 然后单击这些命令会自动键入到 GGAP 的输入符 > 后面

GGAP 未能加入显示当前工作区的正在使用的变量, 就像 MatLab 一样 有一个 panel 是用来管理这些变量的.