浅谈如何在EditPlus编辑运行Singular程序
2015-05-22尚宝欣
【摘 要】讨论了如何使用EditPlus编写Singular程序、直接在EditPlus中运行Singular程序并将结果显示出来。我们也创建了EditPlus中Singular的代码自动补全文件,能大幅度的提高代码的编辑速度。
【关键词】EditPlus;Singular;代码自动补全;函数列表
一、EditPlus及Singular简介
EditPlus是一款由韩国Sangil Kim出品的小巧但是功能强大的可处理文本、HTML和程序语言的编辑器,通过设置用户工具可以将其作为C、Java、PHP、Maple等语言的一个简单的IDE。目前最新版本为EditPlus v3.70。
它的优点有启动速度快、可自定义的代码段自动补全功能、界面简洁、完善的代码高亮、代码折叠功能、多文档编辑界面等等。
Singular是一个免费、开源的计算机代数系统,主要处理多项式计算。它重点处理交换与非交换代数、代数几何、奇点理论中相关的计算问题。目前最新的版本为Singular v 3-1-6。它的开发由Wolfram Decker、Gert-Martin Greuel、Gerhard Pfister和Hans Sch nemann指导的德国Kaiserslautern大学的数学学院的开发团队完成。
二、使用EditPlus编辑Singular文件
在Singular软件中,我们一般会用两种方式进行编程:
1.直接使用命令进行交互。这种方式适用于直接调用Singular中的命令或是需要一步步验证算法过程;它能使我们清楚地看到每步程序运行的结果,有助于我们对问题的理解。
2.在文件中编写代码,然后在Singular中使用“< “文件名””的方式运行整个文件。缺点是输出的结果是在控制台上,如果想要使用这些结果,还需要使用其他的方式将它们写到外部文件当中。
使用EditPlus编辑Singular文件,主要是充分利用EditPlus自带的语法高亮、代码自动补全命令等功能。由于网络及EditPlus官网上均未提供Singular相关的语法高亮文件,我们根据自己的需要编写了一个完整的语法高亮文件,名称为Singular.stx。我们主要对Singular中的函数、数据类型、系统变量、流程控制结构、注释进行了颜色分配。效果见图1。
代码自动补全是IDE中经常使用的功能,它是通过键入少量字符来完成整个语句或语法结构输入的一种功能。在EditPlus中我们可通过简单的设置使它具有比较强大的自动补全功能。
EditPlus的代码自动补全功能可通过文件的设置来完成,比如我们对扩展名为.sing的文件使用Singular.acp中的格式来自动补全。我们可以在Tools-->Preferences--> File-->Settings & Syntax中进行设置。Singular.acp中的代码块的形式一般以“#T=***”开头,以“#”结尾(可选),如果我们在文件中键入“***”之后再键入空格的话,EditPlus会自动把“#T=***”和“#”之间的内容填充进去,并覆盖“***”。例如:
我们只需要键入“timer”,就可得到中间部分的内容。在这里需要注意的是“^!”表示光标默认地停留在这个位置,方便使用者进一步书写内容。由于互联网上没有现成的用于Singular代码自动补全的.acp文件可以下载使用,我们依照自己的喜好与习惯去编写了.acp文件。由于减少了代码键入量,从而能大大提高代码编辑的速度。
另外,EditPlus提供了函数列表的功能。这可以使我们快速的浏览一个Singular文件中有多少个自定义的函数,也可以让我们快速的定位这些函数。具体做法为,首先打开Tools-->Preferences-->File-->Settings & syntax -->Singular File(这是自定义的一个文件类型,扩展名为sing)-->Func Pattern,然后在Function pattern regular expression中键入
^[ \t]*(proc[ \t]*.*\(.*\))
最后在Partial display中选择Tagged Expression 1。点击确定之后,在EditPlus中使用快捷键Ctrl+F11,我们就可以看到左边出现了函数的列表,里面把函数的名字都列出来了。
三、使用EditPlus运行Singular程序
我们也可以使对EditPlus进行简单的配置使它可以直接运行Singular程序。在EditPlus的用户工具中添加如下的命令:
Menu Text: &Singular
功能: 运行Singular文件(.sing)
结果: 将运行的结果输出到Output Window中
Command: bash.exe
Argument: singular “$(FileName)”
Action: Capture output
Initial: $(FileDir) 起始目录: $(FileDir)
注意,在使用命令bash.exe之前,要将bash.exe的目录(一般为c:\cygwin\bin)添加到环境变量path中。进行上述设置之后,EditPlus的Output Window会捕获到Singular的运行结果,包括命令的回显及程序的结果。
需要注意的是,使用EditPlus运行Singular程序,每次都是整个文件全部运行一遍,这样会失去一定的灵活性。这个功能在实际操作过程中可酌情取舍。
四、结论
使用EditPlus编辑Singular源代码可以较好的提高Singular源文件编写的效率与质量,可以将它看作是Singular的一个IDE;在EditPlus中使用bash.exe singular运行Singular文件可以使结果直接在EditPlus中呈现出来,方便我们调试程序的逻辑错误。总之,EditPlus可以作为Singular的类IDE的工具,为我们进行Singuar程序的编写与调试提供方便。
【参考文献】
[1]邵殿国,尚宝欣.浅谈使用EditPlus编辑编译 LaTeX文件[J].电子制作,2013 (16).