699 lines
26 KiB
Plaintext
699 lines
26 KiB
Plaintext
THE SEMWARE(R) EDITOR JUNIOR
|
|
|
|
|
|
Version 4
|
|
|
|
|
|
M A C R O R E F E R E N C E M A N U A L
|
|
|
|
|
|
MACRO REFERENCE
|
|
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
|
|
|
To simplify and automate editing tasks and to further customize the
|
|
editor, you can create macros. A macro is simply a series of commands
|
|
and/or keystrokes that is assigned to a key.
|
|
|
|
The simplest type of macro to create is a Keyboard Macro. A Keyboard
|
|
Macro is created by recording a series of keystrokes as they are typed
|
|
at the keyboard, and assigning that series to a key. For example, if
|
|
you wish to repeatedly enter a row of asterisks, three Returns, and then
|
|
a Tab, you could record this series and assign it to a single key, such
|
|
as <Shift F6>. Then, the next time you wish to enter a row of
|
|
asterisks, three Returns, and a Tab, you only have to press <Shift F6>.
|
|
|
|
More powerful macros can be created using the editor configuration
|
|
program (QCONFIG.EXE) and the QMac program (QMAC.EXE). These macros can
|
|
be permanently tied to the editor (using the configuration program), or
|
|
can be loaded as needed (using QMac). Using these facilities, you can
|
|
extend and customize the capabilities of the editor to suit your needs
|
|
and preferences. Refer to "Creating Macro Programs" in this file for
|
|
more information. (Note that QMac is included only in the registered
|
|
version.)
|
|
|
|
|
|
KEYBOARD MACROS
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Creating Keyboard Macros
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Once you have decided to assign a series of commands and keystrokes to a
|
|
single key, creating a Keyboard Macro is simply a matter of entering
|
|
this series while the editor "records" the macro.
|
|
|
|
To create a Keyboard Macro, follow these steps:
|
|
|
|
1. Position the text and cursor to where you wish to begin entering the
|
|
series of commands and keys. (You may want to practice your series
|
|
once or twice before actually recording the macro.)
|
|
|
|
2. Execute the MacroRecord <Ctrl M> command. An "R" appears on the
|
|
StatusLine to indicate MacroRecord mode is ON. The following message
|
|
appears:
|
|
|
|
Assign to what key: (<Enter> for scrap, <Esc> to cancel)
|
|
|
|
3. Enter the key to which you want to assign the series of commands and
|
|
keystrokes. This key must be a "configurable" key. If a key is
|
|
specified that has a command already assigned to it, the editor
|
|
prompts you to determine if you want to overlay that key assignment.
|
|
|
|
To assign the macro to a "scrap" or temporary area, simply
|
|
press <Enter>. The scrap area holds your macro until a new
|
|
macro is recorded (or you exit the editor).
|
|
|
|
4. Enter the series of commands and keystrokes to be assigned. Note
|
|
that the "R" still appears on the StatusLine.
|
|
|
|
5. Execute the MacroRecord <Ctrl M> command again. MacroRecord mode is
|
|
turned OFF, and the "R" no longer appears on the the StatusLine. The
|
|
macro is now created and assigned to the key specified in step 3.
|
|
|
|
Using Keyboard Macros
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
To use your Keyboard Macro, position the text and cursor properly and
|
|
press the key to which you assigned the macro (or use the ExecuteScrap
|
|
<Ctrl Enter> command to retrieve the last macro recorded). If the macro
|
|
does not behave as you expected, repeat the above steps. Your old macro
|
|
assignment is replaced with the new one.
|
|
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³ Tip: ³
|
|
³ Be aware of modes, especially Insert mode, when recording ³
|
|
³ and using macros. Macros recorded with Insert mode ON and ³
|
|
³ then used with Insert mode OFF (and vice-versa) may behave ³
|
|
³ very strangely. ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
|
|
Saving and Reloading Keyboard Macros
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Normally, macros created using this process are lost once the editor is
|
|
terminated. However, there is an easy method for saving your macros so
|
|
that they may be reloaded for use in any future editing session.
|
|
|
|
To save macros for future use, you must write them to a Keyboard Macro
|
|
file. (This file is in a special binary format, recognizable by the
|
|
editor, and should not be edited as a normal text file.) The name of
|
|
this file is specified by the user.
|
|
|
|
To save macros once they have been created, execute the MacroWrite
|
|
<Esc><M><W> command. The editor prompts with:
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³Macro file to write: ³
|
|
³ ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
Enter the name of the file (optionally including drive and/or path) to
|
|
contain your macros. All Keyboard Macros currently recorded (and/or
|
|
loaded) during the editing session are saved under the specified
|
|
filename. (However, macros assigned only to the scrap area, and not to
|
|
a specific key, cannot be saved.)
|
|
|
|
In a future editing session, when you wish to reuse your previously
|
|
defined macros, you need only reload the macro file. To do this,
|
|
execute the MacroRead <Esc><M><R> command. The editor prompts with:
|
|
|
|
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
³Macro file to read: ³
|
|
³ ³
|
|
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
|
|
Enter the name of the previously saved macro file. Your macros are
|
|
reloaded. You may then use them in the same manner as before.
|
|
|
|
Example of a Keyboard Macro
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
To create a Keyboard Macro that inserts a formfeed character (ASCII 12)
|
|
at column one of the current cursor line, do the following:
|
|
|
|
1. Position the cursor in the text where you would like to insert the
|
|
formfeed character. Set Insert mode ON.
|
|
|
|
2. Execute MacroRecord <Ctrl M>.
|
|
|
|
3. Press <Alt F1> to assign the macro to this key.
|
|
|
|
4. Press the following series of keys:
|
|
|
|
<Home> (for the BegLine command)
|
|
<Ctrl P> (for the Literal command)
|
|
<Ctrl L> (a formfeed character)
|
|
|
|
5. Enter MacroRecord <Ctrl M>. The macro is now created and assigned to
|
|
the <Alt F1> key.
|
|
|
|
Now, when you press <Alt F1>, the cursor moves to column one and a
|
|
formfeed character is inserted, just as if you had typed it from the
|
|
keyboard.
|
|
|
|
|
|
CREATING MACRO PROGRAMS
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
As mentioned in Chapter 2, "Customizing the Editor" (in the file
|
|
TSEJR.DOC), the editor's configuration program (QCONFIG) allows you to
|
|
assign multiple commands and/or text to a key (or two-key). With this
|
|
facility, you can easily write simple programs using the editor's macro
|
|
language. These macros are included in the Keyboard Definition file
|
|
(QCONFIG.DAT), and then added to the editor program itself using the
|
|
configuration program. Each time the editor is loaded, these macros are
|
|
automatically available. For more information on including macros in the
|
|
Keyboard Definition file, refer to the "Keyboard Configuration" section
|
|
of Chapter 2 (in the file TSEJR.DOC).
|
|
|
|
To write a macro program, begin by editing your Keyboard Definition file
|
|
(QCONFIG.DAT, by default). Locate the key to which you wish to assign
|
|
your macro program. To the right of that key, specify any combination
|
|
of text strings and commands, each separated by a space. Text should be
|
|
enclosed in single or double quotes. Macros can span multiple lines, as
|
|
long as 2 simple rules are followed: the key name must begin in column
|
|
1, and all succeeding lines must begin in column 2 or greater.
|
|
|
|
Once the macro is written, save your Keyboard Definition file and exit
|
|
the editor. Then execute the configuration program (QCONFIG). Select
|
|
the "Keys" option to update the editor program. This assigns your macro
|
|
program to the specified key. Now when you run the editor, you can
|
|
execute your own custom macros by pressing the applicable key.
|
|
|
|
Note: The amount of space that is available for macros included in the
|
|
Keyboard Definition file is limited to about 2K.
|
|
|
|
|
|
þ Example:
|
|
|
|
f1 EditFile 'help.dat' Return
|
|
|
|
Press <F1> and this macro loads the file "help.dat". Note that the
|
|
Return command is issued after the text. This is required to
|
|
terminate the prompt issued by the preceding EditFile command.
|
|
|
|
|
|
þ Example:
|
|
|
|
@t GSave Dos 'tpc ' CurrentFilename Return
|
|
|
|
Press <Alt T> and this macro saves all files that have been changed,
|
|
and then invokes the TURBO PASCAL compiler using the current file.
|
|
(Note: There must be a space included within the quotes immediately
|
|
following "tpc".)
|
|
|
|
|
|
þ Example:
|
|
|
|
@f1 EditFile 'errors.lst' Return
|
|
Quit
|
|
Dos 'tcc ' CurrentFilename ' >errors.lst' Return Return
|
|
HorizontalWindow
|
|
EditFile 'errors.lst' Return
|
|
|
|
Press <Alt F1> and this macro runs the TURBO C compiler on the current
|
|
file, saves the results to a file called "errors.lst", and then loads
|
|
that file into another window after the compile is finished.
|
|
|
|
|
|
In general, any commonly used sequence of commands (or a useful but
|
|
complicated sequence of commands, for that matter) is a good candidate
|
|
for a macro.
|
|
|
|
We have received many helpful macro suggestions from users over the
|
|
years. Here is a short list of some of the more useful (and simple)
|
|
macros.
|
|
|
|
þ A very useful command, GetPrev, copies a character from the line
|
|
immediately above the cursor line, onto the cursor line. Often it is
|
|
necessary to copy this character to several succeeding lines in the
|
|
same column. The GetPrev command, used in a macro, makes this
|
|
function easy. Assign this macro to the <Alt 4> key (for example) in
|
|
QCONFIG.DAT as follows:
|
|
|
|
@4 GetPrev CursorLeft CursorDown
|
|
|
|
|
|
þ The AddLine and DelLine commands do not change the cursor position.
|
|
Many would prefer that the cursor move to column one when these
|
|
commands are executed. A solution is to change the QCONFIG.DAT file
|
|
as follows:
|
|
|
|
Default QCONFIG.DAT file:
|
|
|
|
f2 AddLine
|
|
^y DelLine
|
|
|
|
Customized QCONFIG.DAT file:
|
|
|
|
f2 AddLine BegLine
|
|
^y DelLine BegLine
|
|
|
|
|
|
þ The CopyBlock and MoveBlock commands leave the copied or moved Block
|
|
marked. Many would prefer the Block to be unmarked. A solution is to
|
|
change the QCONFIG.DAT file as follows:
|
|
|
|
Default QCONFIG.DAT file:
|
|
|
|
@c CopyBlock
|
|
@m MoveBlock
|
|
|
|
Customized QCONFIG.DAT file:
|
|
|
|
@c CopyBlock UnmarkBlock
|
|
@m MoveBlock UnmarkBlock
|
|
|
|
|
|
þ The DropAnchor command ends or extends a Block if executed after a
|
|
Block has been initially or entirely marked. Some editors have a
|
|
similar command, except that it acts as a toggle. That is, if you are
|
|
already marking a Block, and you execute DropAnchor again, the Block
|
|
is unmarked and marking begins again at the current cursor position.
|
|
To implement this behavior, change the QCONFIG.DAT file as follows:
|
|
|
|
Default QCONFIG.DAT file:
|
|
|
|
@a DropAnchor
|
|
|
|
Customized QCONFIG.DAT file:
|
|
|
|
@a UnmarkBlock DropAnchor
|
|
|
|
|
|
þ This macro allows you to edit a sorted list of files in the current
|
|
directory. Assign this macro to the <Alt 5> key (for example) in
|
|
QCONFIG.DAT as follows:
|
|
|
|
@5 Dos "dir *.* | sort>filedir.tmp" Return Return
|
|
EditFile "filedir.tmp" Return
|
|
DelLine DelLine DelLine DelLine
|
|
|
|
|
|
Advanced Macro Programming
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
The following commands and features are intended for advanced macro
|
|
writers, to make certain macros easier to write. In the examples
|
|
provided, the key assignments indicated are suggested assignments only;
|
|
you can assign each macro to the key of your choice.
|
|
|
|
|
|
Macro Pause
|
|
|
|
|
|
The Pause command allows you to suspend execution of a macro, make
|
|
entries from the keyboard, and then continue execution of the macro.
|
|
|
|
To use the Pause command, place "Pause" at the appropriate position
|
|
within a macro in the QCONFIG.DAT file.
|
|
|
|
When you execute a macro containing a Pause command, its execution is
|
|
suspended when the Pause command is encountered. A "P" appears on the
|
|
StatusLine. At this point the User can enter text from the keyboard.
|
|
Press <Enter> to resume execution of the macro; press <Esc> to terminate
|
|
execution of the suspended macro entirely.
|
|
|
|
Please note that the <Enter> key entered from the keyboard to resume
|
|
execution of a suspended macro is "eaten" by the Pause command; or, in
|
|
other words, that <Enter> does not become part of the macro.
|
|
|
|
þ For example, suppose you want to create a "find" command that always
|
|
searches forward, ignores case, and does not prompt for options. In
|
|
the QCONFIG.DAT file, assign to whatever key you desire (<F7> in this
|
|
example):
|
|
|
|
f7 Find Pause Return 'i' Return
|
|
|
|
If you want to get really fancy, you could let <F7> be your
|
|
find-forward, and <Shift F7> be your find-backward:
|
|
|
|
#f7 Find Pause Return 'ib' Return
|
|
|
|
|
|
Using Paste within a Macro
|
|
|
|
It can be handy to use the Paste command in a macro. Following are some
|
|
examples of macros using the Paste command.
|
|
|
|
þ With the FillBlock command, you can use the following macro to move a
|
|
Block, and blank fill the space used by the Block, instead of the text
|
|
closing in around the Block. The macro assumes a Block is already
|
|
marked. The Block is Cut to the system scrap buffer. You can then
|
|
insert the Block where you like by pressing the Paste key <Grey *>.
|
|
You now have a "copy with wipe" command!
|
|
|
|
f10 GotoBlockBeg Cut Paste FillBlock ' ' Return UnmarkBlock
|
|
|
|
þ A macro to take the filename at the current cursor position and load
|
|
that file into the editor (assigned by default to <Ctrl ]>.):
|
|
|
|
^] AltWordSet MarkWord Copy EditFile Paste Return
|
|
DefaultWordSet
|
|
|
|
This macro does the following:
|
|
|
|
AltWordSet - sets the proper word set for filenames
|
|
MarkWord - marks the filename at the current cursor position
|
|
Copy - copies the filename into the scrap buffer
|
|
EditFile - initiates the EditFile command
|
|
Paste - inserts the copied filename into the prompt box
|
|
Return - terminates the EditFile prompt
|
|
DefaultWordSet - restores the normal word set
|
|
|
|
þ A macro to initiate a Find on the word at the current cursor position
|
|
(assigned by default to <Alt =>.):
|
|
|
|
@= MarkWord Copy Find Paste Return Return
|
|
|
|
This macro does the following:
|
|
|
|
MarkWord - marks the word at the current cursor position
|
|
Copy - copies the word into the scrap buffer
|
|
Find - initiates the Find command
|
|
Paste - inserts the copied word into the prompt box
|
|
Return - terminates the search string prompt box
|
|
Return - terminates the Find options prompt box
|
|
|
|
|
|
Repeating a Command within a Macro
|
|
|
|
|
|
Within macros, in order to repeat the previous command "n" times, the
|
|
following syntax can be used:
|
|
|
|
command n
|
|
|
|
Where "n" is a number between 1 and 32767. The immediately preceding
|
|
command is executed the number of times indicated. So, for example:
|
|
|
|
CursorDown 1
|
|
|
|
would move the cursor down one line (and is equivalent to just
|
|
CursorDown by itself).
|
|
|
|
CursorDown 10
|
|
|
|
would move the cursor down ten lines.
|
|
|
|
|
|
Conditional Logic for Macros
|
|
|
|
|
|
Several commands are available for conditional logic within macros:
|
|
Jump, JTrue, JFalse, MacroQuit, MacroQuitFalse, and MacroQuitTrue.
|
|
Placement of one of these commands in a macro following another command
|
|
allows for branching or looping during macro execution.
|
|
|
|
All commands set an internal result code of TRUE upon successful
|
|
execution, or FALSE if execution is unsuccessful or no action occurs.
|
|
These result codes can be used to determine different courses of action
|
|
during execution of a macro, based on the outcome of a particular
|
|
command.
|
|
|
|
The Jump command makes an unconditional jump, regardless of the outcome
|
|
of the preceding command. The JTrue command makes a jump only when a
|
|
result code of TRUE is returned; JFalse makes a jump only for a result
|
|
code of FALSE.
|
|
|
|
The MacroQuit command unconditionally terminates a macro. The
|
|
MacroQuitTrue command terminates a macro only when a result code of
|
|
TRUE is returned; MacroQuitFalse terminate a macro only if a result code
|
|
of FALSE is returned.
|
|
|
|
Labels can be defined for branching, in the format "label:". The
|
|
maximum label length is 32 characters.
|
|
|
|
For example, here is a macro to delete the text from the cursor position
|
|
to the beginning of the line (assigned to the f10 key):
|
|
|
|
f10 begin:
|
|
CursorLeft
|
|
MacroQuitFalse
|
|
DelCh
|
|
Jump begin:
|
|
|
|
|
|
Special-Purpose Macro Commands
|
|
|
|
|
|
The editor includes a number of commands that are intended specifically
|
|
for use in macros.
|
|
|
|
One group of special macro commands is the Set commands. This group of
|
|
commands force the indicated mode or setting. If the setting was
|
|
already in that condition, they set the internal result code to FALSE;
|
|
otherwise, they set it to TRUE.
|
|
|
|
|
|
In many cases, macros can behave differently based on the currently set
|
|
editor modes. The following Set commands give you some control in
|
|
establishing the proper environment so that your macro always works as
|
|
intended. (Refer to the "Modes" section of Chapter 1, in the file
|
|
TSEJR.DOC, for more information about modes in the editor.)
|
|
|
|
Each of these Set commands set the indicated mode or feature ON. To set
|
|
the indicated mode or feature OFF, first turn the mode or feature ON by
|
|
issuing the Set command, and then turn it OFF by issuing the
|
|
corresponding Toggle command.
|
|
|
|
For example, to set Insert mode OFF, use the following code:
|
|
|
|
SetInsMode ToggleInsert
|
|
|
|
Or, to set file backups OFF, use the following code:
|
|
|
|
SetBakups ToggleBakups
|
|
|
|
|
|
þ SetAutoIndentMode
|
|
Sets ON AutoIndent mode.
|
|
|
|
þ SetBakups
|
|
Sets ON file Backup mode.
|
|
|
|
þ SetBoxDraw
|
|
Sets ON Box Drawing mode.
|
|
|
|
þ SetCenterFinds
|
|
Sets ON Find centering (to center found text, located by the Find,
|
|
FindReplace, or IncrementalSearch commands, vertically on the screen).
|
|
|
|
þ SetCUAMarking
|
|
Sets ON CUA-Style Block Marking mode.
|
|
|
|
þ SetEnterMatching
|
|
Sets ON EnterMatching mode.
|
|
|
|
þ SetInsMode
|
|
Sets ON Insert mode.
|
|
|
|
þ SetPrintAddFF
|
|
Sets ON the option to automatically send a formfeed character to the
|
|
printer at the end of each print operation.
|
|
|
|
þ SetPromptForEAs
|
|
Sets ON the option to have the editor prompt for a .TYPE EA when
|
|
saving a file that does not already have Extended Attributes assigned.
|
|
(This command is available in the OS/2 version ONLY.)
|
|
|
|
þ SetSortCaseInsensitive
|
|
Sets ON the option to have the editor perform case-insensitive (rather
|
|
than case-sensitive) sorts.
|
|
|
|
þ SetSortDescending
|
|
Sets ON the option to have the editor perform sorting operations in
|
|
descending (rather than ascending) order.
|
|
|
|
þ SetSwap
|
|
Sets ON the option to swap to EMS or Disk when the Shell and DOS
|
|
commands are executed. (This command is NOT available in the
|
|
memory-resident or OS/2 versions.)
|
|
|
|
þ SetSyncScroll
|
|
Sets ON Synchronized Scrolling mode.
|
|
|
|
þ SetTabsExpand
|
|
Sets ON Physical Tab Expansion mode.
|
|
|
|
þ SetTabsOut
|
|
Sets ON Tabs Out mode.
|
|
|
|
þ SetWordWrapMode
|
|
Sets ON WordWrap mode.
|
|
|
|
|
|
The Find command sounds a tone when the search string cannot be found.
|
|
This may be undesirable in a long-running macro, that may possibly
|
|
execute hundreds of find operations that fail. The following commands
|
|
allow you to selectively turn the sound ON and OFF.
|
|
|
|
þ SetSoundOn
|
|
Sets Sound ON.
|
|
|
|
þ SetSoundOff
|
|
Sets Sound OFF.
|
|
|
|
|
|
Most macros execute dozens of commands, possibly hundreds of times. This
|
|
can cause the screen to flash rapidly as the macro runs. Not only is
|
|
this somewhat disconcerting to watch, it actually slows down the speed
|
|
of some macros. The following commands allow you to temporarily suspend
|
|
or resume screen updating, while a macro is running.
|
|
|
|
þ SetScreenOn
|
|
Turns Screen Updating ON.
|
|
|
|
þ SetScreenOff
|
|
Turns Screen Updating OFF. You must turn screen updating back ON
|
|
before your macro prompts for input, or if there is output from the
|
|
macro that you want displayed on the screen.
|
|
|
|
Note: The editor AUTOMATICALLY turns Screen Updating back ON when the
|
|
macro is finished executing. Thus, it is not necessary to issue
|
|
the SetScreenOn command at the end of the macro.
|
|
|
|
|
|
Many times, it would be nice for a macro to force a few settings, do its
|
|
assigned task, and then restore the original settings. The following
|
|
commands allow you to do just that. Note that each time SaveSettings is
|
|
executed, the previous settings saved with SaveSettings are overwritten.
|
|
|
|
þ SaveSettings
|
|
Saves the current settings of: Insert, AutoIndent, WordWrap, Sound,
|
|
and Screen Updating.
|
|
|
|
þ RestoreSettings
|
|
Restores the saved settings for the settings indicated in
|
|
SaveSettings.
|
|
|
|
|
|
The following commands set the editor's result code to TRUE or FALSE
|
|
based on the condition being tested. These commands make certain types
|
|
of macro tests easy and reliable.
|
|
|
|
þ isBegLine
|
|
Returns TRUE if the cursor is at column 1; otherwise, FALSE is
|
|
returned.
|
|
|
|
þ isCurrChar
|
|
Returns TRUE if the character at the cursor position in the file is
|
|
the same as that specified by the character immediately following the
|
|
isCurrChar command.
|
|
|
|
þ isCursorInBlock
|
|
Returns TRUE if the cursor is inside a marked Block; otherwise, FALSE
|
|
is returned.
|
|
|
|
þ isEndLine
|
|
Returns TRUE if the cursor is past the last non-white character on the
|
|
current line; otherwise, FALSE is returned (including when the cursor
|
|
is on an empty line).
|
|
|
|
þ isEmptyLine
|
|
Returns TRUE if the current line is empty or contains only white
|
|
space; otherwise, FALSE is returned.
|
|
|
|
þ isFirstLine
|
|
Returns TRUE if the cursor is on the first line of the currently
|
|
edited file; otherwise, FALSE is returned.
|
|
|
|
þ isLastLine
|
|
Returns TRUE if the cursor is on the last line of the currently edited
|
|
file; otherwise, FALSE is returned.
|
|
|
|
þ isWord
|
|
Returns TRUE if the character at the cursor position in the file is in
|
|
the current word set. See the AltWordSet command for more information
|
|
on word sets.
|
|
|
|
|
|
In order to tie a few of these concepts together, we present a simple
|
|
macro to delete all the blank lines in a marked Block. The cursor
|
|
should be at the beginning of the Block when the macro is invoked.
|
|
|
|
#f9 SetScreenOff * turn off screen for speed
|
|
begin: isCursorInBlock MacroQuitFalse * exit if not in Block
|
|
isEmptyLine JFalse next: * skip if not empty line
|
|
isLastLine JTrue last: * handle last line
|
|
DelLine Jump begin: * delete empty lines
|
|
next: CursorDown JTrue begin: * try next line
|
|
MacroQuit *
|
|
last: DelLine * delete the last line
|
|
* that's all, folks!
|
|
|
|
|
|
The Main Macro
|
|
|
|
|
|
The editor has a provision for a special-purpose macro that is
|
|
automatically executed at editor startup. In a Keyboard Definition
|
|
file, assigning a macro to the key "main" causes that macro to be
|
|
executed whenever the editor is initially invoked.
|
|
|
|
þ Example:
|
|
|
|
main MacroRead "c:\macros\mymacs.qm" Return
|
|
|
|
This causes a macro file named "mymacs.qm" to be loaded into the
|
|
editor, every time the editor is started. (Note that the "key" the
|
|
macro is assigned to is "main".)
|
|
|
|
|
|
STARTUP MACROS
|
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
The editor offers a feature that allows you to load and/or execute
|
|
macros from the DOS command line.
|
|
|
|
To load a macro from the DOS command line, type "-l" (this is a dash
|
|
character and the letter "l") immediately followed by a macro filename
|
|
when you execute the editor. For example, from the DOS prompt type:
|
|
|
|
q <filename to edit> -l<macro filename>
|
|
|
|
To execute a macro from the DOS command line, type "-e" immediately
|
|
followed by a macro filename when you execute the editor. The editor
|
|
then automatically executes the first macro in the macro file after the
|
|
file to be edited has been loaded. For example, from the DOS prompt
|
|
type:
|
|
|
|
q <filename to edit> -e<macro filename>
|
|
|
|
Following are additional notes about the use of Startup macros.
|
|
|
|
þ The macro file to be loaded and/or executed must be created using
|
|
either the MacroWrite <Esc><M><W> command or QMac.
|
|
|
|
þ A macro file to be executed (-e) is limited to a maximum size of 500
|
|
bytes.
|
|
|
|
þ A "/" character can be used instead of the "-" character, as "/l" and
|
|
"/e".
|
|
|
|
þ You MUST supply a filename to be edited on the DOS command line to use
|
|
this feature.
|
|
|
|
þ When using the execute ("-e") option, only the first macro in the
|
|
macro file is executed. This macro is executed only after the file to
|
|
be edited has been loaded.
|
|
|
|
þ You can load one macro and execute another macro at the same time.
|
|
For example, from the DOS prompt:
|
|
|
|
q <filename to edit> -e<macro filename> -l<macro filename>
|
|
|
|
|
|
Following is an example of using Startup macros.
|
|
|
|
Suppose you have created two macro files, called first.mac and
|
|
second.mac. Now you want to load a file for editing called work.tmp,
|
|
and at the same time, load the macro file called first.mac and execute
|
|
the macro file called second.mac. From the DOS command line, enter:
|
|
|
|
q work.tmp -lfirst.mac -esecond.mac
|
|
|
|
|