Today's editors, though useful, still carry much unnecessary baggages. The extra pressing of the Ctrl and Enter keys are a truly waste for a multitude of users. Unreasonable designations of commands put a strain on the brain, not to mention the mistrust it contributes to the users toward computing. And finally the future of editting is forever doomed, in that we will be doing editting forever into the future. But manual editting is in essence a bottle neck for software automation. The ultimate objective of a good editor is doing away with editting.
ROBACUS' editor is designed to be an extension of our hands, and possibly also that of our mind. For example, it's made as much case-insensitive as possible. Also, it is testing out a feature in which typing of a string would mean automatic search of the string without the searching command -- kind like the editor will goto whereever the user is thinking.
This editor is robotic so that eventually all editting session can be passed to the editor in the form of robots that can perform the necessary string manipulation or even programming thru editting, all transparent to the users. In short, this editor's mission is to make itself disappear.
Another indispensible function of the robot is in debugging. The robot can made to provide as extensive a record of what truly occurred under the hood as a user wants, with the help of the diagnoser.
The use of the mouse is avoid, even though some features has been programmed in it. Any user, who wants to use the mouse, needs to make a strong arguement to reactivate these features. Thus, it's deemed the mouse is too clumsy for handy computing that ROBACUS is designed for. On the other hand, whenever the mouse click is the most natural way to go, ROBACUS go to extra effort to provide equivalent key press whenever possible. So, as expected, this editor, during its development, can be as handy as it's unstable, much like our own hands. The debugging can also become extremely uncanny, much like dignosing our own sickness. However, this is the only way to avoid the dead end mentioned above. The users definitely need a lot of patient with many of its defects. Why, it's only human.
I.HELP
h=summary list of commands
?=summary list of vanpool, or
users-generated combination of,
commands
II.POSITION
[Page Down],[Page Up], up,
down, left and right arrows
[Tab] first go to middle of nonblank
part of the statement, second pressing to
end of line, then bottom
of page, then top of page
t=Top of file and search downward.
Second pressing allow display of
top-down tree structure of the subroutine
entered.
b=Bottom of file and search upward.
Second pressing allow display of
bottom-up tree structure of the
of the subroutine entered.
d=Down search to the string,
which is entered immediately afterward
u=Upward search to the
string, similarly as 'd'
&=Repeat previous search
in downward direction
^=Repeat search in upward direction
n=Number of the line to go to,
2nd n gives current line number,and
next n gives total number
of lines in the file
s=Go to start of subroutine
e=Go to end of subroutine
l=List of subroutines is processed to
goto or access
c=Repeat previous change in
the next occurrence. This change should
be uniquely produced in fullscreen
editting where the new string is typed
over the old string, as well as the use of
left/right arrows, Insert/Delete and
Backspace keys. The change is terminated
normally by End or Enter keys.
r=Restore original line after
unwanted change with 'c'
a=Change all occurences following the
current statement
[End]=Move the cursor to leftmost so that
single-key command can be entered. also
in combination with [Home] it forms a
block of coding to be moved, inserted or
deleted, etc.
[PageUp],[Pagedown]=In columns
> 1, allows search up or down. But
continuing pressing gives the desired
intends.
The above 1-letter command used with
an [Enter] is also
applicable when a questionis asked .
In full
screen editing mode, it can be
used in conjunction with the [Ctrl] key. Use [PageUp] and [PageDown]
The far right - and + can be
used to scroll the screen, respectively.
III. MODIFICATIONS
1. REPLACE
Type over characters to be replaced.
The entire string surrounded
by the leftmost and rightmost
characters typed will be considered
as the replacement segment.
This replacement can be repeated
to other string in the previously
specified direction by
entering a 'c' in column 1.
End the replacement with [Enter] or [End].
Enter an 'a' in column 1
will change all occurences following the
current statement.
Ctrl+/ deletes everything to
the left, then moves down 1 line
Ctrl+\ deletes everything to
right, then moves straight down 1 line
2. INSERT
(1) New Text - start with
'i' and end with [End].
[Space] means blank line.
(2) Imbedded String - start with
[Insert] and end with any arrow or
[End]
(3) z=Zero in on a FORTRAN statement
to write out all its variables
3. DELETE
(1) Delete a Line --
[Backspace] in column 1
(2) Delete a Character
-- [Delete] in column > 1
CntrlI
(3) Delete a Block -
- [Delete] in column 1
VI. END SESSION
f=Finish and save
q=Quit and discard change(note:
the robot recording is saved, however)
V.BLOCKING
1. Create a block by typing
[Home], then reposition and end with
[End]. [Home] and [End] terminate
full screen editting.
2. Immediately after forming
a block, a question will be asked for
the file name to which the block can be
Cextracted and appended(same as 'w'riteout
command). But single-key command is
also allowed here.
3. Use [Insert] and [Delete]
to insert and delete
the block(no [End]ing
is necessary, as it would be
automatically inserted by the Insert and
Delete command.
4. [Home] and [Insert]
duplicate the line, same as 'x'erox
command.
5. m=Move the block to the current
position(delete if on same page)
6. g=Get external file
7. j=Jack a subroutine from other
ROBACUS update source files.
If cant find, specification of file
will be requested.
7. w=Write out the
block to external file
8. p=Print block as hardcopy(
no [End]ing the block is necessary)
VI. SPECIAL FEATURES
A. ROBOTICS
1. All editing actions are recorded
2. The last editing session
can be reenacted out a line at a time
with the [Enter] key
3. The default action activatable
by [Enter] is displayed at the top
of the page
4. '$%' causes the robot to
perform rest of the editing
(To enter a character '$', enter '$' twice)
5. The robot file can be shifted
up or down with '$^' and '$&' to align
with the current editing
B. VANPOOL COMMAND
1. v=create vanpool, or combination of,
commands
and make them available to be invoked by
a '[1-letter alphabet or
digit]. The '?' gives description of
available vanpool commands
and '#' for deleting existing commends.
First "v" is used to start
forming the vanpool COMMAND, when done
specifying all editing command,
a second "v" terminated the process.
2. Digits "0" to "9" (and
letters "a" to "z", though not recommended)
can be used for vanpool
commands for used as "[1-letter]"
3. *=a variable command
inside a vanpool command
4. Vanpool commands, once created,
can be manipulated externally and
issued to perform a capsulated
task(to be completed in a background
batch mode).
C. ZERO IN ON A STATEMENT
The "z" command writes debugging statements around the statement to be zeroed in on and causes a pause after the execution of the statement and writing out of the debugging statements.
D. FAST-TYPING SEARCH COMMAND
An automatic search command is invoked when the first two letters are entered in rapid successing in column 0 or in full screen editing mode during a searching processing. This feature needs more work to eliminate the risk of unintentional editing and timing adjustment of pc of varying processing speeds.
E. KNOW VARIABLE DESCRIPTIONS
IN A STATEMENT
The "k" command would give the description of each variable in the statement, if a 'code variable' file is available. This file is automatically generated in natural-language programming by the software generator.
A 2nd "k" would explain the fortran rule used.(i forget what the 3rd "k" does).
F. YANK IN AN EXISTING
SUBROUTINE CALL STATEMENT
The "y" command provides easy accessing of available library and program subroutine modules.
G. JACK OVER A SUBROUTINE
FROM AN EXTERNAL FILE
The "j" command jack a subroutine over from another file.
H. EXTRACT COMPILATION AND LINKING BUGS
The "x" command xtracts the bugs occurred during compilation and linking if the execution is submitted to be offline in the background. The editing robot that perform this debugging exercise also can display the actual error message by 'i'nserting the statement when the [Enter] key is pressed after the bug position is indicated.
I. BRACKET A BLOCK OF CODING
AND MAKE IT A SUBROUTINE
The 'o' command convert a block of coding into a subroutine or object and replace the block with a CALL statement to the subroutine.
VII.EDIT TIPS
Some simple rules to remember are:
* Ctrl+letter, when entered
anywhere, is the basic editor command.
But the most handy way to use the editor is
to avoid the Ctrl key. Instead, make a
habit of pressing the [End] key after a
fullscreen edit sequence, so that the
1-letter command can be issued from column
0.
* Once in column >1 full
screen editing is invoked(with space,
right arrow or tab keys)
* column 0 and after every question(in
combination with [Enter] key)
will honor the 1-letter command.
* [Enter], [Home], [End] and
moving to column 0 cause editing to leave
full screen mode
* When it is important to keep
a record of the editing session
for someone else to see, "q"uit
out the edit session so the
robot can be used to repeat
verbatim every step of the session
by simply pressing the [Enter] keys,
or '$%' to do it all at once.
VIII. EDITOR DEBUGGING
* The editor is debugged by writing
debugging statements into the robot(60).
* An old edeabo should be copied from the
current edeabs so that it can be copied
back when the editor is disabled after
modification.
* For extensive modification, relevant
subroutines should be moved to the
small na1upd, from which the editor can
be modified at a faster turn around.
IX. FINAL WORD
* This editor is handy and powerful,
rather than complex and stable.
* To let computer do as much
of the work as possible, the user
needs to adjust to a bilateral
interaction with the computer.
In practice, the user needs
to do more anticipating than dictating.
Remember: The scenerios we
anticipate are those we
set up for ourselves,
not that dictated by the computer.
* The ultimate goal for ROBACUS
is to make editing unnecessary.
This can be realized once we
identify all the individual and
combinationary functions that
the editor performs. All we need
to do then is to send the
robot to perform that function we desire.
The full-screen data entry as if one is
filling a standard form
is an example of the application of
the editor.
IX.PLANNED MODIFICATIONS
When running into a bug in editor, the user can send either the file fil060,if bomb out unexpectedly, or the file eder??, where ?? is the prefix of the file being editted, if the editting session ends normally.
* implement the fast-typing, direct
search(without typing the "d" or "u")
* clean up fullscreen editing involving
multiple use of Insert and Delete in
one line
* clean up [Insert]ing and [Delete]ing of
[linefeed](or [Enter]) at the end of
statement
* catch a scenerio in which the editor
mysteriously inserts a "C" or some Cntrl*
in column 1
* why repeated [Insert]ing of a block at
different locations produces infinite loops
* "o" option lacks some external files
* block changed by delete(
or insert) lines
* move block addresses to new
locations with insert, move, and get
* use '*' as wildcard letters in search
* 'c'hange move to 1st character
changed(use ctrl+c after words)
* automatic paging
* automatic inserting of [linefeed]
at column 41
* dont cover the top or bottom line
with question, such as "SEARCH...?"
* e at bottom of file goes
to end of last subroutine(above the
job control statements)
* "c" should change upward if
previous search is ^ or ctr ^
2.14
DIAGNOSER SPECS
2.15
DATA FILE LINK SPECS
2.17
UNIVERSAL LANGUAGE FOR COMPUTING