Annotation of researchv9/cmd/emacs/macros/CATALOG, revision 1.1

1.1     ! root        1: This is a catalog of EMACS macros in the library
        !             2: 
        !             3: balance: W. A. Montgomery (Version 3.4)
        !             4:        This file contains macros to display for each closing
        !             5:        parenthesis, brace, or bracket, the matching opening
        !             6:        character.  It re-defines these characters to do so, and
        !             7:        beeps if no match is found.  The effect on the file is the
        !             8:        same as if the macro library were not there with the
        !             9:        exception that } always behaves as it does in C mode.  The
        !            10:        maximum nesting depth that can be handled is about 20.
        !            11:        
        !            12: rmail:  W. A. Montgomery (version 3.4)
        !            13:        This file contains a macro put on ^Xr for processing mail. 
        !            14:        It gathers new and old mail (old mail from $HOME/rmail) and
        !            15:        allows the user to peruse it.  ? provides a brief
        !            16:        description of the available commands.  Among others, you
        !            17:        can selectively delete and undelete messages, reply to
        !            18:        messages, write messages to files, and gather the most
        !            19:        recent UNIX news items.
        !            20:        
        !            21: vmail:  W. A. Montgomery (version 4.0)
        !            22:        This file contains a macro that responds to your mail while
        !            23:        you are vacation.  It will copy all new mail into
        !            24:        $HOME/rmail, and respond to each message, giving the date of
        !            25:        the message, the file $HOME/response, and your signature to
        !            26:        each.  The macro is put on ^Xv when loaded.
        !            27:        The intended use of this package is to set it up to run
        !            28:        periodically while you are away on vacation (or for some
        !            29:        other extended period of time) via at(1) jobs or the like. 
        !            30:        You do this by having the job run emacs -i <foo> where foo
        !            31:        is a file that does ^X^Lvmail\n^Xv^Z.  Each time you run it,
        !            32:        all new mail is replied to, and accumulates in $HOME/rmail
        !            33:        awating your return.
        !            34: 
        !            35: abbrev: W. A. Montgomery (version 3.2)
        !            36:        This file contains a single macro that is put on @ that
        !            37:        causes abbreviations to be expanded.  The word preceeding
        !            38:        the '@' is looked up in a list of abbreviations for
        !            39:        expansion. The abbreviation list
        !            40:        is taken from the file .abbrevs in the current directory. 
        !            41:        The file contains a series of entries of the form:
        !            42:        
        !            43:        abbreviation@ what it expands to.  
        !            44: 
        !            45:        Everything after the "@ " up to the next line containing
        !            46:        an '@' becomes the expansion of "abbreviation", so that you
        !            47:        may have multi-line abbreviations if you like.
        !            48:        
        !            49: appropos: W. A. Montgomery (version 3.2)
        !            50:        This file contains a single macro on ^X? that provides a
        !            51:        different form of help information.  ^X? will prompt for a
        !            52:        subject, and display help explanations for all commands and
        !            53:        macros that pertain to that subject.  (actually, the subject
        !            54:        is used as a search string and all help explanations that
        !            55:        include the subject are displayed).
        !            56:        
        !            57: lcase: W. A. Montgomery (version 3.4)
        !            58:        This file contains macros for converting letters or words to lower
        !            59:        case.  M-l converts a single letter to lower case, while ^Xl
        !            60:        converrts an entire word to lower case.
        !            61:        
        !            62: refmac: W. A. Montgomery (version 3.2)
        !            63:        This file contains macros to interface with J. W. Leth's
        !            64:        nroff pre processor (nrpp) to maintain reference lists in
        !            65:        memoranda.  M-R places the user in the bibliography
        !            66:        file, and allows the user to move around in the
        !            67:        bibliography file through ordinary emacs commands. 
        !            68:        When the user exits from the bilbliography file via
        !            69:        ^Z, the reference definition at the cursor position in the
        !            70:        bibliography is put into the file being edited at the cursor
        !            71:        position where M-R was invoked.  If the cursor position in
        !            72:        the bibliography is at the beginning of the buffer, no
        !            73:        reference definition is inserted into the edited file.
        !            74:        ^XR can be used
        !            75:        while in the bibliography file to send the reference
        !            76:        description at the cursor position to the department
        !            77:        clerk for inclusion in the department bibliography.
        !            78:        
        !            79: spell: W. A. Montgomery (Version 3.4)
        !            80:        This macro package contains a single macro on M-S
        !            81:        that causes the spell program to be invoked on the
        !            82:        file in the buffer, and causes the result to be
        !            83:        analyzed.  The words found by spell are filtered through a
        !            84:        local dictionary (maintained in $HOME/.dict) so that you can
        !            85:        add words to your local dictionary that are not in the spell
        !            86:        dictionary. 
        !            87: 
        !            88:        For each misspelled word, spell will prompt for
        !            89:        action.  You can file the word in your local dictionary by
        !            90:        typing 'd'. 'n' goes to the next word without looking up the
        !            91:        occurances of the current word.  '?' displays instructions. 
        !            92: 
        !            93:        A space causes the cursor to move to the first occurance of
        !            94:        the misspelled word.  You can then edit the file to correct
        !            95:        the word and type ^Z to move on to the next occurance.  When
        !            96:        you reach the last occurance, spell moves on to the next word. 
        !            97: 
        !            98: tags:  W. A. Montgomery (Version 3.6)
        !            99:        Tags is a macro library that facilitates working with
        !           100:        a collection of related files.  This package works
        !           101:        with a tags file, which defines a set of names for
        !           102:        positions in the files.  The macro placed on
        !           103:        ^Xf will prompt for a tag name, reads the file
        !           104:        containing the position implied by the specified
        !           105:        tag, and moves to the indicated position.  This is
        !           106:        useful, for example, with a set of source files that
        !           107:        contain C function definitions when you want to find
        !           108:        a function and don't know or care what file it is in.
        !           109:        
        !           110:        A second macro in this package (C_TAGS) can be used
        !           111:        to construct a tags file from a C source file.  When
        !           112:        C_TAGS is invoked, it scans the current buffer for
        !           113:        function definitions, and prompts you.  If you enter
        !           114:        a space, it defines a tag whose name is the function.
        !           115:        Any other character causes the current definition to
        !           116:        be ignored.  Note:  If you declare functions with
        !           117:        types, like char *foobar(x,y), put the type on one
        !           118:        line and the function definition on a line by
        !           119:        itself, otherwise this will not work.
        !           120: 
        !           121:        The command ^xt defines a tag from the current line of the
        !           122:        current file, and can be used to update tags files. 
        !           123: 
        !           124:        The tags are accumulated in a buffer called .tags
        !           125:        which should be saved before you exit emacs.  Tags
        !           126:        from several files can be put in the same tags file
        !           127:        simply by running C_TAGS on several source files. 
        !           128:        There is currently no check for an attempt to
        !           129:        re-define the same tag name, which will fail.   
        !           130: 
        !           131:        For those who like the nitty gritty, the format of
        !           132:        the tags file is a series of entries of the form
        !           133: 
        !           134:        @<tag_name>:<file_name>:<search_string>:
        !           135: 
        !           136:        Any of the fields can contain any character
        !           137:        (including newline) except : and @.  
        !           138:        
        !           139: crypt: W. A. Montgomery (Version 4.0)
        !           140:        This macro library contains macros for reading and writing
        !           141:        files encrypted with crypt (1).  The library has three macros:
        !           142:        
        !           143:        ^XR (READ_ENCRYPTED)  This macro prompts the user for a key
        !           144:        and a file name and reads the specfied file into the current
        !           145:        buffer.
        !           146:        
        !           147:        ^XW (WRITE_ENCRYPTED)  This macro prompts for a key and a
        !           148:        file name and writes the buffer to the file, using the key
        !           149:        specified.
        !           150:        
        !           151:        ^XS (SAVE_ENCRYPTED)  Prompts for a key and writes saves the
        !           152:        current buffer under the specified key.
        !           153:        
        !           154:        All of these commands are rather slow, as they use the crypt
        !           155:        command to do the reading and writing.
        !           156: 
        !           157: debug: W. A. Montgomery (Version 4.0)
        !           158: 
        !           159:        This library contains several useful macros for debugging
        !           160:        and generaal programming.
        !           161:        
        !           162:        display_killstack:  Puts the items in the kill stack into a
        !           163:        buffer, and allows you to examine them.
        !           164:        
        !           165:        PNUMB:  Converts its argument to a character string and
        !           166:        leaves the result in the buffer at the current position.
        !           167:        
        !           168:        TO_DECIMAL:  Converts the top item of the kill stack to
        !           169:        a decimal integer and returns the result.
        !           170:        
        !           171: loader:  W. A. Montgomery (Version 4.1)
        !           172: 
        !           173:        This file contains a number of macros to load macros from
        !           174:        this library when invoked.  If you use macros like spell,
        !           175:        rmail, refmac, and crypt, infrequently, load loader instead.
        !           176:        When you first invoke a macro in any of those libraries it
        !           177:        will be automatically loaded for you.
        !           178:        
        !           179: shell: Joe Steffen and Bill Paulson (Version 4.4)
        !           180:        This file contains macros that provide convenient execution
        !           181:        of your frequently executed shell commands, and allow you to
        !           182:        see the output of several commands at once.
        !           183:        
        !           184:        The M-E macro allows you to edit a file of shell commands
        !           185:        called $HOME/.commands.  Enter the
        !           186:        command(s) you want to execute on a line, or move the cursor to a
        !           187:        different line of commands, and optionally enter ^Z to exit.  Enter
        !           188:        M-^E to execute the command line the cursor was pointing at.  The
        !           189:        shell output will be put into the .exec buffer and
        !           190:        displayed in the bottom emacs window, unless
        !           191:        the command line started with a '!', in which case the
        !           192:        output will be displayed as the commands execute.
        !           193: 
        !           194:        The M-C macro displays the current line in
        !           195:        this file in case you forget.  M-N and M-P move the cursor down and up,
        !           196:        respectively, in the file and display the current line.  They take an
        !           197:        argument just like ^N and ^P.  These commands make it easy to switch
        !           198:        between several command lines without using the M-E macro.
        !           199: 
        !           200:        The ^Xs macro executes the shell interactively
        !           201:        instead of prompting for each command.  This allows cd
        !           202:        commands to stay in effect and allows you to see the results of
        !           203:        several commands.  The prompt is changed to 'emacs' to remind you
        !           204:        that you are still within emacs.  Enter ^D instead of a null line to
        !           205:        return to emacs.
        !           206: 
        !           207: list:  C. Douglas Blewett (DR30L19) Version 4
        !           208:        
        !           209:        This file contains a command that allows the user to edit
        !           210:        (recursively) a list of files.  This is much like vi's :next
        !           211:        command.  The list of files is collected in .exec and the files
        !           212:        are edited in .list.  This is useful for making changes in a global
        !           213:        variable that appears in a list of files (e.g. ^XL *.c).
        !           214:        
        !           215:        If an argument other than 1 is given then the command looks up the
        !           216:        file name in the directories known to contain manual pages.  This
        !           217:        routine contains a string with embedded paths to the manual
        !           218:        directories.
        !           219:        
        !           220:        An "ls -d" is performed, so full Bourne shell style wild carding is
        !           221:        available.  This is very useful for manual page searches
        !           222:        (e.g. ^U^XL *open*).
        !           223:        
        !           224:        Modified to preserve the sanity of .exec. Saves the point, mark,
        !           225:        and extent of .exec.
        !           226: 
        !           227: registers: C. Douglas Blewett (DR30L19) Version 4
        !           228: 
        !           229:        This file contains two routines for implementing registers
        !           230:        (like those found in MIT EMACS or TECO).  M-P copies the current
        !           231:        area into the named register.  M-G copies the named register
        !           232:        to the current point.
        !           233: 
        !           234:        The registers are kept in a buffer named .registers
        !           235: 
        !           236: wild:  C. Douglas Blewett (DR30L19) Version 4
        !           237:        
        !           238:        This file contains assorted wild carding routines.  The
        !           239:        macro "Wild" wild cards 
        !           240:        the string found in the kill stack and returns its result in the
        !           241:        kill stack.  The interface routines (those called directly by the
        !           242:        user) prompt for a string containing wild carding characters.
        !           243:        
        !           244:        Modified to preserve the sanity of .exec.  Saves the point, mark,
        !           245:        and extent of .exec.
        !           246:        
        !           247:         Interface routines
        !           248:                ^Xc change directory
        !           249:                ^Xr read file
        !           250:                ^Xf find file
        !           251:        
        !           252: shift: C. Douglas Blewett (DR30L19) Version 4
        !           253: 
        !           254:        Shift a region right or left.  An argument of != 1 shift
        !           255:        left, otherwise right.  This is very useful for programing
        !           256:        a highly indented language.
        !           257: 
        !           258: Concept100.pad: C. Douglas Blewett (DR30L19) Version 4
        !           259: 
        !           260:        This routine handles all of the Concept100 cursor pad keys.
        !           261: 
        !           262:        This routine assumes that the escape character for the Concept
        !           263:        has been changed to ^\.  This should have been done in the
        !           264:        c100* terminal data base file.  All escapes are changed to ^\.
        !           265:        This routine also takes advantage of the different handling of
        !           266:        the comment character interactively and in macros by EMACS.
        !           267: 
        !           268:        Keys handled                    Approximate translation
        !           269:                HOME                            M-g
        !           270:                PAGE (upper and lower)          M-v and ^V
        !           271:                SCROL (upper and lower)         M-3^P and M-3^N
        !           272:                B TAB                           ^R^I
        !           273:                BREAK                           ^G
        !           274:                All of the arrowed keys         line or character movement
        !           275: 
        !           276:        Arguments supplied to these commands multiply the affect.
        !           277: 
        !           278:        The first five programmable function keys (upper and lower) are
        !           279:        defined in the data base file
        !           280:        (INSRT, DEL CHAR, DEL & INS LINE, CLEAR EOP & EOL, and SEND).
        !           281: 
        !           282:        Modified to my own tastes 7/5/81: added MULT, reset & stat,
        !           283:        print and tape  
        !           284: 
        !           285: cc_list        C. Douglas Blewett (DR30L19) Version 4
        !           286: 
        !           287:        Compiler and list interface (arg>1 file list), (arg<1 manual pages)
        !           288:        Interface routines
        !           289:        
        !           290:                ^XL     - the main mono-lith - controls editing lists of files
        !           291:                ^X^@    - Creates the new command (or filename) generating routine
        !           292:                ^X^_    - Command or file name routine - returns on the kill stack
        !           293:        
        !           294:        Compiler and list interface routine.  This routine prompts for a compiler
        !           295:        command (i.e. cc or make), runs it, and catches the output.  If line numbers
        !           296:        are present in the output, the routine will position to the correct line.
        !           297:        Three formats can be handled by this routine.
        !           298:        
        !           299:                "filename.c", line 23: etc.
        !           300:                        or
        !           301:                filename.c: 23: etc.
        !           302:                        or
        !           303:                filename.c
        !           304:        
        !           305:        The last format is typical ls stuff.
        !           306:        
        !           307:        With an argument < 1 the routine prompts for a manual page specification
        !           308:        and searches the known directories for manual pages.
        !           309:        
        !           310:        With an argument > 1 the routine prompts for a file specification and
        !           311:        searches using an "ls -d file_spec"
        !           312:        
        !           313:        SPECIAL STUFF FOR DEFAULT COMMANDS: WARNING creates a new routine
        !           314:        
        !           315:        This routine, ^XL, when used as a compiler interface calls ^X^_ to detemine
        !           316:        what command to issue.  ^X^_  can be setup to return a default command
        !           317:        (rather than prompting the user) by running the ^X^@ command.  ^X^@
        !           318:        actually creates a new macro for ^X^_.  It isn't LISP, but it works.
        !           319:        
        !           320:        The compiler interface (arg == 1) reads files in using ^X^F.  No
        !           321:        attempt is made to garbage collect buffers.  This does not pose a
        !           322:        real problem, becuase the routine places the user in the buffer .list
        !           323:        when this happens.  At that point the user can use ^X^K to remove
        !           324:        un-needed buffers.  ^X^F is used instead of ^X^R because it is very
        !           325:        likely with compiles that the user already has the file in a buffer
        !           326:        and want to keep it there (and current).
        !           327:        
        !           328:        The list (arg > 1) and manual page (arg < 1) facility uses the
        !           329:        buffer .list to read files using ^X^R.  These routines more or less
        !           330:        automatically garbage collect buffer space.
        !           331: 
        !           332: home:  C. Douglas Blewett (DR30L19) Version 4
        !           333:        
        !           334:        This file contains assorted macors that help the user move quickly or
        !           335:        accurately around the screen.  The central rountines are M-H and
        !           336:        M-L (top and bottom of the screen).
        !           337:        
        !           338:         Interface routines
        !           339:                M-H - home or top of screen
        !           340:                M-L - last or bottom of screen
        !           341:                M-M - Middle of screen
        !           342:                ^\  - back one line - adds a line at the top of the screen
        !           343:                ^_  - forward one line - adds a line at the bottom of the screen
        !           344:        
        !           345: filter: Warren Montgomery, 6E-314, Version 4.3
        !           346: 
        !           347:        This file contains one macro, filter_region, which is put on
        !           348:        the key M-#.
        !           349: 
        !           350:        This macro takes the marked region of the current buffer, prompts
        !           351:        for a command to run, passes the text from the marked region to the
        !           352:        specified command, and replaces the text from the marked
        !           353:        region with the output.  Thus marking a list of names
        !           354:        appearing in an nroff source and invoking M-# with the
        !           355:        command "sort" will cause the list to be sorted.  The macro
        !           356:        makes use of a temporary file (/tmp/$LOGNAME.emacs) to hold
        !           357:        some intermediate results.
        !           358: 
        !           359:        
        !           360: nlpack: Warren Montgomery 6E-314, Version 4.3
        !           361:        This file contains a macro that implements a move to
        !           362:        next(previous) line command that moves to the same screen
        !           363:        position in the next line.  The macro is put on ^N.  It
        !           364:        moves to the same cursor position in the line that follows.
        !           365:        If a sequence of ^N or ^P commands is given, it tries to
        !           366:        stay in the same column, even if some of the intermediate
        !           367:        lines are too short.
        !           368:        
        !           369:        Actually, the ^N macro reads characters and carries out the
        !           370:        movement so long as the character read is a ^N or a ^P.  Any
        !           371:        other character breaks out of ^N.
        !           372:        
        !           373:        To get the same effect on ^P, invoke M-:^P^N.  when nlpack
        !           374:        has been loaded.
        !           375:        
        !           376:        Note that this macro may be significantly slower than the
        !           377:        built in movement commands.  Also, since it changes the
        !           378:        built in commands ^P and ^N, it may interact with other
        !           379:        macros that use them.
        !           380: 
        !           381: 
        !           382: Draw: W. A. Montgomery (Version 4.5)
        !           383: 
        !           384:        This file contains several macros that are useful for
        !           385:        drawing pictures on the screen.  These should be run in
        !           386:        picture mode, with nodelete and overwrite modes set as well.
        !           387: 
        !           388:        The draw macro allows  the user to draw on the screen in
        !           389:        picture mode by steering the cursor with the "home" keys of
        !           390:        the right hand.  The keys uiojlm,. are used to indicate up
        !           391:        and left, up, up and right, left, right, down and left,
        !           392:        down, and down and right.  Each key replaces the character
        !           393:        under the cursor by one of:  '-' '|' '\' or '/' and moves
        !           394:        the cursor in the indicated direction.  This provides a
        !           395:        simple way of drawing stick figures on the screen for use
        !           396:        with gc. 
        !           397:        
        !           398:        The downline macro draws a verticle line of length equal to
        !           399:        its argument down the screen starting from the current
        !           400:        position.  This is an internal macro used by the box
        !           401:        command, however it is useful in itself.  It is put on M-|
        !           402:        
        !           403:        The box macro draws boxes using | and -.  It draws a box
        !           404:        with corners where the current position and the mark are
        !           405:        set.  These can be in any corners of the desired box.  The
        !           406:        cursor is left at the lower right hand corner of the box.
        !           407: 
        !           408: Keyboard Macro enhancements
        !           409: Author: George Furnas (alice!gwf)
        !           410: Date: 11/1/82
        !           411: Version: 4.5
        !           412: 
        !           413: The allow saving a small ad hoc library of keyboard macross that can
        !           414: be referred to by name. It also allows editing the macros easily and
        !           415: is set up to encourage keeping documentation on the macros up to
        !           416: date. 
        !           417: 
        !           418: Macros are saved in a directory $HOME/.kbdmac.dir under names
        !           419: km.NAME where NAME is the user specified name by which the keyboard
        !           420: macro is to be known, called, etc.  (The directory must be created
        !           421: ahead of time.)  
        !           422: 
        !           423: Since the macros allow no internal documentation, a brief amount
        !           424: documentation is kept in a file called $HOME/.kbdmac.dir/README.doc
        !           425: The keyboard macro editing and renaming  macros always finish up by
        !           426: pausing with a buffer of this documentation which is to be edited
        !           427: recursively to keep it up to date. They go to old entries or create
        !           428: new ones as needed.
        !           429: 
        !           430: 
        !           431: M-^N: name_kbdmac      names keyboard macro. prompts for name
        !           432:        This allows you to save the current standard (unnamed)
        !           433:        keyboard macro under the name specified. First, however,
        !           434:        it pulls the macro into a buffer for perusal and/or editing 
        !           435:        (idea was to at the very least make usre you knew what you
        !           436:        were naming.) Then it asks for a name, and finally it
        !           437:        gives you the README.doc file for any short one-line comments
        !           438:        you might like to make on the newly named macro. (A
        !           439:        recursive edit, exited as usual by ^Z)
        !           440: 
        !           441: M-X: execute_named_kbdmac executes named keyboard macro <arg> times
        !           442:        This simply prompts for the name of the previously stored 
        !           443:        keyboard macro, and executes it. It it is called with an
        !           444:        argument, it executes it <arg> times.
        !           445: 
        !           446: M-^E: edit_named_kbdmac edits named keyboard macro
        !           447:        This allows you to alter (edit recursively) a previously named 
        !           448:        keyboard macro. It prompts for the name, pulls in the
        !           449:        appropriate file, and enters a recursive edit. When you are done
        !           450:        editing it (hitting ^Z, as usual) it goes and gets the
        !           451:        README.doc file, at the appropriate line, in case you want to
        !           452:        edit the comments on the macro. (Also a recursive edit,
        !           453:        exited by ^Z)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.