Editing SIMION Text Files

Editing SIMION Text Files: Instructions on configuring and using various text editors (including SciTE, VIM, and Emacs) to effectively edit SIMION GEM and Lua files (e.g. syntax highlighting).


SIMION requires text files in various places such as .ion, .lua, .gem, and .fly2 (SIMION 8) files or .sl/.prg files (SIMION 7). You could just use a simple text editor like Windows Notepad, but an alternate and more advanced text editor offers the following benefits:

  • Syntax highlighting for improved code readability and making certain errors (e.g. misspelled keywords) instantly visible.
  • Displaying line numbers to locate reported errors.
  • Detecting undefined variables.
  • Autocomplete
  • Extensive text editing capabilities.
  • Invoking some compiler or interpreter (e.g. Lua) within the text editor.

One such more powerful text editor is SciTE (or the variant Notepad++), and there are even more powerful (but more complicated) ones like Emacs (including XEmacs and GNU Emacs variants) or VIM. If you’re not sure which to use, we recommend SciTE or the more GUI-ish variant Notepad++ for its relative simplicity and power.

A more Lua-specific editor is the

LuaEdit IDE or ZeroBrane. See also Lua Editor Support.

Once you have a text editor, you might want more integration into SIMION such as launching it from SIMION. See for example Appendix G (Text Editing) of the SIMION 8.x Manual. You also might want to configure your text editor for syntax highlighting of SIMION files or other such SIMION enhancements, and that is the focus of this article.

A Summary of SIMION support in SciTE, Emacs, and VIM

SciTE (as well as some versions of Emacs and VIM) comes with built-in support for syntax highlighting of Lua files. We have not (at least yet) developed support for syntax highlighting of other SIMION file types (e.g. GEM or PRG) in SciTE, but support for syntax highlighting these files in Emacs and VIM are available as plugins in the “SIMION Editor Files”, which can be freely download from simion.com and are also bundled with SIMION 8. The VIM plugins were generously provided to the SIMION community by SIMION user Robert Malek, and the Emacs plugins were developed by SIS.

The below discussion describes some things you can do to configure SciTE, VIMm and Emacs more effectively for use with SIMION.

The SciTE Editor - Installation

Below is an example of editing a Lua program in SciTE (and also running it inside SciTE).

screenshot of SciTE text editor

SciTE is a very lean and simple editor. It’s smaller and generally much easier to use than Emacs or VIM. It comes with built-in syntax highlighting support for Lua files.

The steps for setting up SciTE to work with SIMION files are provided below:

Download and Install SciTE for Windows. This can be downloaded from the SciTE website. You will want one of the Windows executable versions.

Use SciTE. SciTE is already set up to syntax highlight Lua files when you load an edit .lua files. No syntax highlighting is currently available for other SIMION file types in SciTE though, but you can still use SciTE for editing these files too.

Invoking the Lua Interpreter from SciTE You may find it convenient to execute short Lua programs inside SciTE. As an example, open SciTE and create a Lua file named test.lua that contains something simple like this:

print("hello world")

Now, with this Lua program open in SciTE, select the SciTE Tools | Go menu item. Initially, you’ll probably get an error such as

>Lua-5.0.exe -o "test.luc" "test.lua"
>The system cannot find the file specified.

This is because SciTE needs to be told where the Lua interpreter is located. To fix this, select the Options | Open Global Options File menu in SciTE. This will display the SciTEGlobal.properties configuration file, which initially is blank. Add the following line to it and save (this part is probably not obvious):

command.go.*.lua="c:\program files\simion-8.1\simion.exe" --nogui lua "$(FileNameExt)"

Now switch back to the test.lua program in SciTE and again select the Tools | Go menu item. It should work fine now. See screenshot above.

If you want additional Lua debugging capabilities out of a text editor and with less effort than SciTE, you might consider a more Lua specific editor like ZeroBrane or Lua-edit (see Lua Editor Support).

One word of caution though: text editors like SciTE may understand Lua but they don’t have any special knowledge about SIMION. If you try to Tools | Go on a SIMION 8.0 workbench Lua program, it will probably complain about “simion.workbench_program”, “adjustable”, or “segment” not being defined. Those are concepts SIMION defines when flying ions. Still, you might find the above useful for testing individual pieces of Lua sample code or functions.

