ivi Miscellanea

Miscellaneous Commands

Command: GOodbye, BYe

Purpose: Exit ivi and return to the operating system

Format: GO or BY

The command causes warnings for each corefile except 0 which has been modified since it was last saved. <DELETE> aborts the command; <RETURN> causes the warning to be ignored.

Command: VIew

Purpose: Display current editor settings

Format: VI <digit>

Parameter: This specifies one of two alternatives (0 or 1).

If <digit> is 0, the display contains the functions, the current LAYOUT, JUSTIFICATION and HYPHENATION settings, the current search pattern and type, the current expression, and so on. If it is 1, the display contains the current names and sizes of all corefiles.

The screen is preempted, but the corefiles are unaffected. <RETURN> returns the editor to command mode in the corefile it came from.

VIew 0 permits the user to edit the various functions and settings. In this regard, it acts as a template view of a record. <RETURN> causes the edited fields to be installed as new values of the parameters.

Command: DIrectory

Purpose: Display a directory listing

Format: DI <letter>

Parameter: <letter> is one of B, F or T in upper- or lower-case. The parameter currently has no effect in the Unix version, but chooses one of two forms under Windows.i

The command displays the current directory, by "shelling out" and executing the operating system directory command (ls in Unix, dir in Windows). The directory is displayed in the shell window, and cleared when <RETURN> is entered. In the Unix version you can retain the listing by executing UN ls >fred instead of DI; the listing is then in file fred, and can be FEtched if you want to edit it.

Command: CDirectory

Purpose: Change ivi's current working directory

Format: CD <string>

Parameter: <string> is the new directory name.

The directory name may contain a path but not special symbols associated with various UNIX shells. So, CD fred/jim is legal, but CD ~/bin is not.

If the parameter is omitted, the command simply displays the name and path of the current working directory.

Warning: The command CD fred, not UN cd fred, must be used to change a directory, since the latter makes the change only within the spawned shell, and reverts to the original on returning to ivi.

Command: IDentify

Purpose: Display version details

Format: ID

The date and time when this copy of ivi was compiled is displayed on the help/error message line, thereby identifying the version. This is preceded by ALPHA, indicating that this is the alphanumeric terminal form of the program, that is to say, it expects to communicate with an alphanumeric terminal or an emulator. There is another form of the editor labelled XVIVI which does not open a window but rather sends and receives commands through a pipe. XVIVI underlies the VinciLingua site. The two forms of the editor are useful in development of online exercises: the ALPHA version to edit and run grammars, and XVIVI to use them inside a web page. For more details, see the VinciLingua site.

Command: WIndow

Purpose: Notify ivi of a change in window size

Format: WI <number>|<number>

Parameters: The parameters are the numbers of lines and columns in the new window respectively.

This command is not intended for the Sun/Solaris or Windows versions of ivi, but rather for a special environment where the user is at a computer remote from the one which ivi is running on.

In the Sun/Solaris version, Solaris itself notifies ivi if the user changes the window size, and ivi adjusts its layout accordingly. In the Windows version, ivi initiates its own window, which cannot be resized. (See Suspending, Aborting, etc.)

In the special environment, ivi has no way of knowing the size of window displaying its output, so it assumes a default of 24 lines by 80 columns. The WIndow command can then be used to tell ivi the actual size.

If the command is used in the Sun/Solaris environment with parameters which fit within the actual window, ivi adjusts its layout to the specified values, leaving part of the window area blank. If the parameters exceed the actual window, the layout will be messed up.

Altering ivi Defaults

Command: KEy

Purpose: Change an entry in the table which specifies the operation corresponding to each key.

Format: KE <number>|<number>

Parameter: The first parameter is (ASCII) number of the key being changed; the second is the number of the ivi operation (see each description).

The primary purpose of this command is to allow ivi to be configured for different keyboards and emulations, though it also permits some tailoring of individual keys.

If you wish to carry out the former, you should read the fuller description of the various ivi tables which appears elsewhere in these webpages.


KE 2|23 - cause the <CTRL b> key (key 2) to perform Reformat.

KE 9|2 - make key 9 (the <TAB> key) into a displayable character key.

Using the default key assignments, ivi cannot enter a TAB character into a file. As noted elsewhere, the <TAB> key simply moves the cursor. KE 9|2 causes ivi to treat the TAB key and its byte like any other displayable character. The character will initially be displayed as a tilde ( ~ ) which ivi uses for any undisplayable characters which appear in a file. This can, however, be altered with the FOnt command. (Note too that by default, FEtch does not fetch TAB symbols as displayable characters; rather, it interprets these as requests to insert spaces in the corefile. See EDitor options.)

