|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.