The VIM Editor - Installation

Below is an example of VIM editing a SIMION “GEM” geometry file:

screenshot of VIM text editor with SL Editor plugins

The steps for setting up VIM to work with SIMION files are provided below:

Download and Install VIM for Windows. This can be downloaded from www.vim.org by clicking the “Download” link and choosing the “Self-installing executable for MS-Windows” (e.g. gvim##.exe).

Download the Editor Files for SIMION and uncompress it into a temporary directory. These files can be downloaded from simion.com.

Copy the contained “vimfiles” directory into your Windows profile directory. For example, if your Windows username is “me”, your profile directory will likely be c:\Documents and Settings\me . Therefore, there will be a new directory c:\Documents and Settings\me\vimfiles .

In Windows Explorer, open up any SIMION GEM, PRG, or SL file by right clicking on the file and selecting :guilabel:`Edit with Vim`.

Enable syntax highlighting. If the text does not appear syntax highlighted (i.e. colored words), select the “Syntax Automatic” menu item to enable this. To make this setting permanent, add the line “syntax enable” to your c:\Documents and Settings\me\.vimrc file (and creating this file if it doesn’t exist).

The VIM Editor - Optional Tweaks

Here some optional customizations you might want to make.

Setting “Easy Mode.” The first thing you should know about VIM is that VIM is what is called a “modal” editor (in contrast to “modeless” editors like Notepad, MS Word, and Emacs). Read the VIM documentation (otherwise, you will be confused).

You may instead prefer the “normal” way to edit text, and there is an easy fix. Just add the line source $VIMRUNTIME/evim.vim to your .vimrc file. VIM will then start up in “Easy Mode,” which behaves quite normally.

Make VIM your default editor for SIMION. By default, SIMION opens the “EDY” text editor to edit files. EDY is, well, archaic. To make SIMION use VIM, you need to set a few environment variables. Assuming VIM has been installed into the c:\vim\vim62 directory, the environment variables should be set to

Under SIMION 8


Under modern versions of Windows, environment variables can be set from the Windows Control Panel | System | Advanced | Environment Variables. Alternately, if you are starting SIMION from .bat file, you can add the following lines to the top of that file:

Under SIMION 8

set SIMION_EDITOR=c:\vim\vim62\gvim.exe

Change the color scheme. The color scheme can be changed from the Edit | Color Scheme menu. To make the color scheme permanent add something like “colorscheme desert” to your .vimrc file.

Use \*.gemh files. A *.gemh file can be run through a C preprocessor to generate a *.gem file (not recommended in 8.1 or above). *.gemh files are also properly syntax highlighted. Refer to the simhfn.vim file for details.

The Emacs Editor - Installation

Now, we’ll look at how to configure Emacs. Below is a screenshot of XEmacs editing an SL program:


The following steps enhance the ability of Emacs to work with SIMION files. Enhancements include syntax highlighting of GEM, PRG (or SL), and Lua files (actually Lua support comes preinstalled in XEmacs).


Download and install Emacs for Windows. - The two flavors are XEmacs and GNU Emacs. If in doubt, the author recommends XEmacs.

Locate the SIMION plugin files for Emacs (these are three files: simgem-mode.el, simsl-mode.el, and simprg-mode.el). You can find these files compressed in the “Editor Files for SIMION” (downloaded from simion.com). If you have SIMION 8.x, a copy is also included in the c:\Program Files\SIMION-8.1\lib\emacs directory.

Install the editor files into Emacs.

Under XEmacs: Copy the three plugin files into some place where XEmacs can find them. A convenient place is under your home directory in the .xemacs subdirectory (typically, c:\Documents and Settings\me\.xemacs where me is replaced by your Windows login name), which also contains your Emacs initialization file (init.el). If this file and directory do not exist, you may select the “Options | Edit Init File” menu option under XEmacs, and XEmacs will offer to create this .xemacs directory and display an (empty) init.el file for you. Copy the plugin files into this directory, and add the following lines to the init.el file (and save it) so that XEmacs loads and runs the SIMION plugins upon startup:

(add-to-list 'load-path (expand-file-name "~/.xemacs"))
(require 'simsl-mode)
(require 'simprg-mode)
(require 'simgem-mode)

Under GNU Emacs: Copy the three plugin files into some place where Emacs can find them–for example, any directory reported when you run the command M-“:” load-path (i.e. ESC key, followed by “:” key, followed by load-path). The file:c:\\, Emacs site-lib subdirectory, or a directory named in a HOME environment variable will often do. Then add the following lines to your .emacs or _emacs file:

(require 'simsl-mode)
(require 'simprg-mode)
(require 'simgem-mode)
(global-font-lock-mode t)

The .emacs or _emacs file should be located wherever your HOME directory is (or “c:" if the HOME environment variable is not set).

Unlike Xemacs, GNU Emacs (as of version 21.4.19) does not include a copy of lua-mode for editing Lua files. Lua mode may be installed separately: download lua-mode from LuaForge.

Using it. Restart Emacs. Now, whenever you open a SIMION GEM, PRG (or SL) or Lua file in Emacs, syntax highlighting will work.

The Emacs Editor - Optional Tweaks

Here some optional customizations you might want to make.

Make Emacs your default editor for SIMION. To make SIMION use Emacs, you need to set a few environment variables. Assuming Emacs has been installed into the c:\Program Filesxemacsi586-pc-win32 directory, the environment variables should be set to


SIMION_EDITOR=c:\Program Files\xemacs\i586-pc-win32\xemacs.exe

Under modern versions of Windows, environment variables can be set from the Windows Control Panel, System | Advanced | Environment Variables. Alternately, if you are starting SIMION from a .bat file, you can add the following lines to the top of the .bat file:


set SIMION_EDITOR=c:\Program Files\xemacs\i586-pc-win32\xemacs.exe

ZeroBrane Editor

ZeroBrane is a newer, Lua-specific IDE.

Note that the code analysis feature (“Project > Analyze”) will get tripped up by “adjustable” variables unless you replace then with “local” variables or perhaps patch it (instructions?).


Notepad++ is similar to SciTE in being based on Scintilla but has more of a user interface that makes it easier for a beginner. It has a Lua editing mode and editing modes for many other languages.

Sublime Text

This editor is also a good option. Unlike others it is a commercial program. It includes a Lua syntax mode.


The manner to configure the VIM and Emacs text editors to syntax highlight and edit SIMION-related text files has been discussed. Similar methods could be used when setting up other text editors.

Special thanks is given to Robert Malek, who developed the VIM plugins. The VIM plugins are (c) 2004 Robert Malek and are made available by permission and packaged with SIMION.

Older Notes (SIMION 7)

SIMION + SL files include .prg/.sl.

The SIMION 7 EDY (SIMION 7.0) text editor is deprecated. Appendix H of the SIMION 7 manual describes this.

SL Toolkit Users: The copy of VIM included in the SL Toolkit 1.2 and above is preconfigured with the SIMION plugins. You may skip or skip the installation sections of this document. To use the SL Editor, just right click on a SIMION file (PRG, SL, GEM, or PATXT) in Windows Explorer and select SIMION: Edit.


GUI_EDITOR=c:\Program Files\xemacs\i586-pc-win32\xemacs.exe

set GUI_EDITOR=c:\Program Files\xemacs\i586-pc-win32\xemacs.exe


set GUI_EDITOR=c:\vim\vim62\gvim.exe

SL Toolkit (see the lib/emacs and lib/vimfiles directories)

Compile SL files to PRG code directly in VIM. If you want to use the SL Compiler from VIM, open the c:\Documents and Settings\me\vimfiles\compiler\simsl.vim file and, if needed, edit the following line:

Compile SL files to PRG code directly in Emacs (for SL Toolkit only) The SL Toolkit’s SL Compiler (if you want to use it) can be invoked via the M-X compile command in Emacs. Match the location where the SL compiler is installed.

setlocal makeprg=c:\\sim7\\sl\\bin\\sl.bat%

Now to compile an SL file, first open the SL file. Then execute the command :make (or press the hammer tool button). If there is an error, the message will display. After pressing enter, the cursor will move to the line of the error.