|
|
1.1 ! root 1: me/Read_me 10/11/90 ! 2: ! 3: Flexible bindings and emacs programming. ! 4: ! 5: The new emacs has two tables for keybindings an old table which ! 6: is loaded at compile time and is never changed, and a new table ! 7: which can be modified by the new keybinding commands. ! 8: ! 9: The following new commands are implemented. ! 10: ! 11: ctl-x m Renames the curent macro ctl-x E to a new binding. The ! 12: current macro must be defned. This function asks for a ! 13: new binding (such as ESC z or ctl-f) the current macro ! 14: is renamed to the new binding. Example: ! 15: ctl-x ( ESC s xyz ctl-u ctl-d ctl-x ) /* define macro */ ! 16: ctl-x m esc l /* rename it esc l */ ! 17: ! 18: ctl-x r Requests an old binding and a new binding. The new ! 19: binding takes on the meaning of the old binding. If the ! 20: two bindings are the same the new binding is deleted. ! 21: Examples: ! 22: ctl-x r esc l esc l /* undefine previous example */ ! 23: ctl-x r ctl-x c ctl-z /* exchange meanings of */ ! 24: ctl-x r ctl-z ctl-x c /* ctl-z and ctl-x c */ ! 25: ! 26: Note from the second example the old binding table is ! 27: never changed so the exchange works. ! 28: ! 29: If you connect to Coherent via some utility such as kermit ! 30: you may find that emacs doesn't understand your arrow keys. ! 31: Flexible binding can often fix that. ! 32: ! 33: ctl-x r ctl-p (up arrow) ! 34: ctl-x r ctl-n (down arrow) /* this may kill esc b */ ! 35: ctl-x r ctl-b (left arrow) /* this may kill esc c */ ! 36: ctl-x r ctl-f (right arrow) /* this may kill esc d */ ! 37: ! 38: ctl-x s Requests a file name and saves all flexible bindings to ! 39: that file. If the current macro is completely defined it ! 40: is also saved. A special macro called the initialization ! 41: macro is also saved. ! 42: ! 43: ctl-x l Requests a file name and reloads all flexible bindings ! 44: from it. The initialization macro is loaded but not ! 45: executed. ! 46: ! 47: ctl-x x Rebinds prefix key ctl-x, provides two new prefix keys ! 48: and rebinds ctl-u. Asks for each prefix key or space. ! 49: Space leaves existing binding. Then it asks for a new ! 50: binding for ctl-u. ! 51: ! 52: -f filename ! 53: This is an argv parameter. The filename is loaded and ! 54: after all other listed files are loaded the ! 55: initialization macro is executed. ! 56: ! 57: ctl-x i Rebinds the current macro to the initialization macro. ! 58: ! 59: Note if you have some edit sequence to execute on a number ! 60: of files create it, executeing some meaningless binding such as ! 61: esc Z at the end. Rebind esc Z to ctl-z. Rebind the current ! 62: macro to the initialization macro. Save the flexabile bindings ! 63: to some file. Now use the Coherent do loop to run the ! 64: initilaization macro on all the files you wish changed. ! 65: ! 66: ctl-u -1 some macro ! 67: The repeat count of -1 for executing a macro means ! 68: execute the macro until it fails then return success. ! 69: ! 70: ! 71: Emacs programming example. Bulid a macro that finds instances ! 72: of xyz and deletes the next four characters. Use that macro ! 73: on a list of files. ! 74: ! 75: ctl-x ( esc s xyz [ret] ctl-u ctl-d ctl-x ) /* define the macro */ ! 76: ctl-x m esc a /* name it esc a */ ! 77: ctl-x ( ctl-u -1 [ret] esc a esc z ctl-x ) /* macro with ! 78: meaningless esc z */ ! 79: ctl-x i /* make it init mac */ ! 80: ctl-x r ctl-z esc z /* esc z = ctl-z */ ! 81: ctl-x s myfile.rc /* save bindings */ ! 82: ctl-z /* exit */ ! 83: ! 84: me -f myfile.rc datafile.x ! 85: ! 86: Notes: ! 87: ctl-x m and ctl-x r both check that the new name is ! 88: not ctl-x r. Changing the binding of ctl-x r would ! 89: alow the user to paint himself into a corner. ! 90: ! 91: Earlier documents gave the argv of -b. There is an ! 92: emacs -b for backup version. I therefore used -f to ! 93: designate flex binding files. ! 94: ! 95: if -f is not specified emacs checks for a flexable ! 96: bindings file. On Coherent this is presumed to be ! 97: at $HOME/.emacs.rc On atari and Ms-Dos $LIBPATH\emacs.rc ! 98: ! 99: For a complete list of all the keybindings in emacs. ! 100: Look at bind.doc which is produced by ext.c during ! 101: the make process.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.