craig@hp-pcd.UUCP (craig) (07/20/86)
For people who have been wondering about a manual for MicroEmacs, heres my attempt. Note that its for my version and there are some differences between it and the other versions floating around the net though for the most part minor. --- Craig "Who needs TV when I got T Rex?" Durland (503) 757-2000 x3354 Hewlett-Packard, 1000 NE Circle Boulevard, Corvallis, OR 97330 ~~~~~~~~~~~~~~~ hplabs ---->\ harpo ----> \ orstcs ----> >--!hp-pcd!craig microsoft ----> / textronix ---->/ ~~~~~~~~~~~~~~~
craig@hp-pcd.UUCP (craig) (07/20/86)
ME Documentation For the most part, read the Goslings or Unipress EMACS manuals. Soft keys and Function keys keyboard ME key Bound to F1 ~1 F2 ~2 F3 ~3 F4 ~4 F5 ~5 F6 ~6 F7 ~7 F8 ~8 F9 ~9 F10 ~0 home ~A (mark-and-home) end ~B (mark-and-end) up arrow ~C (previous-line) down arrow ~D (next-line) right arrow ~E (forward-character) left arrow ~F (backward-character) insert ~G (center-cursor) delete ~H (delete-char) page up ~I (previous-page) page down ~J (next-page) clear line ~K (kill-line) delete line ~L (delete-line) insert line ~M (insert-line) select ~N (set-mark) roll up ~O (scroll-down) roll down ~P (scroll-up) ALT 0..9A..Z! mapped to META 0..9A..Z! Use the ALT key like the control key (ie hold it down while you press the next key). Anytime you are being queried on the message line the softkeys return their internal value. So if you want to bind F1, you can press F1 when bind-to-key asks for a key. Case of letters: Meta keys and Control X commands: next letter is ALWAYS uppercase. Softkeys are case sensitive. TERMS args Parameters or arguments that will be requested by the command. If [] surround the arg, then it will only be requested in certain cases. binding See bound. bound A key is attached or bound to a command or program. If the key is pressed, whatever it is bound to is invoked. buffer A buffer is the internal workspace. If a buffer is visible, it is shown through one or more windows. It is usually attached to a file (ie contains the contents of the file). If the buffer is created by reading in a file, the buffer name is created by removing the path from it (and leaving only the name and extension). command A ME built in command such as (search-forward). These can be bound to a key to make executing them easier. dot The place between two characters. It is immediately to the left of the cursor. Also known as point. One per window or buffer. file For MS-DOS, you can use forward slashes "/" as part of the path name. Kill buffer An invisible buffer that holds things created by (kill-region) and (copy-region). Used to cut and paste or just paste. If you want to move a block of text about: 1, set the mark at one end and then move the dot to the other end. 2, kill the region. 3, move the dot to the start of where you want the text to begin and 4, yank the kill buffer. Bingo. Copy and kill append to the kill buffer if last command was also a kill or copy, otherwise the kill buffer is cleared before the new text is entered. macro A sequence of keystrokes that can be replayed on command. Used when you don't want to spend the time writing a program. Created by going through the motions (which are actually done so you can verify that what you want to happen is actually happening) (see (start-macro) and (end-macro)). When replayed, the exact sequence you typed in is reentered. mark A user settable dot. One per window or buffer. message line or minibuffer The bottom line of the screen. This is the place where all questions are asked, error messages sent, etc. MUT The built in programming language. Refer to the MUT documentation. n Argument prefix (set by ^U). This means repeat the key (or what its bound to) or command n times. If ^U is not used then n defaults to 1. program A program created by (defun). Very few of these are builtin - most of them are created by the user to make his editing easier. region The area between dot and mark. window A portion of the screen. A window provides a view of a buffer. There can be more than one window showing a buffer. Windows are separated from each by a mode line. Mode lines look like: -* MicroEMACS -- buffer_name -- file_name --------------- The * is present only if the buffer has been modified. The file_name is present only if a file is associated with the buffer. word A string of letters, digits, "$" or "_". COMMAND default binding, args and comments (abort) ^G Back out of anything. If remembering a macro, forget it. If executing a program, stop it. (apropos) $? args: keyword List all commands and programs that have a keyword in them. For example, if you apropos commands with "mark" in them you would get: PROGRAMS: mark-and-end ~B mark-and-home ~A COMMANDS: exchange-dot-and-mark ^X^X set-mark ^@ $SPACE ~N On the left is the command name. On the right is the key(s) it is bound to. So, in this case, (set-mark) is bound to control-@, escape-space and softkey-N. Command completion is on. See also: (describe-bindings). (backward-character) ^B ~F (left arrow) Move the dot backwards by a character. See also: (forward-character). (backward-word) $B Move backwards until dot is at the beginning of a word or beginning of buffer. Word is a digit, letter, "$" or "_". See also: (delete-previous-word), (delete-next-word), (forward-word). (beginning-of-buffer) $< Move the dot to the top of the buffer. See also: (end-of-buffer), (mark-and-end), (mark-and-home). (beginning-of-line) ^A Move the dot to the start of the line. See also: (end-of-line). (bind-to-key) Not bound. args: command name, keystroke(s) Attach a key to a command or program. When ever the key is pressed, the command or program will be executed (except when a question is being asked). Possible keys are single key strokes, soft keys and double keystrokes. Double keystrokes are prefixed keys. Prefix keys are: ^X and escape (^[). They can be prefixed to any key except soft keys. When asked for the key you can press the key(s) or enter the keycode. Keycodes are ascii (ie no control characters and such) representations of a key. For example, escape-D is represented by the 3 characters ^[D, control-C by the 2 characters ^C and function key 1 (aka soft key 1) by ~1. Keycodes should be used when programming to avoid screwing up things like printers (when you print out the file). eg (bind-to-key "foo" "~1") Note: Always use uppercase for control keys. Command completion is on. See also: (defun). (case-region-lower) ^X^L Convert a region to lower case. (case-region-upper) ^X^U Convert a region to upper case. (case-word-capitalize) $C Capitalize word after dot. If dot is between words, searches forward to the start of the next word and capitalizes that one. (case-word-lower) $L Convert word to lower case. If dot is between words, searches forward to the start of the next word and lower case that one. (case-word-upper) $U Convert word to upper case. If dot is between words, searches forward to the start of the next word and upper case that one. (center-cursor) ~G (insert) Center the dot vertically in the current window. Same as (arg-prefix 0) (reposition-window). See also: (refresh-screen), (reposition-window). (completion) Not bound args: word to complete Asks for a command, allows command completion and inserts the command. The arg prefix selects the list to be completed Selector: or the lists you want (default is 3 (system & program)). bit value list 0 1 system keywords 1 2 program names 2 4 MUT keywords 3 8 buffer names (copy-region) $W Copy a region to the kill buffer. If the last command was a kill command, append to the kill buffer. The region is uneffected. See also: (kill-region), (yank-from-killbuffer). (decompile) Not bound args: program name Dump a program at the dot. It is ready to be recompiled (with (execute-buffer) or (load)) but will need to be formatted before you save it to a file. Command completion is on. See also: (defun). (delete-blank-lines) Not bound Delete blank line above and below the dot. If the dot is not on a blank line, this command does nothing. A blank line is one with nothing on it (and that includes whitespace). Does not put deleted lines in kill buffer. (delete-char) ^D or ~H (delete) Delete the character after the dot (visually under the cursor). If at the end of the line, the next line is joined to the current line. If given an argument, deleted characters are put into the kill buffer. (delete-line) ~L (delete line) Make a line disappear. Saved to the kill buffer. Same as (beginning-of-line) (arg-prefix 1) (kill-line). (delete-next-word) $D Delete a word. Save them in the kill buffer. (delete-other-windows) ^X1 Make the current window the only window on the screen. See also: (split-window). (delete-previous-character) ^H or DEL Delete the character before the dot (visually to the left of the cursor). If at the beginning of the line, the current line is joined to the end of the previous line. If given an argument, deleted characters are put into the kill buffer. (delete-previous-word) $DEL or $^H Delete the previous word. Save them in the kill buffer. (describe-bindings) Not bound List all commands and programs along with their key bindings in the same format as (apropos). See also: (apropos). (describe-key) Not bound args: keystroke(s) Tell what command a key is bound to. If n, inserts the command name. For example, (describe-key "^A") returns "^A is bound to beginning-of-line". For MUT programmer types, a handy program is: (defun "deref-key" ; surround a command with braces { (set-mark) (let-user-respond) (arg-prefix 1) ; get a key (if (describe-key) ; if it is bound put braces around it { (insert-text ")") (exchange-dot-and-mark) (insert-text "(") (exchange-dot-and-mark) } {}) }) This allows programming using keys rather than remembering command names. See also: (completion), (apropos). (end-macro) ^X) Stop remembering keystrokes. The keystrokes are stored in the macro buffer ready to be replayed by (execute-macro). See also: (execute-macro), (start-macro). (end-of-buffer) $> Move the dot to the bottom of the buffer. See also: (beginning-of-buffer), (mark-and-end), (mark-and-home). (end-of-line) ^E Move the dot to the end of the line. See also: (beginning-of-line). (enlarge-window) ^XZ Enlarge the current window by a line. See also: (shrink-window). (exchange-dot-and-mark) ^X^X Move the dot to the mark and set the mark to old dot value. Visually, move to where the mark was set. Repeating this command will undo it. See also: (set-mark). (execute-buffer) Not bound args: buffer name Execute cmds or MUT programs in a buffer. You can't execute the buffer you are in (since if you changed the buffer you would change the program which would probably tank ME). The dot will track the pc (program counter) so, if there is an error, the dot will (hopefully) be right after the error (when you switch to the buffer). If you are single stepping, ^L will cause the code that is executing to be on screen (assuming the buffer is on screen). Command completion is on. See also: (execute-line), (load), document on MUT programming. (execute-extended-command) $X args: command or program name Execute a command or program. ie one of the things listed in this document. When asked what to Execute: use the name as listed here (without the "()"'s). eg Execute: execute-extended-command Command completion is in effect. (execute-line) $$ args: MUT code Execute one line of MUT code. eg (= HELP 0) or (bind-to-key "foo" "^F") See also: (execute-buffer). (execute-macro) ^XE Replay the keystrokes saved in the macro buffer. See also: (start-macro), (end-macro). (execute-monitor-command) ^X! args: op sys command Call the operating system to perform a command or run a program and then return to editing. MS-DOS example: To copy a file: (execute-monitor-command "copy foo bar") To get a directory listing: (execute-monitor-command "ls"). See also: (spawn-cli). (exit) ^C or ^X^C args: [yes or no] Exit emacs. If there is a modified buffer (one that has changed since it was last saved), ask the user the user about it. If n, quit no matter what and without making any noise. See also: (quick-exit). (filter-region) Not bound args: filter name Take a region and give to a filter as standard input. Take the output of the filter and use it to replace the region. For example: If the region is a paragraph and adjust is a program that formats text then (filter-region "adjust") will replace the paragraph with a formatted copy. If you don't want to remove anything, just make a null region (set the mark at the dot). eg (set-mark)(filter-region "ls") will insert a directory listing at the dot. (forward-character) ^F or ~E (right arrow) Move right a character. See also: (backward-character). (forward-word) $F Move forwards until dot is after the end of a word or end of buffer. Word is a digit, letter, "$" or "_". See also: (backward-word), (delete-previous-word), (delete-next-word). (goto-line) $G Goto the nth line. (insert-file) ^X^I args: file name Insert a file at the dot. See also: (read-file), (visit-file), (write-file). (insert-line) ~M (insert line) Same as (beginning-of-line) (open-line) (kill-buffer) ^XK args: buffer name, [yes or no] Remove a buffer. It disappears into ness-ness land. Ask if the buffer has been modified. If the buffer is the only one on the screen, replace it with the (next-buffer). If it is the only buffer, replace it with "main". Defaults to the current buffer. Command completion is on. See also: (delete-other-windows). (kill-line) ^K or ~K (clear line) Delete text from dot to the end of the line. If an argument is given: If n = 0: kill from beginning of line to dot. If n > 0: kill forward over n newlines. If n < 0: kill backword over n newlines. The deleted text is put into the kill buffer or appended to the kill buffer if the last command was also a kill command. See also: (delete-next-word), (delete-previous-word), (yank-from-killbuffer). (kill-region) ^W Delete a region and save it in the kill buffer. If the last command was a kill command, append to the kill buffer. See also: (copy-region), (yank-from-killbuffer). (list-buffers) ^X^B List all the buffers currently loaded. Magic buffers are not listed (such as the list-buffers buffer). C Size Buffer File - ---- ------ ---- 933 init.mut ../init.mut * 14287 me.doc me.doc C is * if the buffer is modified. Size in bytes of the buffer or file. File is the name of the file associated with a buffer. (load) Not bound args: file name Load a file filled with MUT commands. The file "init.mut" is loaded when ME is fired up (unless it does not exist). If the file is not in the current directory, it is looked for in ME directory (pointed to by the ME environment variable). Note that the ME var must end with a slash (eg ME=A:\foo\). See also: (execute-buffer), (execute-line), document on MUT programming. (mark-and-end) ~B (end) Same as (set-mark) (end-of-buffer). See also: (beginning-of-buffer), (end-of-buffer), (mark-and-home). (mark-and-home) ~A (end) Same as (set-mark) (beginning-of-buffer). See also: (beginning-of-buffer), (end-of-buffer), (mark-and-end). (newline) ^M Insert a newline before the dot (visually before the cursor). See also: (newline-and-indent), (open-line). (newline-and-indent) ^J Insert a newline before the dot and duplicate the indentation of the previous line (the one the dot just left). See also: (newline), (open-line). (next-buffer) Not bound Replace the current buffer with the next buffer in the buffer list. The buffer list is in alphabetical order. See also: (list-buffers), (switch-to-buffer), (use-old-buffer). (next-line) ^N or ~D (down arrow) Move the dot vertically down the screen. Trys to stay in the same column. See also: (previous-line). (next-page) ^V or ~J (page down) Scroll forwards a page (window size -2). See also: (previous-page). (next-window) ^XN Move to the next window down the screen and make it the current window. See Also: (previous-window) (not-modified) Not bound Mark the current buffer as not modified. When this has been done, (save-buffer) will not write out the file until further changes are made, (exit) won't complain about modified buffer, etc. (open-line) ^O (oh, not zero) Insert a newline after the dot. The dot does not move. See also: (newline), (newline-and-indent). (previous-line) ^P or ~C (up arrow) Move the dot vertically up the screen. Trys to stay in the same column. See also: (next-line). (previous-page) $V or ~I (page up) Scroll backwards a page (window size -2). See also: (next-page). (previous-window) ^XP Move to the window immediately above the current window and make it the current window. See also: (next-window). (query-replace) $Q args: search string, replace string Interactively search and replace strings. The mark is set at the point where the search started and returned there after a successful (query-replace). <ESC>,n,N : No, don't replace. Go on to next match. <SPACE>,y,Y : Yes, replace and go to next match. ! : Replace all the rest without asking. ^G : Abort. The command stops and the cursor is left where it is. To get to the start of the query-replace, use (exchange-dot-and-mark). Patterns are saved across searches. See (search-forward). See also: (replace-string), (search-xxx). (quick-exit) Not bound args: [yes or no] Write out the current buffer if it has changed, exit. If any modified buffers exist, ask about them. If n, don't ask about modified buffers. See also: (exit). (quote) ^Q or ^^ (control-^) Insert the next character typed into the buffer. This is how to get control characters and the like into the buffer. Note: This is not much use with ALT keys or softkeys. (read-file) ^X^R args: file name, [yes or no] Clear the current buffer (asking if the buffer has been modified) and read in a file. The file name defaults to the file name of the current buffer. See also: (insert-file), (visit-file), (write-file). (refresh-screen) ^L Repaint the screen. If n, then center the dot vertically in the window. See also: (center-cursor), (reposition-window). (rename-buffer) Not bound args: new file name Change the file name associated with the current buffer. If you want to disassociate the buffer from a file, use a null response. Command completion is on. (replace-string) $R args: search string, replace string Search and replace string without asking. Patterns are saved across searches. See (search-forward). See also: (query-replace), (search-xxx). (reposition-window) $! Move the current window so that the line the dot is on is n lines from the top of the window. If n<0, move the dot so that it is n lines from the bottom. If n==0, the dot is centered vertically centered in the window. See also: (center-cursor), (refresh-screen). (save-buffer) ^X^S Write the current buffer to the file associated with it. Does not do anything if the buffer is unmodified. If you want to force a write, use (write-file). See also: (write-file). (scroll-down) ^X^N or ~O (oh) (roll up) Move the current window down by a line. Visually, the dot moves up the screen. (scroll-up) ^X^P or ~P (roll down) Move the current window up by a line. Visually, the dot moves down the screen. (search-forward) ^\ or ^S args: search string (search-reverse) ^R args: search string Search for a string. CR ends patterns, LF (^J) => start of line. The pattern is saved across searches. The pattern is also the default search pattern for the replace commands. Whenever the search pattern changes, the replace pattern is cleared (this is so you can replace something with nothing). (search-forward) The dot is after the last character matched. (search-reverse) The dot is before the last character matched, or put another way, to the left of the first character of the search string. See also: (query-replace), (replace-string). (set-fill-column) ^XF Sets the column at which wordwrap is attempted. Wordwrap is also turned on. If no n the fill-column is set to the current column. If n==0, turn off wordwrap. See also: Note on wordwrap. (set-mark) ^@ or $SPACE or ~N (select) Set the mark at the dot. Visually, under the cursor. See also: (exchange-dot-and-mark). (show-position) ^X= Show stats in the form: Row=rrr Col=c Y=y CH=h .=dddd (x% of z) Unused=a where Row is the buffer row, Col is screen column, Y is screen row, CH is the character after the dot, . is the position of the dot (the number of characters between the beginning-of-buffer and dot), x% percent of the buffer is before the dot, z is the size of the buffer and Unused is how much wasted space there is in the buffer. (shrink-window) ^X^Z Shrink the current window by a line. See also: (enlarge-window). (spawn-cli) ^_ Jump to the operating system (shell) for a while. ME is still loaded and will sit in the background until you exit the shell (via exit in MS-DOS). See also: (execute-monitor-command). (split-window) ^X2 Make 2 windows out of the current window. A window with less than 3 lines cannot be split. See also: (delete-other-windows). (start-macro) ^X( Start remembering keystrokes until (end-macro). See also: (end-macro), (execute-macro). (switch-to-buffer) ^XB args: buffer name Replace the current window with another buffer. Command completion is on. See also: (list-buffers), (next-buffer), (use-old-buffer). (tab) ^I or the tab key Set tab stops or insert a tab. If given an argument then set the tab stops to every nth column. If n==0 use the tab character. If n>1 use spaces to simulate the tab character. If no argument then move to the next tab stop. (transpose-characters) ^T Swaps the 2 characters on either side of the dot. If you want to change "ab" to "ba" then put the cursor on the b and (transpose-characters). (use-old-buffer) ^X^O (oh) args: name of existing buffer Replace the current window with a buffer that already exists. Command completion is on. See also: (list-buffers), (switch-to-buffer). (version) Not bound Show the current version of ME. (visit-file) ^X^F or ^X^V args: file name Split the current buffer. If the file (buffer) is already loaded, switch to it. Otherwise, read in the file. The dot is set to the beginning of the buffer and the mark is erased. See also: (insert-file), (read-file), (write-file). (write-file) ^X^W args: file name Write the current buffer to a file. If the file existed, it is overwritten. If the file does not already exist, it is created. The file name defaults to the file name of the current buffer. See also: (insert-file), (read-file), (save-buffer), (visit-file). (yank-from-killbuffer) ^Y Insert the contents of the killbuffer before the dot (visually before the cursor). Does not affect the kill buffer. The dot is left after the yanked text. The mark does not move. See also: (copy-region), (kill-region). VAR COMMENTS HELP Set the help level. 0 => no help. Notes: If you are being asked a question: Key bindings are not in effect. This means if have bound a normal key to something by accident, you can unbind it without undo grief. "Special" keys: ^H or DEL Backspace. ^G Abort out of the question. Also causes command to be aborted. ^I Tab. ^J Returns the code for newline. handy for searches. ^M or return End the question. ^U Erase everything and start over. Control keys in general return the code for the key. Function keys return the function key itself NOT what its bound to. If you answer the question by hitting <return or enter> and the line is empty, you have entered the null line zone. This can be interpreted as: 1. An empty line. It will then be ignored or complained about or stop the command. 2. A ^M. (bind-to-key) does this. 3. A request to the default. This is usually the current thing being manipulated (where thing is buffer, file, etc). eg (write-file) defaults to current file name and (kill-buffer) defaults to current buffer name. Command completion is triggered by the SPACE key. Can be used if the invoked command uses one of the lists that can be completed. See also: (completion). Marks: If the mark is at the dot (ie where it is when the mark is set) and do something (insert text, yank text, etc), it is done between the dot and mark, that is, the mark is before the change and the dot after. Word wrap: Setting the (set-fill-column)>0 turns it on, 0 turns it off. When you are typing at the end of a line and cross the fill column the last "word" is wrapped to the next line. If have some left margin you wish to preserve, bind CR to newline-and-indent (bind-to-key "newline-and-indent" "^M"). What me does not have that emacs does (partial list): * file name completion * local key bindings * over write mode * recursive editing * regular expressions bunch more
craig@hp-pcd.UUCP (craig) (07/20/86)
MICROEMACS COMMAND SUMMARY Note: n means argument prefix (set by ^U). dot is current cursor position. ^@ Set mark at current position (dot). ^A Move cursor to beginning of line. ^B Move cursor back one character. ^C Exit without saving buffers (same as ^x^C). ^D Delete current character. If n then save to kill buffer. ^E Move cursor to end of line. ^F Move cursor forward one character. ^G Abort any command. (shades of Teco). ^H (backspace) Delete previous character. If n, save to kill buffer. ^I Tab. If n = 0 use tab. If n>1, set tab stops & use blanks. ^J Newline and match indent of previous line. ^K Kill (delete) to end of line. If n = 0: kill from begining of line to dot. If n > 0: kill forward over n newlines. If n < 0: kill backword over n newlines. ^L Redisplay screen. If n, center cursor. ^M Carriage return. ^N Move cursor to next line. ^O Open a new line. ^P Move to previous line. ^Q Quote the next character (insert the next character typed). ^R Reverse search. ^S Forward search. ^T Transpose characters. ^U Enter repeat count for next command (set n). ^V View the next screen (scroll up one screen). ^W Kill region (all text between cursor and last mark set). ^Y Yank (undelete) last text killed (deleted). ^_ Push to a new interactive command shell. ^^ Quote the next character (same as ^Q). ^\ Forward search (same as ^S). ^x! Fork a command. ^x( Begin keyboard macro. ^x) End keyboard macro. ^x= Show current position. ^x1 Display only current window. ^x2 Split the current window. ^xB Prompt for new buffer. If given n, buffer must exist. ^xE Execute keyboard macro. ^xF Set fill column (for word wrap). If n, set to n else set to current column. if n = 0, turn off word wrap. ^xK Kill a buffer. ^xN Move to next window. ^xP Move to previous window. ^xZ Enlarge current window by n lines. ^x^B Show active buffers. ^x^C Exit without saving buffers. ^x^F Visit file. ^x^G Abort. ^x^I Insert file at dot. ^x^L Lower case region. ^x^N Scroll current window up by n lines. ^x^O Use old buffer. Same as ^U^xB ^x^P Scroll current window down by n lines. ^x^R Read file into current buffer. Defaults to current file name. ^x^S Save (write) current buffer to its file. Only writes if changed. ^x^U Uppercase region. ^x^V Visit a file. Read file and display in current window. ^x^W Write buffer to file. Defaults to current file name. Always writes. ^x^X Swap dot and mark. ^x^Z Reduce current window by n lines. <del> delete previous character. $! Move current line to n lines from top of window. if n = 0 center cursor. $$ Execute-line. $<space> Set mark. $< Move cursor to beginning of buffer. $> Move cursor to end of buffer. $? List all commands that have keyword in them. $1, $2, $3, $4, $5, $6, $7, $8, $9 Enter n for next command (like ^U). $B Move cursor back one word. $C Capitalize word. $D Delete next word. $<del> Delete previous word. $F Move cursor forward one word. $G Move cusor to line specified by n. $^G Abort. $L Lowercase next word. $Q Query replace. Mark is set to begining of search. $U Uppercase next word. $V View the previous screen (scroll down one screen). $W Copy region to kill buffer. $X Execute meta command (such as goto-line). Command completation when SPACE typed. COMMAND BINDING PROGRAMS: center-cursor ~G delete-line ~L insert-line ~M mark-and-end ~B mark-and-home ~A COMMANDS: abort ^G apropos $? backward-character ^B ~F backward-word $B beginning-of-buffer $< beginning-of-line ^A bind-to-key Not bound case-region-lower ^X^L case-region-upper ^X^U case-word-capitalize $C case-word-lower $L case-word-upper $U completion Not bound copy-region $W decompile Not bound delete-blank-lines Not bound delete-char ^D ~H delete-next-word $D delete-other-windows ^X1 delete-previous-character ^H DEL delete-previous-word $DEL $^H describe-bindings Not bound describe-key Not bound end-macro ^X) end-of-buffer $> end-of-line ^E enlarge-window ^XZ exchange-dot-and-mark ^X^X execute-buffer Not bound execute-extended-command $X execute-line $^[ execute-macro ^XE execute-monitor-command ^X! exit ^C ^X^C filter-region Not bound forward-character ^F ~E forward-word $F goto-line $G insert-file ^X^I kill-buffer ^XK kill-line ^K ~K kill-region ^W list-buffers ^X^B load Not bound newline ^M newline-and-indent ^J next-buffer Not bound next-line ^N ~D next-page ^V ~J next-window ^XN not-modified Not bound open-line ^O previous-line ^P ~C previous-page $V ~I previous-window ^XP query-replace $Q quick-exit Not bound quote ^^ ^Q read-file ^X^R refresh-screen ^L rename-buffer Not bound replace-string $R reposition-window $! save-buffer ^X^S scroll-down ^X^N ~O scroll-up ^X^P ~P search-forward ^\ ^S search-reverse ^R set-fill-column ^XF set-mark ^@ $SPACE ~N show-position ^X= shrink-window ^X^Z spawn-cli ^_ split-window ^X2 start-macro ^X( switch-to-buffer ^XB tab ^I transpose-characters ^T use-old-buffer ^X^O version Not bound visit-file ^X^F ^X^V write-file ^X^W yank-from-killbuffer ^Y