Purpose: Switch to a different corefile.
Format: CO <number>
IVI has nineteen corefiles, some of which have special uses (see Introduction). All editing operations are carried out on the current corefile. Switching from one corefile to another does not affect any others, so that a user may be working on several separate files at one time. Material may be moved between them using block operations with corefile 0 acting as an intermediate transfer point.
Purpose: Set the current object and view type
Format: OB <digit>
Parameter: There are now three types:
0 - TEXT view
1 - RECORD/TEXT view
2 - RECORD/TEMPLATE view
The remaining types are defunct, though the command may still allow you to enter them.
The object and view type is specific to a corefile; in other words, changing it in one corefile does not affect the type in any other.
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.
Purpose: Display current editor settings
Format: VI <digit>
Parameter: This specifies one of two alternatives.
The VIew command enables the user to examine the current settings of various IVI parameters. 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.
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.
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.
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.
Purpose: Display version details
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 is not generally available. This expects to communicate with a special terminal emulator. If it is run in an alphanumeric environment, it emits textual messages specifying what should appear on the display, rather than the actual bytes which control the display.
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.
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 ~  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 option.)
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).
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 option
Purpose: Modify various IVI options
Format: ED <digit>
Parameter: 0, 1, 2 define the behaviour of the Return operation:
0 - Return inserts a line in
1 - (default) Return merely moves the cursor to the left margin, scrolling the display at the bottom of the window.
2 - Return triggers new page at bottom of screen.
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.
3 - (default) Switch repetition limits off
4 - Switch repetition limits 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 the FEtch. ED 6 causes all lines (including the flags) to be fetched as text. ED 5 restores the default behaviour.
5 - (default) Normal
6 - Read all lines as text.
7-8 affect the treatment of TAB characters occurring in a file. By default, the FEtch commands 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.
7 - (default) Treat TABs as layout.
8 - Treat TABs as displayable.
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.
9 - (default) Follow the UNIX style.
10 - Follow the DOS style.
It should perhaps 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.
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.
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.
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.