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