Warning: Changing the entry for a key, changes ALL its actions. (So if you assign the Delete operation to <CTRL r> and the Reformat operation to <DEL>, you must use <CTRL r> to abort commands, etc.)

Some reassignments can be very dangerous. Altering both the <RETURN> and <LINEFEED> keys, for example, prevents you obeying any more commands (including a command to reverse the damage).

Command: FOnt

Purpose: Change an entry in the table which specifies the character to be displayed on the screen for each stored character.

Format: FO <integer>|<integer>

Parameters: The first parameter gives the (ASCII) value of the stored character; the second, the (ASCII) value of the character to be displayed.


FO 65|66 - make A's appear on the screen as B's.

FO 9|35 - make the TAB character (which you have presumably just made displayable using KE 9|2) appear as #. Of course, this symbol will be indistinguishable on the screen from any # symbols which appear in their own right.

Warning: The various system messages and screen dipslays pass through the same table, so making A's appear as B's may alter more than you bargained for.

Command: EDitor

Purpose: Modify various ivi options

Format: ED <digit>

Parameter: 0, 1, 2 define the behaviour of the Return operation:

In cases where screen changes cannot keep pace with an operation (more common on older computers than the current ones), an annoying phenomenon can be observed. You hold down the <down> key or the Next page key until you see the cursor or screen at the desired place. But the computer continues moving the cursor or scrolling the text because it has several more operations queued. For this reason, repetition limits were introduced. With the limits on, certain operations can be repeated only a fixed number of times without some other operation intervening. (A similar purpose is also served after the event by the Abort key - see later.) Parameters 3, 4 switch the limits off and on.

If a line in a stored file begins with \r, ivi regards it as a record, and FEtch stores it accordingly. (There are a few other such flags, remnants of the other objects which ivi once edited.) 5-6 alter the behaviour of FEtch. ED 6 causes all lines (including the flags) to be fetched as text and to be editable as such. ED 5 restores the default behaviour.

7-8 affect the treatment of TAB characters occurring in a file. By default, the FEtch command interprets TAB characters as requests to start subsequent material at the next tabstop, which it achieves by supplying spaces. (In other words, FEtching and OVerwriting a file which contains TABs eliminates these, replacing them by a number of spaces dependent on the tab settings.) If option 8 is chosen, TABs in a file which is FEtched are treated like displayable characters.

9-10 affect the termination of lines in files SAved, OVerwritten, etc. Unix operating systems normally expect lines to be terminated by a linefeed alone; DOS and Windows operating systems, by a carriage-return and a linefeed.

The ED 10 option is useful when dealing with programs like Expect, which requirelinefeed and carriage return.

It should also be noted that, while in a corefile, lines are stored in a data structure which makes no use of carriage-return or linefeed characters, and that the commands FEtch, APpend, etc., can handle files which have been stored in either style.

Command: WShift

Purpose: Change the window overlap

Format: WS <number>

Parameter: <number> specifies the required overlap.

In text or record/text view, if you try to move the cursor past the left- or right-hand sides of the text zone, a new segment of text is displayed which overlaps the old by 19 columns. The reason for the choice of 19 is lost in the mists of time. This command allows you to change the overlap.

Miscellaneous Operations

Operation: Command mode

Purpose: Place the editor in COMMAND mode.

Default Key: <CTRL c>

Operation Number: 21

Entering <RETURN> in COMMAND mode when no command has been typed returns ivi to TYPING/INSERT mode.

Operation: Caps lock

Purpose: Toggle the "caps lock" flag

Default Key: <ESC> <ESC> F

Operation Number: 29

This operation was intended to provide a software lock for terminals having no "caps lock" key. It probably no longer serves any purpose. If the lock is on, lower-case letters (only) typed at the keyboard are converted to upper-case.

Operation: Visible/invisible

Purpose: Enable/disable screen output.

Default Key: <ESC> z

Operation Number: 56

If you perform this operation, all changes to the screen will be suppressed until you perform it again. Then the screen will be brought up to date.

This was originally introduced because certain operations, notably those on the former line drawing and math formula objects, required significant portions of the screen to be rewritten over and over again. For large, complicated displays, this was too time consuming to be convenient. We still make use of it when we use Vinci to test language learners, in order to conceal some manipulations which would distract the learner.

We sometimes refer to the suppressed state as "invisible" or "silent" mode.