EDITOR SPECS

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.16 COMPUTER ENGLISH WORDS

2.17 UNIVERSAL LANGUAGE FOR COMPUTING

2.18 SPACE NUCLEAR DESIGN ANALYSIS
heapip.

back to homepage