Go to the first, previous, next, last section, table of contents.

Getting Started

This chapter gets you started. Most likely if you are reading this document VLS is already installed and you do not need to read the section on Installing VLS. The Lisp Modes section is only important if you are using a non-lisp-mode Lisp such as Scheme.

The Sample Lisp Shell Command section, See section Sample Lisp Shell Command, will show you how to use the sample VLS Lisp shell command vlsc. You might actually want to use this sample Lisp shell command as your permanent command. Other varieties of Lisp shell commands are also possible with VLS, See section Creating VLS Shell Commands.

Installing VLS

To make VLS unpack it in some directory with

tar -zxvf tar-file

where tar-file is the VLS tar file with the tgz file extension. This will create a vls sub-directory there. Change to the vls sub-directory and type either



./configure --prefix=PATH

By default the first will prepare to install VLS under the default directory /usr/local. The second will prepare to install VLS under a directory PATH that you provide.

Then type


To install the made VLS system depending on the operating system and installation PATH you may need to log in as a super user. Then type

make install

The key files that get installed are


where PATH is the installation directory.

To get started you should read the VLS user document. A quick start can be tried by just reading the Getting Started chapter. The vls.html file can be read in a web browser. So for example if the above PATH was /usr/local you can use the URL


Or if you want to read the VLS user document in Emacs with the info command, while in Emacs type

C-u C-h i /usr/local/info/vls

You can also get a PostScript copy of the VLS document by changing to the directory where you typed ./configure and then change to the sub-directory doc and type

make ps

which will create a PostScript version of the VLS user document called


Lisp Modes

If your Lisp files use lisp-mode then you do not need to read this section. If while visiting one of your Lisp code files you look at the variable major-mode (C-h v major-mode) and it reports its value as lisp-mode then your are using lisp-mode.

However if your Lisps uses a Lisp mode other than lisp-mode, for example Scheme uses scheme-mode, then it is important to VLS that this be known before VLS is loaded. This is so that VLS can set its default key bindings into the user's preferred mode. To make this happen easily VLS provides a variable vls-modes that is a list of the viable lisp mode that VLS should use. But default it is simply the list


If you intend to use other than the lisp-mode with VLS then you need to set vls-modes before you load VLS. For example if you intended to use Scheme and Common Lisp your need to set in your ~/.emacs file

(setq vls-modes '(lisp-mode scheme-mode))

and then load and run VLS.

Sample Lisp Shell Command

VLS provides a sample Lisp shell command called vlsc. We call it a "sample" since there are many possible kinds of lisp shell commands possible. But the vlsc Lisp shell command described in this section may be good enough for your permanent Lisp shell command. For a new VLS user it is highly recommended that you start off with vlsc and consider more interesting things later, See section Creating VLS Shell Commands.

To understand what to substitute for the variables $LISPDIR and $VLSLIBDIR used in this section see the section on Notation Conventions, See section Notation Conventions. You will want to put the following in your ~/.emacs file

; Autoload vlsc command.
(autoload 'vlsc "$LISPDIR/vls")

; Make C-z a prefix key.  Note that suspend-emacs is also on C-xC-z.
(if (not (keymapp (key-binding "\C-z"))) (global-unset-key "\C-z"))

; Bind vlsc command to keys.
(global-set-key "\C-z\C-l" 'vlsc)

The autoload will allow VLS to be loaded when you invoke the vlsc command and the global-set-key will bind the vlsc command to the keys C-zC-l If you want to bind it to something else change the \C-zs and \C-z\C-l to something else.

The vlsc command picks a specific Lisp shell to run from a list of shell specs. These shell specs are in a variable vlsc-shells that the user must set. Each of these shell specs in turn is a list of three items: a Lisp shell id, a Lisp executable and a Lisp types specifics file. For example if addition to the above you put in your ~/.emacs

; Set my list of shells for vlsc command.
(setq vlsc-shells
      '((allegro "lisp" "$VLSLIBDIR/types/allegro.el")
        (allegro-1 "lisp" "$VLSLIBDIR/types/allegro.el")
        (cmucl "cmucl" "$VLSLIBDIR/types/cmucl.el")))

the first entry says create a shell called allegro with a buffer called "*allegro*" that then runs the executable lisp and sets up that particular shell based on the contents of the Lisp types file types/allegro.el. And the same for allegro-1 and cmucl. If you want to run more or different Lisps edit the above with differently named shell ids, Lisp executables and their associated Lisp type file. If you look in the $VLSLIBDIR/types directory you should find one compatible with your Lisp. If not you will have to create your own Lisp type file, See section Type Specifics Files.

Then when you rerun Emacs you should be able to type the keys you bound to vlsc and it should invoke the first shell you gave in vlsc-shells. Typing that subsequently will return to that established shell buffer. A numeric prefix argument N given to the vlsc command will invoke the Nth shell. A C-u prefix argument will list the Lisp shells invoked by prefix argument N where N = 0 is the same as no prefix argument.

Go to the first, previous, next, last section, table of contents.