* RFR007.QM * Written By Tom Hogshead, Macros Written By John Goodman * [ See RFRMxx.QM For Use ] * August 2, 1991 * Key Subfile Description * ===== ============== ==================================================== * @(j) JoinLine With Single Space At Join Point * ^(Enter) Split Line and Align with Last Non-Blank Line * (Simulates Enter Key Operation with AutoIndent ON) * ^(F2__) Split Line and Outdent One Tab Stop * (Tab) Insert Spaces to Next Tab Stop Regardless of Ins Mode * #(Tab_) Delete Characters to Previous Tab Stop Regardless * of Insert Mode * ^(F6__) Delete to Beginning of Line * ^(F4__) Duplicate Line Up to Cursor Position * * (All macros in rfr007.qm were written by * John Goodman, except if noted) * * {e:\up\RFRM*}--Return To RFRMxx.QM * *-- eoi * The following macros were written by John Goodman, except if noted: * =========================================================================== * BBS: SemWare Support BBS * Date: 07-25-91 (15:15) Number: 505,506 * From: JOHN GOODMAN Refer#: NONE * To: TOM HOGSHEAD Recvd: YES * Subj: NEW MACROS! Conf: 3 Macros * --------------------------------------------------------------------------- * Tom, * * The following (new!) macros should be handy for both * programmer types and writer types and are good candidates for * inclusion in QCONFIG.DAT (for me, anyway!). I think some of them * are useful enough that we may want to post them to the main board * for more widespread visibility (after your review and comment, of * course!). * * As you know, I generally work with AutoIndent mode OFF, but * occasionally like to have my next line aligned with the current * line (switching modes is *such* a chore!). The first macro makes * the Ctrl-Enter key work like the Enter key does when * (sticky) AutoIndent mode is ON (the macro can be used in either * mode). I've provided two flavors of Ctrl-Enter, one for people * who normally work with AutoIndent OFF and one for people who * normally work with AutoIndent ON. * * The next two macros are similar to the first macro, but they * indent/outdent the new line to the next/previous tab stop. These * two macros should be very handy for writing structured code and * should be useful to people who work with AutoIndent ON or OFF. * * The remaining macros are just simple little ditties that came to * mind as I was working on the others. Per usual, all of the macros * should work consistently regardless of mode toggle or QConfig * settings. * * (excitedly) ...John *  * --------------------------------------------------------------- * Ctrl-(Enter) Split Line and Align with Last Non-Blank Line * (Simulates Enter Key Operation with AutoIndent ON) * --------------------------------------------------------------- * This macro makes the Ctrl-Enter key act like the Enter key does * when AutoIndent mode is ON; that is, it splits the current line * at the cursor (creating a new line) and aligns the new line with * the first character of the last non-blank line. The macro works * like "sticky" AutoIndent mode in that it aligns the new line with * the last non-blank line, not just the previous (possibly blank) * line. This macro differs from normal Enter key operation in that * it always creates a new line, whereas the Enter key does not * create a new line if Insert mode is OFF or the QConfig option to * create new lines with the Enter key is set to "No". * ^Enter MacroBegin UnmarkBlock * Ensure no blocks marked SplitLine "_" * Split line at cursor position; type '_' JoinLine * Re-join the line CursorLeft * Move cursor to '_' SplitLine * Split the line again CursorDown * Move to the new line Align * Align it with last non-blank line CursorUp CursorUp * Move back to end of original line WordRight * Move to 1st char of new line DelCh * Delete the '_' char * * 17 bytes Wed 07-24-1991 18:51:42 (JG) *  * ---------------------------------------------------------------- * Ctrl-(Enter) Split Line and Left Justify at Column 1 * (Simulates Enter Key Operation with AutoIndent OFF) * ---------------------------------------------------------------- * This macro is for users who generally operate with AutoIndent * mode set ON. The macro makes the Ctrl-Enter key work the same as * the Enter key does when AutoIndent is OFF; that is, it splits the * current line at the cursor (creating a new line) and left * justifies the new line at column 1. This macro differs from * normal Enter key operation in that it always creates a new line, * whereas the Enter key does not create a new line if Insert mode * is OFF or the QConfig option to create new lines with the Enter * key is set to "No". * * This macro is useful when you're writing indented text, but want * the next line to begin at column 1. * * ^Enter MacroBegin SplitLine BegLine CursorDown *  * ------------------------------------------------- * Shift-(F2_) Split Line and Indent One Tab Stop * ------------------------------------------------- * This macro splits the current line at the cursor (creating a new * line) and aligns the beginning of the new line one tab stop to * the right of the beginning of the last non-blank line. This * macro is useful for indenting the next line of text when writing * documents or structured program code. * * The macro is generally equivalent to typing "Enter Tab" when * AutoIndent mode is ON, but works more consistently with different * AutoIndent and Insert mode settings. * #F2 MacroBegin UnmarkBlock * Ensure no blocks marked SplitLine "_" * Split line at cursor position; type '_' JoinLine * Re-join the line CursorLeft * Move cursor to '_' SplitLine * Split the line again CursorDown * Move to the new line Align * Align it with last non-blank line CursorUp CursorUp * Move back to end of original line WordRight * Move to 1st char of new line DelCh * Delete the '_' char SplitLine * Split the new line TabRt * Move to next tab position JoinLine * Re-join the line at new position * * 20 bytes Wed 07-24-1991 18:51:48 (JG) *  * --------------------------------------------- * Ctrl-(F2__) Split Line and Outdent One Tab Stop * --------------------------------------------- * This macro splits the current line at the cursor (creating a new * line) and aligns the beginning of the new line one tab stop to * the left of the beginning of the last non-blank line. This macro * is useful for outdenting the next line of text when writing * documents or structured program code. * * The macro is generally equivalent to typing "Enter Shift-Tab" * when AutoIndent mode is ON, but works more consistently with * different AutoIndent and Insert mode settings. * ^F2 MacroBegin UnmarkBlock * Ensure no blocks marked SplitLine "_" * Split line at cursor position; type '_' JoinLine * Re-join the line CursorLeft * Move cursor to '_' SplitLine * Split the line again CursorDown * Move to the new line Align * Align it with last non-blank line CursorUp CursorUp * Move back to end of original line WordRight * Move to 1st char of new line DelCh * Delete the '_' char SplitLine * Split the new line TabLt * Move to previous tab position JoinLine * Re-join the line at new position * * 20 bytes Wed 07-24-1991 18:51:53 (JG) *  * ---------------------------------------------------------------- * (Tab) Insert Spaces to Next Tab Stop Regardless of Insert Mode * ---------------------------------------------------------------- * This macro makes the Tab key work the same with Insert mode OFF * as it does when Insert mode is ON; that is, Tab will always * insert spaces up to the next tab stop and not just move the * cursor to the next tab stop. * Tab MacroBegin SplitLine TabRt JoinLine * 7 bytes Sat 07-27-1991 09:05:32 (JG Tab) *  * ---------------------------------------------------------------- * Shift-(Tab_) Delete Characters to Previous Tab Stop Regardless * of Insert Mode * ---------------------------------------------------------------- * This macro makes the Shift-Tab ("backtab") key work the same with * Insert mode OFF as it does when Insert mode is ON; that is, * Shift-Tab will always delete the characters from the cursor * position to the previous tab stop and not just move the cursor to * the previous tab stop. * #Tab MacroBegin SplitLine TabLt DelToEOL JoinLine * 8 bytes Sat 07-27-1991 09:05:05 (JG #Tab) *  * ----------------------------------------- * Ctrl-(F6__) Delete to Beginning of Line * ----------------------------------------- * This macro deletes all characters to the left of the current * cursor position. Alternate (shorter) version of macro in QEdit * READ.ME file. * ^F6 MacroBegin SplitLine DelLine BegLine * 7 bytes Sat 07-27-1991 09:05:45 (JG ^F6) *  * -------------------------------------------------- * Ctrl-(F4__) Duplicate Line Up to Cursor Position * -------------------------------------------------- * This macro creates a new line below the current line and * duplicates the characters up to the current cursor position. * ^F4 MacroBegin DupLine DelToEOL * 6 bytes Sat 07-27-1991 09:05:54 (JG ^F4) *  *---------------------------------------------------- * @(j) Join Lines with Single Space at Join Point *---------------------------------------------------- * * This macro is handy for making single line macros for QCONFIG.DAT, * or just to help in writing macros or text. * * To make a single line macro for QCONFIG.DAT, remove all comments in * a macro, and run @j on each line. Alternatively, use @7 in * MACRxx.QM, and then @j on each line. * @j MacroBegin EndLine CursorRight CursorRight JoinLine CursorLeft DelRtWord * * * 17 bytes Mon 03-18-1991 22:07:08 * 16 bytes Mon 07-15-1991 10:51:34 (TH @j, removed unecessary markline) * 15 bytes Sat 07-20-1991 13:56:46 (TH @j, removed unecessary unmarkblock) * 12 bytes Fri 07-26-1991 16:18:53 (TH @j, change to splitline/delline) * 10 bytes Fri 07-26-1991 19:30:39 (JG @j, shortened)