PURPOSE

vuform - visual form editor

SYNOPSIS

vuform [ -r rows ] [ -c columns ] name[.M] ...

DESCRIPTION

vuform is a visual form editor that creates the masks used by mio to process form I/O in a TUXEDO System/T application. The keystrokes used to establish the layout of a form are something like those used for vi(1), but not all vi keystrokes are present in vuform, and the action of keystrokes in vuform is not always the same as comparable keystrokes in vi. In layout mode, vuform maintains a picture of the form on the terminal screen. At various points in the editing of a form, attribute forms are displayed by vuform to prompt the user for attributes to associate with a field, a page, or with the form as a whole. This mode is known as attribute mode. Finally there is a command mode similar to vi command mode for writing, exiting and performing other operations global to the editing session.

vuform takes the names of mask object files as arguments. The .M suffix is optional. If an object file, given as an argument to vuform does not exist, vuform will create it.

In order for vuform to be able to write (compile) the form, it must be able to find the field tables containing FML identifiers associated with the variable fields of the form. To do this it needs to have the environment variables FIELDTBLS and FLDTBLDIR set.

OPTIONS

The following invocation options are interpreted by vuform:

-r rows
there will be rows rows available for forms instead of the standard 23.

-c columns
there will be columns columns available for forms instead of the standard 80.

VUFORM MODES

Layout

Normal and initial mode. The other modes (Attribute mode and Command mode) return to layout mode upon completion. Layout mode has keystrokes similar to vi, but not all vi keystrokes are present in vuform.
Attribute

Entered from layout mode by the keystrokes cf, cp, or cF, which bring up attribute forms for a field, a page, or the form, respectively. Keystrokes in attribute mode are the same as those used in mio. Attribute mode is terminated with a CTRL-d keystroke.
Command

Entered from layout mode by the keystroke : (colon). Command mode is similar to vi's command mode. Return to layout mode is achieved by entering a carriage return to execute a command or an ESC to abort a command.

ENVIRONMENT VARIABLES

vuform uses the environment variable TERM to determine the type of terminal being used.

vuform uses the environment variables FIELDTBLS and FLDTBLDIR to locate the field tables it needs to create the mask object files. If a form is written (:w!) without FML field names specified for some of the variable fields, those fields will be given the FML field name, FML_NOT_SPECIFIED. Except in the unlikely event that FML_NOT_SPECIFIED is defined in some field table, the write (compile) will fail and the UFORM source for the mask will be left in a temporary file (VUFORMxxxxxxx.m) in the current directory.

COMMAND MODE COMMANDS

All command mode commands are terminated with a carriage return. The suffix is optional in commands taking an object file name.

:w
-- write current form
 
:w!
-- write current form even if it contains undefined FML identifiers (the compile will fail and the UFORM source file will remain)
 
:w filename
-- write form to filename
 
:w! filename
-- write form to filename, even if it already exists, or there are undefined FML identifiers
 
:q
-- leave vuform
 
:q!
-- leave vuform, discard changes to current form
 
:wq
-- write current form and leave vuform
 
:e filename
-- edit form in filename; a '#' in place of filename refers to the previously edited file
 
:e! filename
-- edit form in filename, discard changes to current form; a '#' in place of filename refers to the previously edited file
 
:n
-- edit next form in command line file list
 
:n!
-- edit next form in command line file list, discard changes to current form
 
:!command
-- send command to the shell for execution
 
:!!
-- re-execute last shell command
 
:t
-- run mio in test mode (-t) with the current form. When the form is exited, the session is returned to layout mode.
 
:rows[=number]
-- change the rows available for form editing to number. If '=number' is not present, the current number of rows will be displayed.
 
:cols[=number]
-- change the columns available for form editing to number. If '=number' is not present, the current number of columns will be displayed.

LAYOUT MODE COMMANDS

Many of the layout mode commands take an optional number prefix for performing several repetitions of the command at once. These commands are designated with an asterisk (*) at the end of the description.

Cursor movement

h and ^h
-- move cursor back one space*
 
l and SPACE
-- move cursor forward one space*
 
k and j
-- move cursor up or down one space, respectively*
 
0 and ^
-- move cursor to the start of the current line
 
$
-- move cursor to the end of the current line
 
fc
-- move cursor to next character c on current line*
 
Fc
-- move cursor backwards to character c on current line*
 
TAB and ^i
-- move cursor forward to next tab stop*
 
^O
-- move cursor backward to previous tab stop*
 
> and <
-- move cursor to next or previous field, respectively*
 
