home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
editor
/
tvx_edit.arc
/
VIX.REF
< prev
Wrap
Text File
|
1986-03-17
|
9KB
|
214 lines
VIX - A vi-like editor based on TVX
Vix is an extension to tvx that provides a close emulation
of the Unix editor vi. While the majority of the common commands
are identical, there are some inherent differences in the way tvx
and vi treat text. Most of the commands were implemented directly
using the TVX equivalent, although some commands were required new
code. If the vi command could not be implemented, its command letter
was left unused, and will produce an error message.
Vix does not have the underlying ex editor, so none of the
escape to ex commands work. Vix does have the TVX repeat loop,
however, and this compensates to a great extent for the need for ex
features. Please consult the TVX manual for examples of using the
repeat loop. Note that when using the repeat loop with vix, the commands
will be vix commands and not tvx commands.
Another significant difference is that tvx (and thus vix)
treats the end of line character as just another character. Thus
cursor movement commands move over the end of line in a fashion one
would expect. However, when one moves to the end of the line, the
cursor is placed 'over' the newline (displayed after the last real
character in the line). This makes the '$' command work somewhat
differently. This also means that you can include a <return> in a
search pattern. Vix and tvx use ESCAPE to end the search pattern
instead of <return>.
Vi uses the ':' command to read and write the file (among
other things). Vix uses the ':' to set operating parameters such
as autoindent, screen size, etc. The 'ZZ' (or 'ZA' to abort without
changes) command is used by vix to exit.
Unlike vi and ex, tvx and vix try to load the entire file
being edited into memory (called the buffer by tvx/vix, as opposed
to the yank or save buffer). If the entire file doesn't fit, the
user must manually 'page' the file in and out of memory manually.
Most of the 'q' ("tvx" prefix) commands are supplied to handle buffer
manipulation. For more details, consult the TVX manual. TVX/vix
also uses the concept of the "last thing" as a major editing tool.
Whenever you find a pattern, skip over a word with b or w, save text
into the save buffer with the 'y' or 'Y' commands, or put text from
the save buffer, that text is considered the "last thing". The 'c/'
and 'd/' commands will delete the last thing. Entering a new command
will forget what the last thing was until you again enter a "last
thing" command.
The available vix commands are summarized below. The first
column of each entry has a character noting similarities and
differences with the real vi commands in the following fashion:
- means present in vi, not implemented in vix.
= means commands work identically {with possible minor variations}
+ means new or significantly different command
* means "equivalent" command, somewhat different than vi
<space> means command unused in both vi and vix.
n in front of command means command takes count argument
[synonyms indicated in brackets]
^@: Unused
^A: Unused
= n^B: Backward window. {2 lines of continuity not preserved}
^C: Unused
= n^D: Down half window.
- ^E: Not implemented
= n^F: Forward window.
* ^G: memory status, short info line
= n^H: backspace Command mode: left; Insert mode: del last char
= ^I: inserts tab in insert mode, not a command.
= n^J: down arrow in column [j,^N]
+ n^K: up in column [k,^P]
= ^L: verify screen [^R,z]
= n^M: down to beginning of line [+]
= n^N: [j, ^J]
^O: Unused
= n^P: [k, ^K]
= ^Q: Unused (flow control)
= ^R: Redraw screen [^L,z]
= ^S: Unused (flow control)
+ ^T: TVX prefix command - see q [q,Q,T]
* n^U: Up half window. ** in insert mode, does NOT erase line **
* ^V: Not a command. NOT literal quote in insert mode.
* ^W: Not a command. NOT used for delete word in insert.
^X: Unused
- ^Y: Not implemented
- ^Z: Not implemented
= Escape: forces command mode, safe follow char for d,c,q.
^\: Unused
- ^]: Not implemented
- ^^: Not implemented
^_: Unused
= <space>: [r]
+ n!: Tidy. Fills n lines up to wrap margin. [see autowrap]
- ": Not implemented
+ n#p: execute repeat loop number 'p' 'n' times
= $: goto end of current line {end is newline, not last char}
- %: Not implemented
- &: Not implemented
- ': Not implemented
- (: Not implemented
- ): Not implemented
+ *: insert last matched pattern into text buffer
= n+: [CR, ^M]
- ,: Not implemented
* -: Used in vix for negative counts, use K for up line.
- .: Not implemented, repeat loops are a substitute
= /: search {Escape used to end pattern, multi-line patterns ok}
* 0: 0 is used for counts (especially for : parameters)
= 0-9: count value for numeric arguments {may be negative!}
- :: Not implemented - use ZZ and ZA to exit
- ;: Not implemented
+ n<: Begin repeat loop. Loop terminated with >$$. ($ = Esc)
+ =: Help screens
+ >: Used to terminate repeat loops.
= ?: Reverse search {search begins on previous line}
+ n@: execute current repeat loop n times (shorthand for n#p)
= A: append to end of line
* nB: back a word {vix's concept of words is different than vi}
= C: changes rest of line
= D: delete rest of the line
- E: Not implemented
- F: Not implemented
= nG: goes to line number n, or end of buffer if no n supplied
* H: Beginning of buffer (first line in buffer)
= I: inserts at beginning of line
= J: join lines {not needed since vix treats newlines as chars}
+ nK: Up a line to beginning of line
* L: bottom line of file
+ nM: return to marked location n (n from 1 to 9, see m)
= N: like n, but in reverse direction
= nO: open a line above current line. n opens n blank lines.
= P: put save buffer above current line {save buffers not named}
+ T: tvx commands (see q) [^T,q,Q]
* U: very limited undo!! It only restores the LAST line killed!
V: Unused
* nW: Moves forward n words [w] {vix's concept of words not same}
= nX: delete n characters before cursor
+ nY: append n lines to save buffer (see y), does not change buffer
=+ Zx: exit from vix (ZZ: normal, writes file, ZA: abort, no changes)
- [[: Not implemented
\: Unused
- ]]: Not implemented
= ^: beginning of line {1st char of line, NOT 1st non-white char}
+ _: invoke indirect command file
= a: append text starting after cursor
* b: back up a word [see B]
= c: change c, <sp>, ^, $, or / (delete, enter insert mode)
= c - change line
= <sp> - change one character
= ^ - to beginning of line
= $ - to end of line
- w, b, and any others not mentioned not implemented
+ / - the last thing found, yanked or put
= nd: delete d, <sp>, ^, $, or /
= d - delete line
= <sp> - delete character
= ^ - to beginning of line
= $ - to end of line
- w, b, and any others not mentioned not implemented
+ / - the last thing found, yanked or put
- e: Not implemented
- f: Not implemented
g: Unused
= nh: Move left n characters [BS,^H] {will move over lines, too}
= ni: insert (if value n supplied, then that ascii code inserted)
= nj: down lines, in column [^J,^N]
= nk: Up lines, in column [^K,^P]
= nl: right n characters [<space>] {moves over lines, too}
* nm: mark cur. line as location n. Use M to return to location.
= n: find next (in same direction as last ? or /)
= no: open n following lines
= p: put save buffer after cur line
+ q: Prefix character for "tvx" extended commands
!: call operating system
b: goto real beginning of the file
e: edit repeat buffer
j: jump back to last location
p: put external file from save buffer
r: restore repeat buffer
s: print screen
w: read in next page of file
y: yank external file to save buffer
/: cross buffer search
n:p: set parameter 'p' to value 'n', parameters are:
a: autoindent (1 means on, 0 off for all "switch" pars)
c: "cut" mode (means 'dd' saves line in yank buffer, too)
e: expand tabs to n spaces (8 default)
d: home display line (where cursor homes after verify)
f: find case mode (0 is case insensitive, 1 exact match)
m: match wildcards (1 use ^A, ^L, etc., 0 no wild cards)
o: requests new name for output file
s: scroll window, cursor moves s lines before scrolling
t: tty mode - 1: tty mode, 0: visual mode
u: requests entry of user wild card set
v: virtual window size
w: autowrap limit.
= r: replace next char with next character entered
= ns: substitute: delete n characters, enter insert mode
- t: Not implemented
- u: Not implemented (see U)
v: Unused
* nw: advance word (see W)
= nx: delete n characters
* ny: yank text to save buffer - will save n lines into save buffer
(Only one save buffer, 1st y clears buffer, rest add until
non y command entered. dd works in a similar fashion, but
kills as it saves (if cut_mode enabled)).
= z: refresh screen (^L,^R)
- {: Not implemented
- |: Not implemented
= n~: Change case of next n characters
* nDEL: Same as X, delete previous character