Select headings to return to index
P.1 INTRODUCTION
VED is a display-editor developed at the University of Sussex as part of the POPLOG system, an advanced programming environment which incorporates incremental compilers for the languages POP- 11, Common Lisp and Prolog. Incremental compilation enormously speeds up program development and testing. POPLOG is used exten- sively for Artificial Intelligence (AI) research, as well as for more conventional applications.
VED provides many built-in commands and has links to most parts of the POPLOG environment. It can be used to edit text and pro- gram file, and to inspect files that form part of the system. The latter includes accessing the on-line documentation as well as the extensive program libraries which augment and extend the basic system facilities. Aside from its use as a straightforward editor, VED has the capability to pass program text direct to the language compilers, and to pass data to and from user programs.
VED provides a variety of operations for manipulating program text, either at the level of individual syntactic constructs or within a whole file, including automatic formatting and indenta- tion, substitution, cut-and-paste, etc. An individual construct such as a procedure, a range of lines in a file, or indeed a whole file, can be passed directly from an edit buffer to which- ever compiler is currently in use (POP-11, Lisp, Prolog). A pro- cedure being edited can be compiled or recompiled with a single keystroke.
POPLOG incorporates a large number of on-line documentation files, which fall into categories of HELP, TEACH, REF and DOC. HELP files are usually short (but detailed) descriptions of a particular feature of the system, such as a single procedure. TEACH files are longer, tutorial introductions to issues of AI, POPLOG or programming in general, and some contain exercises. DOC and REF files document the POPLOG system, and form a working manual to the compilers and system facilities.
P.2 THE FOCUS OF THE GUIDE
This guide is intended for those with a POPLOG system. We refer- ence online documentation files at the end of each chapter. There is no additional information in these files, though some do pro- vide exercises and others may provide information about new developments since this guide was written.
Most of the commands in VED work regardless of the subsystem (POP-11, COMMON LISP or PROLOG) from which they were invoked. Un- less otherwise indicated, everything works for all three com- pilers.
At present POPLOG runs under either the UNIX* or VMS operating systems. All features described are operating system independent except where otherwise stated.
* UNIX is a trademark of Bell Laboratories.
P.3 A TERMINAL INDEPENDENT GUIDE AND "LOGICAL NAMES"
VED can be used on many different terminals with varying key- boards. This guide is terminal independent, that is, instead of referring to keys by their number and position on any particular keyboard, they are referred to by their "logical name". All ac- tions in VED are brought about by a key or sequence of keys map- ping onto a procedure. The "logical name" of such keys, is the name derived from the corresponding procedure.
In this guide you may need to read a phrase like "the SCREENUP key ... " as "the SCREENUP key sequence ..." if your VDU lacks a SCREENUP key.
To find out where the actual keys are on your keyboard you will have to look up the mapping of the logical name to a key on your terminal map. These will be supplied separately.
For more information on key mappings see HELP VEDKEYS. This file also points to other HELP files which contain information on map- pings for various terminal types.
P.4 NOTATION USED IN THIS GUIDE
This guide uses different notation to distinguish between keys which are standard to all terminals, and non-standard keys set up for VED. Standard terminal keys are written in upper case and printed between angle brackets, for example <RETURN>, <SHIFT> and <TAB>. The logical names of keys set up for VED are written in upper case without the angle brackets, for example, the ENTER, CHARUP, SCREENDOWN and LINEDELETE keys.
Lower case words inside angle brackets are used to describe the type of text that should be inserted. For example, the following instruction tells you to type the word "ved" followed by a file name and then press the <RETURN> key:
Type:
ved <file name> <RETURN>
You do not type the angle brackets themselves, but provide a string of characters capable of naming a file on your machine. Anything not in angle brackets, for example "ved", is presented exactly as you would type it.
Names of procedures (including "VED"), categories of documenta- tion file, and names of programming languages are presented in upper case.
When we refer to "the POPLOG system" we mean either one, or all, of the POP-11, COMMON LISP and PROLOG subsystems.
P.5 FUTURE PLANS
We hope in future to make available additional manuals including an advanced VED users guide explaining how to drive VED from user programs.
P.6 ACKNOWLEDGEMENTS
Much of the information presented in this guide is based on HELP and TEACH files written by Steve Hardy, Aaron Sloman, John Gib- son, Chris Slymon and other members of the Cognitive Studies Pro- gramme at Sussex University. Thanks are also due to John Willi- ams, Mark Rubinstein, Aled Morris, Ben du Boulay, Rob Duncan, An- drew Ryan, Chris Sothcott and Denise Herzenshtein, all from Sussex University, and Colin Shearer, David Wilson, Clark Morton, Sam Valentine, Pietro Cosoli, Kim Hawksworth and Graham Thwaites, all from Systems Designers PLC. The final version was prepared by Paula Mayne.
1.1 INTRODUCTION
This chapter provides a tutorial introduction to VED. It gives step by step instructions to do the essentials, namely look at an existing file, make a new VED file, insert and delete text, and store what you have done. It shows the effect of certain actions and gives a brief overview of the main features of VED. Most im- portantly, it shows what a VED window looks like and explains the associated terminology.
1.2 PUTTING A TEACH FILE ON THE SCREEN
This section shows one way to put a TEACH file on the screen. Once inside the file, you can practice using VED to manipulate the text. Any changes you make to a documentation file will not be stored so feel free to experiment.
To your operating system prompt type:
teach ved <RETURN>
The effect:
The TEACH file called "ved" is displayed in a "window" on the terminal screen ready for editing.
1.3 VED WINDOWS
The term "window" in VED refers solely to windows into files and has nothing to do with workstation windows, such as those on a SUN workstation.
A window is a portion of the terminal screen whose size is meas- ured in terms of "lines" (vertically) and "columns" (horizontal- ly). The size of a window can be changed during an editing ses- sion, and is limited only by the line and column boundaries of the screen . Across the top of the window is a line displaying a number and some words, in this case "EXAMINING: teach ved". This line is called the "command line". The number tells you which line in the file you are currently on. Inside the window is a small marker known as the cursor. You move around the file by moving the cursor. The line the cursor is on indicates the "current line". The file the cursor is in indicates the "current file". The location of the cursor determines where the next text modification (insertion or deletion) will be.
Normally your first VED window will take up only half the screen so that previous printout remains visible in the upper half.
1.4 MOVING AROUND THE FILE
Now that you have a VED file on the screen, you can practise mov- ing the cursor around. Move it to the bottom of the screen by pressing the SCREENDOWN key. Move it back to the top of the screen by pressing the SCREENUP key. Move the cursor one place to the right by pressing the CHARRIGHT key, one place down by press- ing the CHARDOWN key, one place to the left by pressing the CHAR- LEFT key, and one place up by pressing the CHARUP key.
As in this case, there are often more lines in a file than the window can display. If the cursor is at the bottom of the screen and you want to see more of the file, pressing the SCREENDOWN key moves the window down the file, forcing the previously displayed text to scroll up out of the window. Similarly, pressing the SCREENUP key when at the top of the screen forces the window to move up the file and the previously displayed text to scroll down.
Press the TOPFILE key to get to the top of the file, and the END- FILE key to get to the bottom of the file. Notice how the number on the command line changes as you move the cursor up and down the window.
1.5 TYPING IN CHARACTERS
With the key presses shown above you can move the cursor to any position in the window. You are now ready to insert text. Simply move the cursor to where you want to begin inserting text, and type. Begin by putting the cursor on a blank line in TEACH VED. When you come to the right hand edge of the window, VED breaks the line at a convenient place and puts the cursor at the begin- ning of the next line. Try that. Alternatively, if you want to start a new line before the current one is complete, press the <RETURN> key. This takes the cursor to the beginning of the next line. It may involve shifting the text below the current line down to make space for a new blank line. Try that.
You may want to insert more text than the window can display. The text in the window scrolls up or down in order for you to edit files which are larger than the length of the window.
If you want to insert words into an existing line of text simply position the cursor and type. Put the cursor at the beginning of a line of text in TEACH VED and type. This pushes the text to the right of the cursor along far enough to accommodate the new text. It does not overwrite the existing text. VED breaks the line when it becomes too long for the window.
1.6 DELETING CHARACTERS
If you make a mistake while typing, press the CHARDELETE key to delete the character immediately to the left of the cursor. Press the LINEDELETE key to delete the whole line that the cursor is currently on. Put the cursor to the right of one of the words in TEACH VED and press those keys to see the effect.
1.7 MERGING LINES
If you press the CHARDELETE key when the cursor is at the begin- ning of a line, the gap between the current line and the line above it is deleted. For example, insert the following two lines into TEACH VED:
Put the cursor at the beginning of the next line (this line) and press the CHARDELETE key.
The result will be: Put the cursor at the beginning of the next line (this line) and press the CHARDELETE key.
Do as it instructs. Then press the <RETURN> key to break the lines again. Practise breaking and joining lines.
1.8 CREATING ANOTHER WINDOW
VED allows you to display two windows into different files simul- taneously on the screen. Both have their own command line, though there is only ever one cursor. Follow the instructions below to make your own VED file and display it on the portion of screen not being used by TEACH VED:
press: the ENTER key (to put the cursor on the command line. Most commands given to VED during an edit session are given by putting the cursor on the command line in this way)
type: ved example (to tell VED you wish to access a file called "example". The command ved <filename> is similar to the command teach <filename> except that it tells the system you want to access a file of your own rather than a TEACH file)
press: the <RETURN> key (to make VED do it and take the cursor off the command line into the new file)
The effect:
VED displays the file "example" in a new window on the screen. This window looks the same and can be treated in exactly the same way as the existing one. If you already have a file called "exam- ple" on disk, the most recent "version" will be displayed, other- wise a new file of that name will be created.
1.9 SWITCHING BETWEEN THE TWO FILES
Now the cursor is in the file called "example". If you want to go back to TEACH VED, press the SWAPFILES key. Similarly, to go from there back to "example" press the SWAPFILES key again. Practise moving the cursor between the two files.
1.10 COPYING TEXT BETWEEN FILES USING A MARKED RANGE
VED provides facilities for copying text from one file to anoth- er. For example, you may want to copy lines 3 to 9 of TEACH VED into "example". This will involve "marking" those lines in TEACH VED, and then copying the "marked range" into example. You will often find that you need to mark sections of text for different reasons. Further details of this are given in chapter 7. For now try the following:
You can do this with either repeated use of the CHARUP or CHAR- DOWN keys, or you can:
press: the ENTER key (to put the cursor on the command line) type : 3 (the line number you want to go to) press: the <RETURN> key (the cursor goes to line 3 of the file)
3. Mark line 3 as the top of the range:
press: the MARKLO key
VED displays a small mark to the left of line 3 to indicate where the top of the marked range is.
4. Go to line 9 by pressing the CHARDOWN key 6 times, or by do- ing:
ENTER 9 <RETURN>
5. Mark line 9 as the end of the range:
press: the MARKHI key
VED displays the same small mark as before, and then joins the two marks up.
The effect:
The marked range in TEACH VED is copied into "example" starting on the line below the last cursor position. Practise marking ranges and copying pieces of text between files.
1.11 REFRESHING THE WINDOW
Occasionally, the text displayed on the screen will become jum- bled. One possible cause is a broadcast message. If this happens, tell the computer to "refresh" the contents of the screen by do- ing:
press: the REFRESH key
1.12 COPYING FILES TO DISK WHILE EDITING
It is advisable every twenty minutes or so to copy your files to disk. If you do not do this and the machine crashes you will lose work. To do this:
press: the ENTER key (to put the cursor onto the command line) type: w (which stands for Write) press: the <RETURN> key (to make VED Write the files)
The effect:
Any files that you are editing will be written to disk with the exception of documentation files such as TEACH or HELP files. You can give this command from either file, and can continue editing as normal once the command has been executed.
1.13 COPYING FILES TO DISK WHEN LEAVING VED
If you want to copy your files to disk and leave VED at the same time do:
press: the ENTER key type: xx press: the <RETURN> key
This will copy your files onto the disk and terminate the run of the VED program. You should then get the operating system prompt on the screen. Try that now. Practise going back into VED from the operating system and writing files with and without leaving VED.
1.14 SUMMARY
You have seen how to make two VED files and display them simul- taneously on the screen, how to move the cursor around the win- dows and between files, how to insert and delete text, how to copy text from one file to another, and how to save your work on the disk so that you can return to it after you have left VED. These represent just some of the very simple actions in VED. Com- plete descriptions of the facilities follow in later chapters.
The concepts and terminology explained here were specifically to do with VED windows and included:
VED window screen cursor cursor movement current line current window command line
More general concepts and terminology related to VED are intro- duced in Chapter 2.
2.1 INTRODUCTION
This section introduces some of the terminology associated with VED files. The keywords and phrases covered here include:
file disk quota filespace directory write to disk buffer read from disk VED bufferlist version
2.2 CONCEPTS AND TERMINOLOGY
Files are stored on a magnetic disk attached to the computer. The disk is divided into areas called directories. You have an allo- cation of area on disk (known as your "quota" or "filespace") which houses your own personal directory. VED puts any files you create into your directory (unless told to put them elsewhere). A directory as a whole is just a special kind of file. It may have subdirectories containing yet more files and directories.
You can store your files on the disk by "writing them to disk". They remain there indefinitely and thus the disk can be regarded as the computer's long term memory. You cannot edit a file while it is actually on the disk. When you invoke VED to look at and manipulate a file, it creates a temporary copy of the file. This temporary copy is known as a "buffer", and can be regarded as be- ing in the computer's short term memory.
Buffers can be created from a file which already exists on disk, in which case the file is "read in from disk", or created from scratch when no file of the specified name exists. In the latter case the buffer starts off empty. Changes you make to the buffer will only be made permanent by writing it to disk.
The term "VED bufferlist" refers to the collection of file struc- tures VED currently has temporary copies of. For more information on the bufferlist see chapter 6 sections 1 - 3.
The words "file" and "buffer" may be used synonymously in this guide even though, strictly, they are distinct.
You can store more than the most recently written copy of a file on disk. We refer to these "back copies" as "versions".
2.3 HELPFUL ONLINE DOCUMENTATION
TEACH TEACH - How to use VED to read TEACH files TEACH VEDPOP - Switching between VED and POP-11 or PROLOG TEACH FILES - Information about files and directories and purging
3.1 INTRODUCTION
This chapter shows both how to make your own files and how to ex- amine the system's documentation files.
3.2 ENTERING VED
3.2.1 Creating a new file
Type:
ved <new file name> <RETURN>
3.2.2 Accessing an existing file from your directory
Type:
ved <existing file name> <RETURN>
3.2.3 Accessing the system online documentation using VED
POPLOG provides five major categories of online documentation - the TEACH, HELP, REF, DOC and LIB files. You use VED to examine them. To invoke them, type the name of the category of documenta- tion followed by the name of the file, for example:
teach <file name> <RETURN> help <file name> <RETURN> ref <file name> <RETURN> doc <file name> <RETURN> showlib <file name> <RETURN>
If you are already running VED, precede the above command with a press of the ENTER key.
If the file name you give does not exist in the system, VED refers you to an index file in the appropriate category of docu- mentation. If no file name is given, but a file of that category is currently in the bufferlist, VED accesses that file. Otherwise it accesses or refers you to the appropriate index file.
Note for VMS users: since a DCL help facility already exists, it is necessary to use the keyword "hlp" for POPLOG "help".
3.3 INVOKING VED IN DIFFERENT CONTEXTS
VED may be invoked from either the monitor (DCL on VMS; SH or CSH on UNIX) or from within the POPLOG system.
3.3.1 From the monitor
Give any of the commands in Section 2 to the monitor prompt.
3.3.2 From the POPLOG system
To invoke VED from the POP-11 or PROLOG subsystem, simply follow the prompt with any of the commands in Section 2.
To invoke VED from COMMON LISP, precede the commands in section 2 with the "at" symbol, @.
To invoke VED from within VED, give any of the above commands from the command line (See Chapter 4 Section 3.2 for instructions on how to give a command from the command line).
3.4 FILE NAMES
The characters that can be used to name a file are restricted both by the monitor and by the POPLOG system. These restrictions need not hinder you yet. Simply follow the guidelines below to get going.
A valid file name usually contains alphanumeric characters and underscores - additional characters may allowed - consult the manual. However, some operating systems may limit the number of characters allowed. For example, Unix System V (and derivatives, like hp-ux) impose a limit of 14 characters. BSD Unix 4.2/4.3 impose a limit of 255 characters. VAX/VMS 4.x impose a limit of 39 alphanumeric characters for the file name and a limit of 39 alphanumeric characters for the file type. If you are creating a program file, these characters should include a file type exten- sion so that VED knows which compiler to invoke. For POP-11 pro- gram files, the required extension is .p , for PROLOG program files, .pl , and for COMMON LISP, .lsp Thus, for example:
myfile1.p myfile2.pl myfile3.lsp
are valid file names for POP-11, PROLOG, and COMMON LISP program files respectively.
For more information on file name restrictions consult your operating system manual and the appendix in the VED Advanced User Guide.
3.5 HELPFUL ONLINE DOCUMENTATION
TEACH VED - Using VED to alter or create files TEACH MORE - VED exercises TEACH FILES - Information about files and directories TEACH MOREVED - Follows on from TEACH VED HELP VED - short annotated list of available online files on VED
4.1 INTRODUCTION
Chapter 1 showed that positioning the cursor and inserting text is very simple. That was a brief overview to get you going. In this chapter we give more details about inserting characters with VED, and describe all the keys and VED procedures available for moving to any position in a file.
4.2 CHARACTER INSERTION MODES
Ved can be set in either of two modes when inserting and deleting characters - "insert" mode or "static" mode. VED is initialised in "insert" mode because it is most commonly used. The behaviour of the character insertion procedures described in Chapter 1 ap- plies only when VED is in insert mode.
You set static mode by pressing the SETSTATIC key, which is a toggle. When you press this key, VED tells you whether you are turning static mode on or off.
Sections 2.1 and 2.2 describe how characters are inserted when VED is in each mode. Chapter 5 explains how text deletion is af- fected by mode.
4.2.1 Insert Mode
If you are editing a file in insert mode and you put the cursor in the middle of a line and start typing, everything to the right moves over to make space for the new characters inserted. For ex- ample, if the cursor in on the "e" in "fred" and you type an "i", the result is "fried" with the cursor still on the "e" but both shifted one place to the right. A line break mechanism exists which, by default, causes the line to break automatically when it gets too long for the window. This mechanism works only in text files (indicated by the file type extension). In program files the window scrolls to the left if necessary, to display the end of the line.
Switching the line break mechanism on and off
To switch break mode on or off in a text file do:
press: the ENTER key type: break press: the <RETURN> key
VED tells you whether break mode is on or off.
4.2.2 Static (or overwrite) Mode
When typing in a file with static mode on, new characters replace existing characters and the cursor moves right. So if the cursor is on the "d" in "dog" and you type "h", the result is "hog" with the cursor on the "o".
Static mode disables the <RETURN> key and the line break mechan- ism, and also affects the behaviour of some of the delete pro- cedures (see Chapter 5).
Cursor movement commands function as normal in static mode.
4.3 MOVING THE CURSOR
There are two ways to move the cursor around a file - pressing the keys set up for VED on your terminal (all of which map onto VED procedures), and calling VED procedures by name from the com- mand line.
4.3.1 Moving the cursor around with key presses
The first four key presses presented here are the basic ones that every terminal must be set up with. The others are made up of combinations of these four, and some of them may not be set up on your terminal.
Moving one character up
The CHARUP key moves the cursor up one character. If you press it when the cursor is at the top of the window the text scrolls down to display the line the cursor has moved to. Think of the cursor as pushing the window up the file in that case. If the cursor is at the top of the file and the top of the window when you press the CHARUP key, VED sounds the terminal bell.
Moving one character down
CHARDOWN moves the cursor down one character. Pressing it while the cursor is at the bottom of the window forces the window down the file and the text to scroll upwards. If the last line of the file is at the top of the window and the cursor is at the bottom, pressing the CHARDOWN key causes VED to sound the terminal bell.
N.B The last two keys may be used while the cursor is on the com- mand line to examine previous VED commands.
Moving one character to the left
CHARLEFT moves the cursor left one character. If already in the leftmost column the cursor moves to right of the line above. VED complains if there is no line above.
Moving one character to the right
CHARRIGHT moves the cursor right one character. The screen scrolls to the left if the cursor is in the rightmost column of the window.
Moves to the boundaries of the window or text
SCREENUP - move to the top of the window, or up a window if al- ready at the top. This key is very useful for reading large files - it gives you a windowful at a time.
SCREENDOWN - move to the bottom of the window, or down a window if already at the bottom.
SCREENLEFT - move to the leftmost column of the window. Scroll text to the right if column is not already in the window.
SCREENRIGHT - move to the rightmost column of the window.
TEXTLEFT - move to the beginning of the text on the current line.
TEXTRIGHT - move to the end of the text on the current line, scrolling text to the left if necessary.
Moves to the boundaries of a file
TOPFILE - move to the first line of the file, as opposed to the first line of the window.
ENDFILE - move to the line below the last line of text in the file, that is, the end of the file.
NEXTLINE - move to the beginning of the next line in the file, scrolling text up if the cursor is at the bottom of the window.
Moves of one word
WORDLEFT - move left a word or, if there is no word to the left of the cursor, move to the right of the preceding line of text.
WORDRIGHT - move right a word or to the beginning of next line of text if there is no word.
The last two keys define word boundaries in a manner that corresponds to text item boundaries in a programming language.
Diagonal moves of one character
CHARUPLEFT - move cursor up a character and left a character
CHARUPRIGHT - move cursor up a character and right a character
CHARDOWNLEFT - move cursor down a character and left a character
CHARDOWNRIGHT - move cursor down a character and right a charac- ter
Large jumps across the window
CHARRIGHTLOTS - move cursor about a quarter of the current window width to the right.
CHARLEFTLOTS - move cursor about a quarter of the current window width to the left.
SCREENMIDDLE - move cursor to the column in the middle of the screen on the current line.
The CHARMIDDLE key - move cursor to character in middle of current line of text.
CHARDOWNLOTS - move cursor down about a third of the current win- dow length.
CHARUPLOTS - move cursor up about a third of the current window length.
CHARDOWNRIGHTLOTS - move cursor down about a third of the window, and about a quarter of the window to the right.
CHARDOWNLEFTLOTS - move cursor down about a third of the window, and about a quarter of the window to the left.
CHARUPRIGHTLOTS - move cursor up about a third of the window and about a quarter of the window to the right.
CHARUPLEFTLOTS - move cursor up about a third of the window, and about a quarter of the window to the left.
4.3.2 VED procedures for positioning the cursor
The following procedures move the cursor. To make them work you must call them from the command line. To call a VED command, first move the cursor to the command line by pressing the ENTER key. Then type the name of the command, and then press the <RE- TURN> key. VED obeys the command.
To move the cursor off the command line without giving a command, press the STATUSSWITCH key. This key can also be used to put the cursor on the command line without clearing the previous command.
Moving the cursor to the beginning of the file
To move the cursor to the beginning of the file:
press: the ENTER key type: @a press: the <RETURN> key
From now on we will abbreviate such a sequence of events to:
ENTER @a <RETURN>
Moving to the beginning of a marked range
ENTER @m <RETURN>
Moving to the end of a file
ENTER @z <RETURN>
Moving to a specified line in a file
ENTER <line number> <RETURN>
4.3.3 Storing and returning to cursor positions
VED allows you to store a cursor position and return to it later. This is useful if you are, for example, reading or moving blocks of text around large files. To store a cursor position, press the PUSHKEY key. To return to that place, press the POPKEY. The po- sition is no longer stored.
You can store up to five positions concurrently in this way, pressing the POPKEY will restore you to the most recently stored position.
The EXCHANGEPOSITION key swaps the current position with the last stored position, moving the cursor to the latter. This is very useful if you are moving back and forth between two parts of a file.
4.4 HELPFUL ONLINE DOCUMENTATION
TEACH TEACH - How to use VED to read teach files TEACH VED - Using VED to alter or create files TEACH MORE - VED exercises
5.1 INTRODUCTION
Everyone makes mistakes when typing. Chapter 1 showed how to delete single characters and whole lines of text using key presses. This chapter goes into more detail. It shows how dele- tion is affected by mode, and how it can be achieved with VED commands as well as key presses. It ends with a section showing how to retrieve deleted text.
5.2 DELETING CHARACTERS AND TEXT
VED has facilities for deleting single characters, and for delet- ing larger portions of text with a few key-strokes. These are di- vided into procedures invoked by special keys, and procedures in- voked by name from the command line.
"Head" refers to text to the left of the cursor on the same line, and "tail" refers to the rest of the line, including the charac- ter under the cursor.
5.2.1 Deleting single characters with key presses
The CHARDELETE key
Insert mode on:
This deletes the character to the left of the cursor and shifts the tail of the line left to fill the gap. For example, if the cursor is on the "e" in "fried" and you press CHARDELETE, the result is "fred". If the cursor is in the leftmost column, the current line is joined to the preceding line. If break mode is on, and the resulting line is too long, it will be broken at a suitable place.
Static mode on:
CHARDELETE deletes the character to the left of the cursor but does not shift the rest of the line to fill the gap. If the cur- sor is in the leftmost column, VED simply complains.
The DOTDELETE key
Insert mode on:
This deletes the character under the cursor and shifts the tail of the line left to fill the gap.
Static mode on:
DOTDELETE deletes the character under the cursor.
5.2.2 Deleting lines and parts of lines with key presses
The CLEARHEAD key
Insert mode on:
CLEARHEAD deletes the head of the current line and shifts the tail of the line to the leftmost side.
Static mode on:
CLEARHEAD deletes the head of the current line, and moves the cursor to the far left, leaving the tail where it was.
The CLEARTAIL key
This deletes the tail of the current line.
The LINEDELETE key
This deletes the current line and moves the text below the cursor up one line to fill the gap.
5.2.3 Deleting words with key presses
The WORDLEFTDELETE key
To delete a word to the left of the cursor put the cursor immedi- ately to the right of the word and press the WORDLEFTDELETE key. It deletes the word and any spaces to the left. If insert mode is on, the tail of the line is shifted left to fill the gap.
The WORDRIGHTDELETE key
To delete a word to the right of the cursor, put the cursor on the first character of the word and press the WORDRIGHTDELETE key. This deletes both the word and any spaces to the right.
5.2.4 ENTER commands for deleting text
Deleting everything from the current file
ENTER clear <RETURN>
Deleting a whole procedure (only relevant in a program file)
To delete a procedure put the cursor somewhere inside it and do:
ENTER dcp <RETURN>
If you do not put the cursor inside a procedure, VED deletes the procedure above the cursor, if one exists. Otherwise it com- plains.
Deleting from the current line to the end of a file
ENTER deof <RETURN>
Deleting a marked range
ENTER d <RETURN>
The text below the marked range moves up to fill the gap.
5.3 RETRIEVING TEXT
If you delete information by mistake you can save having to re- type it by giving one of the following commands:
5.3.1 Retrieving deleted lines and parts of lines
To retrieve the last line of text deleted with the LINEDELETE key, do:
ENTER yankl <RETURN>
VED inserts the text above the current cursor line. You can do this several times to make multiple copies of the line.
To retrieve the text last deleted with the CLEARHEAD, CLEARTAIL, WORDLEFTDELETE or WORDRIGHTDELETE key, do:
ENTER yankw <RETURN>
The text is inserted to the right of the cursor. Like YANKL, this may be repeated.
5.3.2 Retrieving deleted ranges of text
To retrieve the text last deleted by any of the commands in sec- tion 2.4 do:
ENTER yank <RETURN>
or:
ENTER y <RETURN>
5.4 HELPFUL ONLINE DOCUMENTATION
TEACH TEACH - How to use VED to read teach files TEACH VED - Using VED to alter or create files TEACH MORE - VED exercises TEACH YANK - Using ENTER y <RETURN> in VED HELP VEDCOMMS - list of ENTER commands HELP VEDKEYS - pointers to use of VED on different keyboards HELP VED - list of HELP files relevant to VED
6.1 INTRODUCTION
It is possible to have more than two files in the bufferlist, but unless you have a very large screen with lots of lines, it is not usually possible to display more than two files simultaneously. This chapter shows how to display one or two files on the screen, how to access the files in the bufferlist if there are more than two, and how to switch between files. A section on the command line is included because this is a one line window into a special VED buffer containing the commands you have given. The chapter ends by describing the procedures available for copying and mov- ing text between files.
6.1.1 The need for multiple edits
Multiple edit facilities are useful because it is quicker to ac- cess files that are already in the VED bufferlist, than to access them from the disk. Also, it is often convenient to display two files simultaneously. You might, for example, want to compare them, or have some online documentation in one half of the screen for reference.
6.2 ACCESSING MORE THAN ONE FILE
If you are editing a file and want to access another file, give any of the commands listed in Chapter 3, Section 2 from the com- mand line.
VED diplays the file asked for in a second window on the screen. If the file is already in the bufferlist, VED simply re-displays it, otherwise it either fetches the file from disk, or, if there is no file of that name in your directory, creates a new file.
6.2.1 Changing and finding out the size of the windows
By default, the size of a window is half the size of the screen. You can change the length of a window by doing:
ENTER ws <number> <RETURN>
from either window. The lower window becomes <number> lines long. The upper window becomes the screen length minus the length of the lower window.
To find out the size of the lower window, simply do:
ENTER ws <RETURN>
VED prints the size on the command line. You can work out the size of the upper window from this.
6.2.2 Changing between half and whole screens
When you have two files on the screen you can press the SETWINDOW key to make the current window take up the whole screen. The oth- er file remains in the VED bufferlist. The key is a toggle, so that pressing it again reduces the window to its original size.
If this key is used to reduce a window from full screen when the cursor is in the lower half of the screen, VED leaves the upper half visible on the screen until another VED command fills the space. This is sometimes useful when you need to see one part of a file while working on another part.
6.2.3 Moving between two files
To move the cursor between two windows press the SWAPFILES key. The cursor jumps from one window to the last position it was at in the other.
If you have only one window, but there are other files in the bufferlist, pressing the SWAPFILES key displays the last file ac- cessed in a new window. Whether it uses the full screen or not depends on the default window size (see Section 2.2).
6.2.4 Moving between multiple files
The two easiest ways to make files in the bufferlist visible in a window are to use the FILESELECT key or the VED command RB. Al- ternatively, you can give the commands described in Chapter 3.
The FILESELECT key
If you have three or more files in the bufferlist and cannot display more than two simultaneously, use the FILESELECT key to access the file you want. When you press the key, VED prints out a numbered list of the files in the VED bufferlist on the command line. Simply press the number corresponding to the file you want.
If the names of all the files in the bufferlist will not fit on the command line, VED creates a special window to present the op- tions. Press the appropriate letter or number to get the file on the screen.
Typing anything but a number or letter corresponding to a file leaves you in the file you were editing when you pressed the FILESELECT key.
Rotating through the files
If you want to cycle through the files in the bufferlist using only the current window, do:
ENTER rb <RETURN>
RB stands for "rotate buffer". If there are only two files in the bufferlist RB works in the same way as the SWAPFILES key.
6.3 INTERROGATING THE BUFFER
VED provides some procedures to help you find out things about files in the bufferlist.
6.3.1 Finding out the state of files in the bufferlist
To find out which files you are currently editing, that is, which ones are in the bufferlist, do:
ENTER files <RETURN>
VED tells you the names and directories of the files, how many lines they have, how many changes you have made since you last wrote them to disk, whether or not you need to write them to disk, and whether or not they need compiling.
6.3.2 Finding out the name of the current file
To find out the name of the current file do:
ENTER name <RETURN>
VED prints on the command line the full path-name of the file. As soon as you press a key it removes the information.
6.4 THE COMMAND LINE
Chapter 4 Section 3.2 showed how to move the cursor on and off the command line and how to give VED commands. Included here is a section on the command line because it is actually a one line window into a buffer known as the command file. The command file consists of the VED commands you have given, and can be edited like any other file.
The command file only holds thirty lines. When these have been used VED overwrites the lines, starting from the first one. When you press the ENTER key to put the cursor on the command line it goes to a new blank line at the end of the file. The STATUSSWITCH key moves the cursor on and off the command line without changing position in the command file.
Though each window has its own command line, there is only one command file for all files being edited. Thus if you give a VED command and then go to another file, that same VED command ap- pears on the command line of the new file. The current command position is retained.
6.4.1 Redoing commands
The most recent command remains visible on the command line after it has been executed. To repeat it, press the REDOCOMMAND key. This saves having to retype the command.
6.4.2 Looking up previous commands
To look back at the commands you have given, move the cursor to the command line then press the CHARUP or CHARDOWN key to scroll backwards or forwards through the command file. Press the REDOCOMMAND or the <RETURN> key to repeat any of the commands (after editing if necessary). The cursor can be positioned any- where on the command line when you do this.
6.4.3 Multiple commands
ENTER do <commands> <RETURN>
allows you to give several commands at once, so that they can easily be re-done. For example, to cycle through the files in the bufferlist going to the beginning of each one, do:
ENTER do ; rb ; @a <RETURN>
The first non-space character after "do" (in this example ";") is taken as the command delimiter and is used to separate the com- mands. Pressing the REDOCOMMAND key will then cause all the com- mands given to be repeated.
6.5 MOVING AND COPYING TEXT BETWEEN FILES
VED provides several commands for copying or moving a marked range of text between the current file and another file. In each case an optional file name may be specified to move the text to or from. If not given it is assumed to be the last file accessed (before the current file).
6.5.1 Copying text from one file to another
Transcribe a marked range of text into the current file
ENTER ti <optional file name> <RETURN>
The file name is the name of the file that the marked range is in. A copy of the text is inserted into the current file, start- ing on the line below the last cursor position.
Transcribe a marked range out of the current file
ENTER to <optional file name> <RETURN>
The file name is the name of the file that the marked range is to be copied to. If you specify a non-existent file name, VED creates a file of that name. A copy of the text is inserted in the target file, starting on the line below the last cursor posi- tion, and will not be "marked".
6.5.2 Moving text from one file to another
Moving text is similar to copying text, except that once moved, the text is deleted from its original place.
Move a marked range of text into the current file
ENTER mi <optional file name> <RETURN>
Move a marked range out of the current file
ENTER mo <optional file name> <RETURN>
6.6 HELPFUL ONLINE DOCUMENTATION
TEACH VED - Using VED to alter or create files TEACH WINDOW - Switching window sizes TEACH SWITCHWINDOW - How to switch between two VED windows TEACH BUFFERS - How to switch between more than two VED files HELP MARK - Marking and manipulating ranges HELP COPY - Copying and retrieving text
7.1 INTRODUCTION
You will often want to do something to only a portion of a file or a procedure, for example move it somewhere else, or change all the words from upper to lower case. After some general informa- tion about marked ranges, this chapter shows the facilities available for marking different sections of files. A section on how to mark a range of commands in the command file is included.
VED marks a range in a file by drawing a line down the side of the designated section. You can only have one marked range per file, but each file in the bufferlist can have its own.
7.2 HOW TO MARK A RANGE
There are two ways to mark a range - with procedures invoked by special keys, and by invoking procedures by name from the command line.
7.2.1 Using keys to mark a range
To mark a range using key presses, put the cursor on the line you want as the top of the range and press the MARKLO key. VED makes a mark on the left of the window next to that line. Next place the cursor on the line you want as the end of the range and press the MARKHI key. VED makes a similar mark by this line, then joins the two marks together. You can mark any number of lines as a range, from just one to the entire length of the file.
If either key is pressed when there is already a marked range, the range will be extended, or shortened, as necessary, to make the current line the new beginning (MARKLO) or end (MARKHI) of the range. The same comment applies to commands that invoke these procedures (described in section 2.2 below).
Notice that MARKLO marks the top of the range. "lo" and "hi" refer to the line numbers, not the position on the screen.
7.2.2 Using VED procedures to mark a range
VED provides command line procedures which mark varying amounts of files.
Marking the whole of the current file - "Mark Beginning to End"
ENTER mbe <RETURN>
Marking the current procedure - "Mark Current Procedure"
ENTER mcp <RETURN>
Marking the beginning of the file - "Mark Beginning of File"
ENTER mbf <RETURN>
This invokes MARKLO on line 1 of the file.
Marking the end of a file - "Mark End of File"
ENTER mef <RETURN>
This invokes MARKHI on the last line of the file.
Marking beginning of current procedure - "Mark Beginning of Procedure"
ENTER mbp <RETURN>
This invokes MARKLO on the first line of the procedure.
Marking the end of the current procedure - "Mark End of Procedure"
ENTER mep <RETURN>
This invokes MARKHI on the last line of the procedure.
7.3 MARKING A RANGE IN THE COMMAND FILE
VED allows you to mark a range of commands in the command file. Use the CHARUP and CHARDOWN keys while on the command line to scroll up and down the file and mark the beginning and end of the range with the MARKLO and MARKHI keys as described above. To exe- cute the sequence of marked commands press the LMR key (LMR stands for Load Marked Range). This is a very useful facility for multiple substitutions (see Chapter 8 "Searching and Substitution in VED").
7.4 HELPFUL ONLINE DOCUMENTATION
HELP VED - list of HELP files relevant to VED HELP MARK - Marking and manipulating ranges
8.1 INTRODUCTION
VED provides facilities for searching for specified items in files and substituting them with something else. For example, if you have consistently misspelt a word, VED can change all oc- currences. If necessary, you can make it check each one first. You may also search for items without doing any substitutions. This is useful for taking you to headings, or to find out if you have used a particular word in a file.
8.2 SEARCH COMMANDS
VED allows you to search both forwards and backwards for items in the current file. You can search for either a single item, or a group of items.
The item or items being searched for are referred to as the "search string". If VED finds an item matching the search string it moves the cursor to it, otherwise it prints "(NOT FOUND)" on the command line without moving the cursor. When searching for- ward, if VED does not find the item by searching to the end of the file it starts looking from the top of the file. This "wrap- around" feature is useful but can be confusing.
When searching forwards for a single item you can look for exact matches only, or for embedded matches as well. When searching backwards you cannot specify that only exact matches be found.
An "exact" match means that an item will only match the search string if it shares the same boundaries. An embedded match means that an item will match the search string regardless of leading or trailing characters surrounding the matching item. For exam- ple, if VED is searching for the string "hat on", with an embed- ded match it would find "that one", but with an exact match it would only find "hat on".
With the exception of caseless searching described in section 2.7, all the searching procedures described here are case specif- ic. That is, VED will not find "David" if you are searching for "david" with a lower case "d".
8.2.1 Searching forwards
Exact matches only
ENTER "<search string> <RETURN>
Embedded matches
To allow the search to include the string embedded in a larger string do:
ENTER /<search string> <RETURN>
For example if you do:
ENTER /fine <RETURN>
VED finds "fine" embedded in such words as "define" and "refined" as well as occurrences of "fine" itself.
You can "close" the search string with a "/". For example:
ENTER /fine / <RETURN>
finds "fine" followed by two spaces, but not by one. It will find "define" followed by two spaces but it will not find "finesse". Closing the search string is the only way to make this search so specific.
8.2.2 Guiding the forwards search
You can restrict the forwards search to specific places in the file, for example the beginning and ends of lines.
Searching for items at the beginning of a line
To search for an item starting a line, precede the search string with the characters @a. For example do:
ENTER "@afred <RETURN>
or:
ENTER /@afred <RETURN>
to find the word "fred" at the beginning of a line.
Searching for items at the end of a line
End the search string with the characters @z to find an item end- ing a line. For example:
ENTER /define@z <RETURN>
looks for the word "define" at the end of a line.
The command:
ENTER /fred@z@ajoe <RETURN>
searches for "fred" at the end of a line followed by "joe" at the beginning of the next line.
8.2.3 Using wild card characters in the search string
VED allows you to insert wild card characters in the search string. The characters @? in the search string will match any single character in the text.For example:
ENTER /d@?e <RETURN>
finds an item containing "d" and "e" separated by any other char- acter. Similarly:
ENTER "d@?@?@?ne <RETURN>
finds "define", "dryane" or "debone" etc.
8.2.4 Searching for special characters
Below are the special commands for looking for characters match- ing the search symbols used in the search string.
Searching for @
To find a string containing @, put @@ into the search string. For example:
ENTER /@@ <RETURN>
matches a @.
ENTER /@@@@ <RETURN>
matches @@.
Searching for delimiter characters
A delimiter character refers to the symbol you use on the command line to direct the search (e.g. / or " ). If you are searching for one of these characters put the character @ before it in the search string. For example do:
ENTER /@/ <RETURN>
to find the next occurrence of a possibly embedded /
and do:
ENTER "@" <RETURN>
To find a non-embedded occurrence of ".
Searching for control characters
To search for control characters in your file do:
ENTER /\^<name of control character> <RETURN>
For example, to search for the form-feed character, which is CTRL-L do:
ENTER /\^L <RETURN>
8.2.5 Searching backwards
To search for an item occurring before the current cursor loca- tion do:
ENTER \<search string> <RETURN>
If a matching item is not found before the current location, the backward search mechanism does not "wrap around" and continue from the end of the file.
At present you cannot modify the backwards search to find only non-embedded strings, or use pattern elements like @a, @z and @?.
8.2.6 Default search strings
If you give an empty search string, for example:
ENTER / <RETURN> ENTER \ <RETURN> ENTER " <RETURN>
VED uses the most recent string used in a search command.
8.2.7 Caseless searching
VED provides two procedures for caseless searching. Matches succeed whatever the case of the letters in the search string and the text.
ENTER ss <string> <RETURN>
finds embedded occurrences of the string. For example:
ENTER ss ExAmPle <RETURN>
finds "examples", "Example", " EXAMPLE", "eXaMpLe" etc.
ENTER ww <string> <RETURN>
searches for non-embedded occurrences of the string. For example:
ENTER ww ExAm <RETURN>
finds "exam", "Exam", "EXAM", "eXaM", but not "Example".
8.3 COMBINED SEARCH AND SUBSTITUTION COMMANDS
VED allows you to change the item it finds. To do this you must use the combined search and substitution commands. We refer to the item being sought as the "search string" and the item to re- place it as the "replacement" or "substitute" string. The com- ments given in section 2 on searching all apply to the searching part of these commands.
VED provides both interactive and non-interactive, or global, search and substitution commands. The interactive version asks each time a match is found in the file whether you want to sub- stitute the matching item with the replacement string. The non- interactive commands automatically change all matching items in a specified portion of the file.
8.3.1 Interactive substitution
To replace one item with another do:
ENTER s/<search string>/<replacement string> <RETURN>
to include embedded occurrences of the search string,
or:
ENTER s"<search string>"<replacement string> <RETURN>
to find exact matches only.
For example, to change "deffine" to "define" do:
ENTER s/deffine/define <RETURN>
VED searches for the next occurrence of "deffine" and wiggles the cursor to catch your eye. It then gives you four options:
press "y" to do the substitution and stop.
press <RETURN> to do the substitution and go on to the next occurrence.
press <DEL> to leave this occurrence and then go on to the next one.
press "n" to stop without doing the substitution.
As explained above, the delimiter character can be included in the search or replacement string if preceded by @. If @ itself is to be part of either string it must be represented as @@. N.B. If the substitute string is to include one or more trailing spaces, it should be terminated with a final occurrence of the delimiter character. For example:
ENTER s/fred/joe / <RETURN>
will replace "fred" with "joe" followed by two spaces.
Default search and substitute strings
If an empty search string is given, the most recent search string is used. If both search and replacement strings are omitted, the most recent search and replacement strings are used.
8.3.2 Special symbols in the replacement strings
The replacement strings may contain the following special sym- bols. @n to insert a newline @& to insert a copy of the text matched by the search string @<delimiter> to insert the character used as delimiter @@ to insert @
Examples: To insert a line break before the next occurrence of "fool" do:
ENTER s/fool/@nfool <RETURN>
To replace "rabbit" with "rabbits", type the command:
ENTER s/rabbit/@&s <RETURN>
"@&" can be very useful when the search string includes "@?" so you cannot tell in advance what is to be substituted. To go to the end of the current line and insert the delimiter character / do:
ENTER s/@z/@/ <RETURN>
8.3.3 Global, or non-interactive substitution
The procedures described below should be used if you are sure that you want to change all the items matching the search string in the chosen section of the file. As before you can use either the / or the " delimiters.
Changing all items matching the search string in the whole file
There are two procedures which replace all items matching the search string in the whole file:
ENTER gs/<search string>/<replacement string> <RETURN>
and:
ENTER sgs/<search string>/<replacement string> <RETURN>
GS stands for "Global Substitute". Using the command line it con- tinually updates the number of substitutions made.
SGS stands for "Silent Global Substitute". It works much like the global substitute command, but does not record the number of sus- titution made. It simply reports them at the end. This speeds up the process where the number is very large.
Global substitution in a marked range
To replace all items in a marked range of a file do:
ENTER gsr/<search string>/<replacement string> <RETURN>
GSR stands for "Global Substitute in Range".
Global substitution in the current line
ENTER gsl/<search string>/<replacement string> <RETURN>
Global substitution in the current procedure
ENTER gsp/<search string>/<replacement string> <RETURN>
8.3.4 Default search and substitute strings
If you do not provide a search string, for example if you do:
ENTER gs//<replacement string> <RETURN>
VED uses the previous search string.
If you provide neither a search string nor a replacement string VED uses the last search and replacement strings.
8.4 HELPFUL ONLINE DOCUMENTATION
TEACH VED - Using VED to alter or create files TEACH MORE - VED exercises HELP SUBSTITUTE - summary of search and substitution commands HELP VEDSEARCH - searching and substitution in VED HELP ASCII - character codes HELP STRINGS - creating and using strings HELP VEDCOMMS - alpahabetic list of VED commands HELP VED - list of HELP files relevant to VED
9.1 INTRODUCTION
This chapter shows you how to load or run programs from within VED. Loading means the same thing as compiling in VED and we use the terms synonymously. Compilation is simply the translation of what you type into executable machine code. This includes compil- ing procedure definitions, and compiling and executing commands to run procedures. Program output (including error messages) may be inserted into a VED file or simply printed on the terminal. It is possible to do all your program development and testing in VED, including using a VED buffer for program input and output. This makes it easy to redo old commands (possibly with slight variations) and to keep a record of the interaction in a VED file to insert into a report later.
VED provides commands for compiling different portions of files. They also differ in where they take you after they have been run. Some leave you in VED while others take you to the compiler top level (i.e. POP-11, COMMON LISP or PROLOG). Some also write the file to disk.
Section 9.4 shows how to direct output to a convenient place and how to deal with it.
9.2 PROCEDURES FOR LOADING PROGRAMS
This section describes VED procedures available for compiling a whole file, a section of a file, a single procedure, a file on disk, and a library program. It begins with the ones which leave you in VED and continues with the procedures which load files and then leave VED.
9.2.1 Staying in VED
Loading all program files in the bufferlist
ENTER l <RETURN>
loads all program files in the VED bufferlist and then returns to the current file.
Loading the current file
ENTER l1 <RETURN>
compiles the current file and leaves you there.
Loading the current procedure
ENTER lcp <RETURN>
LCP stands for Load Current Procedure. Place the cursor at any point in the procedure to give the command.
Loading a marked range
ENTER lmr <RETURN>
LMR stands for Load Marked Range. VED loads only the marked range of the current file.
Loading a library file
ENTER lib <library file> <RETURN>
loads the specified library file.
Loading a file from the disk or the bufferlist
ENTER load <file name> <RETURN>
Loads a file from either the VED bufferlist or the disk. If you do not provide a <file name>, VED loads the current file.
9.2.2 Going back to the compiler "top level"
Compiling all program files in the bufferlist
ENTER c <RETURN>
compiles all program files in the bufferlist and takes you back to the compiler top level.
Compiling the current file
ENTER c1 <RETURN>
compiles the current file and takes you back to the compiler top level. It compiles the file even if it is unchanged.
9.3 COMPILING AND WRITING FILES
This section shows the procedures for writing and compiling pro- gram files simultaneously.
9.3.1 All files in VED bufferlist
ENTER x <RETURN>
writes all changed and writeable files, compiles all program files in the VED bufferlist and then takes you back to the com- piler top level.
9.3.2 The current file
ENTER x1 <RETURN>
writes and compiles the current file and returns to the compiler top level. It compiles the file even if it is unchanged.
9.4 HOW TO DIRECT OUTPUT ARISING FROM COMPILATION
VED puts any printing it produces while trying to compile code in the current "output" file. The default file for the POP-11 and PROLOG compilers is called "output". The default file for COMMON LISP users is called "output.lsp" in the current working directo- ry.
You can change where VED is to print output by giving one of the following commands:
9.4.1 Directing output to a named file
ENTER output <file name> <RETURN>
redirects output to <file name>. Any new output is appended to the end of the buffer.
9.4.2 Directing output to the current file
ENTER output . <RETURN>
sends output to the current file. It is inserted after the current line.
9.4.3 Directing output to the screen
ENTER output ^ <RETURN>
sends output to the screen, as opposed to a file.
9.4.4 Finding out where your output is going to
ENTER output <RETURN>
makes VED display the name of the output file on the command line, or indicates that it will always go to the current file.
9.5 MISHAP AND WARNING MESSAGES
If VED cannot compile a file because it contains mistakes it prints out a MISHAP message in the current output file. If that file is the current file, VED marks the message from the begin- ning to the end so that you can do:
ENTER d <RETURN>
to delete it.
VED inserts warning messages, for example messages about unde- clared variables, into the file in comment form (i.e. after three semicolons) and does not mark them.
9.6 HELPFUL ONLINE DOCUMENTATION
HELP VED - list of HELP files relevant to VED HELP MARK - Marking and manipulating ranges HELP LMR - loading marked ranges and redirecting output
10.1 INTRODUCTION
This chapter shows how to write one or more files to disk. You usually want to do this when leaving VED and POPLOG, but you can also write files during an editing session. This safeguards against losing work. The section "Writing and Quitting Files" shows how to write one or all of the files in the VED bufferlist and leave VED. The section "Writing Files" shows you how to write one or all the files in the bufferlist and remain inside the current file. It also shows how to use VED's automatic facility for writing files.
Just as you can write files without quitting them, so you can quit files without writing them. This is useful if a VED file has been used for some temporary purpose such as testing a program or doing a calculation, or if you are not satisfied with the current changes and want to start again from the last written version. As with writing and quitting files, you have the choice of:
remaining in VED if there are more files in the bufferlist leav- ing VED but not POPLOG in order to interact with top-level loop of the current POPLOG language compiler leaving POPLOG complete- ly, in which case the system from which POPLOG was invoked will resume control, for instance DCL in VMS, or a shell in UNIX.
The section "Quitting Files" shows the commands available.
Only files that have been altered will be written. Some files cannot be written at all. None of the HELP or TEACH files, for example, are "writeable". If you look at another user's files it is advisable to invoke them using "pved" (for Protected VED) as opposed to "ved". This will prevent inadvertent writing. (For in- formation on how to protect your own files from being written, or even read by others, consult your local system expert or operat- ing system manual).
10.2 WRITING AND QUITTING FILES
Writing a file means that it is copied onto the disk. Quitting a file means that it is removed from the VED bufferlist.
10.2.1 Write and quit the current file
Do:
ENTER wq <RETURN>
to write and quit the current file. VED reverts to another file if there is one, otherwise it returns control to the compiler from which VED was invoked.
10.2.2 Write and quit the current file, then edit a new specified file
ENTER wqved <file name> <RETURN>
10.2.3 Write and quit all VED files and exit from VED and POPLOG
ENTER xx <RETURN>
writes all changed and writeable files in the VED bufferlist and then goes to the operating system or whatever invoked POPLOG. This is synonymous with ENTER bye <RETURN>.
10.3 WRITING FILES
Writing a file means copying it onto the disk and also keeping it in the bufferlist. VED provides facilities for writing either just the current buffer or all the buffers in the bufferlist.
10.3.1 Writing the current file
ENTER w1 <RETURN>
writes just the current file. If it is not writeable VED com- plains.
ENTER w <file name> <RETURN>
writes a copy of the current file onto disk with the name given. It does not alter the name of the file ( see section 7 below on how to do this).
10.3.2 Writing all the files in the bufferlist
ENTER w <RETURN>
writes all the changed and writeable files in the bufferlist.
10.3.3 Writing a file and going to another
ENTER wved <file name> <RETURN>
writes the current file and then invokes the specified file.
10.3.4 Writing a portion of a file into a new disk file
ENTER wr <file name> <RETURN>
creates a new disk file with the given name and copies a marked range from the current file into it. If a file with the new name previously existed (and is not protected) it may be over-written.
10.4 AUTOMATIC WRITING OF FILES
It is advisable to write files regularly during an editing ses- sion. If the computer crashes, for example, work will be saved only up to the last written version. VED provides an automatic safety mechanism - after a certain number of changes it writes the current file to disk. Each character added or deleted counts as one change. Certain other more complex operations done by a single command or key also count as one change, such as LINEDELETE, WORDELETE, or ENTER d <RETURN>. Changes in different files are counted separately. By default, VED automatically writes files after 1500 changes. To change this default value do:
ENTER autowrite <integer> <RETURN>
To switch off the autowrite mechanism in a session do:
ENTER autowrite 0 <RETURN>
To find out how many changes the autowrite facility is set at do:
ENTER autowrite <RETURN>
VED prints out the value on the command line.
To find out how many changes VED has counted since the current file was last written do:
ENTER :vedchanged <RETURN>
VED prints the number on the command line.
10.5 QUITTING FILES
Quitting a file means that you do not first save it on disk. VED provides facilities for quitting individual and multiple files, either leaving you in VED, or taking you to POPLOG or the operat- ing system.
10.5.1 Commands to quit a single file
Quitting the current file
ENTER q <RETURN>
quits the current file. If the file has been changed, and it is not a POPLOG documentation file, VED asks if you want to write it first. Respond with "y" (yes), "n" (no), or "c" (to continue editing that file). If you respond with "y" or "n" editing re- verts to another file if there is one in the bufferlist, other- wise it leaves VED but not POPLOG.
Quit current file, then edit a new specified file
ENTER qved <file name> <RETURN>
quits the current file and goes to the named file (if you provide a file name), or the next most recently edited file in the buf- ferlist (if you do not provide a file name).
Quit current file, then exit VED
ENTER qpop <RETURN>
quits the current file, an enters the current compiler's top lev- el loop.
Quit current file, then edit a specified HELP file
ENTER qhelp <file> <RETURN>
Quit current file, then edit a specified TEACH file
ENTER qteach <file> <RETURN>
Quit current file, then edit a specified library file
ENTER qshowlib <file> <RETURN>
Quitting the current file without writing
ENTER rrq <RETURN>
quits the current file without giving you the option to write it first. It is easy to lose work using this command. RRQ stands for Really Really Quit.
10.5.2 Commands to quit all files and leave POPLOG
Quitting all files and the editor with a chance to write them
ENTER qq <RETURN>
quits all files and the editor. If you have changed any files VED asks if you want to first write them. Respond with "y" (yes), "n" (no), or "c" (to continue editing the current file).
Quitting all files and the editor with no chance to write them
ENTER rqq <RETURN>
quits all the files and takes you to the operating system without offering the chance to write any changed files.
10.6 TEMPORARILY LEAVING VED WITHOUT ALTERING THE VED BUFFER
To go to the current POPLOG top-level subsystem without writing or quitting any files, do:
ENTER pop <RETURN>
This takes you straight to POP-11, PROLOG or COMMON LISP without altering the VED buffer in any way. To get back to the place in the file you gave the command from, type:
ved
to the subsystem prompt. (@ved to the COMMON LISP subsystem prompt.)
10.7 CHANGING THE NAME OF A FILE
To change the name of a file currently being edited, do:
ENTER name <file name> <RETURN>
This affects VED's copy of the file only, and so any copies of the current file residing on disk will NOT be affected. The name change becomes apparent when VED writes the file to disk, since the new name is used, not the old. Notice that this will leave any copies of the file with the old name untouched. It is by us- ing NAME that users can make private copies of POPLOG documenta- tion or library files.
10.8 HELPFUL ONLINE DOCUMENTATION
TEACH VED - Using VED to alter or create files HELP VED - list of HELP files relevant to VED
11.1 INTRODUCTION
This chapter examines commands for formatting text during and after insertion.
11.2 FORMATTING TEXT WHILE INSERTING IT
11.2.1 Setting and finding the values of the left and right mar- gins
To set the left margin do:
ENTER lcol <optional number> <RETURN>
<optional number> becomes the leftmost column. The default left- most column is 1. If you do not provide a number, VED uses the column which the cursor is in.
Similarly set the right margin with:
ENTER rcol <optional number> <RETURN>
The default column is 78.
To find out what the leftmost and rightmost columns are set at do:
ENTER lcol ? <RETURN>
and:
ENTER rcol ? <RETURN>
respectively. VED prints the information on the command line.
11.2.2 Controlling the effect of the tab character
By default VED inserts 4 space characters when you press the <TAB> key. Doing:
ENTER indent <number> <RETURN>
inserts up to <number> blank spaces until the current column number divided by <number> leaves the remainder 1. So if <number> is 8, and the current column is 11, pressing <TAB> inserts 5 blank spaces making the column 17 which, when divided by 8, leaves the remainder 1.
11.3 FORMATTING WRITTEN TEXT
VED provides various commands for tidying up the left and/or right hand margins of text files, and the left hand margins of program files. This kind of tidying up is known as "justifica- tion".
Commands vary according to the amount of justification required, the file type (program or text), and what portion of text is to be justified.
In text files "full justification" produces text with both the first and last characters on each line aligned with the respec- tive margin. "Justifying" a text file, as opposed to "fully jus- tifying" it places as many words as possible on each line, but does not insert extra spaces in between words to align the last text character with the right margin. In program files VED in- dents certain lines by inserting extra spaces or tabs at the left hand side, in order to make the "nesting" of the program clearer. This is sometimes referred to as "pretty-printing" a program. Un- like some pretty printers for program files, VED does not break or merge lines in a program.
The text to be justified can be either a marked range, the current paragraph, or the current procedure. The current para- graph is defined as that body of text containing the cursor that is bounded by empty lines or lines beginning with a full stop.
If the current file is a program file VED assumes that the text should be formatted as a program unless otherwise informed.
11.3.1 Justifying the current procedure - ENTER jcp <RETURN>
VED moves lines left or right, as required, to create indenta- tions that make the procedure easy to read.
11.3.2 Justifying both text and program files
In a marked range - ENTER j <RETURN>
In non-program files this justifies a marked range. In program files it works the same as JCP but on the marked range of the file as opposed to the current procedure.
Justifying the current paragraph or procedure - ENTER jp <RETURN>
In text files JP works like J, except it operates on the current paragraph as opposed to a marked range. In program files JP does the same as JCP.
11.3.3 Justifying text only
Justifying text in program file - ENTER fill <RETURN>
Justifies block of text (like ENTER j) irrespective of the current file type. i.e It treats a marked range as text even if the file is a program file.
Justifying text paragraph in program file - ENTER fp <RETURN>
Justifies current paragraph (like ENTER jp) irrespective of the current file type.
11.3.4 Fully justifying text
Fully justifying text in a marked range - ENTER jj <RETURN>
VED aligns the first and last words on each line (except the last lines of paragraphs) with the leftmost and rightmost columns respectively by inserting spaces where appropriate.
Fully justifying the current paragraph - ENTER jjp <RETURN>
Works like ENTER JJ <RETURN>, except it operates on the current paragraph as opposed to a marked range.
11.3.5 Removing excess spaces from a marked range - ENTER gobble <RETURN>
This leaves a single space between words. Leading spaces at the beginning of lines are left so that paragraph indentations remain. The command is intended as an antidote to ENTER JJ <RE- TURN>. However, it may not return text to exactly the same form as it was before the ENTER JJ <RETURN> command. If, for example, you are in the habit of inserting two spaces after a full stop you will lose one of them.
11.3.6 Aligning text
VED can align individual lines in a marked range with either one of the margins or the centre of the window. There are also com- mands to align single lines of text.
Aligning text to the centre of the window
ENTER ac <RETURN>
AC stands for Align Centre. VED puts the individual lines in a marked range centrally between the leftmost and rightmost window columns, as shown here.
ENTER centre <optional item> <RETURN>
VED puts the item given as argument in the centre of the current line. If you do not provide an argument VED moves the current line of text (for example this one) to the centre of the window.
Aligning text with the left or right margins
ENTER al <RETURN>
aligns each line in a marked range with the left margin. Similar- ly:
ENTER ar <RETURN>
aligns each line in a marked range with the right margin.
Aligning an item with the rightmost column
ENTER right <optional item> <RETURN>
VED puts <item> to the right of the current line. If you do not provide one VED aligns the current line (for example this one) with the rightmost column of the window.
11.3.7 Moving blocks of text
To the left - ENTER bl <optional number> <RETURN>
VED moves a block of text in a marked range <optional number> columns to the left. The command allows you to move text as far as the leftmost edge of the screen even if this exceeds the left- most window column setting. The command does not work at all if at least one of the lines in the marked range is at the screen's left margin. If a number is not given, VED moves the block to the left by a single column.
To the right - ENTER br <optional number> <RETURN>
Like ENTER bl <RETURN> only there is no limit to the number of spaces VED moves the block of text to the right.
To the centre - ENTER bc <RETURN>
BC stands for Block Centre. VED moves a marked block of text so that the unit as a whole, as opposed to the individual lines in the range (see ENTER ac <RETURN>) is centred between the leftmost and rightmost columns.
11.3.8 Changing the case of words
VED provides procedures for changing the case of individual words, all words in a line, and all words in a marked range. They leave non-alphabetic characters unchanged. Below are the pro- cedures for changing to lower case - the "l" in all the names stand for "lower". Substitute this with "u" to change to "upper" case.
Words - ENTER lcw <number> <RETURN>
Transforms the next <number> of words to lower case. <number> de- faults to 1.
Lines - ENTER lcl <number> <RETURN>
Transforms the next <number> of lines to lower case. The cursor moves to the next line.
Marked range - ENTER lcr <RETURN>
Transforms a marked range to lower case.
11.3.9 Moving a marked range of text - ENTER m <RETURN>
Moves a marked range of text to after the current line in the same file. See Chapter 6 section 5 for information on how to move and copy text between files.
11.3.10 Copying a marked range of text - ENTER t <RETURN>
Transcribes a marked range to after the current line in the same file.
11.4 HELPFUL ONLINE DOCUMENTATION
TEACH VED - Using VED to alter or create files TEACH MORE - VED exercises HELP PAGE - LIB PAGE and LIB RNO commands for formatted printing HELP FORMAT - VED commands to format text files HELP VED - list of HELP files relevant to VED
Introduction
There are many ways in which the editor can be adapted to suit individual needs. Taking full advantage of its flexibility re- quires a knowledge of POP-11 programming. Techniques for this will be explained in detail and illustrated in the VED Advanced Users Guide and the VED Programmer's Guide. This appendix ex- plains a subset of the facilities for users who are not POP-11 programmers.
Most of these facilities require the creation of a file called 'vedinit.p' in your login directory, or the directory you have assigned to the logical name '$poplib'. This file is compiled whenever VED starts up. In it you can give a command to compile a library file to tailor VED for your terminal, you can set global variables of various kinds to alter VED's defaults, and you can define a procedure to be run whenever VED creates a new file, and a procedure to be run whenever VED makes a file the current file i.e. puts it on the screen and puts the cursor in its window.
Examples will be given below which can be copied and modified as necessary by someone who is not a POP-11 programmer, but under- stands programming concepts.
Compiling a library file for your VDU
Suppose you use a Televideo terminal model 925. You will then want to compile LIB tvi925. You can do this by inserting into your vedinit.p file the line
lib tvi925;
This compiles the file and prints out a message saying so. The following alternative will just compile the file without telling you:
loadlib('tvi925');
If you use a different terminal, then instead of 'tvi925' in ei- ther command, you will need a different name. See HELP VEDKEYS for options available or ask your local system expert.
Setting Global Variables in 'vedinit.p'
There are many global variables that control the default behaviour of VED. Most have a number as value, but some have a string or list. You can alter any of these by including POP-11 assignment statements in your vedinit.p file.
For example, VED starts by assuming that you are using a VDU whose screen holds 24 lines, and 80 columns, and that you want each new file when it comes onto the screen to have a window of 12 lines, i.e. taking up half the screen. You can change the de- fault window size to be full screen thus:
24 -> vedstartwindow;
This makes it impossible to have two files visible at once, but is preferred by some users.
If your VDU has more than 24 lines, say 60, like the Ann Arbour, you could do:
60 -> vedscreenlength; 30 -> vedstartwindow;
VED automatically writes the current file after a certain number of changes, controlled by a variable whose default value is 1500. You can make it write after every 500 changes by:
500 -> vedautowrite;
or turn off autowriting altogether by:
false -> vedautowrite;
The number of characters by which the TAB key indents is set to 4 by default. If you wish it to be 8, the more conventional size, do
8 -> vedindentstep;
On UNIX systems VED normally keeps one backup version of each file it writes, using the suffix '-' for backup versions. I.e. it keeps up to two versions. You can increase the number of backup versions to 4 by doing:
5 -> vedversions;
(5 = 4 + 1, the 1 being the current version). The backup versions will then have suffixes '-', '--', '---', '----'.
There are some VED variables that have lists of directories as their values. These are used by commands such as HELP and TEACH and LIB, to indicate where to search for documentation or library files. You can also tell the VED command itself about a list of your own directories in which you keep files, so that it will search in those files if it does not find the file you want in your current directory. This is often convenient if you keep dif- ferent sorts of files in different directories, but may wish to access them easily. This is also useful if two or more users wish to share the files in a particular directory.
Tell VED where to look for files by assigning a list of directory names to vedsearchlist. The list is created by using square brackets, and each directory name is enclosed in single string quotes, e.g. on unix
['mylib' 'letters' 'work'] -> vedsearchlist;
or, on VMS:
[ '[.mylib]' '[.letters]' '[.work]' ] -> vedsearchlist;
If you just give file names like that, VED will treat them as names of sub-directories of the current directory. If they are subdirectories of your login directory, and you want to access them no matter which directory you happen to be working in, then you have to give the full path name for each directory. On UNIX you can use '$HOME' as your login directory, hence:
['$HOME/mylib' '$HOME/letters' '$HOME/work'] -> vedsearchlist;
On VMS you can assign logical names to directories and use them, on full path names, in your search lists. E.g. SYS$LOGIN is a logical name for your login directory. You can therefore do some- thing like:
['SYS$LOGIN' '[FRED.LIB]' 'MYLIB'] -> vedsearchlist;
where 'MYLIB' has been defined as a logical name, for example in your LOGIN.COM file.
You can use the file extension to control whether VED starts the file in 'break' mode or not. There is a default list of file ex- tensions for which VED assumes break mode is not wanted, namely:
['.p' '.com' '.lsp' '.pl'] -> vednonbreakfiles;
Suppose you often write FORTRAN programs with file names ending in '.for' and PASCAL programs with file-extension '.pas' and you wish line-break mode to be off for these. You can add these to the list as follows:
['.pas' '.for' ^^vednonbreakfiles ] -> vednonbreak- files;
There are several more VED variables described in HELP VEDVARS. Most of these are best left alone unless you are an experienced POP-11 programmer.
It is possible to define a procedure called 'vedveddefaults' that will be run whenever you start up a new ved file. You can use it to test the sort of file and do one of the above assignments ac- cordingly. For example, you may wish vedindentstep to be 4 for all files except those with suffix '.for', and you may wish vedstatic to be set true for files with suffix '.fig'. You can then put the following POP-11 procedure definition in your vedinit.p file:
define vedveddefaults; if isendstring('.for', vedcurrent) then 8 -> vedindentstep; else 4 -> vedindentstep; endif;
if isendstring('.fig', vedcurrent) then true -> vedstatic; else false -> vedstatic; endif; enddefine;
Altering VED key sequences
The built in procedure vedsetkey can be used to tell the editor that a sequence of characters, which may either be transmitted by the user, or by a function key, is to be given a new meaning. The simplest use of this is to define new abbreviations. This is done by giving vedsetkey two strings, the first being an abbreviation for the second.
Defining abbreviations
For example, if to indicate that 'df' is to be an abbreviation for 'define' and 'edf' for 'enddefine' insert the following two commands into your vedinit.p file:
vedsetkey('df', 'define '); vedsetkey('edf', 'enddefine;');
This may produce slightly counter-intuitive behaviour, since VED will no longer 'echo' the initial characters when you type them in as it has to wait to find out what you will type next. This means that it may be best to make all abbreviations start with a character not used for other purposes, e.g.
vedsetkey('@d', 'define '); vedsetkey('@e', 'enddefine;');
VED will not accept an abbreviation where the first string is a substring of the second,
vedsetkey('def', 'define ');
as this would cause the system to loop indefinitely, replacing 'define' with 'defineine' then 'defineineine' etc.
Assigning a procedure to a key sequence
vedsetkey can also be used to map a character sequence onto a VED procedure. The VED Advanced User's Guide will show how to map key sequences onto procedures defined by the user. Users can also map key sequences onto built-in procedures.
This is done by making the first argument to vedsetkey a string indicating the character sequence (to be typed by the user, or transmitted by a function key) and the second argument the pro- cedure to be run. Usually, the character sequence will start with the <ESC> character or a control character, so it is necessary to show how to represent these special characters in strings in POP-11. They are indicated by the two 'lead in' characters ''. So, CTRL-A is represented by 'A', CTRL-B by 'B', etc. <ESC> by '[' and the <DEL> key by '?'.
The following lines could be used in your vedinit.p file to tell VED that <ESC> followed by "l" should move the cursor one word left, <ESC> followed by "r" should move it one word right, <ESC> followed by "L" should delete a word to the left of the cursor, and <ESC> followed by "R" should delete a word to the right of the cursor:
vedsetkey('[l', vedwordleft); vedsetkey('[r', vedwordright); vedsetkey('[L', vedwordleftdelete); vedsetkey('[R', vedwordrightdelete);
In order to make full use of this facility for mapping character sequences onto procedures users will need to know which built in procedures are available for use as the second argument to vedsetkey.
The files HELP VEDPROCS and HELP VEDCOMMS list VED procedures. Many of these can be mapped on to editing key sequences. The fol- lowing are the most likely to be useful:
vedchangecase() Change chase of current character and move right one. Default CTRL-N vedchardownleft() Move down diagonally to the left. For other directions replace 'down' with 'up' and 'left' with 'right'. For bigger moves append 'lots', e.g.: vedcharupleftlots() Move up diagonally to left, several times
vedcharuplots() Move up several lines vedcharuprightlots() Move up diagonally to right, several times
vedclearhead() Delete current line to left of cursor vedcleartail() Delete current line to right of cursor vedendfile() Go to end of file vedenter() Clear command line, put cursor on command line vedlineabove() Insert line above current line. vedlinebelow() Insert line below current line. vedlinedelete() Delete current line vedloadline() Loads current line without altering the marked range vedmarkfind() Move to beginning of marked range
vedmarkhi() Make current line end of marked range vedmarklo() Make current line start of marked range
vedmidwindow() Scroll up or down till current line is middle of window vednextline() Move to beginning of next line. (like LF button) vedpositionpush() Push current position onto vedpositionstack.
vedpositionpop() Restore location at top of vedpositionstack. If there are not more than 5 stacked positions, save this one at end of stack. vedredocommand Re-do the command on the command line vedrefresh() Refresh screen. Usually mapped to <ESC> V or a function key vedscreendown() Move cursor to bottom of window or down a window if already at bottom vedscreenleft() Move cursor to left of screen vedscreenright() Move cursor to right of window vedscreenup() Move to top of window, or up a window if already at top vedtextleft() Move to beginning of text on current line vedtextright() Move to right of text on current line
vedsetstatic() Switch static mode on or off vedsetwindow() Make current window fill whole screen, or return to half screen. Usually mapped to <ESC> w. vedswapfiles() Switch cursor to other file. Usually mapped to <ESC> x vedstatusswitch() Switch cursor from status line to file, or vice versa. vedtopfile() Move to top of file vedwordleft() Move cursor one word to left vedwordleftdelete() Delete word to left
vedwordright() Move cursor one word right vedwordrightdelete() Delete word to right vedwritefiles() Write all writeable and changed files
ved_j 'Justify' marked range. Fills if it is a text file, does indentation if a program file. ved_jcp Justify current procedure, using ved_tidy ved_jj Fully 'Justify' marked range. Aligns left and right margins. ved_jjp Fully justify current paragraph. ved_jp Justify current paragraph if text file, procedure otherwise. ved_l1 Load current file ved_lcp Load current procedure.
ved_lcw Transforms next word to lower case. ved_lcl Lower case line ved_ucw Upper Case Word. ved_ucl Upper Case Line
ved_lmr Load (compile) marked range from edit buffer. ved_m Move marked range to after current line.
ved_mi Move marked range from 'other' file into current one ved_mo Move marked range from this file to 'other' one ved_t Transcribe marked range to after current line. ved_ti Transcribe (copy) marked range from 'other' file to current one. ved_to Transcribe (copy) marked range from current file to 'other' one.
ved_mp Match parenthesis. Moves cursor right to next '(', or ')'. Then immediately moves left or right to matching ')' or '('. ved_rb Rotate Buffers in VED. Same as <ESC> X if there are only two files being looked at. Uses current window only. ved_stop (UNIX 4.2 only) Suspend current process, taking you back to the CSHELL. Restart by typing '%' to CSHELL. ved_sw Transpose two characters to to left of cursor. ved_swl Swap current word with word on left. Uses space as delimiter. ved_swr Swap current word with word on right. Uses space as delimiter ved_yankl 'Undelete' last line deleted with vedlinedelete ved_yankw 'Undelete' last portion of line deleted using vedwordleftdelete, vedwordrightdelete, vedclearhead, or vedcleartail. ved_xdn Scroll other window down. Also done by <ESC> <LF> buttons. ved_xup Scroll other window up. Also done by <ESC> <BS> buttons. ved_xx Write all altered files, exit from VED, exit from POP11
Additional more complex examples of things that can be done in the vedinit.p file are illustrated in the file HELP INITIAL.EX.
Creating saved images
Users may find that compiling a library file and a vedinit.p file with a lot of VED tailoring commands can take some time. POPLOG allows facilities to 'pre-compile' such things and creates a 'saved' image which can then be invoked using the mechanisms described in HELP INITIAL.
Usually it is advisable to create a DCL or SHELL command file that can be run in order to create your saved image. Once it is created it can be started up quickly, and can be made to take you straight into VED as soon as it starts.
Examples of how to do this sort of thing are given in the file HELP INITIAL.EX. However, it is usually wise to get help from an experienced POP-11 programmer when this is first done.
ENTER / <RETURN> Search forward (see ved_search) Can include patterns. (if no string provided, use last search string) ENTER " <RETURN> Search forward, but only for complete word, or number, etc. (if no string provided use last search string) ENTER \ <RETURN> Search backward. No patterns allowed. (if no string provided use last search string) ENTER @a <RETURN> Move to beginning of file ENTER @m <RETURN> Move to beginning of marked range ENTER @z <RETURN> Move to end of file ENTER @99 <RETURN> Move to line 99 ENTER 99 <RETURN> Move to line 99 ENTER ac <RETURN> centres each line in marked range between left and right margins ENTER al <RETURN> aligns first character of each line in marked range with the left margin ENTER ar <RETURN> aligns last character of each line in marked range with the right margin ENTER bc <RETURN> moves the marked range left or right so that the first line of the range is centred between the two margins ENTER bl <n> <RETURN> moves the marked range <n> characters to the left, n defaults to 1 ENTER br <n> <RETURN> moves the marked range <n> characters to the right, n defaults to 1 ENTER break <RETURN> switches the line break mechanism on and off ENTER c <RETURN> Compiles all program files and returns to POPLOG. ENTER c1 <RETURN> Just compile (load) the current file and return to POPLOG. Compiles even if file is unchanged. ENTER centre <string> <RETURN> Puts string at centre of current line. If string is empty or '.' moves existing line of text to centre. ENTER clear <RETURN> Delete everything from the current file ENTER d <RETURN> Delete marked range ENTER dcp <RETURN> Delete current procedure ENTER deof <RETURN> Delete to end of file, from current line, inclusive. ENTER doc <file> <RETURN> Get DOC file ENTER files <RETURN> Print out information about current files in the editor ENTER fill <RETURN> Justify marked range as if in text file (even if not) See ENTER j, ENTER jcp, ENTER jp, ENTER fp ENTER fp <RETURN> Fill current paragraph (even if in a program file). See ENTER fill <RETURN> ENTER gobble <RETURN> remove excess spaces from the marked range, leaves a single space between words. See ENTER jj <RETURN> ENTER gs/string1/string2 <RETURN> Global substitute. If no arguments, then use last ones. Use " as string delimiter, to restrict to complete words. E.g. ENTER gs"cat"cats will not alter "catch". If string1 is empty (i.e. just ENTER gs//string2 <RETURN>) then use last search string. If no argument provided (i.e. just ENTER gs <RETURN>) then use last search string and last substitute string. See ENTER gsr <RETURN>, ENTER gsp <RETURN>, ENTER sgs <RETURN> ENTER gsl <RETURN> Global substitute in current line - like ENTER gs <RETURN> in current line. ENTER gsp <RETURN> Global substitute in current procedure. Leaves it marked. ENTER gsr <RETURN> Global substitute in marked range. Like ENTER gs <RETURN>. ENTER help file <RETURN> Get HELP file ENTER indent N <RETURN> Alter the size of the tab setting. ENTER j <RETURN> Justify marked range. Fills if it is a text file, does indentation if a program file (ENTER tidy <RETURN>). See ENTER fill <RETURN>. ENTER jcp <RETURN> Justify current procedure, using ENTER tidy <RETURN> ENTER jj <RETURN> Fully Justify marked range. Aligns left and right margins ENTER jjp <RETURN> Fully justify current paragraph. ENTER jp <RETURN> Justify current paragraph if text file, procedure otherwise ENTER l <RETURN> Like ENTER c <RETURN>, but doesn't return to POPLOG ENTER l1 <RETURN> Like ENTER l <RETURN>, but loads only current file (even if unchanged) ENTER lcol <N> <RETURN> Set the left margin. If no number given, then use cursor position. ENTER lcp <RETURN> Load current procedure. Uses ENTER lmr <RETURN>. ENTER lcw N <RETURN> Lower case words. Transforms next N words to lower case. N defaults to 1. See ENTER ucw <RETURN>. ENTER lcl N <RETURN> Lower case lines. Like lcw, but for lines. Moves to next line. ENTER lcr <RETURN> Lower case range. Transform marked range to lower case. ENTER lib <name> <RETURN> Load a library file ENTER lmr <RETURN> Load (compile) marked range from edit buffer. ENTER load <file.p> <RETURN> Load the file. ENTER m <RETURN> Move marked range to after current line. ENTER mi <file> <RETURN> Move a marked range of text from one file into the current file ENTER mo <file> <RETURN> Move a marked range of text from the current file into another file ENTER mbe <RETURN> Mark current file from Beginning to End ENTER mbf <RETURN> Mark from beginning of file ENTER mbp <RETURN> Mark from beginning of procedure ENTER mcp <RETURN> Mark whole of current procedure ENTER mef <RETURN> Mark to end of file ENTER mep <RETURN> Mark to end of current procedure ENTER name <new name> <RETURN> Rename a file ENTER name <RETURN> Print out name of current file ENTER output <RETURN> Used to redirect output ENTER pop <RETURN> Return to POPLOG ENTER pved <file> <RETURN> Call VED in 'protected' mode. You cannot write <file> ENTER q <RETURN> Quit current file. Compare ENTER rrq <RETURN> ENTER qhelp <file> <RETURN> Quit current file and call HELP with new one ENTER qpop <RETURN> Quit the current file and return to POPLOG ENTER qq <RETURN> Quit from VED and from POP-11, returning to operating system. Asks if you want to write any changed files before you quit. ENTER qshowlib <file> <RETURN> Quit current file and call SHOWLIB with new one ENTER qteach <file> <RETURN> Quit current file and call TEACH with new one ENTER qved <file> <RETURN> Quit current file and start editing new one ENTER rb <RETURN> Rotate Buffers in VED. Uses current window only. ENTER rcol <N> <RETURN> Make N the right most column. If no number given, then use cursor position. ENTER ref <file> <RETURN> Get REF file ENTER right <string> <RETURN> Puts the string at right of current line ENTER rqq <RETURN> Really Quit from VED and Quit from POPLOG without asking questions ENTER rrq <RETURN> Really Really Quit current file without asking questions. ENTER s/<search string>/<substitute string> <RETURN> Substitute search string with substitute string, repeatedly if necessary. If substitution is OK press <RETURN> to do more, or Y meaning Yes and stop. If not OK press <DEL> to search for another, or N meaning No and stop. If search string is empty, use last search string. If no argument given (i.e. just ENTER s <RETURN>) then use the last search string and last substitute string. String delimiter can be any sign character. If " is used as delimiter, then replace only whole words. See ENTER gs <RETURN>, ENTER gsr <RETURN>, ENTER gsp <RETURN>. ENTER sgs <RETURN> Like ENTER gs <RETURN>, but "silent", that is it doesn't record every substitution on the command line. ENTER showlib <file> <RETURN> Read the library file into VED. ENTER t <RETURN> Transcribe marked range to after current line. ENTER ti <file> <RETURN> Copy a marked range of text from one file into the current file ENTER to <file> <RETURN> Copy a marked range of text from the current file into another file ENTER teach <file> <RETURN> Get a TEACH file ENTER ucw <n> <RETURN> Upper Case Words. Transforms next <n> words to upper case. <n> defaults to 1. ENTER ucl <n> <RETURN> Upper Case Lines. Transforms next <n> lines to upper case. ENTER ucr <RETURN> Upper Case Range. Transform marked range to upper case. ENTER ved <file> <RETURN> Start or resume editing the file. ENTER w <RETURN> Write ALL changed files to disk ENTER w <file> <RETURN> Write the current file to the name given. ENTER w1 <RETURN> Write only current file ENTER wq <RETURN> Write current file and quit ENTER wqved <file> <RETURN> Write current file, quit it, then call VED with new file ENTER wr <file> <RETURN> Write marked range to file ENTER wved <file> <RETURN> Write current file, then call VED with the new file ENTER x <RETURN> Write all changed files, then compile program files, then return to POPLOG ENTER x1 <RETURN> Write and load current file and return to POPLOG. Compiles even if unchanged. ENTER xx <RETURN> Write all altered files, exit from VED, exit from POPLOG ENTER yank <RETURN> To retrieve text deleted with ENTER d <RETURN>, ENTER deof <RETURN>, ENTER dcp <RETURN> and ENTER clear <RETURN> ENTER y <RETURN> A shorthand for ENTER yank <RETURN> ENTER yankl <RETURN> Retrieves the last line of text deleted with the LINEDELETE key ENTER yankw <RETURN> Retrieves the last line of text deleted with the CLEARHEAD or CLEARTAIL key, or word deleted with one of the word delete keys.
A: argument - parameter given to a procedure for it to work on arrow keys - the four keys after the function keys at the top of the v55, v200, and vt100 keyboards.
B: break mode - if this is on then lines are automatically broken when they reach the rightmost column. If it is off, lines are not broken.
C: centre - align a line of text midway between the left and right margins command line - Line at the top of a VED window from which to give commands. Output is sometimes displayed here. Tells you the current line and file the cursor is in. copy - text copied from one place to another. The original is not removed. compilation - translating user's input into executable machine code current window - The window the cursor is in cursor - small symbol, such as a rectangle or underscore character, showing where you are on the screen
D: delimiter character - a character used to separate different parts of a string. For example "/" and '"' in search and substitute commands, and "." in file names. directory name - a file which lists the files taking up a particular area on the disk. disk name - the name of a disk where directories are kept E: embedded match - two items will match if they share the same characters regardless of the surrounding boundaries. exact match - two items will match only if they share both the same characters and boundaries.
F: filespace - an allocation of quota on disk which houses your directory footer - text appearing at the bottom of a page form feed character - a non-printing character which tells a printing device to begin a new page full justification - align the first and the last characters on each line with the left and right margins respectively. function keys - the keys at the top of the v55 and v200 keyboards marked F1 to F12 and F0 to F13 respectively.
G: global substitution - non-interactive substitution
H: header - text appearing at the top of a page home key - the key next to the arrow keys at the top of the v55 and v200 keyboards host name - the name of a computer e.g. CVAXA or UNX1
I: incremental compilation - compiling without having to re-link insert mode - the normal character insertion mode. interactive substitution - commands that wait for confirmation before replacing the search string with the substitute string in the text K: keypad keys - the keys forming a separate block on the right-hand side of a keyboard. These usually have numbers and may have symbols
L: left justified - first character on each line aligned with left margin library procedure - a procedure that is only loaded when it is used, or needs to be explicitly loaded load - the same as "compile"
M: MISHAP message - a message produced by the procedure MISHAP telling you about mistakes in your programs. monitor - a command interpreter e.g DCL, SH, CSH move - text moved from one place to another eliminating it from the original place.
N: non-interactive substitution - commands that replace the search string with the substitute string in the text without waiting for confirmation. NROFF - UNIX printing program
O: operating system - program, e.g. VMS or UNIX, controlling system resources such as disk space and processor time.
P: paging - insertion of page breaks, page numbers, headers and footers on a printing device printout - paper version of a file, as produced by a printer Q: quit - remove a buffer from the bufferlist
R: replacement string - an alternative term for "substitute string". right justified - last character on each line aligned with right margin RUNOFF - VMS printing program
S: search string - the argument you give to a search procedure to search for. static mode - character insertion mode where existing characters are over-written, and the <RETURN> key is disenabled. status line - an alternative word for the "command line". string - POP-11 vectors whose elements occupy one byte (i.e. they must be positive integers less than 128) substitute string - the second argument you give to a search and substitute procedure. VED replaces occurrences of the search string in the text with the substitute string.
T: toggle - successive key presses switches the associated behaviour on and off alternately
V: VED buffer - VED's temporary copy of a single file. It is a vector containing strings representing successive lines of the current file. VED bufferlist - a list of the current VED buffers vedfile - refers to the structure that VED keeps for every file it is editing which includes the vedbuffer and other information e.g. where marked ranges are VED window - a section on the terminal screen providing a window into a VED file
W: wild card - a dummy character used to stand for anything words - a word is a letter followed by a series of letters or numbers. A word can also be a series of non-alpha-numeric characters write - transfer a file from the bufferlist to the disk
--- C.all/doc/veduserguide --------------------------------------------- --- Copyright University of Sussex 1987. All rights reserved. ----------