H, L and M
-- move cursor to start of first, middle or last line of form, respectively
 
CR
-- move cursor to the beginning of the next line*
 
w
-- move cursor to beginning of next word in literal field*
 
b
-- move cursor to beginning of previous word in literal field*
 
e
-- move cursor to end of next word in literal field*
 
E
-- move cursor to end of literal field*
 
^f and ^b
-- move forward or backward one page, respectively*
 
number|
-- go to column number
 
numberg
-- go to line number
 
numberG
-- go to page number

Creating, sizing and moving

See NOTES for constraints on moving or enlarging fields when more than one field is present on a line.

I
-- insert a new page before the current page
 
A
-- append a new page after the current page
 
i stringESC
-- insert a literal field at the position of the cursor; if the cursor is already over a literal field, insert characters to the field at that point until an escape character is typed
 
a stringESC
-- add a literal field at the position of the cursor; if the cursor is already over a literal field, append characters to the field at that point until an escape character is typed
 
^r
-- widen a variable field under the cursor by one space (expand right). This keystroke will create a new variable field, if one does not already exist beneath the cursor*
 
^l
-- shorten a variable field under the cursor by one space (contract left)*
 
^d
-- add a line to a variable field under the cursor (expand down). This is the way to create a multiline field. If a field does not already exist beneath the cursor, this keystroke will create a new variable field.*
 
^u
-- remove a line from a variable field under the cursor (contract up)*
 
o and O
-- open a blank line below or above the cursor, respectively*
 
[ and ]
-- move current field one space left or right, respectively*
 
{ and }
-- move fields at or to the right of the cursor one space left or right, respectively*
 
- and _
-- move current field one line up or down, respectively*
 
= and +
-- move fields at or below cursor one line up or down, respectively*

Editing literals

x
-- delete the character under the cursor*
 
cw stringESC
-- change to the end of word under the cursor*
 
C stringESC
-- change to the end of the literal field
 
dw
-- delete to the end of word under the cursor*
 
D
-- delete to the end of the literal field

Yanking, deleting, and putting

yf
-- yank field*
 
yy
-- yank line*
 
yp
-- yank page*
 
df
-- delete field*
 
dd
-- delete line*
 
dp
-- delete page*
 
p and P
-- put the yanked item(s) after or before the cursor, respectively

Assigning attributes

cf
-- change the attributes associated with the literal or variable field underneath the cursor
cp
-- change the attributes associated with the current page
 
cF
-- change the attributes associated with the form

Searching

All the search commands except n and N are terminated with a carriage return.

/pattern
-- search forward for field matching pattern
 
?pattern
-- search backward for field matching pattern
 
'field_name
-- search forward for field associated with FML field name
 
''
-- position cursor at next field not associated with an FML field name
 
"field_name
-- search backward for field associated with FML field name
 
""
-- searching backward, position cursor at next field not associated with an FML field name
 
n
-- repeat last search command
 
N
-- repeat last search command in reverse direction

Miscellaneous

.
-- repeat last edit operation
 
u
-- undo last edit operation
 
ESC
-- abort current edit operation
 
^g
-- display form name, number of pages, current page number, and current cursor position
 
^p
-- redraw screen
 
^a
-- display help form

ATTRIBUTE MODE COMMANDS

The attribute mode commands are the same as those used in mio to interact with a form.

^i and TAB
-- go to next field
 
^o
-- go to previous field
 
^h
-- go back one space
 
^l
-- go forward one space
 
^k
-- go up one line
 
^j
-- go down one line
 
^f and ^b
-- go forward or backward one page, respectively
 
^u
-- delete character under cursor
 
^c
-- insert a space at cursor
 
^a
-- display help message for field
 
ESC!commandCR
-- send command to shell
 
^t
-- position cursor on first field of attribute form
 
^p
-- redraw attribute form
 
^w
-- cycle through field defaults
 
ESC$
-- clear to end of field
 
ESC@
-- clear current field
 
^x
-- clear attribute form
 
^n
-- validate current field
 
^v
-- save changes made on attribute form
 
^d
-- leave attribute form

NOTES

If a line contains more than one field, commands to move a field or make a field larger are limited by the boundaries of adjacent fields. For example, on this line with a literal field followed by a variable field:

NAME: _________________________

an attempt to change NAME to FIRST NAME will fail unless the variable field is first moved 6 columns to the right to make room for the additional characters.

SEE ALSO


mio(1),
BEA TUXEDO Data Entry System Guide