'From bbanerje Tue May 14 10:06:01 1985 o$Received: by sjuvax.UUCP (4.12/4.7)) id AA26204; Tue, 14 May 85 10:05:55 edt"Date: Tue, 14 May 85 10:05:55 edtFrom: bbanerje (B. Banerjee)r-Message-Id: <8505141405.AA26204@sjuvax.UUCP>a To: mendenhacSubject: Re: GNU Emacs Status: Rc>> J>> I've found someone here at RCA that can do the Emacs port to VMS.F>> If I come by with a tape sometime, can I get a copy of the source?>> >> Henry.>> xCI won't be around, but Joe will be. Tell him that the sources areoin :v (/src/local/text-handling/Editors/emacs. AAlso, we have a utility called 'ansitar' which should be able to Awrite tapes that VMS can read (I'm not sure what to do about theCUNIX subdirectories).cEYou'll have to excuse the state of the sources. I haven't 'cleaned'rEthem up for distribution. Most of the object files are lying aroundpFin addition to a bunch of RCS files (with an extension of ,v). Theseyou can get rid of.b6Anyway, I'll let your friend worry about the details. -- Binayakt-P.S.gi<Some documentation of a preliminary nature is available for?GNU EMACS. I'm taking the liberty of sending this over to your by mail.oo'From bbanerje Tue May 14 10:08:53 1985'$Received: by sjuvax.UUCP (4.12/4.7)) id AA26213; Tue, 14 May 85 10:07:41 edti"Date: Tue, 14 May 85 10:07:41 edtFrom: bbanerje (B. Banerjee)o-Message-Id: <8505141407.AA26213@sjuvax.UUCP> To: mendenhaoSubject: Emacs functionsw Status: Rurdratets- Command Summary For Gnu Emacsan ( Richard M. StallmanM.'ageb6_m_o_d_i_f_y-_s_y_n_t_a_x-_e_n_t_r_ya2Set syntax for character C according to string S.9The first character of S should be one of the following:tP Space whitespace syntax. w word constituent. _ symbol constituent.8 ( open-parenthesis. ) close-parenthesis.5 " string quote. character-quote.A $ paired delimiter. ' expression prefix operator.4 < comment starter. > comment ender.LOnly single-character comment start and end sequences are represented thus.<Two-character sequences are represented as described below.7The second character of S is the matching parenthesis, - used only if the first character is ( or ).u%Any additional characters are flags. 0Defined flags are the characters 1, 2, 3 and 4.> 1 means C is the start of a two-char comment start sequence.7 2 means C is the second character of such a sequence.< 3 means C is the start of a two-char comment end sequence.7 4 means C is the second character of such a sequence.seh3_p_a_r_s_e-_p_a_r_t_i_a_l-_s_e_x_prdlhedato tmh ee,eni% May 13, 1985 incar! - 2 -hhcsKParse Lisp syntax starting at FROM until TO; return status of parse at TO.e6Parsing stops at TO or when certain criteria are met;$ dot is set to where parsing stops.&If fifth arg STATE is omitted or nil,; parsing assumes that FROM is the beginning of a function.aCValue is a list of six elements describing final state of parsing:d 1. depth in parens.mJ 2. character address of start of innermost containing list; nil if none.A 3. character address of start of last complete sexp terminated.s 4. non-nil if inside a string.: (it is the character that will terminate the string.) 5. t if inside a comment.a& 6. t if following a quote character.@If third arg TARGETDEPTH is non-nil, parsing stops if the depth-in parentheses becomes equal to TARGETDEPTH.a6Fourth arg STOPBEFORE non-nil means stop when come to# any character that starts a sexp.2?Fifth arg STATE is a six-list like what this function returns. 1It is used to initialize the state of the parse.l p"_i_n_t_e_r_a_c_t_i_v_e i iseatt lratsn5 id m. fliaoca% May 13, 1985-,rgoi! - 3 -sutAFSpecify a way of parsing arguments for interactive use of a function.For example, writerA (defun fun (arg) "Doc string" (interactive "p") ...use arg...) Lto make arg be the prefix numeric argument when foo is called as a command.7This is actually a declaration rather than a function;N it tells call-interactively how to read arguments to pass to the function.6When actually called, interactive just returns nil. KThe argument of interactive is usually a string containing a code letterpA followed by a prompt. (Some code letters do not use I/O to getK the argument and do not need prompts.) To prompt for multiple arguments,uJ give a code letter, its prompt, a newline, and another code letter, etc.BIf the argument is not a string, it is evaluated to get a list of$ arguments to pass to the function.DJust (interactive) means pass no args when calling interactively.tCode letters available are:7a -- Function name: symbol with a function definition.tb -- Name of existing buffer.+B -- Name of buffer, possibly nonexistent. c -- Character.@C -- Command name: symbol with interactive function definition./d -- Value of dot as number. Does not do I/O.eD -- Directory name.ef -- Existing file name.s%F -- Possibly nonexistent file name. k -- Key sequence (string).0m -- Value of mark as number. Does not do I/O.#n -- Number read using minibuffer.7p -- Prefix arg converted to number. Does not do I/O.b/P -- Prefix arg in raw form. Does not do I/O.iKr -- Region: dot and mark as 2 numeric args, smallest first. Does no I/O.s -- Any string.:S -- Any symbol.c+v -- Variable name: symbol that is boundp. -x -- Lisp expression read but not evaluated.n)X -- Lisp expression read and evaluated.slo0_s_e_t-_s_c_r_e_e_n-_h_e_i_g_h_t<Set number of lines on screen available for use in windows.di-_s_e_t-_s_c_r_e_e_n-_w_i_d_t_hne7Set number of columns on screen available for display.st &_s_c_r_e_e_n-_h_e_i_g_h_tr?Return number of lines on screen available for use in windows.-ym.% May 13, 1985d  L r! - 4 - L #_s_c_r_e_e_n-_w_i_d_t_h:Return number of columns on screen available for display.r _d_i_n_g iBeep, or flash the screen.di_s_l_e_e_p-_f_o_r2Pause, without updating display, for ARG seconds.a _s_i_t-_f_o_rIPerform redisplay, then wait for ARG seconds or until input is availableale)_r_e_d_r_a_w-_d_i_s_p_l_a_y  DClear the screen and output again what is supposed to appear on it.  _w_i_n_d_o_w_p_Returns t if OBJ is a window.un,_s_e_l_e_c_t_e_d-_w_i_n_d_o_wDReturn the window that the cursor appears in and commands apply to.l_>_p_o_s-_v_i_s_i_b_l_e-_i_n-_w_i_n_d_o_w-_pn?Return t if position POS is currently on the screen in WINDOW.aAReturns nil if that position is scrolled vertically out of view._5POS defautls to dot; WINDOW, to the selected window.aou&_w_i_n_d_o_w-_b_u_f_f_e_r-Return the buffer that WINDOW is displaying.fJ &_w_i_n_d_o_w-_h_e_i_g_h_td@Return the number of lines in WINDOW (including its mode line).ndmdp % May 13, 1985nw_! - 5 -iPi#_w_i_n_d_o_w-_w_i_d_t_hae(Return the number of columns in WINDOW.a )_w_i_n_d_o_w-_h_s_c_r_o_l_l, KReturn the number of columns by which WINDOW is scrolled from left margin.ene3_s_e_t-_w_i_n_d_o_w-_h_s_c_r_o_l_ldCSet number of columns WINDOW is scrolled from left margin to NCOL.(!NCOL should be zero or positive.#_w_i_n_d_o_w-_e_d_g_e_sa31Return a list of the edge coordinates of WINDOW. L(LEFT TOP RIGHT BOTTOM), all relative to 0, 0 at top left corner of screen. c_w_i_n_d_o_w-_d_o_t_'Return current value of dot in WINDOW.ene#_w_i_n_d_o_w-_s_t_a_r_t o=Return position at which display currently starts in WINDOW._c'_s_e_t-_w_i_n_d_o_w-_d_o_t D@Make dot value in WINDOW be at position POS in WINDOW's buffer.sv-_s_e_t-_w_i_n_d_o_w-_s_t_a_r_tsAMake display in WINDOW start at position POS in WINDOW's buffer.I T&_d_e_l_e_t_e-_w_i_n_d_o_wr=Remove WINDOW from the display. Default is selected window.nrt _n_e_x_t-_w_i_n_d_o_wBReturn next window after WINDOW in canonical ordering of windows.yrtstnN% May 13, 1985wd_ D! - 6 -soO,_p_r_e_v_i_o_u_s-_w_i_n_d_o_wGReturn previous window before WINDOW in canonical ordering of windows.nS #_o_t_h_e_r-_w_i_n_d_o_w_4Select a different window by moving down ARG times.l '_g_e_t-_l_r_u-_w_i_n_d_o_we?Return the window least recently selected or used for display.nnc3_g_e_t-_l_a_r_g_e_s_t-_w_i_n_d_o_w #Return the largest window in area.wd_0_g_e_t-_b_u_f_f_e_r-_w_i_n_d_o_w=Return a window currently displaying BUFFER, or nil if none.uiw9_d_e_l_e_t_e-_o_t_h_e_r-_w_i_n_d_o_w_s_6Make WINDOW (or the selected window) fill the screen.n 0_d_e_l_e_t_e-_w_i_n_d_o_w_s-_o_n#Delete all windows showing BUFFER.en F_r_e_p_l_a_c_e-_b_u_f_f_e_r-_i_n-_w_i_n_d_o_w_s_AReplace BUFFER with some other buffer in all windows showing it.a. _s_h_o_w-_b_u_f_f_e_r_,Make WINDOW display BUFFER as its contents.'BUFFER can be a buffer or buffer name.&_s_e_l_e_c_t-_w_i_n_d_o_wn<Select WINDOW. Most editing will apply to WINDOW's buffer.GThe main editor command loop selects the buffer of the selected windowbefore each command.ogF.% May 13, 1985ri-_d! - 7 - eh)_d_i_s_p_l_a_y-_b_u_f_f_e_r9Make BUFFER appear in some window but don't select them.U)BUFFER can be a buffer or a buffer name.f&Returns the window displaying BUFFER.t#_s_p_l_i_t-_w_i_n_d_o_wO ;Split WINDOW, putting SIZE lines in the first of the pair. ;WINDOW defaults to selected one and SIZE to half its size.o>If optional third arg HOR-FLAG is non-nil, split side by side/and put SIZE columns in the first of the pair.   )_e_n_l_a_r_g_e-_w_i_n_d_o_wa-&Make current window ARG lines bigger.L>From program, optional second arg non-nil means grow sideways ARG columns.n.&_s_h_r_i_n_k-_w_i_n_d_o_w'Make current window ARG lines smaller.wN>From program, optional second arg non-nil means shrink sideways ARG columns.to_s_c_r_o_l_l-_u_piOScroll text of current window upward ARG lines; or near full screen if no ARG.uAWhen calling from a program, supply a number as argument or nil._ _s_c_r_o_l_l-_d_o_w_nwQScroll text of current window downward ARG lines; or near full screen if no ARG.eAWhen calling from a program, supply a number as argument or nil.e _s_c_r_o_l_l-_l_e_f_t1Scroll selected window display ARG columns left.r e#_s_c_r_o_l_l-_r_i_g_h_t_2Scroll selected window display ARG columns right.Al6_s_c_r_o_l_l-_o_t_h_e_r-_w_i_n_d_o_w g,p ur% May 13, 1985o__w! - 8 -n ndLScroll text of next window upward ARG lines; or near full screen if no ARG.HThe next window is the one below the current one; or the one at the top%if the current one is at the bottom.AAWhen calling from a program, supply a number as argument or nil.cl_r_e_c_e_n_t_e_rGlKCenter dot in window and redisplay screen. With ARG, put dot on line ARG.FThe desired position of dot is always relative to the current window.LIf there is no ARG (i.e., it is nil) then the entire screen is redisplayed.xi4_m_o_v_e-_t_o-_s_c_r_e_e_n-_l_i_n_eh!Position dot relative to window.c8With no argument, position at text at center of window.=An argument specifies screen line; zero means top of window,a-negative means relative to bottom of window.t_G<_s_a_v_e-_w_i_n_d_o_w-_e_x_c_u_r_s_i_o_no4Execute body, preserving window sizes and contents.ERestores which buffer appears in which window, where display starts,)as well as dot and mark.rsy_k_i_l_l-_e_m_a_c_s5Exit the Emacs job and kill it. Arg means no query.von_d_u_m_p-_e_m_a_c_sia;Dump current state of Emacs into executable file FILENAME.nKTake symbols from SYMFILE (presumably the file you executed to run Emacs).t_G)_r_e_c_u_r_s_i_v_e-_e_d_i_t_,Invoke the editor command loop recursively.KDo (throw 'exit nil) within the command loop to make this function return,e:or (throw 'exit t) to make this function signal an error.5This function is called by the editor initializationdto begin editing. r_t_o_p-_l_e_v_e_l#Exit all recursive editing levels.om oea% May 13, 1985 F ea ! - 9 -.6_e_x_i_t-_r_e_c_u_r_s_i_v_e-_e_d_i_tt6Exit from the innermost recursive edit or minibuffer.wi9_a_b_o_r_t-_r_e_c_u_r_s_i_v_e-_e_d_i_toeJAbort the command that requested this recursive edit or minibuffer input.eo0_r_e_a_d-_k_e_y-_s_e_q_u_e_n_c_eo6Read a sequence of keystrokes and return as a string.;The sequence is sufficient to specify a non-prefix command94starting from the current local and global keymaps."One arg, PROMPT, a prompt string.r,_c_o_m_m_a_n_d-_e_x_e_c_u_t_ee"Execute CMD as an editor command.'CMD may be an APPLYable Lisp function,_6 or a string (which is executed as a keyboard macro).ed*_i_n_p_u_t-_p_e_n_d_i_n_g-_p;T if command input is currently available with no waiting.dNActually, the value is NIL only if we can be sure that no input is available.pf _r_e_c_e_n_t-_k_e_y_so4Return string of last 100 chars read from terminal.,p0_t_h_i_s-_c_o_m_m_a_n_d-_k_e_y_s;Return string of the keystrokes that invoked this command.ae *_l_a_s_t-_k_e_y-_s_t_r_u_c_k LReturn the last character input from the command input stream, as a number.-,_r_e_c_u_r_s_i_o_n-_d_e_p_t_hi-Return the current depth in recursive edits.lf 0_o_p_e_n-_d_r_i_b_b_l_e-_f_i_l_e_?Start writing all keyboard characters to a file named dribble. doe% May 13, 1985m_dk_" - 10 -o &_d_i_s_c_a_r_d-_i_n_p_u_ta3Discard the contents of the terminal input buffer.l1Also flush any kbd macro definition in progress.a b&_s_u_s_p_e_n_d-_e_m_a_c_s<Stop Emacs and return to superior process. You can resume.CIf optional arg STUFFSTRING is non-nil, its characters are stuffedt8to be read as terminal input by Emacs's superior shell. d*_s_t_a_r_t-_k_b_d-_m_a_c_r_om=Record subsequent keyboard input, defining a keyboard macro. 5The commands are recorded even as they are executed.hDUse end-kbd-macro to finish recording and make the macro available.5Use name-last-kbd-macro to give it a permanent name.-=Non-nil arg (prefix arg) means append to last macro defined;.B This begins by re-executing that macro as if you typed it again.ea$_e_n_d-_k_b_d-_m_a_c_r_ot"Finish defining a keyboard macro./The definition was started by start-kbd-macro.<The macro is now available for use via call-last-kbd-macro,Dor it can be given a name with name-last-kbd-macro and then invokedunder that name.o4With numeric arg, repeat macro now that many times,@counting the definition just completed as the first repetition.sp4_c_a_l_l-_l_a_s_t-_k_b_d-_m_a_c_r_og/Call the last keyboard macro that you defined.8To make a macro permanent so you can call it even after*defining others, use name-last-kbd-macro. r0_e_x_e_c_u_t_e-_k_b_d-_m_a_c_r_oa6Execute MACRO as string of editor command characters.7If MACRO is a symbol, its function definition is used.BCOUNT is a repeat count, or nil for once, or 0 for infinite loop.no4_n_a_m_e-_l_a_s_t-_k_b_d-_m_a_c_r_oa__s-_% May 13, 1985eamoao" - 11 - yc2Assign a name to the last keyboard macro defined.0One arg, a symbol, which is the name to define.DThe symbol's function definition becomes the keyboard macro string.HSuch a "function" cannot be called from Lisp, but it is a valid command(definition for the editor command loop.fi _m_a_k_e-_k_e_y_m_a_p_#Construct and return a new keymap.8All entries in it are NIL, meaning "command undefined".  3_m_a_k_e-_s_p_a_r_s_e-_k_e_y_m_a_p 1/Construct and return a new sparse-keymap list.aCIts car is 'keymap and its cdr is an alist of (CHAR . DEFINITION).Initially the alist is nil.bm_k_e_y_m_a_p_pgT if ARG is a keymap.@A keymap is a vector of length 128, or a list (keymap . ALIST),.where alist elements look like (CHAR . DEFN).__d_e_f_i_n_e-_k_e_yneFArgs KEYMAP, KEYS, DEF. Define key sequence KEYS, in KEYMAP, as DEF.HKEYMAP is a keymap. KEYS is a string meaning a sequence of keystrokes.SDEF is usually a symbol with a function definition, suitable for use as a command.nio_l_o_o_k_u_p-_k_e_ya EIn keymap KEYMAP, look up key sequence KEYS. Return the definition.enil means undefined.e*Number as value means KEYS is "too long";2that is, characters in it except for the last one<fail to be a valid sequence of prefix characters in KEYMAP.7The number is how many characters at the front of KEYSE(it takes to reach a non-prefix command. u _k_e_y-_b_i_n_d_i_n_ga;Return the definition for command KEYS in current keymaps.m,KEYS is a string, a sequence of keystrokes.@The definition is probably a symbol with a function definition.t. nn% May 13, 1985itl"t" - 12 -sn0_l_o_c_a_l-_k_e_y-_b_i_n_d_i_n_giEReturn the definition for command KEYS in current local keymap only.t,KEYS is a string, a sequence of keystrokes.@The definition is probably a symbol with a function definition.m 3_g_l_o_b_a_l-_k_e_y-_b_i_n_d_i_n_gnoFReturn the definition for command KEYS in current global keymap only.,KEYS is a string, a sequence of keystrokes.@The definition is probably a symbol with a function definition.  '_g_l_o_b_a_l-_s_e_t-_k_e_y"Give KEY a definition of COMMAND.?COMMAND is a symbol naming an interactively-callable function.S7KEY is a string representing a sequence of keystrokes.i>Note that if KEY has a local definition in the current bufferEthat local definition will continue to shadow any global definition.ooo$_l_o_c_a_l-_s_e_t-_k_e_y(Give KEY a local definition of COMMAND.?COMMAND is a symbol naming an interactively-callable function.i7KEY is a string representing a sequence of keystrokes.7The definition goes in the current buffer's local map, ;which is shared with other buffers in the same major mode. rn-_g_l_o_b_a_l-_u_n_s_e_t-_k_e_yKh!Remove global definition of KEY.t7KEY is a string representing a sequence of keystrokes.nll*_l_o_c_a_l-_u_n_s_e_t-_k_e_y Remove local definition of KEY.7KEY is a string representing a sequence of keystrokes.nav<_d_e_f_i_n_e-_p_r_e_f_i_x-_c_o_m_m_a_n_d #Define SYMBOL as a prefix command. @A keymap is created and stored as SYMBOL's function definition.ei'_u_s_e-_g_l_o_b_a_l-_m_a_pb%Selects KEYMAP as the global keymap.ogae% May 13, 1985rngse " - 13 -$_u_s_e-_l_o_c_a_l-_m_a_pl$Selects KEYMAP as the local keymap.&nil for KEYMAP means no local keymap.av0_c_u_r_r_e_n_t-_l_o_c_a_l-_m_a_p=Return current buffer's local keymap, or nil if it has none. a 5_a_c_c_e_s_s_i_b_l_e-_k_e_y_m_a_p_ss?Find all keymaps accessible via prefix characters from KEYMAP.bHReturns a list of elements of the form (KEYS . MAP), where the sequenceGKEYS starting from KEYMAP gets you to MAP. These elements are ordered_Jso that the KEYS increase in length. The first element is ("" . KEYMAP).Pa,_k_e_y-_d_e_s_c_r_i_p_t_i_o_n2Return a pretty description of key-sequence KEYS.]Control characters turn into caret-sequences, spaces are put between sequence elements, etc.a_?_s_i_n_g_l_e-_k_e_y-_d_e_s_c_r_i_p_t_i_o_nKA6Return a pretty description of command character KEY..Control characters turn into C-whatever, etc.ey<_t_e_x_t-_c_h_a_r-_d_e_s_c_r_i_p_t_i_o_ns4Return a pretty description of file-character CHAR.3Control characters turn into caret-sequences, etc.en0_w_h_e_r_e-_i_s-_i_n_t_e_r_n_a_l GReturn list of key sequences that currently invoke command DEFINITION.mst_w_h_e_r_e-_i_sg_CPrint message listing key sequences that invoke specified command. OArgument is a command definition, usually a symbol with a function definition.ee2_d_e_s_c_r_i_b_e-_b_i_n_d_i_n_g_st8Show a list of all defined keys, and their definitions.1The list is put in a buffer, which is displayed.esten% May 13, 1985r_u" - 14 - o_a_p_r_o_p_o_ss7Show all symbols whose names contain match for REGEXP. <If optional arg PRED is non-nil, (funcall PRED SYM) is doneCfor each symbol and a symbol is mentioned if that returns non-nil.@Returns list of symbols found; if third arg NOPRINT is non-nil,.does not display them, just returns the list.hE_e_x_e_c_u_t_e-_e_x_t_e_n_d_e_d-_c_o_m_m_a_n_d  9Read function name, then read its arguments and call it.   _b_u_f_f_e_r-_l_i_s_tReturn a list of all buffers.so_g_e_t-_b_u_f_f_e_rX )Return the buffer named NAME (a string). 1It is found by looking up NAME in buffer-alist. 3If there is no buffer named NAME, nil is returned. +NAME may also be a buffer; it is returned.ls*_g_e_t-_f_i_l_e-_b_u_f_f_e_r5Return the buffer visiting file FILENAME (a string).-If there is no such buffer, nil is returned.nat0_g_e_t-_b_u_f_f_e_r-_c_r_e_a_t_erWLike get-buffer but creates a buffer named NAME and returns it if none already exists.X e3_c_r_e_a_t_e-_f_i_l_e-_b_u_f_f_e_r lGCreates a suitably named buffer for visiting FILENAME, and returns it. rr _b_u_f_f_e_r-_n_a_m_e (Return the name of BUFFER, as a string.,No arg means return name of current buffer.ii&_b_u_f_f_e_r-_n_u_m_b_e_r Return the number of BUFFER...No arg means return number of current buffer.tr% May 13, 1985ndMnen" - 15 -_-_b_u_f_f_e_r-_f_i_l_e-_n_a_m_e l8Return name of file BUFFER is visiting, or NIL if none.0No argument means use current buffer as BUFFER.m?_b_u_f_f_e_r-_l_o_c_a_l-_v_a_r_i_a_b_l_e_sra2Return alist of buffer-local variables of BUFFER.*Each element looks like (SYMBOL . VALUE).0No argument means use current buffer as BUFFER.f0_b_u_f_f_e_r-_m_o_d_i_f_i_e_d-_p5AReturn t if BUFFER is modified since file last read in or saved.0No argument means use current buffer as BUFFER.en:_s_e_t-_b_u_f_f_e_r-_m_o_d_i_f_i_e_d-_p AMark current buffer as modified or unmodified according to FLAG.l_&_r_e_n_a_m_e-_b_u_f_f_e_ru4Change current buffer's name to NEWNAME (a string).el#_o_t_h_e_r-_b_u_f_f_e_rm 0Return an interesting buffer other than BUFFER.BIf BUFFER is omitted or nil, some interesting buffer is returned. i0_b_u_f_f_e_r-_f_l_u_s_h-_u_n_d_o +Make BUFFER stop keeping undo information._ _k_i_l_l-_b_u_f_f_e_rAOne arg, a string or a buffer. Get rid of the specified buffer.ono-_s_w_i_t_c_h-_t_o-_b_u_f_f_e_reQOne arg, a string or buffer. Select the specified buffer in the current window.e-_$_p_o_p-_t_o-_b_u_f_f_e_rnPOne arg, a string or window. Select the specified buffer, popping up a window. ud% May 13, 1985__d " - 16 -t.)_c_u_r_r_e_n_t-_b_u_f_f_e_r3Return the current buffer as a Lisp buffer object.idf_s_e_t-_b_u_f_f_e_r__JSet the current buffer to the buffer or buffer name supplied as argument.BThis function will not accomplish buffer switching interactively.:This is because returning to command level always selects'the buffer tied to the current window,8and this function has no effect on what buffer that is.HUse switch-to-buffer or pop-to-buffer for interactive buffer selection.n#_e_r_a_s_e-_b_u_f_f_e_rtc2Delete the entire contents of the current buffer.e-#_l_i_s_t-_b_u_f_f_e_r_sr -Display a list of names of existing buffers. 6Inserts it in buffer *Buffer List* and displays that.?Note that buffers with names starting with spaces are omitted.lBNon-null optional arg FILES-ONLY means mention only file buffers.noC_k_i_l_l-_a_l_l-_l_o_c_a_l-_v_a_r_i_a_b_l_e_s-bFEliminate all the buffer-local variable values of the current buffer.?This buffer will then see the default values of all variables.fe&_m_a_r_k_e_r-_b_u_f_f_e_rLReturn the buffer that MARKER points into, or nil if MARKER points nowhere.L*,_m_a_r_k_e_r-_p_o_s_i_t_i_o_ns=Return the position MARKER points at, as a character number.ENm_s_e_t-_m_a_r_k_e_rn:Position MARKER before character number NUMBER in BUFFER.'BUFFER defaults to the current buffer.f.If NUMBER is nil, makes marker point nowhere.4Then it no longer slows down editing in any buffer.Returns MARKER._k__% May 13, 1985ehMEos" - 17 -L _c_o_p_y-_m_a_r_k_e_r_:Return a new marker pointing at the same place as MARKER.5If argument is a number, makes a new marker pointing_(at that position in the current buffer.m ,_e_v_a_l-_m_i_n_i_b_u_f_f_e_rt;Return value of Lisp expression read using the minibuffer.hReturn Prompt with PROMPT.ig ,_r_e_a_d-_m_i_n_i_b_u_f_f_e_r_EReturn Lisp object read using the minibuffer, prompting with PROMPT.   _r_e_a_d-_s_t_r_i_n_gARead a string from the minibuffer, prompting with string PROMPT.ape_r_e_a_d-_i_n_p_u_tne;Read string from minibuffer, prompting with string PROMPT.r>Start off with second arg string INIT as minibuffer contents.7_r_e_a_d-_n_o-_b_l_a_n_k_s-_i_n_p_u_t.VArgs PROMPT and INIT, strings. Read a string from the terminal, not allowing blanks.NPrompt with PROMPT, and provide INIT as an initial value of the input string._#_r_e_a_d-_c_o_m_m_a_n_dsnNOne arg PROMPT, a string. Read the name of a command and return as a symbol.Prompts with PROMPT.dr &_r_e_a_d-_f_u_n_c_t_i_o_nPOOne arg PROMPT, a string. Read the name of a function and return as a symbol._Prompts with PROMPT.n_&_r_e_a_d-_v_a_r_i_a_b_l_eNOOne arg PROMPT, a string. Read the name of a variable and return as a symbol. Prompts with PROMPT.T iive % May 13, 1985dc_a_" - 18 -ah _r_e_a_d-_b_u_f_f_e_ryMOne arg PROMPT, a string. Read the name of a buffer and return as a string.Prompts with PROMPT.tEOptional second arg is value to return if user enters an empty line.iXIf optional third arg REQUIRE-MATCH is non-nil, only existing buffer names are allowed.R )_t_r_y-_c_o_m_p_l_e_t_i_o_no ?Return common substring of all completions of STRING in ALIST. MEach car of each element of ALIST is tested to see if it begins with STRING.CAll that match are compared together; the longest initial sequenceg/common to all matches is returned as a string.n.If there is no match at all, nil is returned.#For an exact match, t is returned.np-ALIST can be an obarray instead of an alist. MThen the print names of all symbols in the obarray are the possible matches.p1If optional third argument PREDICATE is non-nil,f(it is used to test each possible match.<The match is a candidate only if PREDICATE returns non-nil.UThe argument given to PREDICATE is the alist element or the symbol from the obarray.on ,_a_l_l-_c_o_m_p_l_e_t_i_o_n_si/Search for partial matches to STRING in ALIST.tMEach car of each element of ALIST is tested to see if it begins with STRING.h>The value is a list of all the strings from ALIST that match.-ALIST can be an obarray instead of an alist.EMThen the print names of all symbols in the obarray are the possible matches.ci1If optional third argument PREDICATE is non-nil,e(it is used to test each possible match.<The match is a candidate only if PREDICATE returns non-nil.UThe argument given to PREDICATE is the alist element or the symbol from the obarray.coa,_c_o_m_p_l_e_t_i_n_g-_r_e_a_d 2Read a string in the minibuffer, with completion.DArgs are PROMPT, TABLE, PREDICATE, REQUIRE-MATCH and INITIAL-INPUT.LPROMPT is a string to prompt with; normally it ends in a colon and a space.XTABLE is an alist whose elements' cars are strings, or an obarray (see try-completion).RPREDICATE limits completion to a subset of TABLE; see try-completion for details.DIf REQUIRE-MATCH is non-nil, the user is not allowed to exit unless5 the input is (or completes to) an element of TABLE.G If it is also not t, ^M does not exit if it does non-null completion.eDIf INITIAL-INPUT is non-nil, insert it in the minibuffer initially. itrtt% May 13, 1985aA al" - 19 -r 8_m_i_n_i_b_u_f_f_e_r-_c_o_m_p_l_e_t_eo5Complete the minibuffer contents as far as possible.fQEE_m_i_n_i_b_u_f_f_e_r-_c_o_m_p_l_e_t_e-_w_o_r_dio8Complete the minibuffer contents at most a single word. dO_m_i_n_i_b_u_f_f_e_r-_c_o_m_p_l_e_t_e-_a_n_d-_e_x_i_trt2Complete the minibuffer contents, and maybe exit.5Exit if the name is valid with no completion needed.(If name was completed to a valid match,(a repetition of this command will exit.mK_m_i_n_i_b_u_f_f_e_r-_c_o_m_p_l_e_t_i_o_n-_h_e_l_pKDisplay a list of possible completions of the current minibuffer contents.ooe7_s_e_l_f-_i_n_s_e_r_t-_a_n_d-_e_x_i_tdTerminate minibuffer input.m,_e_x_i_t-_m_i_n_i_b_u_f_f_e_rp$Terminate this minibuffer argument.x6_f_i_l_e-_n_a_m_e-_d_i_r_e_c_t_o_r_yf2Return the directory component in file name NAME.1Return nil if NAME does not include a directory.-Otherwise return a string ending in a slash.-_?_f_i_l_e-_n_a_m_e-_n_o_n_d_i_r_e_c_t_o_r_y i*Return file name NAME sans its directory.KThis is everything after the last slash in NAME, if NAME contains a slash.m'_m_a_k_e-_t_e_m_p-_n_a_m_epBGenerate temporary name (string) starting with PREFIX (a string).-_e_x_p_a_n_d-_f_i_l_e-_n_a_m_ecymeii% May 13, 1985  l it" - 20 -g l3Convert FILENAME to absolute, and canonicalize it.dFSecond arg DEFAULT is directory to start with if FILENAME is relative< (does not start with slash); if DEFAULT is nil or missing,9the current buffer's value of default-directory is used.a;Filenames containing . or .. as components are simplified;PGinitial ~ is expanded. See also the function substitute-in-file-name.cym@_s_u_b_s_t_i_t_u_t_e-_i_n-_f_i_l_e-_n_a_m_e8Substitute environment variables referred to in STRING.=A $ begins a request to substitute; the env variable name isUJthe alphanumeric characters after the $, or else is surrounded by braces.FIf a ~ appears following a /, everything through that / is discarded.a-_c_o_p_y-_f_i_l_e *Copy FILE to NEWNAME. Both args strings.; _d_e_l_e_t_e-_f_i_l_ef:Delete specified file. One argument, a file name string.HIf file has multiple names, it continues to exist with the other names.va _r_e_n_a_m_e-_f_i_l_ei,Rename FILE as NEWNAME. Both args strings.EIf file has names other than FILE, it continues to have those names.d c+_a_d_d-_n_a_m_e-_t_o-_f_i_l_egr7Give FILE additional name NEWNAME. Both args strings.l 3_m_a_k_e-_s_y_m_b_o_l_i_c-_l_i_n_k_FMake a symbolic link to FILENAME, named LINKNAME. Both args strings.in$_f_i_l_e-_e_x_i_s_t_s-_p 6Return t if file FILENAME exists and you can read it.e_*_f_i_l_e-_w_r_i_t_a_b_l_e-_pA<Return t if file FILENAME can be written or created by you.on h % May 13, 1985a__i" - 21 - N'_f_i_l_e-_s_y_m_l_i_n_k-_pa_:Return t if file FILENAME is the name of a symbolic link. k-_f_i_l_e-_d_i_r_e_c_t_o_r_y-_ps6Return t if file FILENAME is the name of a directory.ii_f_i_l_e-_m_o_d_e_sr )Return mode bits of FILE, as an integer.l-'_s_e_t-_f_i_l_e-_m_o_d_e_sei,Set mode bits of FILE to MODE (an integer).'Only the 12 low bits of MODE are used.__9_i_n_s_e_r_t-_f_i_l_e-_c_o_n_t_e_n_t_si_,Insert contents of file FILENAME after dot.?Returns list of absolute pathname and length of data inserted.2If second argument VISIT is non-nil, the buffer's5visited filename and last save file modtime are set,and it is marked unmodified.u#_w_r_i_t_e-_r_e_g_i_o_nl*Write current region into specified file.3When called from a program, takes three arguments:>START, END and FILENAME. START and END are buffer positions.1Optional fourth argument APPEND if non-nil meansn- append to existing file contents (if any).u)Optional fifth argument VISIT if t means > set last-save-file-modtime of buffer to this file's modtime and mark buffer not modified.5If VISIT is neither t nor nil, it means do not print. the "Wrote file" message.e_L_v_e_r_i_f_y-_v_i_s_i_t_e_d-_f_i_l_e-_m_o_d_t_i_m_eoJReturn t if last mod time of BUF's visited file matches what BUF records.MThis means that the file has not been changed since it was visited or saved.d sI_c_l_e_a_r-_v_i_s_i_t_e_d-_f_i_l_e-_m_o_d_t_i_m_ee4Clear out records of last mod time of visited file.CNext attempt to save will certainly not complain of a discrepancy., no% May 13, 1985e_" - 22 -_!_d_o-_a_u_t_o-_s_a_v_eni$Auto-save all buffers that need it.2This is all buffers that have auto-saving enabled'and are changed since last auto-saved.d*Auto-saving writes the buffer into a file8so that your editing is not lost if the system crashes.HThis file is not the file you visited; that changes only when you save.l1Non-nil argument means do not print any message.no :_s_e_t-_b_u_f_f_e_r-_a_u_t_o-_s_a_v_e_d 9Make current buffer as auto-saved with its current text.BNo auto-save file will be written until the buffer changes again.f 1_r_e_c_e_n_t-_a_u_t_o-_s_a_v_e-_pcaDReturn t if buffer has been auto-saved since last read in or saved.ri@_r_e_a_d-_f_i_l_e-_n_a_m_e-_i_n_t_e_r_n_a_lo;Internal subroutine for read-file-name. Do not call this.uta'_r_e_a_d-_f_i_l_e-_n_a_m_eeGRead file name, prompting with PROMPT and completing in directory DIR.fAValue is not expanded! You must call expand-file-name yourself.b6Default name to DEFAULT if user enters a null string.AFourth arg MUSTMATCH non-nil means require existing file's name.fE Non-nil and non-t means also require confirmation after completion._4DIR defaults to current buffer's directory default.on,_d_i_r_e_c_t_o_r_y-_f_i_l_e_sl.Return a list of names of files in DIRECTORY.BIf FULL is non-NIL, absolute pathnames of the files are returned. e9_f_i_l_e-_n_a_m_e-_c_o_m_p_l_e_t_i_o_nf-*Complete file name FILE in directory DIR.:Returns the longest string common to all filenames in DIRthat start with FILE.=If there is only one and FILE matches it exactly, returns t.n8Returns nil if DIR contains no name starting with FILE.oduon% May 13, 1985_ua" - 23 -FF_f_i_l_e-_n_a_m_e-_a_l_l-_c_o_m_p_l_e_t_i_o_n_s_EReturn a list of all completions of file name FILE in directory DIR.laF,_f_i_l_e-_a_t_t_r_i_b_u_t_e_sg.Return a list of attributes of file FILENAME.Elements are:H 0. t for directory, string (name linked to) for symbolic link, or nil. 1. Number of links to file.t 2. File uid. 3. File gid.1 4. Last access time, as a list of two integers.H First integer has high-order 16 bits of time, second has low 16 bits.& 5. Last modification time, likewise. 6. Creation time, likewise.f 7. Size in bytes.iC 8. File modes, as a string of nine letters or dashes as in ls -l.i_#_f_o_r_w_a_r_d-_c_h_a_ru 6Move dot right ARG characters (left if ARG negative).2On reaching end of buffer, stop and signal error.1u&_b_a_c_k_w_a_r_d-_c_h_a_r36Move dot left ARG characters (right if ARG negative).2On reaching end of buffer, stop and signal error.ee#_f_o_r_w_a_r_d-_l_i_n_eft$Move dot forward past ARG newlines.1If ARG is zero, position after previous newline.sDIf ARG is negative, position after -ARG'th newline before that one.9If scan reaches end of buffer, stop there without error;a' value is count of lines left to move.nnf0_b_e_g_i_n_n_i_n_g-_o_f-_l_i_n_ek'Move dot to beginning of current line.lBWith argument ARG not nil or 1, move forward ARG - 1 lines first.9If scan reaches end of buffer, stop there without error.-__e_n_d-_o_f-_l_i_n_eR'Move dot to beginning of current line.tBWith argument ARG not nil or 1, move forward ARG - 1 lines first.9If scan reaches end of buffer, stop there without error.oh h% May 13, 1985l m." - 24 -_ _d_e_l_e_t_e-_c_h_a_rfCDelete the following ARG characters (previous, with negative arg).1MOptional second arg KILLFLAG non-nil means kill instead (save in kill ring).LInteractively, ARG is the prefix arg, and kill if ARG was explicitly specd.h9_d_e_l_e_t_e-_b_a_c_k_w_a_r_d-_c_h_a_rtCDelete the previous ARG characters (following, with negative ARG).hMOptional second arg KILLFLAG non-nil means kill instead (save in kill ring). LInteractively, ARG is the prefix arg, and kill if ARG was explicitly specd.iA6_s_e_l_f-_i_n_s_e_r_t-_c_o_m_m_a_n_dcInsert this character.msl_n_e_w_l_i_n_eg8Insert a newline. With arg, insert that many newlines.ax_u_p_c_a_s_eKOne arg, a character or string. Convert it to upper case and return that.euR_d_o_w_n_c_a_s_eteKOne arg, a character or string. Convert it to lower case and return that. k _c_a_p_i_t_a_l_i_z_ehrQOne arg, a character or string. Convert it to capitalized form and return that._VThis means that each word's first character is upper case and the rest is lower case.&_u_p_c_a_s_e-_r_e_g_i_o_nnEConvert the region to upper case. In programs, wants two arguments. EThese arguments specify the starting and ending character numbers of_Dthe region to operate on. When used as a command, the text between!dot and the mark is operated on. a,_d_o_w_n_c_a_s_e-_r_e_g_i_o_ntEConvert the region to lower case. In programs, wants two arguments.mEThese arguments specify the starting and ending character numbers ofeDthe region to operate on. When used as a command, the text between!dot and the mark is operated on.a tw% May 13, 1985  rgdd" - 25 -tp2_c_a_p_i_t_a_l_i_z_e-_r_e_g_i_o_noEConvert the region to upper case. In programs, wants two arguments.EThese arguments specify the starting and ending character numbers oftDthe region to operate on. When used as a command, the text between!dot and the mark is operated on. ACapitalized form means each word's first character is upper case "and the rest of it is lower case.  _u_p_c_a_s_e-_w_o_r_drBConvert following word (or ARG words) to upper case, moving over.@With negative argument, convert previous words but do not move.p &_d_o_w_n_c_a_s_e-_w_o_r_dBConvert following word (or ARG words) to lower case, moving over.@With negative argument, convert previous words but do not move.e,_c_a_p_i_t_a_l_i_z_e-_w_o_r_do;Capitalize the following word (or ARG words), moving over. 7This gives the word(s) a first character in upper casewand the rest lower case.lCWith negative argument, capitalize previous words but do not move. ut)_c_u_r_r_e_n_t-_c_o_l_u_m_nEReturn the horizontal position of dot. The left margin is column 0.( Ignores finite width of screen,v_i_n_d_e_n_t-_t_or>Indent from dot with tabs and spaces until COLUMN is reached.=Always do at least MIN spaces even if that goes past COLUMN; by default, MIN is zero.sv8_c_u_r_r_e_n_t-_i_n_d_e_n_t_a_t_i_o_nt,Return the indentation of the current line.1This is the horizontal position of the character_"following any initial whitespace.'_m_o_v_e-_t_o-_c_o_l_u_m_nhemisl % May 13, 1985_e" - 26 -hbn/Move dot to column COLUMN in the current line.l$Does not change the text, only dot. Ignores finite width of screen.s,_v_e_r_t_i_c_a_l-_m_o_t_i_o_n_/Move to start of screen line LINES lines down.u)If LINES is negative, this is moving up.o6Sets dot to position found; this may be start of line+ or just the start of a continuation line._@Returns number of lines moved; may be closer to zero than LINES if end of buffer was reached.   _l_o_o_k_i_n_g-_a_tod4t if text after dot matches regular expression PAT.gh#_s_t_r_i_n_g-_m_a_t_c_hdoCReturn index of start of first match for REGEXP in STRING, or nil.EIf third arg START is non-nil, start search at that index in STRING. s _s_c_a_n-_b_u_f_f_e_ruFScan from character number FROM for COUNT occurrences of character C.HReturns the character number of the position after the character found.AIf not found, returns char number of beginning or end of buffer.t3_s_k_i_p-_c_h_a_r_s-_f_o_r_w_a_r_dKMove dot forward, stopping before a char not in CHARS, or at position LIM.m<CHARS is like the inside of a [...] in a regular expression5except that ] is never special and quotes ^, - or .MThus, with arg "a-zA-Z", this skips letters stopping before first nonletter. CWith arg "^a-zA-Z", skips nonletters stopping before first letter.int6_s_k_i_p-_c_h_a_r_s-_b_a_c_k_w_a_r_d KMove dot backward, stopping after a char not in CHARS, or at position LIM._$See skip-chars-forward for details.ti,_s_e_a_r_c_h-_b_a_c_k_w_a_r_d.Rskhn% May 13, 1985xta n" - 27 -h h%Search backward from dot for STRING.i@Set dot to the beginning of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error).rC If not nil and not t, position at limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences. )_s_e_a_r_c_h-_f_o_r_w_a_r_dr$Search forward from dot for STRING.:Set dot to the end of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error)..@ If not nil and not t, move to limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences.n.9_w_o_r_d-_s_e_a_r_c_h-_b_a_c_k_w_a_r_drfJSearch backward from dot for STRING, ignoring differences in punctuation.@Set dot to the beginning of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error). @ If not nil and not t, move to limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences.k_6_w_o_r_d-_s_e_a_r_c_h-_f_o_r_w_a_r_diISearch forward from dot for STRING, ignoring differences in punctuation.d:Set dot to the end of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error).s@ If not nil and not t, move to limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences.o_3_r_e-_s_e_a_r_c_h-_b_a_c_k_w_a_r_d o8Search backward from dot for regular expression REGEXP.@Set dot to the beginning of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error).e@ If not nil and not t, move to limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences._a_% May 13, 1985dfrlee" - 28 -g 0_r_e-_s_e_a_r_c_h-_f_o_r_w_a_r_do7Search forward from dot for regular expression REGEXP.:Set dot to the end of the occurrence found, and return t.HAn optional second argument bounds the search; it is a buffer position.6The match found must not extend before that position.IOptional third argument, if t, means if fail just return nil (no error).u@ If not nil and not t, move to limit of search and return nil.MOptional fourth argument is repeat count--search for successive occurrences.s_&_r_e_p_l_a_c_e-_m_a_t_c_hf2Replace text matched by last search with NEWTEXT.KIf second arg FIXEDCASE is non-nil, do not alter case of replacement text.aCOtherwise convert to all caps or cap initials, like replaced text. ;If third arg LITERAL is non-nil, insert NEWTEXT literally.nBOtherwise treat in NEWTEXT as "substitute original matched text"1and as "substitute match for .) number ".'Leaves dot at end of replacement text.-rf,_m_a_t_c_h-_b_e_g_i_n_n_i_n_glRReturn the character number of start of text matched by last regexp searched for.LARG, a number, specifies which parenthesized expression in the last regexp.8Zero means the entire text matched by the whole regexp.t._m_a_t_c_h-_e_n_d-PReturn the character number of end of text matched by last regexp searched for.LARG, a number, specifies which parenthesized expression in the last regexp.8Zero means the entire text matched by the whole regexp.e_m_a_t_c_h-_d_a_t_autAReturn list containing all info on what the last search matched.dr-_s_t_o_r_e-_m_a_t_c_h-_d_a_t_aps>Set internal data on last search match from elements of LIST.@LIST should have been created by calling match-data previously.ea6_r_e_g_i_o_n-_a_r_o_u_n_d-_m_a_t_c_hdRPut dot and the mark around the text matched by part of last regexp searched for.QARG, a number (the prefix arg, in interactive use) specifies which parenthesized-Xexpression in the last regexp. Zero means the entire text matched by the whole regexp.t_% May 13, 1985ennd l" - 29 -I#_r_e_g_e_x_p-_q_u_o_t_egtFReturn a regexp string which matches exactly STRING and nothing else.c&_u_n_d_o-_b_o_u_n_d_a_r_ye'Mark a boundary between units of undo.d)An undo command will stop at this point,n=but another undo command will undo to the previous boundary.har_u_n_d_o-_m_o_r_eeEUndo back N undo-boundaries beyond what was already undone recently. 5Call undo-start to get ready to undo recent changes, 4then call undo-more one or more times to undo them.o__u_n_d_o-_s_t_a_r_tgi,Move undo-pointer to front of undo records.DThe next call to undo-more will undo the most recently made change.en _c_o_n_suECreate a new cons, give it CAR and CDR as components, and return it.nth _l_i_s_td.KReturn a newly created list whose elements are the arguments (any number).daa_m_a_k_e-_l_i_s_taLReturn a newly created list of length LENGTH, with each element being INIT.m _m_a_k_e-_v_e_c_t_o_rNReturn a newly created vector of length LENGTH, with each element being INIT.c _v_e_c_t_o_roeOReturn a newly created vector with our arguments (any number) as its elements. Ca _m_a_k_e-_s_y_m_b_o_ln?Return a newly allocated uninterned symbol whose name is NAME.lJIts value and function definition are void, and its property list is NIL.aen% May 13, 1985 hclne" - 30 -_ _m_a_k_e-_m_a_r_k_e_rvCReturn a newly allocated marker which does not point at any place.e_ _m_a_k_e-_s_t_r_i_n_gcOReturn a newly created string of length LENGTH, with every element being INIT.&Both LENGTH and INIT must be numbers.di_p_u_r_e_c_o_p_ysM'Make a copy of OBJECT in pure storage.r7Recursively copies contents of vectors and cons cells. Does not copy symbols. 5,_g_a_r_b_a_g_e-_c_o_l_l_e_c_t33Reclaim storage for Lisp objects no longer needed.e(Returns info on amount of space in use:6 ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS)E (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS)e?Garbage collection happens automatically if you cons more thanIgc-cons-threshold bytes of Lisp data since previous garbage collection.gre_e_q i,T if the two args are the same Lisp object.tp _n_u_l_l5T if OBJECT is nil.o_c_o_n_s_pT if OBJECT is a cons cell..s g _a_t_o_men4T if OBJECT is not a cons cell. This includes nil.-S_l_i_s_t_p-+T if OBJECT is a list. This includes nil.SNH DC-% May 13, 1985ttlioo" - 31 -s _n_l_i_s_t_pog/T if OBJECT is not a list. Lists include nil.tta_i_n_t_e_g_e_r_ptT if OBJECT is a number.fJ_n_a_t_n_u_m_po%T if OBJECT is a nonnegative number.e._s_y_m_b_o_l_pT if OBJECT is a symbol.e i_v_e_c_t_o_r_pT if OBJECT is a vector.J a_s_t_r_i_n_g_pST if OBJECT is a string.   _a_r_r_a_y_p 5,T if OBJECT is an array (string or vector). 3_s_e_q_u_e_n_c_e_po+T if OBJECT is a sequence (list of array).dit_b_u_f_f_e_r_pe!T if OBJECT is an editor buffer.ef_m_a_r_k_e_r_p*T if OBJECT is a marker (editor pointer)..4_i_n_t_e_g_e_r-_o_r-_m_a_r_k_e_r-_p8T if OBJECT is an integer or a marker (editor pointer).J a% May 13, 1985ssn   " - 32 - a_s_u_b_r_pc$T if OBJECT is a build-in function.+_c_h_a_r-_o_r-_s_t_r_i_n_g-_p.3T if OBJECT is a character (a number) or a string. tb _c_a_rf,Returns the car of the specified cons cell.r _c_d_r),Returns the cdr of the specified cons cell.r__s_e_t_c_a_rOC7Set the car of CONSCELL to be NEWCAR. Returns NEWCAR.a _s_e_t_c_d_r  7Set the cdr of CONSCELL to be NEWCDR. Returns NEWCDR. 3_b_o_u_n_d_pr!T if SYMBOL's value is not void.cn_f_b_o_u_n_d_p-/T if SYMBOL's function definition is not void.at(_m_a_k_u_n_b_o_u_n_d_Make SYMBOL's value be void.tsi"_f_m_a_k_u_n_b_o_u_n_d)+Make SYMBOL's function definition be void.r_,_s_y_m_b_o_l-_f_u_n_c_t_i_o_nL%Return SYMBOL's function definition._c% May 13, 1985o C ts" - 33 -r#_s_y_m_b_o_l-_p_l_i_s_tReturn SYMBOL's property list. SO _s_y_m_b_o_l-_n_a_m_ea Return SYMBOL's name, a string._ _f_s_e_tO ?Set SYMBOL's function definition to NEWVAL, and return NEWVAL.eM_s_e_t_p_l_i_s_tei9Set SYMBOL's property list to NEWVAL, and return NEWVAL.u#_s_y_m_b_o_l-_v_a_l_u_e_Return SYMBOL's value.   &_d_e_f_a_u_l_t-_v_a_l_u_e Return SYMBOL's default value.LThis is the value that is seen in buffers that do not have their own valuesfor this variable.ln _s_e_t1Set SYMBOL's value to NEWVAL, and return NEWVAL._O _s_e_t-_d_e_f_a_u_l_t Set SYMBOL's default value.LThis is the value that is seen in buffers that do not have their own valuesfor this variable.I_m_a_k_e-_v_a_r_i_a_b_l_e-_b_u_f_f_e_r-_l_o_c_a_l_5Make VARIABLE have a separate value for each buffer. UThe value you see with symbol-value at any time is the value for the current buffer.vLThere is also a default value which is seen in any buffer which has not yetset its own value.AKThe function default-value gets the default value and set-default sets it.eIUsing set or setq to set the variable causes it to have a separate valuelEfor the current buffer if it was previously using the default value.u_% May 13, 1985Laapta" - 34 -ei6_m_a_k_e-_l_o_c_a_l-_v_a_r_i_a_b_l_ef;Make VARIABLE have a separate value in the current buffer.f c6_k_i_l_l-_l_o_c_a_l-_v_a_r_i_a_b_l_evEMake VARIABLE no longer have a separate value in the current buffer.t:>From now on the default value will apply in this buffer.  _a_r_e_fit,Return the element of ARRAY at index INDEX.7ARRAY may be a vector or a string. INDEX starts at 0. _a_s_e_t  AStore into the element of ARRAY at index INDEX the value NEWVAL._7ARRAY may be a vector or a string. INDEX starts at 0.une=t(T if two args, both numbers, are equal.__<r?T if first arg is less than second arg. Both must be numbers.une>tBT if first arg is greater than second arg. Both must be numbers.<=rKT if first arg is less than or equal to second arg. Both must be numbers.c a>=n NT if first arg is greater than or equal to second arg. Both must be numbers.td/=DtBT if first arg is not equal to second arg. Both must be numbers. unet% May 13, 1985l" - 35 - t_z_e_r_o_pT if NUMBER is zero.rai$_i_n_t-_t_o-_s_t_r_i_n_gnPConvert INT to a string by printing it in decimal, with minus sign if negative. t$_s_t_r_i_n_g-_t_o-_i_n_tr@Convert STRING to an integer by parsing it as a decimal number.KOptional second arg FLAG non-nil means also convert "yes" to 1, "no" to 0. ne+ %Return sum of any number of numbers.  a-9#Negate number or subtract numbers. 3With one arg, negates it. With more than one arg,,subtracts all but the first from the first._*_*Returns product of any number of numbers. i/a5Returns first argument divided by rest of arguments.gt%_2Returns remainder of first arg divided by second.a _m_a_x=Return largest of all the arguments (which must be numbers.)1nt _m_i_n>Return smallest of all the arguments (which must be numbers.)anerbc% May 13, 1985 tot  " - 36 -me_l_o_g_a_n_d3Return bitwise and of all the arguments (numbers).ae_l_o_g_i_o_rdd2Return bitwise or of all the arguments (numbers).ae_l_o_g_x_o_rd <Return bitwise exclusive-or of all the arguments (numbers).e _a_s_hn2Return VALUE with its bits shifted left by COUNT.9If COUNT is negative, shifting is actually to the right.*In this case, the sign bit is duplicated.5 _l_s_h2Return VALUE with its bits shifted left by COUNT.9If COUNT is negative, shifting is actually to the right.t1In this case, zeros are shifted in on the left.ent_1+ aReturn NUMBER plus one._1-_Return NUMBER minus one.tec_l_o_g_n_o_tam&Return the bitwise complement of ARG.en(_d_o_c_u_m_e_n_t_a_t_i_o_n-Return the documentation string of FUNCTION.hi.8_S_n_a_r_f-_d_o_c_u_m_e_n_t_a_t_i_o_nsenLw% May 13, 1985fUiei " - 37 -niaAUsed during Emacs initialization, before dumping runnable Emacs,n<to find pointers to doc strings stored in etc/DOCSTR... and%record them in function definitions.@One arg, FILENAME, a string which does not include a directory.=The file is found in ../etc now; found in the exec-directoryF<when doc strings are referred to later in the dumped Emacs.t_'_c_h_a_r-_t_o-_s_t_r_i_n_g  8Convert arg CHAR to a string containing that character.  '_s_t_r_i_n_g-_t_o-_c_h_a_rnmGConvert arg STRING to a character, the first character of that string.  i _d_o_tt$Return value of dot, as an integer.#Beginning of buffer is position 1.,sn_d_o_t-_m_a_r_k_e_rcy)Return value of dot, as a marker object.ihx_g_o_t_o-_c_h_a_rs,One arg, a number. Set dot to that number.#Beginning of buffer is position 1._g _m_a_r_k  ?Return this buffer's mark value as integer, or nil if no mark.i__ _m_a_r_k-_m_a_r_k_e_r BReturn this buffer's mark, as a marker object, or nil if no mark.:Watch out! Moving this marker changes the buffer's mark.nf_s_e_t-_m_a_r_kSet this buffer's mark to POS;c>Argument is character position, or nil to clear out the mark.__as% May 13, 1985urinf" - 38 -a_)_s_a_v_e-_e_x_c_u_r_s_i_o_nst>Save dot (and mark), execute BODY, then restore dot and mark.AExecutes BODY just like PROGN. Dot and mark values are restoredn0even in case of abnormal exit (throw or error).be_b_a_u_d-_r_a_t_e-Return the output baud rate of the terminal.;u _b_u_f_f_e_r-_s_i_z_e 7Return the number of characters in the current buffer.   _d_o_t-_m_i_nCReturn the minimum permissible value of dot in the current buffer.e7This is 1, unless a clipping restriction is in effect.euB'_d_o_t-_m_i_n-_m_a_r_k_e_rsDNReturn a marker to the beginning of the currently visible part of the buffer.CThis is the beginning, unless a clipping restriction is in effect.uto_d_o_t-_m_a_xrCReturn the minimum permissible value of dot in the current buffer.m+This is 1 plus the value of (buffer-size), Funless a clipping restriction is in effect, in which case it is less. t'_d_o_t-_m_a_x-_m_a_r_k_e_r pHReturn a marker to the end of the currently visible part of the buffer.DThis is the actual end, unless a clipping restriction is in effect.ao)_f_o_l_l_o_w_i_n_g-_c_h_a_rs 1Return the character following dot, as a number.o-_)_p_r_e_c_e_d_i_n_g-_c_h_a_rve1Return the character preceding dot, as a number.elobei,% May 13, 1985e whst" - 39 --_ _b_o_b_p p3Return T if dot is at the beginning of the buffer. t _e_o_b_phi-Return T if dot is at the end of the buffer. if _b_o_l_p_/Return T if dot is at the beginning of a line.nea _e_o_l_pgt)Return T if dot is at the end of a line.d__c_h_a_r-_a_f_t_e_reaUOne arg, POS, a number. Return the character in the current buffer at position POS. *If POS is out of range, the value is NIL.  *_u_s_e_r-_l_o_g_i_n-_n_a_m_ep9Return the name under which user logged in, as a string._'_u_s_e_r-_f_u_l_l-_n_a_m_e  9Return the full name of the user logged in, as a string.os _s_y_s_t_e_m-_n_a_m_e@Return the name of the machine you are running on, as a string._6_c_u_r_r_e_n_t-_t_i_m_e-_s_t_r_i_n_gt5Return the current time, as a human-readable string..P_i_n_s_e_r_thaRAny number of args, strings or chars. Insert them after dot, moving dot forward.n /_b_u_f_f_e_r-_s_u_b_s_t_r_i_n_g_rf_% May 13, 1985aohsle" - 40 -_m?Return the contents of part of the current buffer as a string.gCThe two arguments specify the start and end, as character numbers._n&_b_u_f_f_e_r-_s_t_r_i_n_ga7Return the contents of the current buffer as a string.nur-_r_e_g_i_o_n-_t_o-_s_t_r_i_n_gd .Return the contents of the region as a strings_B_i_n_s_e_r_t-_b_u_f_f_e_r-_s_u_b_s_t_r_i_n_g =Insert before dot a substring of the contents buffer BUFFER. )BUFFER may be a buffer or a buffer name. HArguments START and END are character numbers specifying the substring.5They default to the beginning and the end of BUFFER.rs7_s_u_b_s_t-_c_h_a_r-_i_n-_r_e_g_i_o_nbeF>From START to END, replace FROMCHAR with TOCHAR each time it occurs. e&_d_e_l_e_t_e-_r_e_g_i_o_n&Delete the text between dot and mark.3When called from a program, expects two arguments,r8character numbers specifying the stretch to be deleted.y _w_i_d_e_nnSRemove restrictions from current buffer, allowing full text to be seen and edited.yft-_n_a_r_r_o_w-_t_o-_r_e_g_i_o_nSRestrict editing in current buffer to text between present values of dot and mark.lJCalled interactively, takes two arguments, character numbers that specifythe stretch to restrict to.ex/_s_a_v_e-_r_e_s_t_r_i_c_t_i_o_nr e  utrhc% May 13, 1985eld" - 41 -nrcSExecute the body, undoing at the end any changes to current buffer's restrictions.wBChanges to restrictions are made by narrow-to-region or by widen.PThus, the restrictions are the same after this function as they were before it.BThe value returned is that returned by the last form in the body.o=This function can be confused if, within the body, you widen Fand then make changes outside the area within the saved restrictions.ld_m_e_s_s_a_g_e 6Print a one-line message at the bottom of the screen.(The first argument is a control string.GIt may contain %s or %d or %c to print successive following arguments.nM%s means print an argument as a string, %d means print as number in decimal, /%c means print a number as a single character.r6The argument used by %s must be a string or a symbol;0the argument used by %d or %c must be a number.hm_f_o_r_m_a_thr7Format a string out of a control-string and arguments.(The first argument is a control string.WIt, and subsequent arguments substituted into it, become the value, which is a string.rLIt may contain %s or %d or %c to substitute successive following arguments.M%s means print an argument as a string, %d means print as number in decimal, /%c means print a number as a single character. 6The argument used by %s must be a string or a symbol;0the argument used by %d or %c must be a number.hr_c_h_a_r-_e_q_u_a_lrs?T if args (both characters (numbers)) match. May ignore case.:Case is ignored if the current buffer specifies to do so.l _g_e_t_e_n_vmROne arg VAR, a string. Return the value of environment variable VAR, as a string.t 5_c_a_l_l-_i_n_t_e_r_a_c_t_i_v_e_l_ya /Call FUNCTION, reading args from the terminal. :if the interactive calling specs of FUNCTION request one.rIThe function contains a specification of how to do the argument reading.NIn the case of user-defined functions, this is specified by placing a call toUthe function interactive at the top level of the function body. See interactive.  ,s% May 13, 1985va , t" - 42 -r9_p_r_e_f_i_x-_n_u_m_e_r_i_c-_v_a_l_u_e m/Return numeric meaning of raw prefix argument.s>A raw prefix argument is what you get from (interactive "P").of_o_roeDEval args until one of them yields non-NIL, then return that value.+The remaining args are not evalled at all. $If all args return NIL, return NIL.t _a_n_de9Eval args until one of them yields NIL, then return NIL. +The remaining args are not evalled at all. 3If no arg yields NIL, return the last arg's value.m__i_f_5(if C T E...) if C yields non-NIL do T, else do E...a<Returns the value of T or the value of the last of the E's.=There may be no E's; then if C yields NIL, the value is NIL. ln _c_o_n_dt 8(cond CLAUSES...) tries each clause until one succeeds.4Each clause looks like (C BODY...). C is evaluated4and, if the value is non-nil, this clause succeeds:>then the expressions in BODY are evaluated and the last one's+value is the value of the cond expression.uHIf a clause looks like (C), C's value if non-nil is returned from cond.)If no clause succeeds, cond returns nil.ufe_p_r_o_g_nhBEval arguments in sequence, and return the value of the last one.o_p_r_o_g_1L?Eval arguments in sequence, then return the FIRST arg's value.kAThis value is saved during the evaluation of the remaining args, whose values are discarded.ee_p_r_o_g_2atatl % May 13, 1985eeoufc" - 43 -nie@Eval arguments in sequence, then return the SECOND arg's value.AThis value is saved during the evaluation of the remaining args,twhose values are discarded.o _s_e_t_qB(setq SYM VAL SYM VAL ...) sets each SYM to the value of its VAL.GThe SYMs are not evaluated. Thus (setq x y) sets x to the value of y.a1Each SYM is set before the next VAL is computed._q_u_o_t_e CReturn the argument, without evaluating it. (quote x) yields x.  -_f_u_n_c_t_i_o_ngnQuote a function object. 5Equivalent to the quote function in the interpreter,e>but causes the compiler to compile the argument as a functionif it is not a symbol.s&_i_n_t_e_r_a_c_t_i_v_e-_phEReturn t if function in which this appears was called interactively. .Also, input must be coming from the terminal.n _d_e_f_u_nE(defun NAME ARGLIST [DOCSTRING] BODY...) defines NAME as a function. 8The definition is (lambda ARGLIST [DOCSTRING] BODY...).%See also the function interactive .iet_d_e_f_m_a_c_r_o eE(defmacro NAME ARGLIST [DOCSTRING] BODY...) defines NAME as a macro.o>The definition is (macro lambda ARGLIST [DOCSTRING] BODY...).0When the macro is called, as in (NAME ARGS...),4the function (lambda ARGLIST BODY...) is applied to2the list ARGS... as it appears in the expression,Iand the result should be a form to be evaluated instead of the original.t._d_e_f_v_a_rm L CI Y% May 13, 1985i._" - 44 -AAIN(defvar SYMBOL INITVALUE DOCSTRING) defines SYMBOL as an advertised variable.PINITVALUE is evaluated, and used to set SYMBOL, only if SYMBOL's value is void.&INITVALUE and DOCSTRING are optional.JIf DOCSTRING starts with *, this variable is identified as a user option.4If INITVALUE is missing, SYMBOL's value is not set.oi_d_e_f_c_o_n_s_tv_P(defconst SYMBOL INITVALUE DOCSTRING) defines SYMBOL as an advertised constant.FThe intent is that programs do not change this value (but users may).EAlways sets the value of SYMBOL to the result of evalling INITVALUE.TDOCSTRING is optional.sJIf DOCSTRING starts with *, this variable is identified as a user option. i _l_e_t*CIP(let* VARLIST BODY...) binds variables according to VARLIST then executes BODY.0The value of the last form in BODY is returned.<Each element of VARLIST is a symbol (which is bound to NIL)Mor a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).nGEach VALUEFORM can refer to the symbols already bound by this VARLIST.oes _l_e_t O(let VARLIST BODY...) binds variables according to VARLIST then executes BODY. 0The value of the last form in BODY is returned.<Each element of VARLIST is a symbol (which is bound to NIL)Mor a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).=All the VALUEFORMs are evalled before any symbols are bound.rl _w_h_i_l_ehP(while TEST BODY...) if TEST yields non-NIL, execute the BODY forms and repeat.ll"_m_a_c_r_o_e_x_p_a_n_d$If FORM is a macro call, expand it.BIf the result of expansion is another macro call, expand it, etc.Return the ultimate expansion.ud_c_a_t_c_hSL(catch TAG BODY...) perform BODY allowing nonlocal exits using (throw TAG).LTAG is evalled to get the tag to use. throw to that tag exits this catch.NThen the BODY is executed. If no throw happens, the value of the last BODYOform is returned from catch. If a throw happens, it specifies the value toreturn from catch.F % May 13, 1985s enn " - 45 -en_t_h_r_o_woH(throw TAG VALUE): throw to the catch for TAG and return VALUE from it. Both TAG and VALUE are evalled.A)_u_n_w_i_n_d-_p_r_o_t_e_c_t tS(unwind-protect BODYFORM UNWINDFORMS...) do BODYFORM, protecting with UNWINDFORMS.l6If BODYFORM completes normally, its value is returned!after executing the UNWINDFORMS. CIf BODYFORM exits nonlocally, the UNWINDFORMS are executed anyway.   )_c_o_n_d_i_t_i_o_n-_c_a_s_e  *Regain control when an error is signaled.+ (condition-case VAR BODYFORM HANDLERS...)A=executes BODYFORM and returns its value if no error happens.<Each element of HANDLERS looks like (CONDITIONLIST BODY...)ACONDITIONLIST is a list of condition names. The handler appliesIAif the error has any of those condition names. When this is so,Jcontrol returns to the condition-case and the handler BODY... is executed7with VAR bound to (SIGNALED-CONDITIONS . SIGNAL-DATA).EThe value of the last BODY form is returned from the condition-case.See SIGNAL for more info.AE_s_i_g_n_a_lDR=Signal an error. Args are SIGNAL-NAME, and associated DATA. >A signal name is a symbol with an error-conditions property:that is a list of condition names. DATA can be anything.BA handlers for any of those names will get to handle this signal.1The symbol error should always be one of them. eu&_f_u_n_c_t_i_o_n-_t_y_p_eSBReturn a symbol indicating what type of function the argument is.(It may be lambda, subr or autoload.n_c_o_m_m_a_n_d_pl8T if FUNCTION makes provisions for interactive calling.KThis means it contains a description for how to read arguments to give it.tRThe value is nil for an invalid function or a symbol with no function definition.ei_a_u_t_o_l_o_a_dl b os% May 13, 1985_c_" - 46 - ii'Define FUNCTION to autoload from FILE.CFUNCTION is a symbol; FILE is a file name string to pass to load.n7Third arg DOCSTRING is documentation for the function.iMFourth arg INTERACTIVE if non-nil says function can be called interactively. ;Third and fourth args give info about the real definition.bThey default to nil.ii _e_v_a_lu_$Evaluate FORM and return its value. _a_p_p_l_ya9Call FUNCTION with arguments being the elements of ARGS. 4_f_u_n_c_a_l_lOFCall first argument as a function, passing remaining arguments to it.0Thus, (funcall 'cons 'x 'y) returns (x . y).ma#_g_l_o_b_a_l-_v_a_l_u_eIRSReturn the global value of VARIABLE, even if other bindings of it exist currently. ?Normal evaluation of VARIABLE would get the innermost binding.i_g_l_o_b_a_l-_s_e_t  FSet the global binding of VARIABLE to VALUE, ignoring other bindings.GNormal setting of VARIABLE with set would set the innermost binding.lr,_b_a_c_k_t_r_a_c_e-_d_e_b_u_gmDSet the debug-on-exit flag of eval frame LEVEL levels down to FLAG.GThe debugger is entered when that frame exits, if the flag is non-nil.RLe_b_a_c_k_t_r_a_c_e 7Print a trace of Lisp function calls currently active. 0Output stream used is value of standard-output.t_i_d_e_n_t_i_t_yioReturn the argument unchanged.einol% May 13, 1985ehnm d" - 47 -c-_r_a_n_d_o_m Return a pseudo-random number.aLL_l_e_n_g_t_hh6Return the length of vector, list or string SEQUENCE. -#_s_t_r_i_n_g-_e_q_u_a_l_*T if two strings have identical contents.>Symbols are also allowed; their print names are used instead.t#_s_t_r_i_n_g-_l_e_s_s_poeBT if first arg string is less than second in lexicographic order.>Symbols are also allowed; their print names are used instead. -_a_p_p_e_n_da_2Concatenate arguments and make the result a list.KThe result is a list whose elements are the elements of all the arguments.E/Each argument may be a list, vector or string.___c_o_n_c_a_tvd4Concatenate arguments and make the result a string.KThe result is a list whose elements are the elements of all the arguments.eHEach argument may be a list, vector or string. However, if any element2of an argument is not a number, an error results.d_v_c_o_n_c_a_ta4Concatenate arguments and make the result a vector.KThe result is a list whose elements are the elements of all the arguments../Each argument may be a list, vector or string..&_c_o_p_y-_s_e_q_u_e_n_c_er+Return a copy of a list, vector or string.et _s_u_b_s_t_r_i_n_gmLReturn a substring of STRING, starting at index FROM and reaching until TO.HTO may be nil or omitted; then the substring runs to the end of STRING._% May 13, 1985utnatr" - 48 -we_n_t_h_c_d_rms/Takes cdr N times on LIST, returns the result.l,c _n_t_h.!Returns the Nth element of LIST._c _e_l_tn(Returns element of SEQUENCE at index N.  _m_e_m_qr_HReturns non-nil if ELT is an element of LIST. Comparison done with EQ.9The value is actually the tail of LIST whose car is ELT.gno _a_s_s_qISReturns non-nil if ELT is the car of an element of LIST. Comparison done with eq. <The value is actually the element of LIST whose car is ELT.ed_a_s_s_o_ctWReturns non-nil if ELT is the car of an element of LIST. Comparison done with equal.<The value is actually the element of LIST whose car is ELT.e_r_a_s_s_q SReturns non-nil if ELT is the cdr of an element of LIST. Comparison done with EQ.l<The value is actually the element of LIST whose cdr is ELT.e _d_e_l_qfTCDeletes by side effect any occurrences of ELT as a member of LIST.aThe modified LIST is returned.SQIf the first member of LIST is ELT, there is no way to remove it by side effect;aNtherefore, write (setq foo (delq element foo)) to be sure of changing foo. m_n_r_e_v_e_r_s_eTVReverses LIST by modifying cdr pointers. Returns the beginning of the reversed list.psd h.% May 13, 1985Sh  E" - 49 -yd_r_e_v_e_r_s_e EReverses LIST, copying. Returns the beginning of the reversed list.rme _s_o_r_tTh/Sort LIST, comparing elements using PREDICATE.r<Returns the sorted list. LIST is modified by side effects.CPREDICATE is called with two elements of LIST, and should return Ty0if the first element is "less" than the second.ev _g_e_tp0Return the value of SYMBOL's PROPNAME property.AThis is the last VALUE stored with (put SYMBOL PROPNAME VALUE).  _p_u_te3Store SYMBOL's PROPNAME property with value VALUE.b1It can be retrieved with (get SYMBOL PROPNAME)._Th_e_q_u_a_lg;T if two Lisp objects have similar structure and contents.i#They must have the same data type.T8Conses are compared by comparing the cars and the cdrs.5Vectors and strings are compared element by element.e<Numbers are compared by value. Symbols must match exactly.r_f_i_l_l_a_r_r_a_yiEStore each element of ARRAY with ITEM. ARRAY is a vector or string.LPN_n_c_o_n_cu2Concatenate any number of lists by altering them.?Only the last argument is not altered, and need not be a list.asl_m_a_p_c_o_n_c_a_tyDApply FN to each element of SEQ, and concat the results as strings./In between each pair of results, stick in SEP.pDThus, " " as SEP results in spaces between the values return by FN.mhay% May 13, 1985 het A" - 50 -nL_m_a_p_c_a_rnHApply FUNCTION to each element of LIST, and make a list of the results.+THe result is a list just as long as LIST.._y-_o_r-_n-_pn_6Ask user a y or n question. Return t if answer is y.JNo confirmation of the answer is requested; a single character is enough.s _y_e_s-_o_r-_n_o-_pn;Ask user a yes or no question. Return t if answer is yes. VThe user must confirm the answer with a newline, and can rub it out if not confirmed.nL_w_r_i_t_e-_c_h_a_rlU(Output character CHAR to stream STREAM.=STREAM defaults to the value of standard-output (which see).S.G_w_i_t_h-_o_u_t_p_u_t-_t_o-_t_e_m_p-_b_u_f_f_e_raeYBinding standard-output to buffer named BUFNAME, execute BODY then display the buffer. IThe buffer is cleared out initially, and marked as unmodified when done.t?All output done by BODY is inserted in that buffer by default.l5It is displayed in another window, but not selected._0The value of the last form in BODY is returned. s_t_e_r_p_r_iMf:Output a newline to STREAM (or value of standard-output).i_p_r_i_n_1u>Output the printed representation of OBJECT, any Lisp object.CQuoting characters are used, to make output that read can handlefwhenever this is possible. BOutput stream is STREAM, or value of standard-output (which see).yD_p_r_i_n_c >Output the printed representation of OBJECT, any Lisp object.ANo quoting characters are used; no delimiters are printed aroundthe contents of strings.fBOutput stream is STREAM, or value of standard-output (which see).r_% May 13, 1985fJ,ysb" - 51 - e_p_r_i_n_taROutput the printed representation of OBJECT, with newline before and space after.CQuoting characters are used, to make output that read can handleiwhenever this is possible.,BOutput stream is STREAM, or value of standard-output (which see).re_r_e_a_d-_c_h_a_ri=Read a character from the command input (keyboard or macro).hIt is returned as a number.  $_g_e_t-_f_i_l_e-_c_h_a_rDon't use this yourself.   _l_o_a_d(Execute a file of Lisp code named FILE.:First tries FILE with .elc appended, then tries with .el,A then tries FILE unmodified. Searches directories in load-path.d.If optional second arg MISSING-OK is non-nil,( report no error if FILE doesn't exist.2Print messages at start and end of loading unless* optional third arg NOMESSAGE is non-nil.Return t if file exists. ud6_e_v_a_l-_c_u_r_r_e_n_t-_b_u_f_f_e_r)Execute the current buffer as Lisp code.HPrograms can pass argument PRINTFLAG which controls printing of output:9nil means discard it; anything else is stream for print.Iud _e_v_a_l-_r_e_g_i_o_np!Execute the region as Lisp code.I2When called from programs, expects two arguments,9giving starting and ending indices in the current bufferof the text to be executed.NPrograms can pass third argument PRINTFLAG which controls printing of output:9nil means discard it; anything else is stream for print.aic _r_e_a_dsnsrePTGi% May 13, 1985e c  t" - 52 -dvERead one Lisp expression as text from STREAM, return as Lisp object.n?If STREAM is nil, use the value of standard-input (which see).n!STREAM or standard-input may be:f) a buffer (read from dot and advance it)s5 a marker (read from where it points and advance it)i; a function (call it with no arguments for each character) 1 t (read text line using minibuffer and use it).ePT_i_n_t_e_r_n  (Return the symbol whose name is STRING.9A second optional argument specifies the obarray to use;L&it defaults to the value of obarray.ai _i_n_t_e_r_n-_s_o_f_thCReturn the symbol whose name is STRING, or nil if none exists yet.y9A second optional argument specifies the obarray to use;e&it defaults to the value of obarray.)_m_a_p_a_t_o_m_sog*Call FUNCTION on every symbol in OBARRAY.+OBARRAY defaults to the value of obarray._0_m_a_k_e-_a_b_b_r_e_v-_t_a_b_l_eI)Create a new, empty abbrev table object.tor3_c_l_e_a_r-_a_b_b_r_e_v-_t_a_b_l_e>Undefine all abbrevs in abbrev table TABLE, leaving it empty.ai&_d_e_f_i_n_e-_a_b_b_r_e_veKDefine an abbrev in TABLE named NAME, to expand to EXPANSION or call HOOK.l<NAME and EXPANSION are strings. HOOK is a function or nil.6To undefine an abbrev, define it with EXPANSION = nil  9_d_e_f_i_n_e-_g_l_o_b_a_l-_a_b_b_r_e_v6Define ABBREV as a global abbreviation for EXPANSION.._a% May 13, 1985niaa" - 53 -tp3_d_e_f_i_n_e-_m_o_d_e-_a_b_b_r_e_v=Define ABBREV as a mode-specific abbreviation for EXPANSION. lO&_a_b_b_r_e_v-_s_y_m_b_o_l 4Return the symbol representing abbrev named ABBREV.,Value is nil if that abbrev is not defined.<Optional second arg TABLE is abbrev table to look it up in.GDefault is try buffer's mode-specific abbrev table, then global table.  /_a_b_b_r_e_v-_e_x_p_a_n_s_i_o_na BReturn the string that ABBREV expands into in the current buffer.QOptionally specify an abbrev table; then ABBREV is looked up in that table only.XS.&_e_x_p_a_n_d-_a_b_b_r_e_v_2Expand the abbrev before dot, if it is an abbrev.#Returns t if expansion took place.b n,_u_n_e_x_p_a_n_d-_a_b_b_r_e_v 5Undo the expansion of the last abbrev that expanded.si <_l_a_s_t-_a_b_b_r_e_v-_e_x_p_a_n_s_i_o_ne2Return expansion of last abbrev expanded, or nil.AEX_i_n_s_e_r_t-_a_b_b_r_e_v-_t_a_b_l_e-_d_e_s_c_r_i_p_t_i_o_no<Insert before dot a description of abbrev table named NAME.1NAME is a symbol whose value is an abbrev table.fDIf 2nd arg READABLE is non-nil, a readable description is inserted.(Otherwise description is an expression,*a call to define-abbrev-table which would0define NAME exactly as it is currently defined.6_d_e_f_i_n_e-_a_b_b_r_e_v-_t_a_b_l_eb3Define TABNAME (a symbol) as an abbrev table name.aBDefine abbrevs in it according to DEFINITIONS, a list of elements2of the form (ABBREVNAME EXPANSION HOOK USECOUNT).eAAi b% May 13, 1985fdgALs" - 54 -ed'_s_y_n_t_a_x-_t_a_b_l_e-_pn#Return t if ARG is a syntax table.o$Any vector of 256 elements will do.td#_s_y_n_t_a_x-_t_a_b_l_e_!Return the current syntax table.1This is the one specified by the current buffer.aee<_s_t_a_n_d_a_r_d-_s_y_n_t_a_x-_t_a_b_l_et"Return the standard syntax table.&This is the one used for new buffers.  0_m_a_k_e-_s_y_n_t_a_x-_t_a_b_l_e ,Construct a new syntax table and return it.>It is a copy of the standard syntax table's current contents.aa-_s_e_t-_s_y_n_t_a_x-_t_a_b_l_etd2Select a new syntax table for the current buffer.One argument, a syntax table.  _c_h_a_r-_s_y_n_t_a_xa:Return the syntax code of CHAR, described by a character.<For example, if CHAR is a word constituent, ?w is returned.7The characters that correspond to various syntax codes_9are listed in the documentation of modify-syntax-entry.bar,_d_e_s_c_r_i_b_e-_s_y_n_t_a_xa8Describe the syntax specifications in the syntax table.PThe descriptions are inserted in a buffer, which is selected so you can see it.re#_f_o_r_w_a_r_d-_w_o_r_dr:Move dot forward ARG words (backward if ARG is negative).Normally returns t.7If an edge of the buffer is reached, dot is left thereuand nil is returned.t rotauy% May 13, 1985tofoyn" - 55 -i__s_c_a_n-_l_i_s_t_sce0Scan from character number FROM by COUNT lists.9Returns the character number of the position thus found.d BIf DEPTH is nonzero, paren depth begins counting from that value,8only places where the depth in parentheses becomes zero<are candidates for stopping; COUNT such places are counted.6Thus, a positive value for DEPTH means go out levels.?Comments are ignored if parse-sexp-ignore-comments is non-nil.ynGIf the beginning or end of (the visible part of) the buffer is reacheds.and the depth is wrong, an error is signaled.EIf the depth is right but the count is not used up, nil is returned. fP_s_c_a_n-_s_e_x_p_sno?Scan from character number FROM by COUNT balanced expressions.s9Returns the character number of the position thus found.ls?Comments are ignored if parse-sexp-ignore-comments is non-nil.eGIf the beginning or end of (the visible part of) the buffer is reachednAin the middle of a parenthetical grouping, an error is signaled.aRIf the beginning or end is reached between groupings but before count is used up,nil is returned.   <_b_a_c_k_w_a_r_d-_p_r_e_f_i_x-_c_h_a_r_sfAMove dot backward over any number of chars with syntax "prefix".  r0_f_i_n_d-_l_i_n_e-_c_o_m_m_e_n_tnHFind the first comment-beginning after dot and on the same line as dot.OValue is the character number of the comment-starter, or nil if there is none.arh=_f_i_n_d-_l_i_n_e-_c_o_m_m_e_n_t-_b_o_d_ynsHFind the first comment-beginning after dot and on the same line as dot.RValue is the character number after the comment-starter, or nil if there is none.bw_m_l-_d_e_f_u_nawDefine mocklisp functions_dl_% May 13, 1985ftmtgi" - 56 -t_m_l-_i_ftif for mocklisp programsrr_m_l-_w_h_i_l_ewhile for mocklisp programso__m_l-_n_a_r_g_sns&# arguments to this mocklisp functiontd_m_l-_a_r_gst'Argument #N to this mocklisp function.hon)_m_l-_i_n_t_e_r_a_c_t_i_v_ew9true if this mocklisp function was called interactively.I_m_l-_p_r_o_v_i_d_e-_p_r_e_f_i_x-_a_r_g_u_m_e_n_t DEvaluate second argument, using first argument as prefix arg value.ip@_m_l-_p_r_e_f_i_x-_a_r_g_u_m_e_n_t-_l_o_o_prao_m_l-_s_u_b_s_t_rKReturn a substring of STRING, starting at index FROM and of length LENGTH.rKIf either FROM or LENGTH is negative, the length of STRING is added to it.i_&_i_n_s_e_r_t-_s_t_r_i_n_gsHInsert the arguments (all strings) into the buffer, moving dot forward.RAny argument that is a number is converted to a string by printing it in decimal.ar_b_y_t_e-_c_o_d_elp_i-_u% May 13, 1985__b" - 57 -TG_p_r_o_c_e_s_s_pd !Return t if OBJECT is a process. Gi _g_e_t-_p_r_o_c_e_s_sd8Return the process named NAME, or nil if there is none.3_g_e_t-_b_u_f_f_e_r-_p_r_o_c_e_s_sog3Return the (or, a) process associated with BUFFER.e+BUFFER may be a buffer or the name of one.)_d_e_l_e_t_e-_p_r_o_c_e_s_s9Delete PROCESS: kill it and forget about it immediately.?PROCESS may be a process or the name of one, or a buffer name.r_)_p_r_o_c_e_s_s-_s_t_a_t_u_srs6Return the status of PROCESS: a symbol, one of these:'run -- for a process that is running.e/stop -- for a process stopped but continuable._'exit -- for a process that has exited.r5signal -- for a process that has got a fatal signal. Ecommand -- for a command channel opened to Emacs by another process.eCexternal -- for an i/o channel opened to Emacs by another process..C_p_r_o_c_e_s_s-_i_de "Return the process id of PROCESS.DThis is the pid of the Unix process which PROCESS uses or talks to.S #_p_r_o_c_e_s_s-_n_a_m_e c)Return the name of PROCESS, as a string.s4This is the name of the program invoked in PROCESS,9possibly modified to make it unique among process names.tsa,_p_r_o_c_e_s_s-_c_o_m_m_a_n_dE7Return the command that was executed to start PROCESS.lGThis is a list of strings, the first string being the program executed_=and the rest of the strings being the arguments given to it.f&For a non-child channel, this is nil.ko% May 13, 1985cenemf" - 58 -ao3_s_e_t-_p_r_o_c_e_s_s-_b_u_f_f_e_r m.Set buffer associated with PROCESS to BUFFER.r_)_p_r_o_c_e_s_s-_b_u_f_f_e_rut.Return the buffer PROCESS is associated with./Output from PROCESS is inserted in this buffernunless PROCESS has a filter.heo#_p_r_o_c_e_s_s-_m_a_r_keo?Return the marker for the end of the last output from PROCESS.  3_s_e_t-_p_r_o_c_e_s_s-_f_i_l_t_e_r >Give PROCESS the filter function FILTER; nil means no filter.6When a process has a filter, each time it does output5the entire string of output is passed to the filter.-EThe filter gets two arguments: the process and the string of output.@If the process has a filter, its buffer is not used for output.sf)_p_r_o_c_e_s_s-_f_i_l_t_e_r_5Returns the filter function of PROCESS; nil if none.u:See set-process-filter for more info on filter functions.i9_s_e_t-_p_r_o_c_e_s_s-_s_e_n_t_i_n_e_l;l2Give PROCESS the sentinel SENTINEL; nil for none.EThe sentinel is called as a function when the process changes state.lHIt gets two arguments: the process, and a string describing the change.f/_p_r_o_c_e_s_s-_s_e_n_t_i_n_e_l  -Return the sentinel of PROCESS; nil if none.5See set-process-sentinel for more info on sentinels.SifI_p_r_o_c_e_s_s-_k_i_l_l-_w_i_t_h_o_u_t-_q_u_e_r_yiESay no query needed if this process is running when Emacs is exited.Ets)_l_i_s_t-_p_r_o_c_e_s_s_e_sniad ui% May 13, 1985ttwre:" - 59 -hhe3Display a list of all processes and comm channels.?First two columns are S for subprocess, C for command channel,eor X for external I/O channel.oD(Any processes listed as Exited or Signaled are actually eliminatedafter the listing is made.) &_s_t_a_r_t-_p_r_o_c_e_s_swDStart a program in a subprocess. Return the process object for it.IFirst arg is name for process. It is modified if nec to make it unique.wESecond arg is buffer to associate with the process (or buffer name). ? Process output goes at end of that buffer, unless you specify ; an output stream or filter function to handle the output. EThird arg is program file name. It is searched for as in the shell.y>Remaining arguments are strings to give program as arguments.-_ _s_e_n_d-_r_e_g_i_o_na5Send current contents of region as input to PROCESS.PROCESS may be a process name.tDCalled from program, takes three arguments, PROCESS, START and END.ti _s_e_n_d-_s_t_r_i_n_gP.Send PROCESS the contents of STRING as input.PROCESS may be a process name. fe2_i_n_t_e_r_r_u_p_t-_p_r_o_c_e_s_sm;Interrupt process PROCESS. May be process or name of one. .Nil or no arg means current buffer's process.6Second arg CURRENT-GROUP non-nil means send signal to@the current process-group of the process's controlling terminal0rather than to the process's own process group.?If the process is a shell, this means interrupt current subjobrather than the shell.PEt#_k_i_l_l-_p_r_o_c_e_s_sC 6Kill process PROCESS. May be process or name of one.:See function interrupt-process for more details on usage.ae#_q_u_i_t-_p_r_o_c_e_s_s  ESend QUIT signal to process PROCESS. May be process or name of one.s:See function interrupt-process for more details on usage.nlgr% May 13, 1985nosof" - 60 -ep#_s_t_o_p-_p_r_o_c_e_s_sh.6Stop process PROCESS. May be process or name of one.:See function interrupt-process for more details on usage.ii/_c_o_n_t_i_n_u_e-_p_r_o_c_e_s_s:Continue process PROCESS. May be process or name of one.:See function interrupt-process for more details on usage.ii-_p_r_o_c_e_s_s-_s_e_n_d-_e_o_fnl+Make PROCESS see end-of-file in its input.5-Eof comes after any text already sent to it. .Nil or no arg means current buffer's process._h#_c_a_l_l-_p_r_o_c_e_s_srs"Call PROGRAM in separate process.>Program's input comes from file INFILE (nil means /dev/null).<Insert output in BUFFER before dot; t means current buffer;B nil for BUFFER means discard it; 0 means discard and don't wait.IFourth arg DISPLAY non-nil means redisplay buffer as output is inserted._HRemaining arguments are strings passed as command arguments to PROGRAM..This function waits for PROGRAM to terminate;$if you quit, the process is killed.h6_c_a_l_l-_p_r_o_c_e_s_s-_r_e_g_i_o_na:Send text from START to END to a process running PROGRAM. Delete it if DELETE is non-nil.KPut output in BUFFER, before dot. nil => discard it, t => current buffer. HSixth arg DISPLAY non-nil means redisplay buffer as output is inserted.ARemaining args are passed to PROGRAM at startup as command args.i;This function normally waits for the process to terminate;a$if you quit, the process is killed.it_o_p_e_n-_l_i_n_e*Insert a newline and leave dot before it.&With arg, inserts that many newlines. a_s_p_l_i_t-_l_i_n_eei?Split current line, moving portion beyond dot vertically down.=irt ce% May 13, 1985 nep f" - 61 -ra&_q_u_o_t_e_d-_i_n_s_e_r_ta)Read next input character and insert it.e)Useful for inserting control characters.pei5_d_e_l_e_t_e-_i_n_d_e_n_t_a_t_i_o_nea:Join this line to previous and fix up whitespace at join.1With argument, join this line to following line.eB_d_e_l_e_t_e-_h_o_r_i_z_o_n_t_a_l-_s_p_a_c_er'Delete all spaces and tabs around dot.   '_j_u_s_t-_o_n_e-_s_p_a_c_e  :Delete all spaces and tabs around dot, leaving one space.a3_d_e_l_e_t_e-_b_l_a_n_k-_l_i_n_e_sfiEOn blank line, delete all surrounding blank lines, leaving just one._)On isolated blank line, delete that one.t9On nonblank line, delete all blank lines that follow it.j s6_b_a_c_k-_t_o-_i_n_d_e_n_t_a_t_i_o_n=Move dot to the first non-whitespace character on this line.ena3_n_e_w_l_i_n_e-_a_n_d-_i_n_d_e_n_ta;Insert a newline, then indent according to mode, like Tab.oseR_b_a_c_k_w_a_r_d-_d_e_l_e_t_e-_c_h_a_r-_u_n_t_a_b_i_f_yl7Delete characters backward, changing tabs into spaces.iDDelete ARG chars, and kill (save in kill ring) if KILLP is non-nil.1Interactively, ARG is the prefix arg (default 1)_/and KILLP is t if prefix arg is was specified.et _z_a_p-_t_o-_c_h_a_ro5Kill up to (but not incl) ARG'th occurrence of CHAR.-KGoes backward if ARG is negative; goes to end of buffer if CHAR not found.kaosea% May 13, 1985h__t" - 62 - k6_b_e_g_i_n_n_i_n_g-_o_f-_b_u_f_f_e_riJMove dot to the beginning of the buffer; leave mark at previous position.=With arg N, put dot N/10 of the way from the true beginning.f.$_e_n_d-_o_f-_b_u_f_f_e_roDMove dot to the end of the buffer; leave mark at previous position.7With arg N, put dot N/10 of the way from the true end.o.C_m_a_r_k-_b_e_g_i_n_n_i_n_g-_o_f-_b_u_f_f_e_r__)Set mark at the beginning of the buffer. k1_m_a_r_k-_e_n_d-_o_f-_b_u_f_f_e_re#Set mark at the end of the buffer.ef;0_m_a_r_k-_w_h_o_l_e-_b_u_f_f_e_ro0Put dot at beginning and mark at end of buffer._ _c_o_u_n_t-_l_i_n_e_s1Return number of newlines between START and END.euo _u_p_c_a_s_e-_c_h_a_r )Uppercasify ARG chars starting from dot.a__/_f_u_n_d_a_m_e_n_t_a_l-_m_o_d_e__7Major mode not specialized for anything in particular.;Other major modes are defined by comparison with this one.aah,_e_v_a_l-_e_x_p_r_e_s_s_i_o_n3Evaluate EXPRESSION and print value in minibuffer.i@Value is also consed on to front of variable values 's value.?_r_e_p_e_a_t-_c_o_m_p_l_e_x-_c_o_m_m_a_n_dp_ec_% May 13, 1985f ." - 63 -o__1Repeat last complex command, or ARGth from last.r?A complex command is one which prompted for and read arguments Avia the interactive calling mechanism. Prefix args don't count.v8No ARG counts as arg of 1, meaning most recent command.a _g_o_t_o-_l_i_n_e <Goto line ARG, counting from line 1 at beginning of buffer.__ _u_n_d_odUndo some previous changes.*Repeat this command to undo more changes.-A numeric argument serves as a repeat count.6o&_s_h_e_l_l-_c_o_m_m_a_n_dRBExecute string COMMAND in inferior shell; display output, if any.9Optional second arg non-nil (prefix arg, if interactive)fGmeans insert output in current buffer after dot (leave mark after it).md@_s_h_e_l_l-_c_o_m_m_a_n_d-_o_n-_r_e_g_i_o_nl?Execute string COMMAND in inferior shell with region as input.s1Normally display output (if any) in temp buffer; -Prefix arg means replace the region with it.r3Noninteractive args are START, END, COMMAND, FLAG.n5_u_n_i_v_e_r_s_a_l-_a_r_g_u_m_e_n_t p4Begin a numeric argument for the following command.JDigits or minus sign following this command make up the numeric argument.RIf no digits or minus sign follow, this command by itself provides 4 as argument.JUsed more than once, this command multiplies the argument by 4 each time.ol)_d_i_g_i_t-_a_r_g_u_m_e_n_t r3Part of the numeric argument for the next command.ria2_n_e_g_a_t_i_v_e-_a_r_g_u_m_e_n_t_8Begin a negative numeric argument for the next command.e utrel% May 13, 1985fogion" - 64 - i?_f_o_r_w_a_r_d-_t_o-_i_n_d_e_n_t_a_t_i_o_nutAMove forward ARG lines and position at first nonblank character.e eB_b_a_c_k_w_a_r_d-_t_o-_i_n_d_e_n_t_a_t_i_o_n BMove backward ARG lines and position at first nonblank character.___k_i_l_l-_l_i_n_eeGKill the rest of the current line; before a newline, kill the newline.r5With prefix argument, kill that many lines from dot.g(Negative arguments kill lines backward. 1When calling from a program, nil means "no arg",!a number counts as a prefix arg.faA _k_i_l_l-_r_e_g_i_o_nnKill between point and mark.0The text is deleted but saved in the kill ring./The command yank can retrieve it from there.n MThis is the primitive for programs to kill text (as opposed to deleting it).sUSupply two arguments, character numbers indicating the stretch of text to be killed.l:Any command that calls this function is a "kill command".1If the previous command was also a kill command,a?the text killed this time appends to the text killed last timei$to make one entry in the kill ring.ep'_k_i_l_l-_r_i_n_g-_s_a_v_e e4Save the region on the kill ring but don't kill it.f -_a_p_p_e_n_d-_n_e_x_t-_k_i_l_ls >Cause following command, if kill, to append to previous kill.re6_r_o_t_a_t_e-_y_a_n_k-_p_o_i_n_t_e_rn+Rotate the yanking point in the kill ring. m"_y_a_n_k-_p_o_pnalalona% May 13, 1985tt ll " - 65 -ieEReplace just-yanked stretch of killed-text with a different stretch.tEThis command is allowed only immediately after a yank or a yank-pop.TAt such a time, the region contains a stretch of reinserted previously-killed text.Xyank-pop deletes that text and inserts in its place a different stretch of killed text.i1With no argument, the previous kill is inserted.n5With argument n, the n'th previous kill is inserted.a.If n is negative, this is a more recent kill. WThe sequence of kills wraps around, so that after the oldest one comes the newest one. e. _y_a_n_kd *Reinsert the last stretch of killed text.TMore precisely, reinsert the stretch of killed text most recently killed OR yanked.HWith just C-U as argument, same but put dot in front (and mark at end).OWith argument n, reinsert the nth most recently killed stretch of killed text.n See also the command yank-pop.k &_i_n_s_e_r_t-_b_u_f_f_e_r )Insert after dot the contents of BUFFER.l#Puts mark after the inserted text.e)BUFFER may be a buffer or a buffer name._k-_a_p_p_e_n_d-_t_o-_b_u_f_f_e_rt3Append to specified buffer the text of the region.o0It is inserted into that buffer before its dot.m3When calling from a program, give three arguments:i7a buffer or the name of one, and two character numberst;specifying the portion of the current buffer to be copied. n0_p_r_e_p_e_n_d-_t_o-_b_u_f_f_e_rt4Prepend to specified buffer the text of the region./It is inserted into that buffer after its dot.m_3When calling from a program, give three arguments:r7a buffer or the name of one, and two character numbers.;specifying the portion of the current buffer to be copied.nlg'_c_o_p_y-_t_o-_b_u_f_f_e_rur  e ,% May 13, 1985gern  " - 66 -_1Copy to specified buffer the text of the region.n@It is inserted into that buffer, replacing existing text there.h3When calling from a program, give three arguments:r7a buffer or the name of one, and two character numbersn;specifying the portion of the current buffer to be copied. r -_s_e_t-_m_a_r_k-_c_o_m_m_a_n_dt-+Set mark at where dot is, or jump to mark.AWith no argument, set mark, and push previous mark on mark ring. BWith argument, jump to mark, and pop into mark off the mark ring.ex_p_u_s_h-_m_a_r_ktGSet mark at location (dot, by default) and push old mark on mark ring.o g_p_o_p-_m_a_r_k:1Pop off mark ring into the buffer's actual mark.e7Does not set dot. Does nothing if mark ring is empty.ce :_e_x_c_h_a_n_g_e-_d_o_t-_a_n_d-_m_a_r_ke>Put the mark where dot is now, and dot where the mark is now.a _n_e_x_t-_l_i_n_erMove cursor vertically down.mLIf there is no character in the next line exactly under the current column,Sthe cursor is positioned after the character in that line which spans this column,g4or at the end of the line if it is not long enough.2If there is no line in the buffer after this one,1a newline character is inserted to create a line#and the cursor moves to that line._NThe command set-goal-column can be used to create a semipermanent goal columnNwhich this command always moves to. Then it does not try to move vertically.oa&_p_r_e_v_i_o_u_s-_l_i_n_eunon sioi% May 13, 1985h nhcm" - 67 -stnMove cursor vertically down. LIf there is no character in the next line exactly under the current column,Sthe cursor is positioned after the character in that line which spans this column,e4or at the end of the line if it is not long enough.aNThe command set-goal-column can be used to create a semipermanent goal columnNwhich this command always moves to. Then it does not try to move vertically.  *_s_e_t-_g_o_a_l-_c_o_l_u_m_n OSet the current horizontal position as a goal for next-line and previous-line.e?Those commands will move to this position in the line moved tou9rather than trying to keep the same horizontal position.lCset-goal-column with a non-nil argument clears out the goal columnt<so that next-line and previous-line resume vertical motion.e ,_t_r_a_n_s_p_o_s_e-_c_h_a_r_saAInterchange characters around dot, moving forward one character.<With prefix arg ARG, effect is to take character before dotJand drag it forward past ARG other characters (backward if ARG negative).IIf no argument and at end of line, the previous two chars are exchanged.g p,_t_r_a_n_s_p_o_s_e-_w_o_r_d_s :Interchange words around dot, leaving dot at end of them.AWith prefix arg ARG, effect is to take word before or around dot_Eand drag it forward past ARG other words (backward if ARG negative).oGIf ARG is zero, the words around or after dot and around or after marktare interchanged. ,_t_r_a_n_s_p_o_s_e-_s_e_x_p_sb+Like transpose-words but applies to sexps.d5Does not work on a sexp that dot is in the middle ofgif it is a list or string.s-,_t_r_a_n_s_p_o_s_e-_l_i_n_e_stAExchange current line and previous line, leaving dot after both.aDWith argument ARG, takes previous line and moves it past ARG lines.CWith argument 0, interchanges line dot is in with line mark is in. eo3_i_n_d_e_n_t-_f_o_r-_c_o_m_m_e_n_tJIndent this line's comment to comment column, or insert an empty comment.ite.% May 13, 1985 tmlf" - 68 -r3_s_e_t-_c_o_m_m_e_n_t-_c_o_l_u_m_nce%Set the comment column based on dot.a;With no arg, set the comment column to the current column.s7With just minus as arg, kill any comment on this line.dNWith any other arg, set comment column to indentation of the previous commentA and then align or create a comment on this line at that column.rs #_k_i_l_l-_c_o_m_m_e_n_t  'Kill the comment on this line, if any.HWith argument, kill comments on that many lines starting with this one.m_*_f_o_r_w_a_r_d-_t_o-_w_o_r_d 9Move forward until encountering the beginning of a word. (With argument, do this that many times.a -_b_a_c_k_w_a_r_d-_t_o-_w_o_r_drg4Move backward until encountering the end of a word.(With argument, do this that many times.ni&_b_a_c_k_w_a_r_d-_w_o_r_d_4Move backward until encountering the end of a word.(With argument, do this that many times.no_m_a_r_k-_w_o_r_d "Set mark arg words away from dot._k_i_l_l-_w_o_r_dr>Kill characters forward until encountering the end of a word.(With argument, do this that many times.k3_b_a_c_k_w_a_r_d-_k_i_l_l-_w_o_r_d i?Kill characters backward until encountering the end of a word.a(With argument, do this that many times._@_i_n_d_e_n_t-_n_e_w-_c_o_m_m_e_n_t-_l_i_n_eiJBreak line at dot and indent, continuing comment if presently within one. kg% May 13, 1985lw_" - 69 -ni'_a_u_t_o-_f_i_l_l-_m_o_d_e sToggle auto-fill mode.k6With arg, turn auto-fill mode on iff arg is positive.EIn auto-fill mode, inserting a space at a column beyond fill-columni3automatically breaks the line at a previous space.n_'_s_e_t-_m_i_n_o_r-_m_o_d_en1Set status of minor mode, for mode-line display.c?FUNCTION-SYMBOL is the function that turns the mode on or off. 4PRETTY-STRING is a string to show in the mode line.=ON-STATE is t if mode should be on, nil if it should be off._Returns ON-STATE.a-*_s_e_t-_f_i_l_l-_c_o_l_u_m_ni<Set fill-column to current column, or to argument if given.1fill-column's value is separate for each buffer.sen<_s_e_t-_s_e_l_e_c_t_i_v_e-_d_i_s_p_l_a_yo2Set selective-display to ARG; clear it if no arg.(When selective-display is a number > 0,Clines whose indentation is >= selective-display are not displayed.o7selective-display's value is separate for each buffer.  i)_o_v_e_r_w_r_i_t_e-_m_o_d_eToggle overwrite mode.c6With arg, turn overwrite mode on iff arg is positive.FIn overwrite mode, printing characters typed in replace existing text=on a one-for-one basis, rather than pushing it to the right._a6_b_l_i_n_k-_m_a_t_c_h_i_n_g-_o_p_e_nAMove cursor momentarily to the beginning of the sexp before dot. >e_e_r_r_o_roFSignal an error, making error message by passing all args to format. i#_h_e_l_p-_c_o_m_m_a_n_de4Give help. Invoked by help character at top level.ednfg% May 13, 1985t retd" - 70 -re3_h_e_l_p-_w_i_t_h-_t_u_t_o_r_i_a_la*Select the Emacs learn-by-doing tutorial.e9_d_e_s_c_r_i_b_e-_k_e_y-_b_r_i_e_f_l_ybr>Print the name of the function KEY invokes. KEY is a string.oe#_d_e_s_c_r_i_b_e-_k_e_y EDisplay documentation of the function KEY invokes. KEY is a string.h r&_d_e_s_c_r_i_b_e-_m_o_d_e -Display documentation of current major mode.etd>_d_e_s_c_r_i_b_e-_d_i_s_t_r_i_b_u_t_i_o_nt?Display info on how to obtain the latest version of GNU Emacs.nui/_d_e_s_c_r_i_b_e-_c_o_p_y_i_n_g_>Display info on how you may redistribute copies of GNU Emacs. Y*_v_i_e_w-_e_m_a_c_s-_n_e_w_se)Display info on recent changes to Emacs.tft#_v_i_e_w-_l_o_s_s_a_g_e#Display last 100 input keystrokes.d $_h_e_l_p-_f_o_r-_h_e_l_pm Give help for the help command.__2_d_e_s_c_r_i_b_e-_f_u_n_c_t_i_o_no7Display the full documentation of FUNCTION (a symbol).ie2_d_e_s_c_r_i_b_e-_v_a_r_i_a_b_l_e 7Display the full documentation of VARIABLE (a symbol). Yi_% May 13, 1985ianoet" - 71 -__,_c_o_m_m_a_n_d-_a_p_r_o_p_o_st?Like apropos but lists only symbols that are names of commands$(interactively callable functions)._,_s_u_p_p_r_e_s_s-_k_e_y_m_a_poAMake MAP override all buffer-modifying commands to be undefined.?Works by knowing which commands are normally buffer-modifying.h,Normally also makes digits set numeric arg,8but optional second arg NODIGITS non-nil prevents this. _p_w_d $Show the current default directory.o_c_d_8Make DIR become the current buffer's default directory.b _f_i_n_d-_f_i_l_eiEdit file FILENAME.+Switch to a buffer visiting file FILENAME,s%creating one if none already exists.r  =_f_i_n_d-_f_i_l_e-_o_t_h_e_r-_w_i_n_d_o_wwh'Edit file FILENAME, in another window.h3May create a new window, or reuse an existing one;p!see the function display-buffer.pe 4_f_i_n_d-_f_i_l_e-_r_e_a_d-_o_n_l_yd8Edit file FILENAME but don't save without confirmation..Like find-file but marks buffer as read-only.__3_f_i_n_d-_f_i_l_e-_n_o_s_e_l_e_c_tur8Read file FILENAME into a buffer and return the buffer.7If a buffer exists visiting FILENAME, return that one,Abut verify that the file has not changed since visited or saved.h9The buffer is not selected, just returned to the caller.  cnsyf.% May 13, 1985e__l" - 72 -s 6_f_i_n_d-_a_l_t_e_r_n_a_t_e-_f_i_l_er=Find file FILENAME, select its buffer, kill previous buffer.eGIf the current buffer now contains an empty file that you just visitedfM(presumably by mistake), use this command to visit the file you really want.est$_s_e_t-_a_u_t_o-_m_o_d_eu2Select major mode appropriate for current buffer.EMay base decision on visited file name (See variable auto-mode-list)e:or on buffer contents (-*- line or local variables spec).i:_s_e_t-_v_i_s_i_t_e_d-_f_i_l_e-_n_a_m_e ;Change name of file visited in current buffer to FILENAME.cJThe next time the buffer is saved it will go in the newly specified file.Lnil or empty string as argument means make buffer not be visiting any file.__w_r_i_t_e-_f_i_l_eue)Write current buffer into file FILENAME.f9Makes buffer visit that file, and marks it not modified.a-e&_b_a_c_k_u_p-_b_u_f_f_e_rr>Make a backup of the disk file visited by the current buffer.6This is done before saving the buffer the first time.en _f_i_l_e-_n_l_i_n_k_se*Return number of names file FILENAME has.e _s_a_v_e-_b_u_f_f_e_r FSave the current buffer in its visited file, if it has been modified._0_s_a_v_e-_s_o_m_e-_b_u_f_f_e_r_sFESave some modified file-visiting buffers. Asks user about each one.,With argument, saves all with no questions.ra#_n_o_t-_m_o_d_i_f_i_e_dbh<Mark current buffer as unmodified, not needing to be saved.sien% May 13, 1985unefm" - 73 -e-_t_o_g_g_l_e-_r_e_a_d-_o_n_l_yen;Change whether this buffer is visiting its file read-only.es _i_n_s_e_r_t-_f_i_l_e8Insert contents of file FILENAME into buffer after dot."Set mark after the inserted text.w '_a_p_p_e_n_d-_t_o-_f_i_l_ei?Append the contents of the region to the end of file FILENAME.g6When called from a function, expects three arguments,=START, END and FILENAME. START and END are buffer positions saying what text to write._e&_r_e_v_e_r_t-_b_u_f_f_e_reCReplace the buffer text with the text of the visited file on disk._=This undoes all changes since the file was visited or saved.t?If latest auto-save file is more recent than the visited file,Kasks user whether to use that instead, unless a non-nil argument is given.ooKIf revert-buffer-function's value is non-nil, it is called to do the work.ms0_k_i_l_l-_s_o_m_e-_b_u_f_f_e_r_ss)For each buffer, ask whether to kill it._'_a_u_t_o-_s_a_v_e-_m_o_d_eec2Toggle auto-saving of contents of current buffer.<With arg, turn auto-saving on if arg is positive, else off. eA_m_a_k_e-_a_u_t_o-_s_a_v_e-_f_i_l_e-_n_a_m_e,:Return file name to use for auto-saves of current buffer.>Does not consider auto-save-visited-filename; that is checkedbefore calling this function.PThis is a separate function so your .emacs file or site-init.el can redefine t.ke)_l_i_s_t-_d_i_r_e_c_t_o_r_ys_o_eco% May 13, 1985 fia " - 74 - ef;Display a list of files in or matching DIRNAME, a la `ls'..DIRNAME is globbed by the shell if necessary.JPrefix arg (second arg if noninteractive) means supply -l switch to `ls'.>Actions controlled by variables list-directory-brief-switches& and list-directory-verbose-switches.tn@_s_a_v_e-_b_u_f_f_e_r_s-_k_i_l_l-_e_m_a_c_s_6Offer to save each buffer, then kill this Emacs fork. aB_s_p_l_i_t-_w_i_n_d_o_w-_v_e_r_t_i_c_a_l_l_y <Split current window into two windows, one above the other.7This window becomes the uppermost of the two, and gets(ARG lines. No arg means split equally.nuH_s_p_l_i_t-_w_i_n_d_o_w-_h_o_r_i_z_o_n_t_a_l_l_yf4Split current window into two windows side by side.6This window becomes the leftmost of the two, and gets*ARG columns. No arg means split equally.t N_e_n_l_a_r_g_e-_w_i_n_d_o_w-_h_o_r_i_z_o_n_t_a_l_l_y'Make current window ARG columns wider.i  K_s_h_r_i_n_k-_w_i_n_d_o_w-_h_o_r_i_z_o_n_t_a_l_l_y  *Make current window ARG columns narrower.nC_i_n_d_e_n_t-_a_c_c_o_r_d_i_n_g-_t_o-_m_o_d_el2Indent line in proper way for current major mode. e=_i_n_d_e_n_t-_f_o_r-_t_a_b-_c_o_m_m_a_n_d u2Indent line in proper way for current major mode.a_)_i_n_d_e_n_t-_r_i_g_i_d_l_y_AIndent all lines starting in the region sideways by ARG columns. BCalled from a program, takes three arguments, START, END and ARG.yer% May 13, 1985_e_" - 75 -o&_i_n_d_e_n_t-_r_e_g_i_o_n )Indent each nonblank line in the region.-With no argument, indent each line with Tab. 7With argument COLUMN, indent each line to that column.@Called from a program, takes three args: START, END and COLUMN.ns,_i_n_d_e_n_t-_r_e_l_a_t_i_v_e@Space out to under next indent point in previous nonblank line.DAn indent point is a non-whitespace character following whitespace.:If the previous nonblank line has no indent points beyond=the column dot starts at, tab-to-tab-stop is done instead.knn'_e_d_i_t-_t_a_b-_s_t_o_p_se ,Edit the tab stops used by tab-to-tab-stop.GCreates a buffer *Tab Stops* containing text describing the tab stops.A6A colon indicates a column where there is a tab stop.NYou can add or remove colons and then do C-X C-S to make changes take effect.iJ_e_d_i_t-_t_a_b-_s_t_o_p_s-_n_o_t_e-_c_h_a_n_g_e_sp"Put edited tab stops into effect.nb(_t_a_b-_t_o-_t_a_b-_s_t_o_p-7Insert spaces or tabs to next defined tab-stop column._NThe variable tab-stop-list is a list of columns at which there are tab stops./Use edit-tab-stops to edit them interactively.at.7_a_d_d-_c_h_a_n_g_e-_l_o_g-_e_n_t_r_yo1Find change log file and add an entry for today.acg_o_c_c_u_r-_m_e_n_ud_0Show menu of lines containing match for REGEXP.GEnters recursive edit on text showing an entry for each matching line.-4User can move to an entry and then exit with C-Z toImove to the line in the original buffer described by the selected entry.t7Abort with C-] to avoid moving in the original buffer.ss@If REGEXP is empty then THE EXACT SAME menu is presented again,4with cursor initially at the next successive entry.DThis is useful for stepping through located lines rapidly in order.wnf% May 13, 1985nscie " - 76 -il0_b_y_t_e-_c_o_m_p_i_l_e-_f_i_l_eC2Compile a file of Emacs Lisp code into byte code.6Argument is input file name; output file name is madeby appending a "c" to the end.RE_b_y_t_e-_r_e_c_o_m_p_i_l_e-_d_i_r_e_c_t_o_r_yon@Recompile every .el file in DIRECTORY that needs recompilation.>This is if a .elc file exists but is older than the .el file.  ,_c_o_m_p_a_r_e-_w_i_n_d_o_w_s 9Compare text in current window with text in next window._2Compares the text starting at dot in each window,3moving over text in each one as fas as they match.n e_c_o_m_p_i_l_emFCompile the program including the current buffer. Default: run make.DRuns COMMAND, a shell command, in a separate process asynchronously/with output going to the buffer *compilation*.hGYou can then use the command next-error to find the next error message_,and move to the source code that caused it.p _g_r_e_p dDRun grep, with user-specified args, and collect output in a buffer.CWhile grep runs asynchronously, you can use the next-error command *to find the text that grep hits refer to.ra_d_e_b_u_gn2Enter debugger. Returns if user says "continue".1Arguments are mainly for use when this is calledi& from the internals of the evaluator.&You may call with no args, or you may8 pass nil as the first arg and any other args you like.5 In that case, the list of args after the first willd' be printed into the backtrace buffer. l :_c_a_n_c_e_l-_d_e_b_u_g-_o_n-_e_n_t_r_ys-Undoes effect of debug-on-entry on FUNCTION.arh eo% May 13, 1985rRriss" - 77 -fu'_d_e_b_u_g-_o_n-_e_n_t_r_yn <Request FUNCTION to invoke debugger each time it is called.6If the user continues, FUNCTION's execution proceeds./Works by modifying the definition of FUNCTION,i/which must be written in Lisp, not predefined.l _d_i_r_e_d4"Edit" directory DIRNAME. Delete some files in it.+Dired displays a list of files in DIRNAME.3You can move around in it with the usual commands.r)You can mark files for deletion with C-D $and then delete them by typing `x'.-Type `h' after entering dired for more info.tne3_d_i_r_e_d-_o_t_h_e_r-_w_i_n_d_o_wn,*"Edit" directory DIRNAME in other window.>Like dired command but displays dired buffer in other window.sn)_d_i_r_e_d-_n_o_s_e_l_e_c_t;Find or create a dired buffer, return it, don't select it.iCall like dired.liI2_d_i_s_s_o_c_i_a_t_e_d-_p_r_e_s_sa+Dissociate the text of the current buffer.C,Output goes in buffer named *Dissociation*,4which is redisplayed each time text is added to it.6Every so often the user must say whether to continue.5If ARG is positive, require ARG words of continuity.d6If ARG is negative, require -ARG chars of continuity.Default is 2. _i_n_f_oe_"Enter Info documentation browser.,t_l_e_d_i_t-_m_o_d_elki._s_% May 13, 1985satt " - 78 -nf ;Major mode for editing text and stuffing it to a Lisp job.s-Like Lisp mode, plus these special commands:y( M-C-d -- record defun at or after dot/ for later transmission to Lisp job.e= M-C-r -- record region for later transmission to Lisp job.9 C-x z -- transfer to Lisp job and transmit saved text.1 M-C-c -- transfer to Liszt (Lisp compiler) job$ and transmit saved text.6To make Lisp mode automatically change to Ledit mode,/do (setq lisp-mode-hook 'ledit-from-lisp-mode)ofe_l_p_r-_b_u_f_f_e_ras5Print contents of buffer as with Unix command `lpr'.y -#_p_r_i_n_t-_b_u_f_f_e_r  8Print contents of buffer as with Unix command `lpr -p'. i-_a_p_p_e_n_d-_k_b_d-_m_a_c_r_o -FAppend kbd macro NAME in file FILE, as Lisp code to define the macro.Use load to load the file. AThird argument KEYS non-nil means also record the keys it is on. < (This is the prefix argument, when calling interactively.)m)*_k_b_d-_m_a_c_r_o-_q_u_e_r_y'Query user during kbd macro execution.m-With prefix argument, enters recursive edit,_4 reading keyboard commands even within a kbd macro.? You can give different commands each time the macro executes.c?Without prefix argument, reads a character. Your options are: ) Space -- execute the rest of the macro.f> Delete -- skip the rest of the macro; start next repetition.= C-d -- skip rest of the macro and don't repeat it any more.tG C-r -- enter a recursive edit, then on exit ask again for a characters( C-l -- redisplay screen and ask again. u*_w_r_i_t_e-_k_b_d-_m_a_c_r_orDSave kbd macro NAME in file FILE, as Lisp code to define the macro.Use load to load the file.cAThird argument KEYS non-nil means also record the keys it is on.< (This is the prefix argument, when calling interactively.)MFourth argument APPENDFLAG non-nil meams append to FILE's existing contents.dnraty% May 13, 1985thoxaa" - 79 -ac#_m_a_n_u_a_l-_e_n_t_r_yt%Display Unix manual entry for TOPIC.edc)_e_n_a_b_l_e-_c_o_m_m_a_n_deeGAllow COMMAND to be executed without special confirmation from now on.nAThe user's emacs.profile file is altered so that this will applywto future sessions..,_d_i_s_a_b_l_e-_c_o_m_m_a_n_do=Require special confirmation to execute COMMAND from now on. AThe user's emacs.profile file is altered so that this will apply to future sessions._#_l_i_s_t-_o_p_t_i_o_n_sp EDisplay a list of Emacs user options, with values and documentation._d#_e_d_i_t-_o_p_t_i_o_n_swo)Edit a list of Emacs user option values. )Selects a buffer containing such a list,t6in which there are commands to set the option values.2Type C-H m in that buffer for a list of commands.c #_o_u_t_l_i_n_e-_m_o_d_enoESet up Emacs for editing an outline, doing selective hiding of text. ot,_c_l_e_a_r-_r_e_c_t_a_n_g_l_e_2Blank out rectangle with corners at dot and mark.@The text previously in the region is overwritten by the blanks._/_d_e_l_e_t_e-_r_e_c_t_a_n_g_l_ee DDelete (don't save) text in rectangle with dot and mark as corners.2The same range of columns is deleted in each line/starting with the line where the region begins_0and ending with the line where the region ends.iaE_d_e_l_e_t_e-_e_x_t_r_a_c_t-_r_e_c_t_a_n_g_l_ee_n_% May 13, 1985rs   k" - 80 -seiGReturn and delete contents of rectangle with corners at START and END._>Value is list of strings, one for each line of the rectangle.sr2_e_x_t_r_a_c_t-_r_e_c_t_a_n_g_l_en<Return contents of rectangle with corners at START and END.>Value is list of strings, one for each line of the rectangle.ee/_i_n_s_e_r_t-_r_e_c_t_a_n_g_l_e8Insert text of RECTANGLE with upper left corner at dot.+RECTANGLE's first line is inserted at dot,-Bits second line is inserted at a point vertically under dot, etc.'RECTANGLE should be a list of strings.frs)_k_i_l_l-_r_e_c_t_a_n_g_l_eHDelete rectangle with corners at dot and mark; save as last killed one.GCalling from program, supply two args START and END, buffer positions. BBut in programs you might prefer to use delete-extract-rectangle.a)_o_p_e_n-_r_e_c_t_a_n_g_l_eEtGBlank out rectangle with corners at dot and mark, shifting text right.-DThe text previously in the region is not overwritten by the blanks,3but insted winds up to the right of the rectangle._l)_y_a_n_k-_r_e_c_t_a_n_g_l_era>Yank the last killed rectangle with upper left corner at dot.nr_r_m_a_i_lo&Read (or delete or answer) your mail.un0_m_a_i_l-_o_t_h_e_r-_w_i_n_d_o_wa0Like mail command but displays in other window._E _m_a_i_l tliceaon% May 13, 1985teu tr" - 81 -unIEdit a message to be sent. Argument means resume editing (don't erase)._MReturns with message buffer seleted; value t if message freshly initialized.eBWhile editing message, type C-z C-z to send the message and exit.uJVarious special commands starting with C-z are available in sendmail modeAto move to message header fields. Type C-z? for a list of them. t=If mail-self-blind is non-nil, a bcc to yourself is inserted9!when the message is initialized.  CIf mail-setup-hook is bound, its value is called with no argumentstCafter the message is initialized. It can add more default fields.ee@When calling from a program, the second through fifth arguments4 TO, SUBJECT, CC and IN-REPLY-TO specify if non-nil. the initial contents of those header fields.1 These arguments should not have final newlines. :The sixth argument REPLYBUFFER is a buffer whose contents+ should be yanked if the user types C-Z y.dn_s_h_e_l_la8Run an inferior shell, with I/O through buffer *shell*.CIf buffer exists but shell process is not running, make new shell.dCThe buffer is put in shell-mode, giving commands for sending input ;and controlling the subjobs of the shell. See shell-mode.ey #_s_p_e_l_l-_b_u_f_f_e_roh,Check spelling of every word in the buffer.@For each incorrect word, you are asked for the correct spellingBand then put into a query-replace to fix some or all occurrences.=If you do not want to change a word, just give the same word >as its "correct" spelling; then the query replace is skipped.,k_s_p_e_l_l-_w_o_r_dun(Check spelling of word at or after dot.8If it is not correct, ask user for the correct spelling6and query-replace the entire buffer to substitute it.hh#_s_p_e_l_l-_s_t_r_i_n_gf/Check spelling of string supplied as argument.ces_u_n_t_a_b_i_f_y u-l f% May 13, 1985  t na" - 82 -socCConvert all tabs in region to multiple spaces, preserving columns.l,The variable tab-width controls the action. a_t_a_b_i_f_ync9Convert multiple spaces in region to tabs when possible.c0A group of spaces is partially replaced by tabs?when this can be done without changing the column they end at.s,The variable tab-width controls the action.i__f_i_n_d-_t_a_g BFind next tag (in current tag table) whose name contains TAGNAME.1 Selects the buffer that the tag is contained ins and puts dot at its definition.; If TAGNAME is a null string, the expression in the buffern.around or before dot is used as the tag name.A If second arg NEXT is non-nil (interactively, with prefix arg), +searches for the next tag in the tag table 8that matches the tagname used in the previous find-tag.b.See documentation of variable tags-file-name.d:_f_i_n_d-_t_a_g-_o_t_h_e_r-_w_i_n_d_o_wm=Find tag (in current tag table) whose name contains TAGNAME.i1 Selects the buffer that the tag is contained inN and puts dot at its definition.; If TAGNAME is a null string, the expression in the buffera.around or before dot is used as the tag name.A If second arg NEXT is non-nil (interactively, with prefix arg),e+searches for the next tag in the tag tablei8that matches the tagname used in the previous find-tag.a.See documentation of variable tags-file-name.rw_l_i_s_t-_t_a_g_s(#Display list of tags in file FILE.a N_n_e_x_t-_f_i_l_et3Select next file among files in current tag table.i.Non-nil argument (prefix arg, if interactive)Dinitializes to the beginning of the list of files in the tag table. oaN n% May 13, 1985,rsre" - 83 -ht#_t_a_g_s-_a_p_r_o_p_o_st;Display list of all tags in tag table that contain STRING._3_t_a_g_s-_l_o_o_p-_c_o_n_t_i_n_u_eF.9Continue last tags-search or tags-query-replace command.e,Used noninteractively with non-nil argument7to begin such a command. See variable tags-loop-form.egi*_t_a_g-_t_a_b_l_e-_f_i_l_e_s1Return a list of files in the current tag table. 53_t_a_g_s-_q_u_e_r_y-_r_e_p_l_a_c_ehBQuery-replace FROM with TO through all files listed in tag table.;If you exit (C-G or ESC), you can resume the query-replaces%with the command tags-loop-continue.F..See documentation of variable tags-file-name.on _t_a_g_s-_s_e_a_r_c_hnCSearch through all files listed in tag table for match for REGEXP.eStops when a match is found.lFTo continue searching for next match, use command tags-loop-continue. .See documentation of variable tags-file-name._#_d_i_s_p_l_a_y-_t_i_m_eOrADisplay current time and load level in mode line of each buffer. $Updates automatically every minute.ca/_u_n_d_e_r_l_i_n_e-_r_e_g_i_o_nfr1Underline all nonblank characters in the region._#Works by overstriking underscores.f7Called from program, takes two arguments START and ENDh'which specify the range to operate on.h  5_u_n_u_n_d_e_r_l_i_n_e-_r_e_g_i_o_noe>Remove allunderlining (overstruck underscores) in the region.7Called from program, takes two arguments START and ENDe'which specify the range to operate on. oil% May 13, 1985l_e" - 84 -ac,_i_s_e_a_r_c_h-_f_o_r_w_a_r_d Do incremental search forward.aEAs you type characters, they add to the search string and are found.a<Type Delete to cancel characters from end of search string.1Type ESC to exit, leaving dot at location found.n@Type C-S to search again forward, C-R to search again backward.OType C-W to yank word from buffer onto end of search string and search for it. >Type C-Y to yank rest of line onto end of search string, etc.6Type C-Q to quote control character to search for it.7Other control and meta characters terminate the searcha! and are then executed normally.t.C-G while searching or when search has failed9 cancels input back to what has been found successfully.CFC-G when search is successful aborts and moves dot to starting point.d-?_i_s_e_a_r_c_h-_f_o_r_w_a_r_d-_r_e_g_e_x_pne6Do incremental search forward for regular expression.8Like ordinary incremental search except that your input>is treated as a regexp. See isearch-forward for more info.ec/_i_s_e_a_r_c_h-_b_a_c_k_w_a_r_dxt Do incremental search backward.,See isearch-forward for more information. wB_i_s_e_a_r_c_h-_b_a_c_k_w_a_r_d-_r_e_g_e_x_ps7Do incremental search backward for regular expression.8Like ordinary incremental search except that your input>is treated as a regexp. See isearch-forward for more info. r&_q_u_e_r_y-_r_e_p_l_a_c_et8Replace some occurrences of FROM-STRING with TO-STRING.>As each match is found, the user must type a character sayingwhat to do with it.4Type Help char within query-replace for directions.HPreserves case in each replacement if case-replace and case-fold-search6are non-nil and FROM-STRING has no uppercase letters.7Third arg DELIMITED non-nil means replace only matches Gsurrounded by word boundaries. Interactively, this is the prefix arg. r9_q_u_e_r_y-_r_e_p_l_a_c_e-_r_e_g_e_x_prcoRSNi% May 13, 1985  rsya" - 85 -yH>Replace some things after dot matching REGEXP with TO-STRING.>As each match is found, the user must type a character sayingwhat to do with it.4Type Help char within query-replace for directions.iHPreserves case in each replacement if case-replace and case-fold-search1are non-nil and REGEXP has no uppercase letters.r7Third arg DELIMITED non-nil means replace only matchesRsurrounded by word boundaries. 1In TO-STRING, means insert what matched REGEXP, 6and means insert what matched th .) in REGEXP.eo)_r_e_p_l_a_c_e-_s_t_r_i_n_g c3Replace occurrences of FROM-STRING with TO-STRING.hAPreserve case in each match if case-replace and case-fold-searcho6are non-nil and FROM-STRING has no uppercase letters.7Third arg DELIMITED non-nil means replace only matches surrounded by word boundaries.EI )_r_e_p_l_a_c_e-_r_e_g_e_x_pud9Replace things after dot matching REGEXP with TO-STRING.tAPreserve case in each match if case-replace and case-fold-searchP1are non-nil and REGEXP has no uppercase letters.g7Third arg DELIMITED non-nil means replace only matches.surrounded by word boundaries.f1In TO-STRING, means insert what matched REGEXP,n6and means insert what matched th .) in REGEXP.Eo#_f_o_r_w_a_r_d-_s_e_x_puu-Move forward across one balanced expression.l(With argument, do this that many times.hs&_b_a_c_k_w_a_r_d-_s_e_x_pt.Move backward across one balanced expression.(With argument, do this that many times.hn_m_a_r_k-_s_e_x_prSet mark ARG sexps from dot.cnm#_f_o_r_w_a_r_d-_l_i_s_tefn-I % May 13, 1985nne ew" - 86 -oo7Move forward across one balanced group of parentheses.n(With argument, do this that many times.ht&_b_a_c_k_w_a_r_d-_l_i_s_ta8Move backward across one balanced group of parentheses.(With argument, do this that many times.at_d_o_w_n-_l_i_s_ts,Move forward down one level of parentheses.(With argument, do this that many times.CA negative argument means move backward but still go down a level.-_b_a_c_k_w_a_r_d-_u_p-_l_i_s_t/Move backward out of one level of parentheses.e(With argument, do this that many times.FA negative argument means move forward but still to a less deep spot.rc_u_p-_l_i_s_tf.Move forward out of one level of parentheses.(With argument, do this that many times.GA negative argument means move backward but still to a less deep spot.ht _k_i_l_l-_s_e_x_pn4Kill the syntactic expression following the cursor.HWith argument, kill that many expressions after (or before) the cursor.fe3_b_a_c_k_w_a_r_d-_k_i_l_l-_s_e_x_p y4Kill the syntactic expression preceding the cursor.HWith argument, kill that many expressions before (or after) the cursor.t '_e_v_a_l-_l_a_s_t-_s_e_x_p, 7Evaluate sexp before point; print value in minibuffer.c1With argument, print output into current buffer._l_e_v_a_l-_d_e_f_u_nnteeoow% May 13, 1985hm ri " - 87 -_)Evaluate defun that dot is in or before. Print value in minibuffer.e?With argument, insert value in current buffer after the defun.sne3_b_e_g_i_n_n_i_n_g-_o_f-_d_e_f_u_nl_*Move backward to next beginning-of-defun.(With argument, do this that many times.4Returns t unless search stops due to end of buffer._!_e_n_d-_o_f-_d_e_f_u_n#Move forward to next end of defun.aHAn end of a defun is found by moving forward from the beginning of one._m_a_r_k-_d_e_f_u_nrf,Put mark at end of defun, dot at beginning.ni5_i_n_s_e_r_t-_p_a_r_e_n_t_h_e_s_e_seDPut parentheses around next ARG sexps. Leave dot after open-paren.INo argument is equivalent to zero: just insert () and leave dot between.u nM_m_o_v_e-_p_a_s_t-_c_l_o_s_e-_a_n_d-_r_e_i_n_d_e_n_t_FMove past next ), delete indentation before it, then indent after it.og#_f_o_r_w_a_r_d-_p_a_g_eJMove forward to page boundary. With arg, repeat, or go back if negative.PA page boundary is any line whose beginning matches the regexp page-delimiter.ee&_b_a_c_k_w_a_r_d-_p_a_g_e JMove backward to page boundary. With arg, repeat, or go fwd if negative.PA page boundary is any line whose beginning matches the regexp page-delimiter.n__m_a_r_k-_p_a_g_e)+Put mark at end of page, dot at beginning.f ogo_% May 13, 1985rd eur" - 88 -ae'_n_a_r_r_o_w-_t_o-_p_a_g_ein*Make text outside current page invisible._-_c_o_u_n_t-_l_i_n_e_s-_p_a_g_ecrNReport number of lines on current page, and how many are before or after dot.al_w_h_a_t-_p_a_g_e #Print page and line number of dot._k#_g_e_t-_r_e_g_i_s_t_e_rfg>Return contents of Emacs register named CHAR, or nil if none.  #_s_e_t-_r_e_g_i_s_t_e_rr 4Set contents of Emacs register named CHAR to VALUE.__*_d_o_t-_t_o-_r_e_g_i_s_t_e_rr-Store current location of dot in a register..Argument is a character, naming the register.ls*_r_e_g_i_s_t_e_r-_t_o-_d_o_tt+Move dot to location stored in a register..Argument is a character, naming the register.e&_v_i_e_w-_r_e_g_i_s_t_e_rc6Display what is contained in register named REGISTER.REGISTER is a character._t,_i_n_s_e_r_t-_r_e_g_i_s_t_e_rd6Insert contents of register REG. REG is a character.;Normally puts dot before and mark after the inserted text..CIf optional second arg is non-nil, puts mark before and dot after._@Interactively, second arg is non-nil if prefix arg is supplied.ag-_c_o_p_y-_t_o-_r_e_g_i_s_t_e_rete% May 13, 1985ciahio" - 89 -ETiCopy region into register REG.!With prefix arg, delete as well.&Called from program, takes four args:!REG, START, END and DELETE-FLAG. <START and END are buffer positions indicating what to copy.dg3_a_p_p_e_n_d-_t_o-_r_e_g_i_s_t_e_rav'Append region to text in register REG.i!With prefix arg, delete as well._&Called from program, takes four args:!REG, START, END and DELETE-FLAG. >START and END are buffer positions indicating what to append.86_p_r_e_p_e_n_d-_t_o-_r_e_g_i_s_t_e_r (Prepend region to text in register REG.!With prefix arg, delete as well.N&Called from program, takes four args:!REG, START, END and DELETE-FLAG. ?START and END are buffer positions indicating what to prepend.rI_c_o_p_y-_r_e_c_t_a_n_g_l_e-_t_o-_r_e_g_i_s_t_e_r_a+Copy rectangular region into register REG.A!With prefix arg, delete as well.n&Called from program, takes four args:!REG, START, END and DELETE-FLAG.pDSTART and END are buffer positions giving two corners of rectangle. i2_f_o_r_w_a_r_d-_p_a_r_a_g_r_a_p_hf>Move forward to end of paragraph. With arg, do it arg times.CA line which paragraph-start matches either separates paragraphsO(if paragraph-separate matches it also) or is the first line of a paragraph._NA paragraph end is the beginning of a line which is not part of the paragraphIto which the end of the previous line belongs, or the end of the buffer.F.5_b_a_c_k_w_a_r_d-_p_a_r_a_g_r_a_p_hfcAMove backward to start of paragraph. With arg, do it arg times.PA paragraph start is the beginning of a line which is a first-line-of-paragraphKor which is ordinary text and follows a paragraph-separating line; except:rCif the first real line of a paragraph is preceded by a blank line,r)the paragraph starts at that blank line. ,See forward-paragraph for more information.hrol % May 13, 1985.a_" - 90 -fc)_m_a_r_k-_p_a_r_a_g_r_a_p_hhg7Put point at beginning of this paragraph, mark at end.o e)_k_i_l_l-_p_a_r_a_g_r_a_p_hiiKill to end of paragraph.arB_b_a_c_k_w_a_r_d-_k_i_l_l-_p_a_r_a_g_r_a_p_hs!Kill back to start of paragraph.ar ;_t_r_a_n_s_p_o_s_e-_p_a_r_a_g_r_a_p_h_sir8Interchange this (or next) paragraph with previous one. 5/_f_o_r_w_a_r_d-_s_e_n_t_e_n_c_e 9;Move forward to next sentence-end. With argument, repeat.HWith negative argument, move backward repeatedly to sentence-beginning.:Sentence ends are identified by the value of sentence-endAtreated as a regular expression. Also, every paragraph boundaryterminates sentences as well.ao2_b_a_c_k_w_a_r_d-_s_e_n_t_e_n_c_e_@Move backward to start of sentence. With arg, do it arg times.+See forward-sentence for more information.w_&_k_i_l_l-_s_e_n_t_e_n_c_ea"Kill from dot to end of sentence./With arg, repeat, or backward if negative arg.w e?_b_a_c_k_w_a_r_d-_k_i_l_l-_s_e_n_t_e_n_c_eha)Kill back from dot to start of sentence.e.With arg, repeat, or forward if negative arg.ns7_m_a_r_k-_e_n_d-_o_f-_s_e_n_t_e_n_c_es_@Put mark at end of sentence. Arg works as in forward-sentence., ats % May 13, 1985w_i_" - 91 -f 8_t_r_a_n_s_p_o_s_e-_s_e_n_t_e_n_c_e_sg/Interchange this (next) and previous sentence.k__l_i_s_p-_m_o_d_ea"Major mode for editing Lisp code. Commands:1Delete converts tabs to spaces as it moves back.s1Tab indents for Lisp; with argument, shifts rest. of expression rigidly with the current line.KMeta-Control-Q does Tab on each line starting within following expression. JMeta-Control-X evaluates the largest Lisp expression around or after dot.=Blank lines separate paragraphs. Semicolons start comments.gn<_l_i_s_p-_i_n_t_e_r_a_c_t_i_o_n-_m_o_d_e_1Major mode for typing and evaluating Lisp forms.o>Like Lisp mode except that Linefeed evals the Lisp expressionB before dot, and prints its value into the buffer, advancing dot. Commands:1Delete converts tabs to spaces as it moves back.n1Tab indents for Lisp; with argument, shifts rest. of expression rigidly with the current line.KMeta-Control-Q does Tab on each line starting within following expression.tJMeta-Control-X evaluates the largest Lisp expression around or after dot.JParagraphs are separated only by blank lines. Semicolons start comments.ep7_e_v_a_l-_p_r_i_n_t-_l_a_s_t-_s_e_x_pap=Evaluate sexp before point; print value into current buffer.een-_l_i_s_p-_i_n_d_e_n_t-_l_i_n_ent"Indent current line as Lisp code.BWith argument, indent any additional lines of the same expressionrigidly along with this one. hf<_c_a_l_c_u_l_a_t_e-_l_i_s_p-_i_n_d_e_n_t >Return appropriate indentation for current line as Lisp code.;In usual case returns an integer: the column to indent to.ACan instead return a list, whose car is the column to indent to. AThis means that following lines at the same level of indentation_1should not necessarily be indented the same way.r6The second element of the list is the buffer position+of the start of the containing expression. nit .% May 13, 1985-_pi_" - 92 -da _i_n_d_e_n_t-_s_e_x_p6Indent each line of the list starting just after dot.a6_i_n_d_e_n_t-_c_o_d_e-_r_i_g_i_d_l_ytKIndent all lines of code, starting in the region, sideways by ARG columns.u;Does not affect lines starting inside comments or strings,e:assuming that the start of the region is not inside them.BCalled from a program, takes three arguments, START, END and ARG.  _t_e_x_t-_m_o_d_e9Major mode for editing text intended for humans to read._>Tab is tab-to-tab-stop. (Set tab stops with edit-tab-stops.)4Meta-s is center-line. Meta-S is center-paragraph._3_i_n_d_e_n_t_e_d-_t_e_x_t-_m_o_d_eg BMajor mode for editing indented text intended for humans to read.6Tab runs indent-relative, indent under previous line.4Meta-s is center-line. Meta-S is center-paragraph.at/_c_e_n_t_e_r-_p_a_r_a_g_r_a_p_h 3Center each line in the paragraph at or after dot.tSee center-line for more info._as&_c_e_n_t_e_r-_r_e_g_i_o_n-)Center each line starting in the region.SSee center-line for more info.n_ _c_e_n_t_e_r-_l_i_n_e_Center the line dot is on.i.This means adjusting its indentation to match:the distance between the end of the text and fill-column.ie*_s_e_t-_f_i_l_l-_p_r_e_f_i_xt3Set the fill-prefix to the current line up to dot.4Filling expects lines to start with the fill prefix6and reinserts the fill prefix in each resulting line.__g_% May 13, 1985eg. t" - 93 -e_C_f_i_l_l-_r_e_g_i_o_n-_a_s-_p_a_r_a_g_r_a_p_has>Fill region as one paragraph: break lines to fit fill-column.Prefix arg means justify too.4>From program, pass args FROM, TO and JUSTIFY-FLAG.hi)_f_i_l_l-_p_a_r_a_g_r_a_p_hl Fill paragraph at or after dot."Prefix arg means justify as well.pi _f_i_l_l-_r_e_g_i_o_n+Fill each of the paragraphs in the region. 7Prefix arg (non-nil third arg, if called from program)9means justify as well.lr_9_j_u_s_t_i_f_y-_c_u_r_r_e_n_t-_l_i_n_ero9Add spaces to line dot is in, so it ends at fill-column.xga_c-_m_o_d_eF Major mode for editing C code.U8Expression and list commands understand all C brackets.Tab indents for C code.DMeta-Control-Q indents all lines within following bracket-grouping.'Comments are delimited with /* ... */. .Paragraphs are separated by blank lines only.-AMeta-Control-H puts mark at end of C function and dot before it.1Delete converts tabs to spaces as it moves back.-_)Variables controlling indentation style:n c-auto-newlineA Non-nil means automatically newline before and after braces,g< and after colons and semicolons, inserted in C code. c-indent-level8 Number of columns for each nesting level in C code. c-brace-offsetJ Offset of indentation of braces relative to containing nesting level. c-argdecl-indent? Indentation level of declarations of C function arguments.o c-label-offsetO Offset of C label lines and case statements relative to usual indentation. ln-_e_l_e_c_t_r_i_c-_c-_b_r_a_c_ea 1Insert character and correct line's indentation.rl  % May 13, 1985d-e b" - 94 - o*_e_l_e_c_t_r_i_c-_c-_s_e_m_io1Insert character and correct line's indentation.ae<_e_l_e_c_t_r_i_c-_c-_t_e_r_m_i_n_a_t_o_rr1Insert character and correct line's indentation. en$_c-_i_n_d_e_n_t-_l_i_n_etIndent current line as C code._6Argument means shift any additional lines of groupingrigidly with thls line.rl3_c_a_l_c_u_l_a_t_e-_c-_i_n_d_e_n_t;Return appropriate indentation for current line as C code.l;In usual case returns an integer: the column to indent to.d?Returns nil if line starts inside a string, t if in a comment.__*_m_a_r_k-_c-_f_u_n_c_t_i_o_nr1Put mark at end of C function, dot at beginning._e!_i_n_d_e_n_t-_c-_e_x_prt2Indent each line of the C grouping following dot. e_k_e_e_p-_l_i_n_e_sli0Delete lines not containing matches for REGEXP.Applies to lines after dot.oa _f_l_u_s_h-_l_i_n_e_sc,Delete lines containing matches for REGEXP.Applies to lines after dot.if_h_o_w-_m_a_n_yi 2Print number of matches for REGEXP following dot.n__o_c_c_u_r k  C% May 13, 1985_e__" - 95 -  r3Show all lines containing of REGEXP following dot.n6Display each line with NLINES lines before and after.;NLINES defaults to 0. Interactively it is the prefix arg.-_ _a_b_b_r_e_v-_m_o_d_e Toggle abbrev mode.3With arg, turn abbrev mode on iff arg is positive.a>In abbrev mode, inserting an abbreviation causes it to expand"and be replaced by its expansion.-_k_i_l_l-_a_l_l-_a_b_b_r_e_v_sUndefine all defined abbrevs. -)_i_n_s_e_r_t-_a_b_b_r_e_v_snf7Insert after dot a description of all defined abbrevs.i%Mark is set after the inserted text. 0I#_l_i_s_t-_a_b_b_r_e_v_s'Display a list of all defined abbrevs.ga#_e_d_i_t-_a_b_b_r_e_v_soo4Alter abbrev definitions by editing a list of them.:Selects a buffer containing a list of abbrev definitions.7You can edit them and type C-X C-S to redefine abbrevseaccording to your editing.f5Buffer contains a header line for each abbrev table,_0 which is the abbrev table name in parentheses.7This is followed by one line per abbrev in that table:x#NAME USECOUNT EXPANSION HOOK2where NAME and EXPANSION are strings with quotes,7USECOUNT is an integer, and HOOK is any valid function+or may be omitted (it is usually omitted). m<_e_d_i_t-_a_b_b_r_e_v_s-_r_e_d_e_f_i_n_ea6Redefine abbrevs according to current buffer contentsno)_d_e_f_i_n_e-_a_b_b_r_e_v_sl  hb l% May 13, 1985nrhss" - 96 -t l=Define abbrevs according to current visible buffer contents.N@See documentation of edit-abbrevs for info on the format of the"text you must have in the buffer.7With argument, eliminate all abbrev definitions excepta&the ones defined from the buffer now.a-_r_e_a_d-_a_b_b_r_e_v-_f_i_l_eceBRead abbrev definitions from file written with write-abbrev-file.b C_q_u_i_e_t_l_y-_r_e_a_d-_a_b_b_r_e_v-_f_i_l_e  BRead abbrev definitions from file written with write-abbrev-file.r 0_w_r_i_t_e-_a_b_b_r_e_v-_f_i_l_e-3Write all abbrev definitions to file of Lisp code. 3The file can be loaded to define the same abbrevs.b i*_a_d_d-_m_o_d_e-_a_b_b_r_e_vf9Define mode-specific abbrev for last word(s) before dot._:Argument is how many words before dot form the expansion;+or zero means the region is the expansion.*Reads the abbreviation in the minibuffer.  0_a_d_d-_g_l_o_b_a_l-_a_b_b_r_e_ve>Define global (all modes) abbrev for last word(s) before dot.:Argument is how many words before dot form the expansion;+or zero means the region is the expansion.s*Reads the abbreviation in the minibuffer._@_i_n_v_e_r_s_e-_a_d_d-_m_o_d_e-_a_b_b_r_e_vr7Define last word before dot as a mode-specific abbrev.e2With argument N, defines the Nth word before dot.'Reads the expansion in the minibuffer.u,Expands the abbreviation after defining it.bF_i_n_v_e_r_s_e-_a_d_d-_g_l_o_b_a_l-_a_b_b_r_e_vtCDefine last word before dot as a global (mode-independent) abbrev.r2With argument N, defines the Nth word before dot.'Reads the expansion in the minibuffer.,Expands the abbreviation after defining it._e% May 13, 1985sm-ccb" - 97 -hr3_a_b_b_r_e_v-_p_r_e_f_i_x-_m_a_r_k.0Mark current dot as the beginning of an abbrev.1Abbrev to be expanded starts here rather than at_7beginning of word. This way, you can expand an abbrevs4with a prefix: insert the prefix, use this command,then insert the abbrev.et<_e_x_p_a_n_d-_r_e_g_i_o_n-_a_b_b_r_e_v_sa9For abbrev occurrence in the region, offer to expand it. 6The user is asked to type y or n for each occurrence.  -_B_u_f_f_e_r-_m_e_n_u-_m_o_d_ei*Major mode for editing a list of buffers.1Each line describes one of the buffers in Emacs. >Letters do not insert themselves; instead, they are commands."m -- mark buffer to be displayed.-q or C-Z -- select buffer of line dot is on.i4 Also show buffers marked with m in other windows./1 -- select that buffer in full-screen window.v'2 -- select that buffer in one window,dC together with buffer selected before this one in another window. )~ -- clear modified-flag on that buffer._#s -- mark that buffer to be saved.s7d or k or C-D or C-K -- mark that buffer to be killed. "x -- kill or save marked buffers.2u -- remove all kinds of marks from current line.+Delete -- back up a line and remove marks.efn-_B_u_f_f_e_r-_m_e_n_u-_n_a_m_e n=Return name of buffer described by this line of buffer menu..- _b_u_f_f_e_r-_m_e_n_u=Make a menu of buffers so you can save, kill or select them.o:With argument, show only buffers that are visiting files.BType ? after invocation to get help on commands available within. k-_B_u_f_f_e_r-_m_e_n_u-_m_a_r_k r;Mark buffer on this line for being displayed by q command.u e3_B_u_f_f_e_r-_m_e_n_u-_u_n_m_a_r_kn8Cancel all requested operations on buffer on this line.iio% May 13, 1985rm_" - 98 -a F_B_u_f_f_e_r-_m_e_n_u-_b_a_c_k_u_p-_u_n_m_a_r_kfEMove up and cancel all requested operations on buffer on line above.n-_B_u_f_f_e_r-_m_e_n_u-_k_i_l_lk4Mark buffer on this line to be killed by x command.m.-_B_u_f_f_e_r-_m_e_n_u-_s_a_v_e_3Mark buffer on this line to be saved by x command.benC_B_u_f_f_e_r-_m_e_n_u-_n_o_t-_m_o_d_i_f_i_e_d=Mark buffer on this line as unmodified (no changes to save).f_3_B_u_f_f_e_r-_m_e_n_u-_s_e_l_e_c_tf?Select this line's buffer; also display buffers marked with >.b.&_e_m_a_c_s-_v_e_r_s_i_o_n_lkf t e keycam.u_rm_a_% May 13, 1985evb 'From bbanerje Tue May 14 10:12:19 1985m$Received: by sjuvax.UUCP (4.12/4.7)) id AA26247; Tue, 14 May 85 10:12:14 edtn"Date: Tue, 14 May 85 10:12:14 edtFrom: bbanerje (B. Banerjee)_-Message-Id: <8505141412.AA26247@sjuvax.UUCP>e To: mendenha Subject: Emacs Key mappings Status: R_#Emacs command summary, Tue May 14._3C- set-mark-command C-q quoted-insert7C-a beginning-of-line C-r isearch-backwarda3C-b backward-char C-s isearch-forward8C-c exit-recursive-edit C-t transpose-chars4C-d delete-char C-u universal-argument+C-e end-of-line C-v scroll-up .C-f forward-char C-w kill-region3C-h help-command C-x Control-X-prefix0C-i indent-for-tab-command C-y yank5C-j newline-and-indent C-z suspend-emacs-*C-k kill-line ESC ESC-prefix3C-l recenter C-] abort-recursive-edit "C-m newline C-_ undo3C-n next-line .. ~ self-insert-command 4C-o open-line C-? delete-backward-charC-p previous-line d3C-x C-a add-mode-abbrev C-x 4 ctl-x-4-prefixa<C-x C-b list-buffers C-x 5 split-window-horizontally>C-x C-c save-buffers-kill-emacs C-x ; set-comment-column0C-x C-d list-directory C-x < scroll-left9C-x C-e eval-last-sexp C-x = what-cursor-position ,C-x C-f find-file C-x > scroll-right2C-x C-h add-mode-abbrev C-x [ backward-page1C-x C-i indent-rigidly C-x ] forward-pageo3C-x C-l downcase-region C-x ^ enlarge-windowp5C-x C-n set-goal-column C-x a append-to-buffer 8C-x C-o delete-blank-lines C-x b switch-to-buffer%C-x C-p mark-page C-x d diredf9C-x C-q toggle-read-only C-x e call-last-kbd-macro-8C-x C-r find-file-read-only C-x f set-fill-column1C-x C-s save-buffer C-x g insert-register-6C-x C-t transpose-lines C-x h mark-whole-buffer/C-x C-u upcase-region C-x i insert-filel8C-x C-v find-alternate-file C-x j register-to-dot,C-x C-w write-file C-x k kill-buffer;C-x C-x exchange-dot-and-mark C-x l count-lines-pagee(C-x C-z suspend-emacs C-x m mail<C-x ESC repeat-complex-command C-x n narrow-to-region7C-x $ set-selective-display C-x o other-window 3C-x ( start-kbd-macro C-x p narrow-to-page->C-x ) end-kbd-macro C-x r copy-rectangle-to-register8C-x + add-global-abbrev C-x s save-some-buffers+C-x - add-global-abbrev C-x u undoj*C-x . set-fill-prefix C-x w widen5C-x / dot-to-register C-x x copy-to-register >C-x 0 delete-window C-x { shrink-window-horizontallyEC-x 1 delete-other-windows C-x } enlarge-window-horizontally-BC-x 2 split-window-vertically C-x C-? backward-kill-sentencek2ESC C-@ mark-sexp ESC = count-lines-region5ESC C-a beginning-of-defun ESC > end-of-buffer -ESC C-b backward-sexp ESC mark-wordr;ESC C-c exit-recursive-edit ESC [ backward-paragrapht7ESC C-d down-list ESC \ delete-horizontal-space 4ESC C-e end-of-defun ESC ] forward-paragraph5ESC C-f forward-sexp ESC ^ delete-indentation-2ESC C-h mark-defun ESC a backward-sentence9ESC C-j indent-new-comment-line ESC b backward-wordl/ESC C-k kill-sexp ESC c capitalize-wordu,ESC C-n forward-list ESC d kill-word1ESC C-o split-line ESC e forward-sentence 0ESC C-p backward-list ESC f forward-word7ESC C-s isearch-forward-regexp ESC g fill-region 3ESC C-t transpose-sexps ESC h mark-paragraphe=ESC C-u backward-up-list ESC j indent-new-comment-lineC6ESC C-v scroll-other-window ESC k kill-sentence3ESC C-w append-next-kill ESC l downcase-wordi8ESC ESC eval-expression ESC m back-to-indentation2ESC C-\ indent-region ESC q fill-paragraph8ESC just-one-space ESC r move-to-screen-line3ESC ! shell-command ESC t transpose-wordsw/ESC % query-replace ESC u upcase-wordf3ESC ' abbrev-prefix-mark ESC v scroll-downk6ESC ( insert-parentheses ESC w kill-ring-saveIESC ) move-past-close-and-reindent ESC x execute-extended-command0ESC , tags-loop-continue ESC y yank-pop2ESC - negative-argument ESC z zap-to-char6ESC . find-tag ESC | shell-command-on-region7ESC 0 .. ESC 9 digit-argument ESC ~ not-modifiedn:ESC ; indent-for-comment ESC C-? backward-kill-wordESC < beginning-of-buffer  DC-x 4 C-f find-file-other-window C-x 4 d dired-other-windowAC-x 4 . find-tag-other-window C-x 4 f find-file-other-windowv5C-x 4 b pop-to-buffer C-x 4 m mail-other-windowmd*Local Bindings for Lisp Interaction Mode:-:C-i lisp-indent-line C-j eval-print-last-sexp4C-? backward-delete-char-untabify ESC ?? ,ESC C-q indent-sexp ESC C-x eval-defund'From bbanerje Thu Apr 25 16:24:26 1985 $Received: by sjuvax.UUCP (4.12/4.7)) id AA08928; Thu, 25 Apr 85 16:24:02 estl"Date: Thu, 25 Apr 85 16:24:02 estFrom: bbanerje (B. Banerjee)e-Message-Id: <8504252124.AA08928@sjuvax.UUCP>- To: mendenhauSubject: Emacs & Lisp Status: RdFrom: neves@uwai.UUCP$Newsgroups: net.emacs,net.lang.lispSubject: Lisp and GNU Emacsna2 ** Interacting with Lisp in GNU Emacs. ** bugs to David NevesnCGNU Emacs has a complete Lisp interpreter embedded in it. You can ?play with it by typing an s-expression in the *scratch* buffer5&and then hitting a linefeed (ctrl-j).5AHowever it will often be the case some other Lisp is needed (for2Fexample Franz Lisp). This note is to illustrate one way of debuggingCLisp code by quickly going between the code in an Emacs buffer andsCthe Lisp interpreter. (There is also Ledit mode but I do not know how to use it.)Preliminaries.ie1. Enter Emacs%2. Start up a shell buffer by doingd Meta-X shell C (to see the things you can do in a shell buffer type ctrl-h m)h?3. When you see the unix prompt (%) type lisp to enter Franz.s34. load your lisp file into Franz. (load "foo.l")pG5. load your lisp file into Emacs (with ctrl-x ctrl-f foo.l )yi(To send a function from Emacs to Franz.N1. Mark the Lisp function (by executing Meta-Ctrl-d, ie. ).22. Send the region to the lisp process by doing  Meta-X send-region d shell @3. To go back to the shell (Lisp) buffer do a ctrl-x b IThat's it. One could write two functions to automate steps 1, 2, and 3.r s (defun mark-send nil = "mark the current defun and send it to the shell buffer"s (interactive) (save-excursion (mark-defun)f8 (exchange-dot-and-mark) ;send a carriage return, (beginning-of-line) ;after the 1 (next-line 1) ;defun for Franz+ (send-region "shell" (mark) (dot))))u (defun mark-send-go nilI "mark the current defun, send it to shell buffer, goto shell buffer"  (interactive) (mark-send)" (switch-to-buffer "*shell*")) BIt is possible to put these functions on a key (or several keys).EFor example, let us put mark-send on Meta-Ctrl-x and mark-send-go ongEMeta-Ctrl-z so that we can call them when in Lisp-Mode. After doing <this we send a defun to lisp by moving the cursor to it and;hitting Meta-Ctrl-x. If we wanted to go back to the shelld!buffer we would hit Meta-Ctrl-z.hu/ (define-key lisp-mode-map "\e\^x" 'mark-send)b2 (define-key lisp-mode-map "\e\^z" 'mark-send-go)iAIf using these functions quite often you might want to place thenCfunctions and the define-keys in your .emacs file (which is loadedMEautomatically when emacs is called). You can also execute functionsw>directly: e.g. by typing Meta- (mark-send-go) .o-- David NevesComputer Sciences Departmentf University of Wisconsin-Madison>Usenet: {allegra,heurikon,ihnp4,seismo,uwm-evax}!uwvax!nevesArpanet: neves@uwvaxb(ik