1{\rtf1\ansi \deff0{\fonttbl{\f0\froman Tms Rmn;}{\f1\froman Symbol;}{\f2\fswiss Helv;}{\f3\froman Times New Roman;}{\f4\fswiss Arial;}{\f5\froman Roman PS;}{\f6\fswiss Sans Serif PS;}{\f7\fmodern Sans Serif 10cpi;} 2{\f8\fmodern Sans Serif 12cpi;}{\f9\fmodern Courier;}{\f10\fnil Preview;}{\f11\fswiss DIGITAL;}{\f12\fmodern Terminal;}{\f13\froman Roman;}{\f14\fscript Script;}{\f15\fmodern Modern;}{\f16\fnil 8514oem;}{\f17\fnil 8514fix;}{\f18\fswiss System;} 3{\f19\fmodern Sans Serif 6cpi;}{\f20\fmodern Sans Serif 5cpi;}{\f21\fmodern Sans Serif 17cpi;}{\f22\fmodern Roman 6cpi;}{\f23\fmodern Roman 5cpi;}{\f24\fmodern Roman 17cpi;}{\f25\fmodern Roman 12cpi;}{\f26\fmodern Roman 10cpi;}{\f27\fmodern Courier New;}} 4{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;}{\stylesheet{\s244 \f4\fs16\up6 5\sbasedon0\snext0 footnote reference;}{\s245 \f4\fs20 \sbasedon0\snext245 footnote text;}{\s246\li720 \i\f4\fs20 \sbasedon0\snext255 heading 9;}{\s247\li720 \i\f4\fs20 \sbasedon0\snext255 heading 8;}{\s248\li720 \i\f4\fs20 \sbasedon0\snext255 heading 7;}{ 6\s249\li720 \f4\fs20\ul \sbasedon0\snext255 heading 6;}{\s250\li720 \b\f4\fs20 \sbasedon0\snext255 heading 5;}{\s251\sa120\tx2880 \b\f4\fs20 \sbasedon0\snext255 heading 4;}{\s252\sa120\tx2880 \b\f4 \sbasedon0\snext255 heading 3;}{\s253\sa240\tx2880 7\b\f4\cf2 \sbasedon0\snext0 heading 2;}{\s254\qc\sa240 \b\f4\fs30\cf2 \sbasedon0\snext0 heading 1;}{\s255\li720 \f4\fs20 \sbasedon0\snext255 Normal Indent;}{\f4\fs20 \snext0 Normal;}{\s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 \sbasedon0\snext2 Func List;}{ 8\s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \sbasedon2\snext3 Binding;}{\s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 \sbasedon0\snext4 Example;}{\s5\sa240\tx2880 \f4\fs20\cf2 \sbasedon0\snext5 Title;}{\s6\sa120 \f4\fs20 9\sbasedon0\snext6 Main Text;}{\s7\fi-1080\li1440\sa120\tx1440\tx2880 \f4\fs20 \sbasedon2\snext7 Char List;}{\s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \sbasedon0\snext8 Steps;}{\s9\sa120\tx180\tx1980\tx3780\tx5580\tx8550 \f4\fs20 10\sbasedon6\snext9 Glossary;}{\s10\fi-2520\li2880\sa120\sl120\tx2880 \f4\fs20 \sbasedon2\snext10 interline;}{\s11\li360\sa120\tx2880 \f4\fs20 \sbasedon6\snext11 Jump List;}{\s12\fi-720\li720\sa120 \f4\fs20 \sbasedon6\snext12 Note;}{ 11\s13\fi-2880\li2880\sa120\tx900\tx2880 \f4\fs20 \sbasedon3\snext13 FunctionDesc;}{\s14\fi-900\li900\sa120\tqr\tx720\tx900 \f4\fs20 \sbasedon3\snext14 BindingShort;}}{\info{\title MicroEmacs main help topic file}{\author Pierre Perret} 12{\operator Pierre & Beatrice Perret}{\creatim\yr1991\mo12\dy6\hr14\min36}{\revtim\yr1992\mo10\dy12\hr20\min33}{\version218}{\edmins6612}{\nofpages0}{\nofwords65537}{\nofchars65536}{\vern8368}}\paperh31680\widowctrl\ftnbj\hyphhotz0 \sectd \linex0\endnhere 13\pard\plain \s254\qc \b\f4\fs30\cf2 {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Index}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MainIndex}} {\plain \f4\fs16\up6 +{\footnote \pard\plain \s245 14\f4\fs20 {\fs16\up6 +} Index:0000}} MicroEMACS 4.0 for MS-Windows 15\par \pard \s254\qc\sa240 Index 16\par \pard\plain \s11\li360\sa120\tx2880 \f4\fs20 {\uldb Introduction}{\v Introduction} 17\par \pard \s11\li360\tx2880 {\uldb Keyboard}{\v Keyboard} 18\par {\uldb Procedures}{\v Procedures} 19\par {\uldb Modes of Operation}{\v ModesOfOperation} 20\par {\uldb Macro Language}{\v MacroLanguage} 21\par {\uldb Start-up}{\v Startup} 22\par {\uldb Memory Usage}{\v MemoryUsage} 23\par \pard \s11\li360\sa120\tx2880 {\uldb MS-Windows Specifics}{\v Ms_WindowsSpecifics} 24\par {\uldb Glossary}{\v Glossary} 25\par \pard \s11\li360\tx2880 {\uldb History}{\v History} 26\par {\uldb Support}{\v Support} 27\par \pard \s11\li360\sa120\tx2880 {\uldb Copyright}{\v Copyright} 28\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\cf2 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Introduction}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Introduction}} {\plain 29\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:0005}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} intro;introduction;beginning;basics}} Introduction 30\par \pard\plain \f4\fs20 MicroEMACS is a tool for creating and changing documents, programs, and other text files. It is both relatively easy for the novice to use, but also very powerful in the hands of an expert. 31MicroEMACS can be extensively customized for the needs of the individual user. 32\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS allows several files to be edited at the same time. The display can be split into different {\ul windows}{\v Window} and {\ul screens}{\v Screen}, and text may be moved freely from one window on any s 33creen to the next. Depending on the type of file being edited, MicroEMACS can change how it behaves to make editing simple. Editing standard text files, program files and word processing documents are all possible at the same time. 34\par There are extensive capabilities to make word processing and editing easier. These include commands for string searching and replacing, paragraph reformatting and deleting, automatic word wrapping, word move and deletes, easy case controlling, and automat 35ic word counts. 36\par For complex and repetitive editing tasks editing {\ul macros}{\v Macro} can be written. These macros allow the user a great degree of flexibility in determining how MicroEMACS behaves. Also, any and all the {\ul commands}{\v Command} 37 can be used by any keystroke by changing, or {\ul rebinding}{\v Binding}, what commands various keys invoke. 38\par Special features are also available to perform a diverse set of operations such as file encryption, automatic backup file generation, entabbing and detabbing lines, executing operating system commands and fil 39tering of text through other programs (like SORT to allow sorting text). 40\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} History}}{\plain \f4\fs16 }{\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} History}} 41{\plain \f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:9010}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} history;author;credits}} History 42\par \pard\plain \s6\sa120 \f4\fs20 EMACS was originally a text editor written by Richard Stallman at MIT in the early 1970s for Digital Equipment computers. Various versions, rewrites and clones have made an appearance since. 43\par This version of MicroEMACS is derived from code written by David G. Conroy in 1985. Later modifications were performed by Steve Wilhite and George Jones. In December of 1985 {\uldb Daniel Lawrence}{\v DanielLawrence} 44 picked up the then current source (version 2.0) and made extensive modifications and additions to it over the course of the next six years. 45\par In November 1990, {\uldb Pierre Perret}{\v PierrePerret} 46 produced a port of MicroEMACS 3.10e to the Microsoft Windows 3.0 environment (BETA version 0.6a which never enjoyed a full release). The first public version, 1.0, based on MicroEMACS 3.11c, was released in April 1992. 47\par Update 1.1 included bug fixes, port to Windows NT, support of scroll bars and drag and drop mechanism. It was the first release to include a complete help file. 48\par The new version 4.0 of MicroEMACS incorporates the port of the editor to MS-Windows, adding many new features, among which the capabilities to highlight selected regions of text, and to undo arbitrary editing changes. 49\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Support} #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Support}} {\plain \f4\fs16\up6 +{\footnote 50\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:9020}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} support;bugs;author;credits;licence;updates}} Support 51\par \pard\plain \s6\sa120 \f4\fs20 Updates and support for the current version are available. Commercial support and usage and resale licences are also available. 52\par For questions regarding the official MicroEMACS editor, contact {\uldb Daniel Lawrence}{\v DanielLawrence}. For technical questions specific to the port of MicroEMACS to the Microsoft Windows environment, contact {\uldb Pierre Perret}{\v PierrePerret}. 53 54\par The home BBS of MicroEMACS is "{\uldb The Programmer's Room}{\v TheProgrammersRoom}". 55\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Bulletin Board System}}{\plain \f4\fs16 }{\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 56 TheProgrammersRoom}} {\plain \f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:9500}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} BBS;bulletin board;home;support;author;updates;programmer's room;modem}} 57 Bulletin Board System 58\par \pard\plain \s6\sa120 \f4\fs20 The latest executables, sources and documentations can be obtained from: 59\par \pard\plain \s7\fi-1080\li1440\tx1440\tx2880 \f4\fs20 {\b The Programmer's Room 60\par \tab }(317) 742-5533 61\par \tab 486/33 running FREEBSD 62\par \tab Interntet: aquest.com 63\par \tab 19,200 bps (US Robotics HST) 64\par \pard \s7\fi-1080\li1440\sa120\tx1440\tx2880 \tab (317) 742-5533 no parity 8 data bits no stop bits 65\par \pard\plain \s6\sa120 \f4\fs20 \page {\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Daniel Lawrence}} {\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} DanielLawrence}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 { 66\fs16\up6 +} Index:9510}} {\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} Lawrence;author;standard;address}} The current MicroEMACS author can be contacted by writing to: 67\par \pard\plain \s7\fi-1080\li1440\tqr\tx1260\tx1440\tx2880 \f4\fs20 \tab USMAIL:\tab {\b Daniel Lawrence} 68\par \tab \tab 617 New York Street 69\par \pard \s7\fi-1080\li1440\sa120\tqr\tx1260\tx1440\tx2880 \tab \tab Lafayette, IN 47901 70\par \tab Internet:\tab dan@aquest.com 71\par phone:\tab (317) 742-5153 (Please evenings only) 72\par \pard \s7\fi-1440\li1440\tqr\tx1260\tx1440\tx2880 {\uldb The Programmer's Room}{\v TheProgrammersRoom} BBS: 73\par \pard \s7\fi-1440\li1440\sa120\tqr\tx1260\tx1440\tx2880 \tab \tab Daniel Lawrence 74\par \pard\plain \s6\sa120 \f4\fs20 \page {\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Pierre Perret}} {\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} PierrePerret}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 { 75\fs16\up6 +} Index:9510}} {\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} Perret;author;Microsoft Windows;MS Windows;address}} The author of the port of MicroEMACS to the Microsoft Windows environment can be contacted by writing to: 76\par \pard\plain \s7\fi-1080\li1440\tqr\tx1260\tx1440\tx2880 \f4\fs20 \tab USMAIL:\tab {\b Pierre Perret} 77\par \tab \tab 4326 W Michigan Ave 78\par \pard \s7\fi-1080\li1440\sa120\tqr\tx1260\tx1440\tx2880 \tab \tab Glendale, AZ 85308 79\par \tab Internet:\tab P.Perret@az05.bull.com 80\par \pard \s7\fi-1440\li1440\sa120\tqr\tx1260\tx1440\tx2880 \tab CompuServe:\tab 73757,2337 81\par \pard \s7\fi-1440\li1440\tqr\tx1260\tx1440\tx2880 {\uldb The Programmer's Room}{\v TheProgrammersRoom} BBS: 82\par \pard \s7\fi-1440\li1440\sa120\tqr\tx1260\tx1440\tx2880 \tab \tab Pierre Perret 83\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Copyright}}{\plain \f4\fs16 }{\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Copyright}} 84{\plain \f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:9030}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} copyright;licence;author;credits}} Copyright 85\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS is Copyright \'a9 1988 thru 1996 by {\uldb Daniel M. Lawrence}{\v DanielLawrence} 86. MicroEMACS 4.0 can be copied and distributed freely for any non-commercial purposes. Commercial users may use MicroEMACS 4.0 in house. Shareware distributors may redistribute MicroEMACS 4.0 for media costs only. MicroEMACS 4.0 can only be incorporated i 87nto commercial software or resold with the permission of the current author. 88\par This help file was originally authored by {\uldb Pierre Perret}{\v PierrePerret}. 89\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Keyboard}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Keyboard}} {\fs16\up6 +{\footnote 90\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2010}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} keyboard;binding}} Keyboard 91\par \pard\plain \s6\sa120 \f4\fs20 All the MicroEMACS documentation talks about {\ul commands}{\v Command} and the {\uldb keystrokes}{\v Keystroke} needed to use them. Each MicroEMACS command has a name, and most of them are {\ul bound}{\v Binding} 92 to a sequence of keys. Some of them are bound to {\uldb mouse actions}{\v MouseAction}. The following commands are useful when looking for a binding: 93\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-?}{\v Keystroke}\tab {\uldb apropos}{\v apropos}\tab looks up commands 94\par \tab \tab {\uldb describe-bindings}{\v describe_bindings}\tab lists all the bindings 95\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X?}{\v Keystroke}\tab {\uldb describe-key}{\v describe_key}\tab displays the command bound to a keystroke 96\par \pard\plain \s6\sa120 \f4\fs20 In this help file, when a command is mentioned, its default key binding is often shown. Note that these bindings can be {\uldb modified}{\v CustomizingCommandKeys}, in particular by the {\uldb start-up file}{\v StartupFile}. 97 98\par Keystrokes for commands include one of several prefixes, and a command character. Command keystrokes look like these: 99\par \pard\plain \s14\fi-900\li900\tqr\tx720\tx900 \f4\fs20 \tab {\ul ^A}{\v Keystroke}\tab hold down Ctrl, press 'A' 100\par \tab {\ul M-A}{\v Keystroke}\tab press the {\ul meta key}{\v MetaKey}, release it and press 'A' 101\par \tab {\ul ^XA}{\v Keystroke}\tab hold down Ctrl, press 'X', release, press 'A' 102\par \tab {\ul ^X^A}{\v Keystroke}\tab hold down Ctrl, press 'X', release, hold Ctrl, press 'A' 103\par \tab {\ul A-C}{\v Keystroke}\tab hold down Alt, press 'C' 104\par \tab {\ul S-FN1}{\v Keystroke}\tab hold down Shift, press function key F1 105\par \pard \s14\fi-900\li900\sa120\tqr\tx720\tx900 \tab {\ul FN^1}{\v Keystroke}\tab hold down Ctrl, press function key F1 106\par \pard\plain \s6\sa120 \f4\fs20 Under Microsoft Windows, key bindings are displayed in front of {\uldb menu items}{\v UsingMenus} 107, using a CUA type syntax instead of the above-mentioned one. Though this may seem inconsistent, it looks more familiar to inexperienced users and is far less cryptic when it comes to special keys (Ins, Del, Arrows...). 108\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 {\plain \f4\fs16\cf2 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Procedures}}{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Procedures} }{\plain \f4\fs16\up6 109+{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2020}}{\fs16\up6 }{\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} procedures}}{\fs16\up6 }Procedures 110\par \pard\plain \s6\sa120 \f4\fs20 {\uldb The Basics}{\v TheBasics}: 111\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb Getting at Files}{\v GettingAtFiles} 112\par {\uldb Searching and Replacing}{\v SearchingAndReplacing} 113\par {\uldb Cutting and Pasting}{\v CuttingAndPasting} 114\par {\uldb Using the Mouse}{\v UsingTheMouse} 115\par {\uldb Using Menus}{\v UsingMenus} 116\par {\uldb Customizing Command Keys}{\v CustomizingCommandKeys} 117\par {\uldb Issuing Commands by Name}{\v IssuingCommands} 118\par \pard \s11\li360\sa120\tx2880 {\uldb The Outside World}{\v TheOutsideWorld} 119\par \pard\plain \s6\sa120 \f4\fs20 Juggling: 120\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb Buffers}{\v Buffers} 121\par {\uldb Regions}{\v Regions} 122\par {\uldb Paragraphs}{\v Paragraphs} 123\par {\uldb Words}{\v Words} 124\par {\uldb Screens}{\v Screens} 125\par {\uldb Windows}{\v Windows} 126\par {\uldb Setting Colors}{\v Colors} 127\par \pard \s11\li360\sa120\tx2880 {\uldb Setting the Font}{\v Fonts} 128\par \pard\plain \s6\sa120 \f4\fs20 Advanced topics: 129\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb Case Control}{\v CaseControl} 130\par {\uldb Undoing Your Edits}{\v UndoingYourEdits} 131\par {\uldb Controlling Tabs}{\v ControllingTabs} 132\par {\uldb Repetitive Tasks}{\v RepetitiveTasks} 133\par {\uldb Narrowing Your Scope}{\v NarrowingYourScope} 134\par {\uldb Creating New Commands}{\v CreatingNewCommands} 135\par \pard \s11\li360\sa120\tx2880 {\uldb Customizing Menus}{\v CustomizingMenus} 136\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} The Basics}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} TheBasics}} {\fs16\up6 +{\footnote 137\pard\plain \s245 \f4\fs20 {\up6 +} Procedures:010}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} basics;introduction}} The Basics 138\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS is a very powerful tool to use for editing text files. It has many {\ul commands}{\v Command}, options and features to let you do 139 just about anything you can imagine with text. But don't let this apparent complexity keep you from using it.... MicroEMACS can also be very simple. 140\par To start editing text, all the keys you really need to know are the arrow keys. These keys let you move around in your file. 141\par MicroEMACS also works by using control keys. Here are a few basic commands: 142\par \pard\plain \s14\fi-900\li900\tqr\tx720\tx900 \f4\fs20 \tab {\ul ^P}{\v Keystroke}\tab Move upward 143\par \tab {\ul ^B}{\v Keystroke}\tab Move backward 144\par \tab {\ul ^F}{\v Keystroke}\tab Move forward 145\par \tab {\ul ^N}{\v Keystroke}\tab Move downward 146\par \tab {\ul ^X^S}{\v Keystroke}\tab Save your file 147\par \pard \s14\fi-900\li900\sa120\tqr\tx720\tx900 \tab {\ul ^X^C}{\v Keystroke}\tab Exit MicroEMACS 148\par \pard\plain \s6\sa120 \f4\fs20 A hat sign "{\b ^}" before a key means to hold the Ctrl key down and press the next character. For example, to exit MicroEMACS, hold down the Ctrl key and strike X and then C. 149\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Getting at Files}}{\plain \f4\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} GettingAtFiles} 150} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:020}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} file;open;save;read;write}} Getting at Files 151\par \pard\plain \s6\sa120 \f4\fs20 The way you edit a file within MicroEMACS is by first reading it into a {\ul buffer}{\v\ul Buffer}, altering it and then saving it. Therefore, the most commonly used {\ul commands}{\v Command} to access files are: 152\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X^F}{\v Keystroke}\tab {\uldb find-file}{\v find_file}\tab to read a file from disk for editing 153\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X^S}{\v Keystroke}\tab {\uldb save-file}{\v save_file}\tab to save an edited file to disk 154\par \pard\plain \s6\sa120 \f4\fs20 Other read commands are: 155\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X^I}{\v Keystroke}\tab {\uldb insert-file}{\v insert_file}\tab to insert at the {\ul point}{\v Point} 156\par \tab {\ul ^X^R}{\v Keystroke}\tab {\uldb read-file}{\v read_file}\tab to replace the whole buffer contents 157\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X^V}{\v Keystroke}\tab {\uldb view-file}{\v view_file}\tab to read for viewing, preventing any alterations 158\par \pard\plain \s6\sa120 \f4\fs20 To save a buffer to another file than the one MicroEMACS would normally access, use: 159\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X^W}{\v Keystroke}\tab {\uldb write-file}{\v write_file}\tab to overwrite the file's previous contents 160\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X^A}{\v Keystroke}\tab {\uldb append-file}{\v append_file}\tab to append to the end of the file 161\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Searching and Replacing}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SearchingAndReplacing}} { 162\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:030}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} search;replace}} Searching and Replacing 163\par \pard\plain \s6\sa120 \f4\fs20 Commands for searching for and replacing strings come in a number of different flavors. The simplest {\ul command}{\v Command} is: 164\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^S}{\v Keystroke}\tab {\uldb search-forward}{\v search_forward} 165\par \pard\plain \s6\sa120 \f4\fs20 Following that, you can search for yet another occurrence of the same string by using: 166\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul A-S}{\v Keystroke}\tab {\uldb hunt-forward}{\v\uldb hunt_forward} 167\par \pard\plain \s6\sa120 \f4\fs20 You can also search towards the beginning of the file instead of towards the end by using: 168\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^R}{\v Keystroke}\tab {\uldb search-reverse}{\v\uldb search_reverse} 169\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul A-R}{\v Keystroke}\tab {\uldb hunt-backward}{\v\uldb hunt_backward} 170\par \pard\plain \s6\sa120 \f4\fs20 To replace strings, use: 171\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-R}{\v Keystroke}\tab {\uldb replace-string}{\v\uldb replace_string}\tab to replace all occurrences 172\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-^R}{\v Keystroke}\tab {\uldb query-replace-string}{\v\uldb query_replace_string}\tab to get queried for each replacement{\uldb 173\par }\pard\plain \s6\sa120 \f4\fs20 MicroEMACS also supports incremental searching: 174\par \pard\plain \s3\fi-3600\li3600\tqr\tx720\tx900\tx3600 \f4\fs20 \tab {\ul ^XS}{\v Keystroke}\tab {\uldb incremental-search}{\v incremental_search}\tab towards the beginning 175\par \pard \s3\fi-3600\li3600\sa120\tqr\tx720\tx900\tx3600 \tab {\ul ^XR}{\v Keystroke}\tab {\uldb reverse-incremental-search}{\v reverse_incremental_search}\tab towards the end 176\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Cutting and Pasting}}{\plain \f4\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 177 CuttingAndPasting}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:040}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} cut;paste;move;kill;copy;clipboard}} Cutting and Pasting 178\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS allows you to manipulate text by blocks of any size. You can {\uldb copy}{\v CopyingText} or {\uldb move}{\v MovingText} text within MicroEMACS through the {\ul kill buffer}{\v\ul KillBuffer}. 179\par Under Microsoft Windows, you can also exchange text with other Windows applications via the {\ul clipboard}{\v Clipboard}, using the {\uldb cut-region}{\v\uldb cut_region}, {\uldb clip-region}{\v\uldb clip_region} and {\uldb insert-clip}{\v\uldb 180insert_clip} commands. 181\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Moving Text}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MovingText} +{\footnote \pard\plain \s245 182\f4\fs20 {\fs16\up6 +} CuttingAndPasting:movingtext} }{\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} move}}{\fs16\up6 }Moving Text 183\par \pard\plain \s6\sa120 \f4\fs20 To move text from one place to another: 184\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1.\tab Move to the beginning of the text you want to move. 185\par 2.\tab Set the {\ul mark}{\v\ul Mark} there with the {\uldb set-mark}{\v\uldb set_mark} ({\ul M- }{\v Keystroke}) command. 186\par 3.\tab Move the {\ul point}{\v\ul Point} to the end of the text. 187\par 4.\tab Use the {\uldb kill-region}{\v\uldb kill_region} ({\ul ^W}{\v Keystroke}) command to delete the {\ul region}{\v region} you just defined. The text will be saved in the {\ul kill buffer}{\v\uldb KillBuffer}. 188\par 5.\tab Move the point to the place you want the text to appear. 189\par 6.\tab Use the {\uldb yank}{\v yank} ({\ul ^Y}{\v Keystroke}) command to copy the text from the kill buffer to the current point. 190\par \pard\plain \s6\sa120 \f4\fs20 Repeat steps 5 and 6 to insert more copies of the same text. 191\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Copying Text}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CopyingText}} {\fs16\up6 +{\footnote 192\pard\plain \s245 \f4\fs20 {\fs16\up6 +} CuttingAndPasting:copyingtext}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} copy}} Copying Text 193\par \pard\plain \s6\sa120 \f4\fs20 To copy text from one place to another: 194\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1.\tab Move to the beginning of the text you want to copy. 195\par 2.\tab Set the {\ul mark}{\v\ul Mark} there with the {\uldb set-mark}{\v\uldb set_mark} ({\ul M- }{\v Keystroke}) command. 196\par 3.\tab Move the {\ul point}{\v\ul Point} to the end of the text. 197\par 4.\tab Use the {\uldb copy-region}{\v copy_region} ({\ul M-W}{\v Keystroke}) command to copy the {\ul region}{\v Region} to the {\ul kill buffer}{\v\uldb KillBuffer}. 198\par 5.\tab Move the point to the place you want the text to appear. 199\par 6.\tab Use the {\uldb yank}{\v yank} ({\ul ^Y}{\v Keystroke}) command to copy the text from the kill buffer to the current point. 200\par \pard\plain \s6\sa120 \f4\fs20 Repeat steps 5 and 6 to insert more copies of the same text. 201\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Using the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} UsingTheMouse}} {\fs16\up6 + 202{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:050}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} mouse}} Using the Mouse 203\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS can use the mouse to perform many basic editing tasks. Unless mouse behavior has been altered by a {\ul macro}{\v Macro}, you can perform the following actions: 204\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb Copying a Region}{\v CopyARegion} 205\par {\uldb Killing a Region}{\v KillARegion} 206\par {\uldb Moving a Mode Line}{\v MovingAModeLine} 207\par {\uldb Pasting Text}{\v PastingText} 208\par {\uldb Repositioning the Point}{\v RepositioningThePoint} 209\par \pard \s11\li360\sa120\tx2880 {\uldb Scrolling Text Inside a Window}{\v ScrollingTextInsideAWindow} 210\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Repositioning the Point with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 211 RepositioningThePoint}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:repositioningthepoint}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} position;point;mouse}} 212 Repositioning the Point with the Mouse 213\par \pard\plain \s6\sa120 \f4\fs20 Move the mouse to where you want the {\ul point}{\v Point} to be, and click once with the left mouse button and release. The point will move there, making any {\ul screen}{\v Screen} or {\ul window}{\v Window} 214 active to do so. 215\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Scrolling Text Inside a Window with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 216 ScrollingTextInsideAWindow}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:scrollingtextinsideawindow}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} scroll;mouse}} 217 Scrolling Text Inside a Window with the Mouse 218\par \pard\plain \s6\sa120 \f4\fs20 Position the mouse on the text to drag, press the left button, move the mouse to where to display the text (horizontally or vertically), and release the mouse button. 219\par If you are using the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v\ul Page} (which is usually the case under Microsoft Windows), the above action is performed by pressing the {\b right} mouse button instead of the left one. 220\par Note that if you drag diagonally and the {\uldb $diagflag}{\v _diagflag} {\ul variable}{\v Variable} is set to FALSE (the default value), the text will move only in the vertical direction. 221\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Moving a Mode Line with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MovingAModeLine}} { 222\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:movingamodeline}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} mode line;mouse}} Moving a Mode Line with the Mouse 223\par \pard\plain \s6\sa120 \f4\fs20 Position the mouse on a {\ul mode line}{\v ModeLine} (except the bottom one which cannot be moved), press the left button, move to another position and release the button. The mode line will move, resizing the {\ul windows}{ 224\v Window} which are above and below. 225\par If you are using the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v\ul Page} (which is usually the case under Microsoft Windows), the above action is performed by pressing the {\b right} mouse button instead of the left one. 226\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Copying a Region with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CopyARegion}} { 227\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:copyingaregion}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} copy;region;mouse}} Copying a Region with the Mouse 228\par \pard\plain \s6\sa120 \f4\fs20 Position the mouse at the beginning of the text to be copied, press the right button, move the mouse to the other end of the text, release the button. This actually makes the selected text the current {\ul region}{\v Region} 229 and then copies it into the {\ul kill buffer}{\v KillBuffer}. 230\par If you are using the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v\ul Page} (which is usually the case under Microsoft Windows), the above action is performed by pressing the {\b Shift }key and the {\b right} 231 mouse button together instead of just the right mouse button. 232\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Killing a Region with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} KillARegion}} { 233\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:killingaregion}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} kill;delete;region;mouse}} Killing a Region with the Mouse 234\par \pard\plain \s6\sa120 \f4\fs20 After {\uldb copying a region}{\v CopyARegion}, without moving the mouse, click the right mouse button once. The text will be deleted, but it will still be kept in the {\ul kill buffer}{\v KillBuffer}. 235\par If you are using the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v\ul Page} (which is usually the case under Microsoft Windows), the above action is performed by pressing the {\b Shift }key and the {\b right} 236 mouse button together instead of just the right mouse button. 237\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Pasting Text with the Mouse}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} PastingText}} {\fs16\up6 + 238{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingTheMouse:pastingtext}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} paste;mouse}} Pasting Text with the Mouse 239\par \pard\plain \s6\sa120 \f4\fs20 Move anywhere away from the place the mouse was last clicked, and click the right button once. The last text placed in the {\ul kill buffer}{\v KillBuffer} will be inserted there. 240\par If you are using the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v\ul Page} (which is usually the case under Microsoft Windows), the above action is performed by pressing the {\b Shift }key and the {\b right} 241 mouse button together instead of just the right mouse button. 242\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Using Menus}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} UsingMenus}} {\plain 243\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:060}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} menu}} Using menus 244\par \pard\plain \s6\sa120 \f4\fs20 Under Microsoft Windows, MicroEMACS sports an extensive menu system. Menu items can point to a pop-up menu or directly invoke a {\ul command}{\v Command} or a {\ul macro}{\v Macro} 245. A few menu items are not linked to any MicroEMACS commands or macro (for instance, the "{\ul A}bout..." item in the "{\ul H}elp" menu). 246\par The text of each menu item can contain the following hints: 247\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \tab Items that lead to the apparition of a dialog box are followed by an ellipsis "{\b ...}". 248\par \tab Items that require the user to type additional information in the {\ul message line}{\v MessageLine} are followed by a colon "{\b :}". 249\par \tab Items that require a {\ul numeric argument}{\v Argument} are preceded by an equal sign "{\b =}". 250\par \tab Items that are equivalent to a key {\ul binding}{\v Binding} have the corresponding key sequence displayed on the right side of the menu. 251\par \pard\plain \s6\sa120 \f4\fs20 The MicroEMACS menus can be {\uldb modified}{\v CustomizingMenus} by {\uldb macros}{\v MacroLanguage} to add/remove menus or menu items. The initial menus on the menu bar are: 252\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb File}{\v FileMenu} 253\par {\uldb Edit}{\v EditMenu} 254\par {\uldb Search}{\v SearchMenu} 255\par {\uldb Execute}{\v ExecuteMenu} 256\par {\uldb Miscellaneous}{\v MiscellaneousMenu} 257\par {\uldb Screen}{\v ScreenMenu} 258\par \pard \s11\li360\sa120\tx2880 {\uldb Help}{\v HelpMenu} 259\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} File menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} FileMenu}} {\plain \f4\fs16\up6 +{\footnote 260\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:050}} File menu 261\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 262\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Open...\tab invokes the {\uldb find-file}{\v find_file} command. If the {\uldb MDI.CMD}{\v MDI.CMD} {\ul page}{\v Page} is loaded, this menu item is modified and {\ul bound}{\v Binding} to the {\uldb 263open-file}{\v open_file} {\ul macro}{\v Macro} 264\par View...\tab invokes the {\uldb view-file}{\v view_file} command 265\par Insert...\tab invokes the {\uldb insert-file}{\v insert_file} command 266\par Read over...\tab invokes the {\uldb read-file}{\v read_file} command 267\par Rename...\tab invokes the {\uldb change-file-name}{\v change_file_name} command 268\par Save\tab invokes the {\uldb save-file}{\v save_file} command 269\par Save as...\tab invokes the {\uldb write-file}{\v write_file} command 270\par Append...\tab invokes the {\uldb append-file}{\v append_file} command 271\par Encryption key :\tab invokes the {\uldb set-encryption-key}{\v set_encryption_key} command 272\par {\uldb Buffer}{\v BufferSubmenu}\tab submenu 273\par {\uldb Window}{\v WindowSubmenu}\tab submenu 274\par Mode...\tab brings up a dialog box to change the {\uldb modes of operation}{\v ModesOfOperation} for the current {\ul buffer}{\v Buffer}. 275\par Global mode...\tab brings up a dialog box to change the {\uldb global modes of operation}{\v ModesOfOperation}. 276\par Save + exit\tab invokes the {\uldb quick-exit}{\v quick_exit} command 277\par Exit\tab invokes the {\uldb exit-emacs}{\v exit_emacs} command 278\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Buffer submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} BufferSubmenu}} {\plain \f4\fs16\up6 + 279{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} FileMenu:050}} Buffer submenu 280\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb File menu}{\v FileMenu}. It contains the following items: 281\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Next\tab invokes the {\uldb next-buffer}{\v next_buffer} command 282\par Select :\tab invokes the {\uldb select-buffer}{\v select_buffer} command 283\par Unmark\tab invokes the {\uldb unmark-buffer}{\v unmark_buffer} command 284\par Rename :\tab invokes the {\uldb name-buffer}{\v name_buffer} command 285\par Delete :\tab invokes the {\uldb delete-buffer}{\v delete_buffer} command 286\par Narrow to region\tab invokes the {\uldb narrow-to-region}{\v narrow_to_region} command 287\par Widen from region\tab invokes the {\uldb widen-from-region}{\v widen_from_region} command 288\par List\tab invokes the {\uldb list-buffers}{\v list_buffers} command 289\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Window submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} WindowSubmenu}} {\plain \f4\fs16\up6 + 290{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} FileMenu:060}} Window submenu 291\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb File menu}{\v FileMenu}. It contains the following items: 292\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Split\tab invokes the {\uldb split-current-window}{\v split_current_window} command 293\par Delete\tab invokes the {\uldb delete-window}{\v delete_window} command 294\par Delete others\tab invokes the {\uldb delete-other-windows}{\v delete_other_windows} command 295\par Next\tab invokes the {\uldb next-window}{\v next_window} command 296\par Previous\tab invokes the {\uldb previous-window}{\v previous_window} command 297\par {\uldb Scroll}{\v ScrollSubmenu}\tab submenu 298\par {\uldb Size}{\v WSizeSubmenu}\tab submenu 299\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Window Scroll submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ScrollSubmenu}} {\plain 300\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} WindowSubmenu:050}} Window Scroll submenu 301\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Window submenu}{\v WindowSubmenu} of the {\uldb File menu}{\v FileMenu}. It contains the following items: 302\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 = Up\tab invokes the {\uldb move-window-up}{\v move_window_up} command 303\par = Down\tab invokes the {\uldb move-window-down}{\v move_window_down} command 304\par = Next up\tab invokes the {\uldb scroll-next-up}{\v scroll_next_up} command 305\par = Next down\tab invokes the {\uldb scroll-next-down}{\v scroll_next_down} command 306\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Window Size submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} WSizeSubmenu}} {\plain \f4\fs16\up6 + 307{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} WindowSubmenu:060}} Window Size submenu 308\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Window submenu}{\v WindowSubmenu} of the {\uldb File menu}{\v FileMenu}. It contains the following items: 309\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 = Grow\tab invokes the {\uldb grow-window}{\v grow_window} command 310\par = Shrink\tab invokes the {\uldb shrink-window}{\v shrink_window} command 311\par = Height\tab invokes the {\uldb resize-window}{\v resize_window} command 312\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Edit menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} EditMenu}} {\plain \f4\fs16\up6 +{\footnote 313\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:060}} Edit menu 314\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 315\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\uldb Clipboard}{\v ClipboardSubmenu}\tab submenu 316\par {\uldb Mark}{\v MarkSubmenu}\tab submenu 317\par Yank\tab invokes the {\uldb yank}{\v yank} command 318\par {\uldb Region}{\v RegionSubmenu}\tab submenu 319\par {\uldb Paragraph}{\v EParagraphSubmenu}\tab submenu 320\par {\uldb Line}{\v ELineSubmenu}\tab submenu 321\par {\uldb Word}{\v EWordSubmenu}\tab submenu 322\par Delete blank lines\tab invokes the {\uldb delete-blank-lines}{\v delete_blank_lines} command 323\par Transpose characters\tab invokes the {\uldb transpose-characters}{\v transpose_characters} command 324\par Tab\tab invokes the {\uldb handle-tab}{\v handle_tab} command 325\par Quote\tab invokes the {\uldb quote-character}{\v quote_character} command 326\par = Fill column\tab Resets the {\uldb $fillcol variable}. The {\uldb emacs.rc}{\v StartupFile} {\ul page}{\v Page} modifies this menu item slightly so that it prompts you for the fill column value. 327\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb CUA.CMD}{\v CUA.CMD} page is loaded, the menu is modified by the addition of the following item (before "Region"): 328\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\uldb Selection}{\v SelectionSubmenu}\tab submenu 329\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Clipboard submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ClipboardSubmenu}} {\plain 330\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:010}} Clipboard submenu 331\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu}. It contains the following items: 332\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Cut region\tab invokes the {\uldb cut-region}{\v cut_region} command 333\par Copy region\tab invokes the {\uldb clip-region}{\v clip_region} command 334\par Paste\tab invokes the {\uldb insert-clip}{\v insert_clip} command 335\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb CUA.CMD}{\v CUA.CMD} page is loaded, the menu is modified and, instead, contains the following items: 336\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Cut\tab deletes and copies to the {\ul clipboard}{\v Clipboard} the text contained in the current {\ul selection}{\v Selection} 337\par Copy\tab copies (without deleting) to the clipboard the text contained in the selection 338\par Paste\tab inserts the text from the clipboard at the {\ul point}{\v Point} 339\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Mark submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MarkSubmenu}} {\plain \f4\fs16\up6 + 340{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:020}} Mark submenu 341\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu}. It contains the following items: 342\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Set\tab invokes the {\uldb set-mark}{\v set_mark} command 343\par Remove\tab invokes the {\uldb remove-mark}{\v remove_mark} command 344\par Exchange\tab invokes the {\uldb exchange-point-and-mark}{\v exchange_point_and_mark} command 345\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Selection submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SelectionSubmenu}} {\plain 346\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:025}} Selection submenu 347\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu} when the {\uldb CUA.CMD}{\v CUA.CMD} {\ul page}{\v Page} is loaded. It contains the following items: 348\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Upper case\tab converts all the {\ul selected}{\v Selection} text to upper case 349\par Lower case\tab converts all the selected text to lower case 350\par Count words\tab displays on the {\ul message line}{\v MessageLine} the number of words, characters and lines that compose the selected text 351\par Flip\tab exchanges the {\ul point}{\v Point} with the other end of the selection 352\par Select region\tab makes the current {\ul region}{\v Region} the current selection 353\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Region submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} RegionSubmenu}} {\plain \f4\fs16\up6 + 354{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:030}} Region submenu 355\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu}. It contains the following items: 356\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Kill\tab invokes the {\uldb kill-region}{\v kill_region} command 357\par Copy\tab invokes the {\uldb copy-region}{\v copy_region} command 358\par Upper case\tab invokes the {\uldb case-region-upper}{\v case_region_upper} command 359\par Lower case\tab invokes the {\uldb case-region-lower}{\v case_region_lower} command 360\par Entab\tab invokes the {\uldb entab-region}{\v entab_region} command 361\par Detab\tab invokes the {\uldb detab-region}{\v detab_region} command 362\par Trim\tab invokes the {\uldb trim-region}{\v trim_region} command 363\par Indent\tab invokes the {\uldb indent-region}{\v indent_region} command 364\par Undent\tab invokes the {\uldb undent-region}{\v undent_region} command 365\par Count words\tab invokes the {\uldb count-words}{\v count_words} command 366\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Edit Paragraph submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} EParagraphSubmenu}} {\plain 367\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:040}} Edit Paragraph submenu 368\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu}. It contains the following items: 369\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Kill\tab invokes the {\uldb kill-paragraph}{\v kill_paragraph} command 370\par Fill\tab invokes the {\uldb fill-paragraph}{\v fill_paragraph} command 371\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Edit Line submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ELineSubmenu}} {\plain \f4\fs16\up6 + 372{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:050}} Edit Line submenu 373\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Edit menu}{\v EditMenu}. It contains the following items: 374\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Kill to end\tab invokes the {\uldb kill-to-end-of-line}{\v kill_to_end_of_line} command 375\par Open\tab invokes the {\uldb open-line}{\v open_line} command 376\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Edit Word submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} EWordSubmenu}} {\plain \f4\fs16\up6 + 377{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} EditMenu:060}} Edit Word submenu 378\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 379\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Kill next\tab invokes the {\uldb delete-next-word}{\v delete_next_word} command 380\par Kill previous\tab invokes the {\uldb delete-previous-word}{\v delete_previous_word} command 381\par Capitalize\tab invokes the {\uldb case-word-capitalize}{\v case_word_capitalize} command 382\par Lower case\tab invokes the {\uldb case-word-lower}{\v case_word_lower} command 383\par Upper case\tab invokes the {\uldb case-word-upper}{\v case_word_upper} command 384\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Search menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SearchMenu}} {\plain \f4\fs16\up6 +{\footnote 385\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:070}} Search menu 386\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 387\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Search forward :\tab invokes the {\uldb search-forward}{\v search_forward} command 388\par Search backward :\tab invokes the {\uldb search-reverse}{\v search_reverse} command 389\par Hunt forward\tab invokes the {\uldb hunt-forward}{\v hunt_forward} command 390\par Hunt backward\tab invokes the {\uldb hunt-backward}{\v hunt_backward} command 391\par Incremental search :\tab invokes the {\uldb incremental-search}{\v incremental_search} command 392\par Reverse incremental :\tab invokes the {\uldb reverse-incremental-search}{\v reverse_incremental_search} command 393\par Replace :\tab invokes the {\uldb replace-string}{\v replace_string} command 394\par Query replace :\tab invokes the {\uldb query-replace-string}{\v query_replace_string} command 395\par {\uldb Goto}{\v GotoSubmenu}\tab submenu 396\par {\uldb Page}{\v PageSubmenu}\tab submenu 397\par {\uldb Paragraph}{\v SParagraphSubmenu}\tab submenu 398\par {\uldb Line}{\v SLineSubmenu}\tab submenu 399\par {\uldb Word}{\v SWordSubmenu}\tab submenu 400\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Goto submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} GotoSubmenu}} {\plain \f4\fs16\up6 + 401{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} SearchMenu:010}} Goto submenu 402\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Search menu}{\v SearchMenu}. It contains the following items: 403\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Mark\tab invokes the {\uldb goto-mark}{\v goto_mark} command 404\par Line\tab invokes the {\uldb goto-line}{\v goto_line} command 405\par Matching fence\tab invokes the {\uldb goto-matching-fence}{\v goto_matching_fence} command 406\par Beginning of file\tab invokes the {\uldb beginning-of-file}{\v beginning_of_file} command 407\par End of file\tab invokes the {\uldb end-of-file}{\v end_of_file} command 408\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Page submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} PageSubmenu}} {\plain \f4\fs16\up6 + 409{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} SearchMenu:020}} Page submenu 410\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Search menu}{\v SearchMenu}. It contains the following items: 411\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Next\tab invokes the {\uldb next-page}{\v next_page} command 412\par Previous\tab invokes the {\uldb previous-page}{\v previous_page} command 413\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Search Paragraph submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SParagraphSubmenu}} {\plain 414\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} SearchMenu:030}} Search Paragraph submenu 415\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Search menu}{\v SearchMenu}. It contains the following items: 416\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Next\tab invokes the {\uldb next-paragraph}{\v next_paragraph} command 417\par Previous\tab invokes the {\uldb previous-paragraph}{\v previous_paragraph} command 418\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Search Line submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SLineSubmenu}} {\plain \f4\fs16\up6 + 419{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} SearchMenu:040}} Search Line submenu 420\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Search menu}{\v SearchMenu}. It contains the following items: 421\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Next\tab invokes the {\uldb next-line}{\v next_line} command 422\par Previous\tab invokes the {\uldb previous-line}{\v previous_line} command 423\par Beginning of\tab invokes the {\uldb beginning-of-line}{\v beginning_of_line} command 424\par End of\tab invokes the {\uldb end-of-line}{\v end_of_line} command 425\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Search Word submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SWordSubmenu}} {\plain \f4\fs16\up6 + 426{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} SearchMenu:050}} Search Word submenu 427\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Search menu}{\v SearchMenu}. It contains the following items: 428\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Next\tab invokes the {\uldb next-word}{\v next_word} command 429\par Previous\tab invokes the {\uldb previous-word}{\v previous_word} command 430\par End of\tab invokes the {\uldb end-of-word}{\v end_of_word} command 431\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Execute menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ExecuteMenu}} {\plain \f4\fs16\up6 +{\footnote 432\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:080}} Execute menu 433\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 434\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Windows program :\tab invokes the {\uldb execute-program}{\v execute_program} command 435\par Shell program :\tab invokes the {\uldb shell-command}{\v shell_command} command 436\par Pipe-in :\tab invokes the {\uldb pipe-command}{\v pipe_command} command 437\par Filter :\tab invokes the {\uldb filter-buffer}{\v filter_buffer} command 438\par Shell\tab invokes the {\uldb i-shell}{\v i_shell} command 439\par {\uldb EMACS command}{\v EmacsCommandSubmenu}\tab submenu 440\par {\uldb Keyboard macro}{\v KeyboardMacroSubmenu}\tab submenu 441\par Abort command\tab invokes the {\uldb abort-command}{\v abort_command} command 442\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb DEV.CMD}{\v DEV.CMD} {\ul page}{\v Page} is loaded, the menu is modified by the addition of the following item: 443\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Make\tab invokes the {\uldb run-makefile}{\v run_makefile} macro. 444\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} EMACS command submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} EMACSCOMMANDSUBMENU}} {\plain 445\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} ExecuteMenu:050}} EMACS command submenu 446\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Execute menu}{\v ExecuteMenu}. It contains the following items: 447\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Named command :\tab invokes the {\uldb execute-named-command}{\v execute_named_command} command 448\par Command line :\tab invokes the {\uldb execute-command-line}{\v execute_command_line} command 449\par Procedure :\tab invokes the {\uldb execute-procedure}{\v execute_procedure} command 450\par Buffer :\tab invokes the {\uldb execute-buffer}{\v execute_buffer} command 451\par File...\tab invokes the {\uldb execute-file}{\v execute_file} command 452\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Keyboard macro submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} KeyboardMacroSubmenu}} {\plain 453\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} ExecuteMenu:060}} Keyboard macro submenu 454\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Execute menu}{\v ExecuteMenu}. It contains the following items: 455\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Play\tab invokes the {\uldb execute-macro}{\v execute_macro} command 456\par Start recording\tab invokes the {\uldb begin-macro}{\v begin_macro} command 457\par End recording\tab invokes the {\uldb end-macro}{\v end_macro} command 458\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Miscellaneous menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MiscellaneousMenu}} {\plain \f4\fs16\up6 + 459{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:090}} Miscellaneous menu 460\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 461\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\uldb Key bindings}{\v KeyBindingsSubmenu}\tab submenu 462\par {\uldb Menu bindings}{\v MenuBindingsSubmenu}\tab submenu 463\par {\uldb Variable}{\v Variable}\tab submenu 464\par Show position\tab invokes the {\uldb buffer-position}{\v buffer_position} command 465\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Key bindings submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} KeyBindingsSubmenu}} {\plain 466\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} MiscellaneousMenu:050}} Key bindings submenu 467\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Miscellaneous menu}{\v MiscellaneousMenu}. It contains the following items: 468\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Bind to Command\tab invokes the {\uldb bind-to-key}{\v bind_to_key} command 469\par Bind to Macro\tab invokes the {\uldb macro-to-key}{\v macro_to_key} command 470\par Unbind\tab invokes the {\uldb unbind-key}{\v unbind_key} command 471\par Describe key\tab invokes the {\uldb describe-key}{\v describe_key} command 472\par List\tab invokes the {\uldb describe-bindings}{\v describe_bindings} command 473\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Menu bindings submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MenuBindingsSubmenu}} {\plain 474\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} MiscellaneousMenu:060}} Menu bindings submenu 475\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Miscellaneous menu}{\v MiscellaneousMenu}. It contains the following items: 476\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Bind to Command\tab invokes the {\uldb bind-to-menu}{\v bind_to_menu} command 477\par Bind to Macro\tab invokes the {\uldb macro-to-menu}{\v macro_to_menu} command 478\par Unbind\tab invokes the {\uldb unbind-menu}{\v unbind_menu} command 479\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Variable submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} VariableSubmenu}} {\plain \f4\fs16\up6 + 480{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} MiscellaneousMenu:070}} Variable submenu 481\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Miscellaneous menu}{\v MiscellaneousMenu}. It contains the following items: 482\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Set\tab invokes the {\uldb set}{\v set} command 483\par Display\tab invokes the {\uldb display}{\v display} command 484\par List\tab invokes the {\uldb describe-variables}{\v describe_variables} command 485\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Screen menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ScreenMenu}} {\plain \f4\fs16\up6 +{\footnote 486\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:100}} Screen menu 487\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 488\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Cascade\tab invokes the {\uldb cascade-screens}{\v cascade_screens} command 489\par {\uldb Tile}{\v TileSubmenu}\tab submenu 490\par Arrange Icons\tab causes iconized {\ul screens}{\v Screen} to be rearranged at the bottom left of the MicroEMACS frame window. 491\par Open\tab invokes the {\uldb find-screen}{\v find_screen} command 492\par Rename\tab invokes the {\uldb rename-screen}{\v rename_screen} command 493\par {\uldb Size}{\v SSizeSubmenu}\tab submenu 494\par Font...\tab brings up a dialog box to {\uldb change the font}{\v Fonts} used by MicroEMACS 495\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb MDI.CMD}{\v MDI.CMD} {\ul page}{\v Page} is loaded, the menu is modified by the addition of the following items: 496\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Rebuild\tab rebuilds the set of screens, to have a screen associated with each editing {\ul buffer}{\v Buffer} 497\par Kill\tab deletes the current screen and release the corresponding buffer. 498\par \pard\plain \s6\sa120 \f4\fs20 Additional items are added dynamically at the end of the "Screen" menu, listing the available screens. This allows quick switching between those screens. 499\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Tile submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} TileSubmenu}} {\plain \f4\fs16\up6 + 500{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} ScreenMenu:050}} Tile submenu 501\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Screen menu}{\v ScreenMenu}. It contains the following items: 502\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Horizontally\tab causes all non-iconic {\ul screens}{\v Screen} to be rearranged in a tiling scheme, side by side if possible 503\par Vertically\tab causes all non-iconic screens to be rearranged in a tiling scheme, on top of each other if possible 504\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Screen Size submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} SSizeSubmenu}} {\plain \f4\fs16\up6 + 505{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} ScreenMenu:060}} Screen Size submenu 506\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Screen menu}{\v ScreenMenu}. It contains the following items: 507\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 = Height\tab invokes the {\uldb change-screen-size}{\v change_screen_size} command 508\par = Width\tab invokes the {\uldb change-screen-width}{\v change_screen_width} command 509\par Normalize\tab causes the current {\ul screens}{\v Screen} to be resized so that it is as small as possible while retaining the same height and width in characters. 510\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb MDI.CMD}{\v MDI.CMD} {\ul page}{\v Page} is loaded, the menu is modified by the replacement of "= Height" and "= Width" by the following item: 511\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Set:\tab prompts you for the width and height of the screen, supplying the current values as defaults. 512\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Help menu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} HelpMenu}} {\plain \f4\fs16\up6 +{\footnote 513\pard\plain \s245 \f4\fs20 {\fs16\up6 +} UsingMenus:110}} Help menu 514\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} contains the following items: 515\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Index\tab brings up this help file, on the {\uldb main index}{\v MainIndex}. 516\par Keyboard\tab brings up this help file, on the {\uldb keyboard}{\v Keyboard} topic 517\par Commands\tab brings up this help file, on the {\uldb commands}{\v Commands} topic 518\par Procedures\tab brings up this help file, on the {\uldb procedures}{\v Procedures} topic 519\par {\uldb List}{\v ListSubmenu}\tab submenu 520\par Apropos :\tab invokes the {\uldb apropos}{\v apropos} command 521\par Describe key :\tab invokes the {\uldb describe-key}{\v describe_key} command 522\par Display variable :\tab invokes the {\uldb display}{\v display} command 523\par About...\tab brings up a dialog box giving some information about MicroEMACS and the people involved in its making. 524\par \pard\plain \s6\sa120 \f4\fs20 If the {\uldb DEV.CMD}{\v DEV.CMD} {\ul page}{\v Page} 525 is loaded, the menu is modified by the addition of items (before "List") that invoke the Windows help engine for, respectively, Windows 3.0, Windows 3.1 or Win32 Software Development Kits or for Turbo C++. Each of those attempt to select a help topic bas 526ed on the word currently at the {\ul point}{\v Point}. You can eliminate the undesired items among these by editing the {\f27\fs18 macro-to-menu} commands in the DEV.CMD file. 527\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} List submenu}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ListSubmenu}} {\plain \f4\fs16\up6 + 528{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} HelpMenu:050}} List submenu 529\par \pard\plain \s6\sa120 \f4\fs20 This {\uldb menu}{\v UsingMenus} is accessed via the {\uldb Help menu}{\v HelpMenu}. It contains the following items: 530\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 Key bindings\tab invokes the {\uldb describe-bindings}{\v describe_bindings} command 531\par Functions\tab invokes the {\uldb describe-functions}{\v describe_functions} command 532\par Variables\tab invokes the {\uldb describe-variables}{\v describe_variables} command 533\par Buffers\tab invokes the {\uldb list-buffers}{\v list_buffers} command 534\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Customizing Command Keys}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 535 CustomizingCommandKeys}} {\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:070}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} keyboard;binding;command;macro}} Customizing Command Keys 536\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS lets you decide what keys activate what {\ul command}{\v Command} or {\ul macro}{\v Macro} through the use of: 537\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-K}{\v Keystroke}\tab {\uldb bind-to-key}{\v bind_to_key} 538\par \tab {\ul ^X^K}{\v Keystroke}\tab {\uldb macro-to-key}{\v macro_to_key} 539\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-^K}{\v Keystroke}\tab {\uldb unbind-key}{\v unbind_key} 540\par \pard\plain \s6\sa120 \f4\fs20 These commands can be used to permanently change your key {\ul bindings}{\v Binding} by placing them in your start up file. For example, if you have one of those nasty keyboards with a tilde "{\b ~}" i 541n the upper left corner, where the Escape key should be, and you want the tilde to become the {\ul meta key}{\v MetaKey}, add this line to {\uldb emacs.rc}{\v StartupFile}: 542\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 bind-to-key meta-prefix ~ 543\par \pard\plain \s6\sa120 \f4\fs20 You can use this to make MicroEMACS feel similar to another editor by changing what keys activate which commands. 544\par The {\uldb unbind-key}{\v unbind_key} command is useful if you have a function key you keep tripping over, or if you are trying to make MicroEMACS look like a much more minimalist editor. 545\par You can get a list of all the key bindings that MicroEMACS uses by using the {\uldb describe-bindings}{\v describe_bindings} command. Just do {\ul M-X}{\v Keystroke} and type: 546\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 describe-bindings 547\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Issuing Commands}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} IssuingCommands}} {\fs16\up6 + 548{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:080}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} command}} Issuing Commands 549\par \pard\plain \s6\sa120 \f4\fs20 {\ul Commands}{\v Command} within MicroEMACS have descriptive names which you can use to invoke them, or {\ul bind}{\v Binding} them to a {\uldb keystroke}{\v Keyboard} or a {\uldb menu}{\v UsingMenus} 550. To invoke one of these commands by name, you can use: 551\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-X}{\v Keystroke}\tab {\uldb execute-named-command}{\v execute_named_command} 552\par \pard\plain \s6\sa120 \f4\fs20 You can supply {\uldb numeric arguments}{\v NumericArguments} to a such a command by prefixing it. You can also use a {\uldb command line}{\v CommandLines} invocation. 553\par To get a list of all the commands in your current MicroEMACS, do {\ul M-X}{\v Keystroke} and type: 554\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 describe-bindings 555\par \pard\plain \s6\sa120 \f4\fs20 The {\uldb describe-bindings}{\v describe_bindings} command will display a paged list of all legal commands and the keystrokes to use to invoke them. 556\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Interactive Numeric Arguments}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} NumericArguments}} 557{\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} repeat;argument}} Interactive Numeric Arguments 558\par \pard\plain \s6\sa120 \f4\fs20 Some {\ul commands}{\v Command} take a number as an argument. For example, to move to a particular line within a file, you use the {\uldb goto-line}{\v goto_line} ({\ul M-G}{\v Keystroke} 559) command. To go to a particular line, precede the command with a number by striking the {\ul meta key}{\v MetaKey}, typing a number, and then the keys {\ul bound}{\v Binding} to the command. To go to the 123rd line of a file, use: 560\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\i Meta} 123 {\i Meta} g 561\par \pard\plain \s6\sa120 \f4\fs20 If a command does not need a numeric argument, it is usually taken as a repeat count. This also works when typing any character. To make a line of 50 dashes type: 562\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\i Meta} 50 - 563\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Command Lines}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CommandLines}} {\fs16\up6 +{\footnote 564\pard\plain \s245 \f4\fs20 {\fs16\up6 +} :commandlines}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} command}} Command Lines 565\par \pard\plain \s6\sa120 \f4\fs20 {\uldb execute-command-line}{\v execute_command_line} ({\ul M-^X}{\v Keystroke}) lets you type in a full command line. MicroEMACS {\ul macros}{\v Macro} 566 are made from sequences of these command lines. A command line has three parts: 567\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\i Numeric argument Command Arguments} 568\par \pard\plain \s6\sa120 \f4\fs20 The numeric argument is optional and has the same effect as an {\uldb interactive numeric argument}{\v NumericArguments} prefixing an interactive invocation of the same command. 569\par {\uldb Arguments}{\v Arguments} following the command are not always required. If needed arguments have been omitted, the user will be prompted for them on the {\ul message line}{\v MessageLine}. 570\par To insert the string "<*><*><*>" at the {\ul point}{\v Point}, do {\ul M-^X}{\v Keystroke} and then: 571\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 3 insert-string "<*>" 572\par \pard\plain \s6\sa120 \f4\fs20 or to set the current fill column to 64, do {\ul M-^X}{\v Keystroke} and then: 573\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 64 set $fillcol 574\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} The Outside World}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} TheOutsideWorld}} {\fs16\up6 + 575{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:090}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} execute;spawn;filter;pipe;shell;DOS}} The Outside World 576\par \pard\plain \s6\sa120 \f4\fs20 The following commands let you interact with the Operating System or with other applications: 577\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X^C}{\v Keystroke}\tab {\uldb exit-emacs}{\v exit_emacs}\tab terminates MicroEMACS 578\par \tab {\ul M-Z}{\v Keystroke}\tab {\uldb quick-exit}{\v quick_exit}\tab same as above, but saves all changed {\ul buffers}{\v Buffer} first 579\par \tab {\ul ^X!}{\v Keystroke}\tab {\uldb shell-command}{\v shell_command}\tab executes a program within an Operating System "shell" 580\par \tab {\ul ^X$}{\v Keystroke}\tab {\uldb execute-program}{\v execute_program}\tab launches another application 581\par \tab {\ul ^X@}{\v Keystroke}\tab {\uldb pipe-command}{\v pipe_command}\tab pipes a program's output into a buffer 582\par \tab {\ul ^X#}{\v Keystroke}\tab {\uldb filter-buffer}{\v filter_buffer}\tab filters a buffer through a program 583\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^XC}{\v Keystroke}\tab {\uldb i-shell}{\v i_shell}\tab opens an Operating System "shell" 584\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Synchronizing With Another Program}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} 585 SynchronizingWithADosBox}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} DOS;pipe;filter;synchronize}} Synchronizing With Another Program 586\par \pard\plain \s6\sa120 \f4\fs20 When the {\uldb pipe-command}{\v pipe_command} or the {\uldb filter-buffer}{\v filter_buffer} commands are used under Microsoft Windows, MicroEMACS creates a {\ul DOS box}{\v DosBox} 587 (or "shell box" under Windows NT) and waits for it to terminate.Also, if the {\uldb execute-program}{\v execute_program} or the {\uldb shell-command}{\v shell_command} command is invoked with a {\ul numeric argument}{\v Argument} 588, MicroEMACS waits for the launched application to terminate. 589\par You can cancel the wait by pressing the Esc key or clicking on the "Cancel" button. Note that doing so does not terminate the other program. 590\par For synchronization to work with a DOS box, the {\uldb DOSExec profile}{\v DosExecProfile} must be set properly. Under Windows NT, shell boxes can be parametrized by setting the {\uldb Shell}{\v ShellProfile} and the {\uldb ShellExecOption}{\v 591ShellProfile} profiles. 592\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Buffers}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Buffers}} {\fs16\up6 +{\footnote 593\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:100}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} buffer}} Buffers 594\par \pard\plain \s6\sa120 \f4\fs20 A buffer is where MicroEMACS stores text. Normally that text is read from a file, and is visible in an editing {\ul window}{\v Window}. But text stored in buffers can also be MicroEMACS {\ul macros}{\v Macro} 595, temporary storage for macros, or lists of {\ul screens}{\v Screen}, files, buffers, {\ul variables}{\v Variables}, {\ul commands}{\v Command} or {\ul bindings}{\v Binding} created by MicroEMACS commands. Commands that deal with buffers include: \tab 596 597\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^XB}{\v Keystroke}\tab {\uldb select-buffer}{\v select_buffer} 598\par \tab {\ul ^XK}{\v Keystroke}\tab {\uldb delete-buffer}{\v delete_buffer} 599\par \tab {\ul ^X^B}{\v Keystroke}\tab {\uldb list-buffers}{\v list_buffers} 600\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^XX}{\v Keystroke}\tab {\uldb next-buffer}{\v next_buffer} 601\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Regions}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Regions}} {\fs16\up6 +{\footnote 602\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:110}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} region}} Regions 603\par \pard\plain \s6\sa120 \f4\fs20 Regions are used in MicroEMACS to specify what text is acted on by many {\ul commands}{\v Command}. A region is defined as all the text between the {\ul point}{\v\ul Point}, and the last placed {\ul mark}{\v\ul Mark} 604. To define a region: 605\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1.\tab Move the point to the beginning of the text you want to effect 606\par 2.\tab Use the {\uldb set-mark}{\v\uldb set_mark} ({\ul M- }{\v Keystroke}) command to position the mark at the current point 607\par 3.\tab Move the point to the end of the text you want to affect 608\par \pard\plain \s6\sa120 \f4\fs20 At this time, the text between the mark and the point is the current region which will be affected by many commands. Regions can be defined backwards as well as forwards, and can include the entire {\ul buffer}{\v Buffer} 609, or as little as one character. 610\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Paragraphs}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Paragraphs}} {\fs16\up6 +{\footnote 611\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:120}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} paragraph}} Paragraphs 612\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS defines a paragraph as any group of lines of text surrounded by blank lines. A line starting with one of the characters in the {\uldb $paralead}{\v _paralead} {\ul variable}{\v Variable} 613 is considered the first line of a paragraph. Also, if line starts with one of the characters in the {\uldb $fmtlead}{\v _fmtlead} variable, the following line is considered to be the beginning of a paragraph. 614\par {\ul Commands}{\v command} that deal with paragraphs include: 615\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-N}{\v Keystroke}\tab {\uldb next-paragraph}{\v next_paragraph} 616\par \tab {\ul M-P}{\v Keystroke}\tab {\uldb previous-paragraph}{\v previous_paragraph} 617\par \tab {\ul M-^W}{\v Keystroke}\tab {\uldb kill-paragraph}{\v kill_paragraph} 618\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-Q}{\v Keystroke}\tab {\uldb fill-paragraph}{\v fill_paragraph} 619\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Words}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Words}} {\fs16\up6 +{\footnote \pard\plain 620\s245 \f4\fs20 {\fs16\up6 +} Procedures:130}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} word}} Words 621\par \pard\plain \s6\sa120 \f4\fs20 Words are defined, by default, as a string of characters consisting of alphabetic, numeral and the underscore "{\b _}" character. You can change this by setting the {\uldb $wchars}{\v _wchars} {\ul variable}{\v Variable} 622 to a list of all the characters you want considered as part of a word. 623\par The commands that deal with words include: 624\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-F}{\v Keystroke}\tab {\uldb next-word}{\v next_word} 625\par \tab {\ul M-B}{\v Keystroke}\tab {\uldb previous-word}{\v previous_word} 626\par \tab {\ul M-D}{\v Keystroke}\tab {\uldb delete-next-word}{\v delete_next_word} 627\par \tab {\ul M-^H}{\v Keystroke}\tab {\uldb delete-previous-word}{\v delete_previous_word} 628\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-^C}{\v Keystroke}\tab {\uldb count-words}{\v count_words} 629\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Screens}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Screens}} {\fs16\up6 +{\footnote 630\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:140}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} screen}} Screens 631\par \pard\plain \s6\sa120 \f4\fs20 A screen is a collection of {\ul windows}{\v Window} 632 which are displayed together. On some non-graphically oriented systems, only one screen is displayed at a time. Under other graphical oriented operating systems like Microsoft Windows, X-Windows, the Macintosh or the Amiga, each screen may be displayed i 633n an operating system "window". Notice that the MicroEMACS usage of the word window is different from the meaning used in these graphical systems: 634\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\ul MicroEMACS}{\b \tab }{\ul Operating System} {\b } 635\par Window\tab Pane 636\par \pard \s11\li360\sa120\tx2880 Screen\tab Window 637\par \pard\plain \s6\sa120 \f4\fs20 Each screen has its own set of {\uldb windows}{\v Windows}. Switching from one screen to another (for instance by clicking on that screen) will preserve the window setup, the colors and the {\ul buffers}{\v Buffer} 638 being displayed. 639\par When MicroEMACS starts up, it displays a single screen named "MAIN". Extra screens can be created by the command: 640\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul A-F}{\v Keystroke}\tab {\uldb find-screen}{\v find_screen} 641\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Windows}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Windows}} {\fs16\up6 +{\footnote 642\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:150}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} window}} Windows 643\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS uses windows to display and allow you to edit the contents of {\ul buffers}{\v Buffer}. A single {\ul screen}{\v Screen} will show one or more windows, separated by a {\ul mode line}{\v ModeLine} 644 which describes the contents of the window above it. 645\par You can scroll text vertically and horizontally within a window by using the arrow keys or the page-up, page-down, home and end keys. Note that if a line of text extends beyond the boundary of a window, a dollar "{\b $} 646" sign is displayed instead of the last visible character. 647\par Here are some window-related commands: 648\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X2}{\v Keystroke}\tab {\uldb split-current-window}{\v split_current_window} 649\par \tab {\ul ^X1}{\v Keystroke}\tab {\uldb delete-other-windows}{\v delete_other_windows} 650\par \tab {\ul ^X0}{\v Keystroke}\tab {\uldb delete-window}{\v delete_window} 651\par \tab {\ul ^XO}{\v Keystroke}\tab {\uldb next-window}{\v next_window} 652\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^XP}{\v Keystroke}\tab {\uldb previous-window}{\v previous_window} 653\par \pard\plain \s6\sa120 \f4\fs20 Notice that the MicroEMACS usage of the word window is different from the meaning used in graphical systems: 654\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\ul MicroEMACS}\tab {\ul Operating System} 655\par Window\tab Pane 656\par Screen\tab Window 657\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Setting Colors}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Colors}} {\plain \f4\fs16\up6 +{\footnote 658\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:160}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} color}} Setting Colors 659\par \pard\plain \s6\sa120 \f4\fs20 On systems which are capable of displaying colors, the mode commands can be used to set the background and foreground character colors. Using {\uldb add-mode}{\v add_mode} ({\ul ^XM}{\v Keystroke}) or {\uldb delete-mode}{\v 660delete_mode} ({\ul ^X^M}{\v Keystroke}) and typing a lowercase color will set the background color in the current window. An uppercase color will set the foreground color in the current window. 661\par In a similar manner, {\uldb add-global-mode}{\v add_global_mode} ({\ul M-M}{\v Keystroke}) and {\uldb delete-global-mode}{\v delete_global_mode} ({\ul M-^M}{\v Keystroke}) will set the background or foreground colors of future windows. 662\par Colors that MicroEMACS knows about are: {\b white}, {\b gray} (dark grey), {\b grey} (light grey), {\b cyan}, {\b lcyan} (light cyan), {\b magenta}, {\b lmagenta} (light magenta), {\b yellow}, {\b lyellow} (light yellow), {\b blue}, {\b lblue} 663 (light blue), {\b red}, {\b lred} (light red), {\b green}, {\b lgreen} (light green) and {\b black} 664. If the computer you are running on does not have enough colors, MicroEMACS will attempt to guess at what color to use when you ask for one which is not there (systems with only 8 colors support: white, cyan, magenta, yellow, blue, red, green and black). 665 666\par Under Microsoft Windows, the whole 16 colors above are available if the display system supports them (depending on the value of the {\uldb Colors profile}{\v ColorsProfile}). In that case, {\ul Mode lines}{\v ModeLine} 667 are displayed as black characters on a light grey background. The {\ul message line}{\v MessageLine} 668 and desktop colors can be modified through the Windows "control panel" as "window text", "window background" and "application workspace". The value of the {\uldb $deskcolor}{\v _deskcolor} {\ul variable}{\v Variable} is always irrelevant. 669\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Setting the Font}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Fonts}} {\plain \f4\fs16\up6 +{\footnote 670\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:170}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} font}} Setting the Font 671\par \pard\plain \s6\sa120 \f4\fs20 Under Microsoft Windows, the font used by MicroEMACS to display text within the {\ul screens}{\v Screen} and the {\ul message line}{\v MessageLine} can be selected by using the {\b\ul F}{\b ont...} item in the {\b S}{\b\ul c 672}{\b reen} menu. This brings up a dialog box in which you can select: 673\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 The character set\tab "{\ul A}NSI" is the usual default within Windows application. "{\ul O}EM" is useful when displaying files that contain pseudo-graphics characters. 674\par The face name\tab You can chose any of the available fixed-pitch faces. 675\par The size of the font\tab You can either chose one of the font heights listed or type one if you have scalable fonts. All heights are expressed in pixels. 676\par The font weight\tab Normal unless you check the "{\ul B}old" box. 677\par \pard\plain \s6\sa120 \f4\fs20 A sample of the selected font is shown, specifying its height and width. The maximum screen size is calculated as the number of columns and rows (including {\ul mode lines}{\v ModeLine} 678) that would be displayed in a maximized {\ul screen}{\v Screen} when the MicroEMACS frame is maximized. 679\par Pressing the Enter key or the {\b OK} button effects the change of font in MicroEMACS. Pressing the Alt+S keys or the {\b\ul S}{\b ave} button has the same effect, but also saves the font selection in the {\uldb profiles}{\v Profiles} 680 so that next time MicroEMACS is started, it uses that font. Pressing the Escape key or the {\b Cancel} button returns to MicroEMACS without changing the font. 681\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Case Control}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CaseControl}} {\fs16\up6 +{\footnote 682\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:180}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} case;uppercase;lowercase;capitals}} Case Control 683\par \pard\plain \s6\sa120 \f4\fs20 The following {\ul commands}{\v Command} let you change the case of the {\uldb word}{\v Words} at or following the {\ul point}{\v Point}: 684\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-C}{\v Keystroke}\tab {\uldb case-word-capitalize}{\v case_word_capitalize} 685\par \tab {\ul M-L}{\v Keystroke}\tab {\uldb case-word-lower}{\v case_word_lower} 686\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-U}{\v Keystroke}\tab {\uldb case-word-upper}{\v case_word_upper} 687\par \pard\plain \s6\sa120 \f4\fs20 Setting a {\ul mark}{\v Mark}, moving to the other end of the {\uldb region}{\v Regions} and using one of these commands will change the case of all the words in the selected region: 688\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X^L}{\v Keystroke}\tab {\uldb case-region-lower}{\v case_region_lower} 689\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X^U}{\v Keystroke}\tab {\uldb case-region-upper}{\v case_region_upper} 690\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Controlling Tabs}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ControllingTabs}} {\plain \f4\fs16\up6 + 691{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:190}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} tabs}} Controlling Tabs 692\par \pard\plain \s6\sa120 \f4\fs20 By default, MicroEMACS sets the default tab stops every eighth column. This behavior can be changed (usually within the {\uldb start-up file}{\v StartupFile}). 693\par The behavior of the {\uldb handle-tab}{\v handle_tab} ({\ul ^I}{\v Keystroke} or Tab key) {\ul command}{\v Command} depends on the {\ul numeric argument}{\v Argument} that is supplied to it: 694\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \tab With no argument, {\b handle-tab} inserts space characters or a single tab character to get to the next tab stop, depending on its configuration... 695\par \tab With an non-zero argument {\i n}, tabs stops are reset to every {\i n}{\fs16\up6 th} column and {\b handle-tab} is reconfigured to insert {\ul space characters} in sufficient number to get to the next tab stop. This also sets the {\uldb $softtab}{\v 696_softtab} {\ul variable}{\v Variable} to {\i n}. 697\par \tab With an argument of zero, {\b handle-tab} is reconfigured so that it inserts {\ul true tab characters} (its default behavior) and the tab stop interval is reset to its default value of 8. 698\par \pard\plain \s6\sa120 \f4\fs20 The distance which a true tab character moves the cursor is reflected by the value of the {\uldb $hardtab}{\v _hardtab} {\ul variable}{\v Variable} 699. Initially set to 8, this determines how far each tab stop is placed from the previous one. 700\par Tab characters can be globally replaced by the appropriate number of spaces by the {\uldb detab-region}{\v detab_region} ({\ul ^X^D}{\v Keystroke}) command. The reverse, {\uldb entab-region}{\v entab_region} ({\ul ^X^E}{\v Keystroke} 701) changes multiple spaces to tab characters. 702\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Repetitive Tasks}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} RepetitiveTasks}} {\fs16\up6 + 703{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:200}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} repeat;macro;keyboard}} Repetitive Tasks 704\par \pard\plain \s6\sa120 \f4\fs20 To perform any repetitive task, where you have a list of things that need to be changed, for instance one per line, follow these steps: 705\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1)\tab Position the {\ul point}{\v Point} to the beginning of the line to change 706\par 2)\tab Invoke {\uldb begin-macro}{\v begin_macro} ({\ul ^X(}{\v Keystroke})to start recording 707\par 3)\tab make the change, staying on that line 708\par 4)\tab move to the beginning of the next line 709\par 5)\tab Invoke {\uldb end-macro}{\v end_macro} ({\ul ^X)}{\v Keystroke}) to stop recording 710\par \pard\plain \s6\sa120 \f4\fs20 Do {\uldb execute-macro}{\v execute_macro} ({\ul ^XE}{\v Keystroke}) once to test your change on the next line. If it is satisfactory, count how many lines need to yet be changed, strike the {\ul meta key}{\v MetaKey} 711 followed by that number and {\ul ^XE}{\v Keystroke}. This causes your change to be made on all the lines. 712\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Undoing Your Edits}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} UndoingYourEdits}} {\fs16\up6 + 713{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:210}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} scope;buffer;region}} Undoing Your Edits{\fs16 714\par }\pard\plain \s6\sa120 \f4\fs20 715It is all too easy to make mistakes while editing. But mistakes need not be permament. While MicroEMACS edits your file, it keeps track of the changes it makes to each buffer. At any time you can undo each change done to your current buffer, starting wit 716h the last and moving backwards. This is done with the 717\par \tab {\ul ^_}{\v Keystroke}\tab {\uldb undo}{\v undo} 718\par command. You can also get a look at what MicroEMACS remembers of these editing changes by issuing the 719\par \tab {\ul ^XU}{\v Keystroke}\tab {\uldb list-undos}{\v list_undos} 720\par command. There are also some environment variables responcible for deciding how the undo command currently work. These are: 721\par {\uldb $undoflag}{\v _undoflag}\tab if FALSE, the undo mechinism is disabled 722\par {\uldb $dispundo}{\v _dispundo}\tab if TRUE, the number of basic editing operations in the undo stack of the current buffer is \tab \tab displayed on the mode line. 723\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Narrowing Your Scope}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} NarrowingYourScope}} { 724\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:210}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} scope;buffer;region}} Narrowing Your Scope 725\par \pard\plain \s6\sa120 \f4\fs20 Many times you will want to do something to a part of the text when the {\ul command}{\v Command} works on all the text. Also it is helpful to see or edit just a portion of the text. 726\par This kind of editing can be performed by narrowing the {\ul buffer}{\v Buffer} and later restoring the invisible portions, using the following commands: 727\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^X<}{\v Keystroke}\tab {\uldb narrow-to-region}{\v narrow_to_region} 728\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul ^X>}{\v Keystroke}\tab {\uldb widen-from-region}{\v widen_from_region} 729\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Creating New Commands}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CreatingNewCommands}} { 730\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:220}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} command;macro}} Creating New Commands 731\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS lets you create your own {\ul macros}{\v Macro} to perform any editing tasks, simple or complex. These macros are written in the MicroEMACS {\uldb macro language}{\v MacroLanguage} 732. Macros can be invoked by other macros and they can be bound to keystrokes by the {\uldb macro-to-key}{\v macro_to_key} ({\ul ^X^K}{\v Keystroke}) command. 733\par For examples of macros, look at the .CMD files supplied with MicroEMACS for Windows. In that package, {\uldb EMACS.RC}{\v StartupFile} 734 is the file which is executed automatically whenever MicroEMACS is started. and all the ???.CMD files contain the code for each {\ul page}{\v Page}. 735\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Customizing Menus}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CustomizingMenus}} {\plain \f4\fs16\up6 736+{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:230}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} menu;binding;command;macro}} Customizing Menus 737\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS {\uldb menus}{\v UsingMenus} can be modified by the following commands (usually employed in the {\uldb start-up file}{\v StartupFile}): 738\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab \tab {\uldb bind-to-menu}{\v bind_to_menu}\tab creates a menu item bound to a {\ul command}{\v Command} 739\par \tab \tab {\uldb macro-to-menu}{\v macro_to_menu}\tab creates a menu item bound to a {\ul macro}{\v Macro} 740\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab \tab {\uldb unbind-menu}{\v unbind_menu}\tab deletes a menu item 741\par \pard\plain \s6\sa120 \f4\fs20 With these three commands, menus are specified by using the MicroEMACS {\uldb menu name syntax}{\v MenuName}. 742\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Menu Name Syntax}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MenuName}} {\plain \f4\fs16\up6 +{\footnote 743\pard\plain \s245 \f4\fs20 {\fs16\up6 +} CustomizingMenus:010menuname}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} menu}} Menu Name Syntax 744\par \pard\plain \s6\sa120 \f4\fs20 Menu names used by the {\uldb bind-to-menu}{\v bind_to_menu}, {\uldb macro-to-menu}{\v macro_to_menu} and {\uldb unbind-menu}{\v unbind_menu} commands follow a common syntax. A menu name is composed of {\uldb menu item}{\v 745MenuItem} names separated by right brackets: 746\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 >{\i item1}>{\i item2}>{\i item3} 747\par \pard\plain \s6\sa120 \f4\fs20 When a menu name begins by a right bracket "{\b >}", it means that the menu item immediately following this right bracket is located within the menu bar. A menu name can also be specified as: 748\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\i item1}>{\i item2} 749\par \pard\plain \s6\sa120 \f4\fs20 In this case {\i item1} is located within the last accessed menu. One or more left brackets "{\b <}" can appear before the first item, meaning it is located as many levels up in the menu hierarchy: 750\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 <<{\i item1}>{\i item2} 751\par \pard\plain \s12\fi-720\li720\sa120 \f4\fs20 Notes:\tab The tilde character "~" cannot be used to escape the meaning of the brackets ("{\b <}" or "{\b >}") and ampersand "{\b &} 752" characters within menu names. The brackets simply cannot be escaped. The ampersand can be escaped (i.e. considered as a real ampersand instead of indicating the underscoring of a character) by using two consecutive ampersands: "{\b &&}". 753\par \tab It is good practice to enclose menu names in double quotes. This is necessary when there are embedded spaces within a name. Also, when a menu name begins by an ampersand, MicroEMACS may misinterpret it as a function name. 754\par \pard\plain \s6\sa120 \f4\fs20 See the {\uldb examples}{\v MenuExamples} for a more practical explanation... 755\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Menu Item Syntax}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MenuItem}} {\plain \f4\fs16\up6 +{\footnote 756\pard\plain \s245 \f4\fs20 {\fs16\up6 +} CustomizingMenus:020menuitem}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} menu}} Menu Item Syntax 757\par \pard\plain \s6\sa120 \f4\fs20 Menu item names are used as parts of {\uldb menu names}{\v MenuName}. They specify a single menu item within a given popup menu or within the menu bar. A menu item name can be formed of an {\i item text} and/or an {\i 758item index}: 759\par \pard\plain \s4\fi-2160\li2880\tx2880 \f27\fs18 {\i item text}@{\i item index} 760\par \pard\plain \s6 \f4\fs20 or: 761\par \pard\plain \s4\fi-2160\li2880\tx2880 \f27\fs18 {\i item text} 762\par \pard\plain \s6 \f4\fs20 or: 763\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 @{\i item index} 764\par \pard\plain \s6\sa120 \f4\fs20 The {\i item text} specifies the text of the item that appears within the menu, using an ampersand "{\b &} 765" as a prefix for the underlined character. Note that the key binding description, if any, is automatically generated by MicroEMACS and should not be part of the {\i item text}. 766\par The {\i item index} is a decimal number that specifies the index of the item within the menu. Indexes start at zero. 767\par If the specified item is being created: 768\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \tab The {\i item text} is mandatory. 769\par \tab Separators (horizontal lines between parts of a popup menu) are specified by the {\i item text} being a single dash "{\b -}". Note that either {\uldb bind-to-menu}{\v bind_to_menu} or {\uldb macro-to-menu}{\v macro_to_menu} 770 can be used for this, since the bound command or macro is irrelevant (although it has to be a valid one). 771\par \tab The {\i item index} can be used to specify the position where the new item will be placed 772\par \tab If the {\i item index} is not specified, the new item is placed at the end of the menu or just after the item that was used in a previous menu binding command. 773\par \pard\plain \s6\sa120 \f4\fs20 If the specified item already exists: 774\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \tab If the item is not a separator, only one of {\i item text} or {\i item index} is needed (but both can be specified). 775\par \tab If the item is a separator, the {\i item index} should be specified but {\b not} the {\i item text}. 776\par \pard\plain \s6\sa120 \f4\fs20 See the {\uldb examples}{\v MenuExamples} for a more practical explanation... 777\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Menu Examples}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MenuExamples}} {\plain \f4\fs16\up6 +{\footnote 778\pard\plain \s245 \f4\fs20 {\fs16\up6 +} CustomizingMenus:030menuexamples}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} menu}} Menu Examples 779\par \pard\plain \s4\fi-2160\li2880\tx2880 \f27\fs18 bind-to-menu forward-character ">&Search>&Character@15>&Next" 780\par bind-to-menu nop "-" 781\par \pard \s4\fi-2160\li2880\sa120\tx2880 bind-to-menu backward-character "&Previous" 782\par \pard\plain \s6\sa120 \f4\fs20 This creates a new popup menu named "{\ul C}haracter" under the "{\ul S}earch" menu, containing the two items "{\ul N}ext" and "{\ul P}revious", with a separator (for the sake of the demonstration) between the two. 783\par \pard\plain \s4\fi-2160\li2880\tx2880 \f27\fs18 unbind-menu ">&Search>&Character>@1" 784\par \pard\plain \s6\sa120 \f4\fs20 removes the above-created separator. 785\par \pard\plain \s4\fi-2160\li2880\tx2880 \f27\fs18 macro-to-menu load-c-page ">Code &page@4>&Load>&C" 786\par macro-to-menu load-cpp-page "C&++" 787\par macro-to-menu load-p-page "&Pascal" 788\par macro-to-menu remove-c-page "<&Remove>&C" 789\par macro-to-menu remove-cpp-page "C&++" 790\par macro-to-menu remove-p-page "&Pascal" 791\par bind-to-menu nop "<-" 792\par \pard \s4\fi-2160\li2880\sa120\tx2880 macro-to-menu remove-all-pages "Remove &all" 793\par \pard\plain \s6\sa120 \f4\fs20 This (assuming the specified macros actually exist) creates a new menu "Code {\ul p}age", located between the "E{\ul x}ecute" and the "{\ul M}iscellaneous" menus in the menu bar. This new menu contains the "{\ul L}oad", "{ 794\ul R}emove" and "Remove {\ul a}ll" items, the later being preceded by a separator. Both the "{\ul L}oad" and "{\ul R}emove" items actually lead to sub-menus that both contain "{\ul C}", "C{\ul +}+" and "{\ul P}ascal". 795\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Drag and Drop}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} DragAndDrop}} {\plain \f4\fs16\up6 + 796{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Procedures:240}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} drag and drop;file;drop}} Drag and Drop 797\par \pard\plain \s6\sa120\tx6750 \f4\fs20 798Under MS-Windows 3.1 and above, MicroEMACS supports a "drag and drop" file-selection mechanism. If you select one or more files in the Windows File Manager and drag them with the mouse, dropping them over MicroEMACS generates a pseudo mouse action: {\ul 799MS!}{\v\ul MouseAction} that can be used by {\ul binding}{\v Binding} it to a {\ul macro}{\v Macro}. 800\par \pard \s6\sa120 For instance, the following command causes a macro named "drop-files" to be invoked every time a group of files is dropped on MicroEMACS: 801\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 macro-to-key drop-files MS! 802\par \pard\plain \s6\sa120 \f4\fs20 The macro that handles the drag and drop mechanism acquires the necessary information from a buffer named "{\b Dropped files}": 803\par \pard\plain \s11\li360\sa120\tx2880 \f4\fs20 The first line of that buffer contains the name of the {\ul screen}{\v Screen} 804 on which the drop occurred. It is empty if the files were not dropped on any specific screen (for instance if they were dropped on the {\ul message line}{\v MessageLine}). 805\par The second and following lines contain the list of dropped files, one pathname per line. 806\par \pard\plain \s6\sa120 \f4\fs20 In addition, the {\uldb $xpos}{\v _xpos} and {\uldb $ypos}{\v _ypos} {\ul variables}{\v Variable} 807 are set to the text coordinates where the drop occurred (or to the value 255 if the files were not dropped on any specific screen). 808\par The {\uldb MDI.CMD}{\v MDI.CMD} {\ul page}{\v Page} contains a sample macro that handles drag and drop. 809\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Modes of Operation}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ModesOfOperation}} {\fs16\up6 + 810{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2030}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} mode}} Modes of Operation 811\par \pard\plain \s6\sa120 \f4\fs20 Modes determine how MicroEMACS will treat text. Modes affect the contents of a {\ul buffer}{\v Buffer}. Global modes determine the modes of newly created buffers. 812\par \pard\plain \s3\fi-2880\li2880\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul ^XM}{\v Keystroke}\tab {\uldb add-mode}{\v\uldb add_mode}\tab Adds a mode to the current buffer 813\par \tab {\ul ^X^M}{\v Keystroke}\tab {\uldb delete-mode}{\v\uldb delete_mode}\tab Removes a mode from the current buffer 814\par \tab {\ul M-M}{\v Keystroke}\tab {\uldb add-global-mode}{\v\uldb add_global_mode}\tab Adds a global mode 815\par \pard \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \tab {\ul M-^M}{\v Keystroke}\tab {\uldb delete-global-mode}{\v delete_global_mode}\tab Removes a global mode 816\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS's modes are: 817\par \pard\plain \s7\fi-1080\li1440\tx1440\tx2880 \f4\fs20 {\uldb ASAVE}{\v ASAVE}\tab Automatically Save 818\par {\uldb CMODE}{\v CMODE}\tab Editing C programs 819\par {\uldb CRYPT}{\v CRYPT}\tab Encryption 820\par {\uldb EXACT}{\v EXACT}\tab Character Case during Searches 821\par {\uldb MAGIC}{\v\uldb MAGIC}\tab Regular Expression Pattern Matching 822\par {\uldb OVER}{\v\uldb OVER}\tab Overstrike Mode 823\par {\uldb REP}{\v\uldb REP}\tab Replace Mode 824\par {\uldb VIEW}{\v\uldb VIEW}\tab No Changes Permitted 825\par \pard \s7\fi-1080\li1440\sa120\tx1440\tx2880 {\uldb WRAP}{\v\uldb WRAP}\tab Wrap entered text 826\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} ASAVE Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ASAVE} +{\footnote \pard\plain \s245 827\f4\fs20 {\fs16\up6 +} ModesOfOperation:asave} }{\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} ASAVE;mode;autosave;save}}{\fs16\up6 }ASAVE Mode 828\par \pard\plain \s6\sa120 \f4\fs20 When this mode is on, MicroEMACS automatically saves the contents of your current {\ul buffer}{\v Buffer} to disk every time you have typed 256 characters. The buffer is saved to the file named on the {\ul mode line}{\v 829ModeLine} of the buffer. This mode assures you that you will loose very little text should your computer crash while you are editing. Be sure you are willing to have your original file replaced automatically before you add this mode. 830\par The frequency of saving can be altered by changing the contents of the {\uldb $asave}{\v _asave} {\ul variable}{\v Variable }.Use the {\uldb set}{\v set} ({\ul ^XA}{\v Keystroke}) {\ul command}{\v Command} like this: 831\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 ^XA $asave 2048 832\par }\pard\plain \s6\sa120 \f4\fs20 to tell MicroEMACS to automatically save the current buffer after 2048 characters are typed. 833\par \pard\plain \s12\fi-720\li720\sa120 \f4\fs20 Note:\tab the {\uldb $acount}{\v _acount} variable contains the count down to the next auto-save. 834\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} CMODE Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CMODE}} {\fs16\up6 +{\footnote 835\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:cmode}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} CMODE;mode;C language;brace;parenthesis;bracket}} CMODE Mode 836\par \pard\plain \s6\sa120 \f4\fs20 This mode is specifically for editing programs written in the C language. When CMODE is active, MicroEMACS will try to anticipate what indentation is needed when the {\uldb newline}{\v newline} ({\ul ^M}{\v Keystroke} 837 or Enter key) {\ul command}{\v Command} is used. It will always bring a pound sign "#" with only leading white space back to the left margin. 838It will also attempt to flash the cursor over the proper opening fence character matching any closing fence character (one of "{\b )\}]}") that is typed (the duration of this flashing can be controlled by setting the {\uldb $tpause}{\v _tpause} {\ul 839variable}{\v Variable}). 840\par Note that the standard start-up files for MicroEMACS install a {\ul macro}{\v Macro} which checks any file being read into MicroEMACS and sets CMODE if the file ends with a .c or .h extension. 841\par Related {\ul command}{\v Command}: 842\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul M-^F}{\v Keystroke}\tab {\uldb goto-matching-fence}{\v\uldb goto_matching_fence} 843\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} CRYPT Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CRYPT}} {\fs16\up6 +{\footnote 844\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:crypt}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} CRYPT;mode;encryption;secret}} CRYPT Mode 845\par \pard\plain \s6\sa120 \f4\fs20 For files of a sensitive nature, MicroEMACS can encrypt text as it is written or read. The encryption algorithm is a Beaufort Cipher with a variant key. This is reasonably difficult to decrypt. 846\par When you write out text, if CRYPT mode is active and there is no encryption key, MicroEMACS will ask: 847\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 Encryption String: 848\par }\pard\plain \s6\sa120 \f4\fs20 Type in a word or phrase of at least five and up to 128 characters for the encryption to use. I 849f you look at the file which is then written out, all the printable characters have been scrambled.To read such a file later, you can use the {\b -k} {\uldb switch}{\v CommandLineSwitches} when calling up MicroEMACS: 850\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 emacs -k }{\i\f7 filename}{\f7 851\par }\pard\plain \s6\sa120 \f4\fs20 and you will be asked the encryption key before the file is read. 852\par You can modify the encryption key by using the {\uldb set-encryption-key}{\v set_encryption_key} ({\ul M-E}{\v Keystroke}) command. 853\par Note: previous versions of MicroEMACS used a defective encryption method. For compatibility, you can chose to use the older algorithm by setting the {\uldb $oldcrypt}{\v _oldcrypt} {\ul variable}{\v Variable} to TRUE. 854\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} EXACT Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} EXACT}} {\fs16\up6 +{\footnote 855\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:exact}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} EXACT;mode;search;replace;case}} EXACT Mode 856\par \pard\plain \s6\sa120 \f4\fs20 Normally, when using search or replace {\ul commands}{\v Command}, MicroEMACS ignores the case of letters for comparisons. With EXACT mode set, the case of the characters must be the same for a match to occur. 857\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} MAGIC Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MAGIC}} {\fs16\up6 +{\footnote 858\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:magic}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} MAGIC;mode;search;replace;regular expressions}} MAGIC Mode 859\par \pard\plain \s6\sa120 \f4\fs20 Normally, MicroEMACS uses the string you type in response to a search or replace {\ul command}{\v Command} 860 as the string to find. When magic mode is enabled, MicroEMACS considers the string you type as a pattern or template to use in finding a string to match. Many characters in this template have special meaning: 861\par \pard\plain \s7\fi-1080\li1440\sa120\tx1440\tx2880 \f4\fs20 {\b .}\tab any single character, except newline. 862\par {\b [}{\i set}{\b ]}\tab any single character from the bracketed {\i set}. 863\par {\b ^}\tab beginning of a line. 864\par {\b $}\tab end of a line. 865\par {\b \\}\tab the next character has no special meaning, take the next character literally (unless it is a parenthesis) 866\par {\b ?}\tab the preceding character (or "{\b .}" or {\b [}{\i set}{\b ]}) is optional. 867\par {\b *}\tab the preceding character (or "{\b .}" or {\b [}{\i set}{\b ]}) matches zero to many times. 868\par {\b +}\tab the preceding character (or "{\b .}" or {\b [}{\i set}{\b ]}) matches one to many times. 869\par {\b \\(}{\i group}{\b \\)}\tab define a {\ul group}{\v Group} for the replacement string, or for the {\uldb &group}{\v .group} {\ul function}{\v Function}. 870\par \pard\plain \s6\sa120 \f4\fs20 Some characters in the replacement string can have special meanings: 871\par \pard\plain \s7\fi-1080\li1440\sa120\tx1440\tx2880 \f4\fs20 {\b &}\tab insert all of the text matched by the search. 872\par {\b \\}\tab the next character has no special meaning (but see groups below...) 873\par {\b \\1} to {\b \\9}\tab insert the text defined by the {\i n}{\fs18\up6 th} group in the search string. 874\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} OVER Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} OVER}} {\fs16\up6 +{\footnote 875\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:over}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} OVER;mode;insert;REP}} OVER Mode 876\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS is normally in what many other editors consider "ins 877ert" mode. This means when you strike a character, MicroEMACS makes room for that character in the current line, inserting it between the existing characters. In OVER mode, MicroEMACS instead overwrites characters, replacing the existing character under t 878he {\ul point}{\v Point} with the character you type. OVER mode will maintain the position of text lined up using tabs while replacing existing text. 879\par Be wary of editing Japanese KANJI characters while in this mode: it is possible to overwrite the first byte of the character, leaving the second byte meaningless and alone. {\uldb REP mode}{\v REP} is more appropriate for such files. 880\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} WRAP Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} WRAP}} {\fs16\up6 +{\footnote 881\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:wrap}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} WRAP;mode;fill;word}} WRAP Mode 882\par \pard\plain \s6\sa120 \f4\fs20 This mode causes the {\ul point}{\v Point} and the previous {\uldb word}{\v Words} 883 to jump down to the next line when you type a space and are beyond the current fill column. This is normally set to column 72, allowing you to enter text non-stop on a standard screen without bothering to use the return key. 884\par To change the column that text is wrapped past, use the {\uldb set}{\v set} ({\ul ^XA}{\v Keystroke}) {\ul command}{\v Command} to change the value of the {\uldb $fillcol}{\v\uldb _fillcol} {\ul variable}{\v Variable}, like this: 885\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 ^XA $fillcol }{\i\f7 new_value}{\f7 886\par }\pard\plain \s6\sa120 \f4\fs20 MicroEMACS will then be set to wrap words past column {\i new_value}. 887\par The {\uldb $wraphook}{\v _wraphook} {\ul variable}{\v Variable} contains the command or {\ul macro}{\v Macro} used to perform word wrapping. By default, it is the {\uldb wrap-word}{\v wrap_word} command. 888\par \pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} VIEW Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} VIEW}} {\fs16\up6 +{\footnote 889\pard\plain \s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:view}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} VIEW;mode}} VIEW Mode 890\par \pard\plain \s6\sa120 \f4\fs20 When in VIEW mode, no {\ul command}{\v Command} which would change the text is allowed. If you attempt any such command, or try to type in any text, MicroEMACS responds with: 891\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 [Key Illegal in View Mode] 892\par }\pard\plain \s6\sa120 \f4\fs20 This mode is very useful when you want to just look at some existing text, as it will prevent you from changing that text. Also MicroEMACS will not attempt a {\ul file lock}{\v FileLocking} 893 if a file is read in VIEW mode, allowing you to view files which you don't have write access to, or other people have locked. To launch MicroEMACS and read a file in VIEW mode, use the -v {\uldb switch}{\v CommandLineSwitches}: 894\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 {\f7 emacs -v }{\i\f7 filename}{\f7 895\par }\pard\plain \s251\sa120\tx2880 \b\f4\fs20 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} REP Mode}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} REP}} {\fs16\up6 +{\footnote \pard\plain 896\s245 \f4\fs20 {\fs16\up6 +} ModesOfOperation:rep}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} REP;mode;insert;OVER}} REP Mode 897\par \pard\plain \s6\sa120 \f4\fs20 898MicroEMACS is normally in what many other editors consider "insert" mode. This means when you strike a character, MicroEMACS makes room for that character in the current line, inserting it between the existing characters. In REP mode, MicroEMACS instead r 899eplaces the existing character under the {\ul point}{\v Point} 900 with the character you type. REP mode will not maintain the position of text which takes up multiple columns using tabs since it will replace a single tab character with the typed character which will not take up the same space on screen. For this purpos 901e, the {\uldb OVER mode}{\v OVER} is more appropriate 902\par However, Japanese KANJI characters will correctly replace and be replaced in this mode as the two bytes will be considered together when either style character is used. 903\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 {\plain \f4\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Start-up}}{\plain \f4\fs16 }{\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Startup}} 904{\plain \f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2050}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} start-up}} Start-up 905\par \pard\plain \s6\sa120 \f4\fs20 There are different things that can be specified on the {\uldb MicroEMACS command line}{\v CommandLineSwitches} to control the way the editor operates. These can be switches, which are a dash "{\b -} 906" followed by a letter, and possible other parameters, or a {\uldb start-up file}{\v StartupFile} specifier, which is an at sign "{\b @}" followed by a file name that overrides the default "EMACS.RC". 907\par Under Microsoft Windows, MicroEMACS also uses some {\uldb profiles}{\v Profiles} from the WIN.INI file. 908\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16\cf2 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Start-up File}}{\plain \f4\fs16\cf2 }{\plain \f4\fs16\cf2\up6 #{\footnote \pard\plain \s245 \f4\fs20 { 909\fs16\up6 #} StartupFile}} {\plain \f4\fs16\cf2\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2050startupfile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} start-up;emacs.rc}} Start-up File 910\par \pard\plain \s6\sa120 \f4\fs20 When MicroEMACS starts executing, it looks for a start-up file which it will execute as a {\ul macro}{\v Macro} before it reads in any other file. This start-up macro usually redefines some {\ul bindings}{\v Binding} 911 (for instance to use function keys) and loads various useful macros. 912\par The name of the start-up file can be specified on the {\uldb MicroEMACS command line}{\v CommandLineSwitches}. By default, it is: EMACS.RC. 913\par Unless the pathname of the start-up file is fully qualified, MicroEMACS searches for the file along the {\ul path}{\v Path}. 914\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16\cf2 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Command Line Switches}}{\plain \f4\fs16\cf2 }{\plain \f4\fs16\cf2\up6 #{\footnote \pard\plain \s245 \f4\fs20 { 915\fs16\up6 #} CommandLineSwitches}} {\plain \f4\fs16\cf2\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2050startupcommandlineswitches}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} switches;start-up}} 916 Command Line Switches 917\par \pard\plain \s6\sa120 \f4\fs20 The command line used to launch MicroEMACS looks like this: 918\par \pard\plain \s4\fi-2160\li2880\sa120\tx2880 \f27\fs18 EMACS.EXE {\i switches files to edit} 919\par \pard\plain \s6\sa120 \f4\fs20 The following {\i switches} can be specified: 920\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\b @}{\i file}\tab This causes the named {\i file} to be executed instead of the standard {\uldb EMACS.RC}{\v StartupFile} 921 file before MicroEMACS reads in any other files. More than one of these can be placed on the command line, and they will be executed in the order that they appear. 922\par {\b -C}\tab The following source files on the command line can be changed (as opposed to being in VIEW mode). This is mainly used to cancel the effects of the -v switch used previously in the same command line. 923\par {\b -E}\tab This flag causes emacs to automatically run the start-up file "error.cmd" instead of emacs.rc. This can be used by compilers for error processing. 924\par {\b -G}{\i num} or {\b +}{\i num}\tab Upon entering MicroEMACS, position the cursor at the {\i num} line of the first file. 925\par {\b -I}{\i var value}\tab Initialize a MicroEMACS {\uldb variable}{\v Variables} with {\i value}. 926\par {\b -K}{\i key}\tab This tells MicroEMACS to place the source files in {\uldb CRYPT mode}{\v CRYPT} and read it in using {\i key} as the encryption key. If no key is listed after the {\b -K} 927 switch, you will be prompted for a key, and it will not be echoed as it is typed. 928\par {\b -R}\tab This places MicroEMACS in "restricted mode" where any {\ul commands}{\v Commands} 929 allowing the user to read or write any files other than the ones listed on the command line are disabled. Also all commands allowing the user access to the operating system are disabled. This makes MicroEMACS a "safe" environment for use within other app 930lications and especially used as a remote editor for an electronic Bulletin Board System (BBS). 931\par {\b -S}{\i string}\tab After MicroEMACS is started, it automatically {\uldb searches}{\v SearchingAndReplacing} for {\i string }in the first source file. 932\par {\b -V}\tab This tells MicroEMACS that all the following files on the command line should be in {\uldb VIEW mode}{\v VIEW} to prevent any changes being made to them. 933\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Profiles}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Profiles}} {\fs16\up6 +{\footnote 934\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2050startupprofiles}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;start-up;WIN.INI}} Profiles 935\par \pard\plain \s6\sa120 \f4\fs20 Profiles are entries in the WIN.INI file and are used only under Microsoft Windows. MicroEMACS uses a few profiles, all placed under the "[MicroEMACS]" section, to define the initial window size, the initial font and the p 936ath names of some files. 937\par The following profiles can be modified by editing the WIN.INI file: 938\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\uldb Colors}{\v ColorsProfile}\tab number of colors supported by the display.{\uldb 939\par DOSExec}{\v DosExecProfile}\tab path name of a PIF file for {\uldb pipe-command}{\v pipe_command}, {\uldb filter-buffer}{\v filter_buffer} and {\uldb i-shell}{\v i_shell} 940\par {\uldb DOSBox}{\v DosBoxProfile}\tab path name of a PIF file for {\uldb shell-command}{\v shell_command} 941\par {\uldb HelpFile}{\v HelpFileProfile}\tab path name of this help file 942\par {\uldb InitialSize}{\v InitialSizeProfile}\tab keywords: "maximize", "minimize" or "optimize" 943\par {\uldb Shell}{\v ShellProfile}\tab path name of the shell executable under Windows NT. 944\par {\uldb ShellExecOption}{\v ShellProfile}\tab command execution option for the shell under Windows NT. 945\par {\uldb TimeSlice}{\v TimeSliceProfile}\tab number of milliseconds of processing before yielding to other applications 946\par \pard\plain \s6\sa120 \f4\fs20 The font-related profiles ({\b FontName}, {\b FontWeight}, {\b FontWidth}, {\b FontHeight} and {\b CharSet}) are updated by MicroEMACS itself when a {\uldb font selection}{\v Fonts} is saved. 947\par \pard\plain \s252\sa120\tx2880 \b\f4 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Colors Profile}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ColorsProfile}} {\plain \f4\fs16\up6 + 948{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:ColorsProfile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;color}} Colors Profile 949\par \pard\plain \s6\sa120 \f4\fs20 The Colors {\uldb profile}{\v Profiles} is used to force MicroEMACS to run in either color or monochrome mode. In color mode, the {\ul mode lines}{\v ModeLine} 950 display back text over a light grey background and editable text is displayed as white on black (these colors can be {\uldb customized}{\v Colors} 951). In monochrome mode, MicroEMACS uses the colors specified by the system (configurable through the Windows Control Panel), using highlighted text for the mode lines. 952\par The value associated to the colors profile is the number of colors supported by the system, or zero ( 953to allow MicroEMACS to automatically determine the proper value). Monochrome mode is assumed for values 1 and 2. Values greater than 2 put MicroEMACS in color mode. 954\par If this profile does not appear in the [MicroEMACS] section of the WIN.INI file, the default value is 0. 955\par Setting this profile is particularly useful on monochrome displays that allow multiple shades of gray (in particular, laptop screens), as MicroEMACS mistakenly believes these to be actual color displays. 956\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} DOSExec Profile}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} DosExecProfile}} {\fs16\up6 +{\footnote 957\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:dosexecprofile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;DOS;PIF;filter;pipe;shell;WIN.INI}} DOSExec Profile 958\par \pard\plain \s6\sa120 \f4\fs20 The DOSExec {\uldb profile}{\v Profiles} specifies the path name of a PIF file used by the {\uldb pipe-command}{\v pipe_command}, {\uldb filter-buffer}{\v filter_buffer} and {\uldb i-shell}{\v i_shell} 959 commands under MS Windows 3.x. This profile is also used when the {\uldb shell-command}{\v shell_command} command is invoked with a {\ul numeric argument}{\v Argument}. 960\par If this profile does not appear in the [MicroEMACS] section of the WIN.INI file, the file "DOSEXEC.PIF" is searched along the {\ul path}{\v Path} 961. This is appropriate if, for instance, that file is located in the directory where the MicroEMACS executable resides. 962\par \pard\plain \s252\sa120\tx2880 \b\f4 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} DOSBox Profile}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} DosBoxProfile}} {\fs16\up6 +{\footnote 963\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:dosboxprofile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;DOS;PIF;shell;WIN.INI}} DOSBox Profile 964\par \pard\plain \s6\sa120 \f4\fs20 The DOSBox {\uldb profile}{\v Profiles} specifies the path name of a PIF file used when the {\uldb shell-command}{\v shell_command} is invoked without a {\ul numeric argument}{\v Argument} under MS Windows 3.x. 965\par If this profile does not appear in the [MicroEMACS] section of the WIN.INI file, the file "DOSBOX.PIF" is searched along the {\ul path}{\v Path} 966. This is appropriate if, for instance, that file is located in the directory where the MicroEMACS executable resides. 967\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} HelpFile Profile}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} HelpFileProfile}} {\plain \f4\fs16\up6 + 968{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:helpfileprofile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;help;WIN.INI}} HelpFile Profile 969\par \pard\plain \s6\sa120 \f4\fs20 The HelpFile {\uldb profile}{\v Profiles} specifies the path name of the Help file for MicroEMACS. It allows proper function of the menu items that call-up this Help file. 970\par The default value is the file "MEWIN.HLP" within the directory where the MicroEMACS executable resides. 971\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} InitialSize Profile}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} InitialSizeProfile}} {\plain \f4\fs16\up6 972+{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:initialsizeprofile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;size;WIN.INI}} InitialSize Profile 973\par \pard\plain \s6\sa120 \f4\fs20 The InitialSize {\uldb profile}{\v Profiles} specifies options for the sizing of the initial MicroEMACS frame window. It can be one of the following keywords: 974\par \pard\plain \s2\fi-2520\li2880\sa120\tx2880 \f4\fs20 {\b maximize}\tab the frame window fills the whole display 975\par {\b icon} or {\b minimize}\tab MicroEMACS starts as an icon 976\par {\b optimize}\tab the frame window fills the whole display, except a single row of icons at the bottom. 977\par \pard\plain \s6\sa120 \f4\fs20 If the InitialSize profile is not used, the initial size of the MicroEMACS frame window is decided by the operating system. 978\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Shell and ShellExecOption Profiles}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} ShellProfile}} {\plain 979\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:ShellProfile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;Shell}} Shell and ShellExecOption Profiles 980\par \pard\plain \s6\sa120 \f4\fs20 The {\b Shell} {\uldb profile}{\v Profiles} specifies the path name of the shell executable used by the {\uldb pipe-command}{\v pipe_command}, {\uldb filter-buffer}{\v filter_buffer}, {\uldb i-shell}{\v i_shell} and {\uldb 981shell-command}{\v shell_command} 982 commands under Windows NT. If this profile does not appear in the [MicroEMACS] section of the WIN.INI file, the default path name is "CMD.EXE". This is appropriate if that file is located in a directory that appears in the system path. 983\par The {\b ShellExecOption} profile specifies the string to be inserted between the string specified by the Shell profile 984and the actual command to be executed (for pipe-command, filter-buffer and shell-command). If this profile does not appear in the [MicroEMACS] section of the WIN.INI file, the default is " /c ". This is appropriate for "CMD.EXE". 985\par \pard\plain \s252\sa120\tx2880 \b\f4 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} TimeSlice Profile}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} TimeSliceProfile}} {\plain \f4\fs16\up6 + 986{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Profiles:timesliceprofile}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} profile;timeslice;WIN.INI}} TimeSlice Profile 987\par \pard\plain \s6\sa120 \f4\fs20 Under Microsoft Windows 3.x, when MicroEMACS performs a long operation (reading or writing a large file, searching text, moving large chunks of text to/from the {\ul kill buffer}{\v\uldb KillBuffer} or {\ul clipboard}{\v 988Clipboard}, killing a buffer, etc...), it allows other applications to run concurrently with itself. 989\par The TimeSlice {\uldb profile}{\v Profiles} specifies how often MicroEMACS should relinquish the processor: when a long operation is in process, MicroEMACS does not yield to other applications until the number of milliseconds thus specified has elapsed. 990 991\par The default value is 100 milliseconds. 992\par \pard\plain \s12\fi-720\li720\sa120 \f4\fs20 Notes:\tab Under Windows NT, the preemptive multitasking nature of the operating system allev 993iates the need for MicroEMACS to voluntarily yield to other applications. The TimeSlice profile is still used to determine how often input (like a command to exit the editor) is checked. 994\par \tab If the {\uldb animated grinder}{\v _flicker} (replacing the hourglass mouse cursor) is enabled, the TimeSlice profile also determines the time interval between each change of the cursor image. 995\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 {\fs16 \page }{\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} Memory Usage}}{\fs16 }{\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MemoryUsage}} {\fs16\up6 +{\footnote 996\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2060}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} memory}} Memory Usage 997\par \pard\plain \s6\sa120 \f4\fs20 The only limit to the number of {\ul buffers}{\v Buffer} is the memory of your computer. All the buffers, text, {\ul screens}{\v Screen} and {\ul windows}{\v Window} use memory for storage. 998\par Under Microsoft Windows, the accessible storage can be rather large, depending on the amount of extended memory installed on you system. If you are running in Windows 3.x 386-enhanced mode, MicroEMACS is able to use virtual memory, allowing you to edit ve 999ry large files. 1000\par Under MSDOS, the AMIGA, the Atari ST, the HP150 and other microcomputers you can estimate the memory used by adding up the size 1001 of all the files you want to edit simultaneously, multiply by 1.4, and add 170K for the size of MicroEMACS. This results in the amount of free memory needed to edit these files. On an MSDOS machine with 574K of conventional memory available, you can edit 1002 files totaling about 288K in size. If you are using the DOS-extended version of MicroEMACS, the memory available for editing is determined by the amount of extended memory installed in your computer, up to 16 Megabytes. 1003\par On UNIX, Windows NT and other systems with large virtual memory there is almost no limit to the number and size of files you edit. 1004\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} MS-Windows Specifics}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} Ms_WindowsSpecifics}} {\plain 1005\f4\fs16\up6 +{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 +} Index:2070}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} MS-Windows;windows}} MS-Windows Specifics 1006\par \pard\plain \s6\sa120 \f4\fs20 The port of MicroEMACS to the Microsoft Windows environment exhibits a few particularities not encountered with other versions of the editor: 1007\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 \tab All the standard {\ul commands}{\v Command} are available. {\uldb Additional commands}{\v AdditionalCommands} are available: they allow access to the {\ul clipboard}{\v 1008Clipboard}, {\uldb menu customization}{\v CustomizingMenus}, invocation of the {\uldb help engine}{\v help_engine} and control of {\ul screens}{\v Screen} as MDI (Multiple Document Interface) windows. 1009\par \tab In interactive mode, the file access commands use a dialog box instead of the {\ul message line}{\v MessageLine} prompt. 1010\par \tab It is possible to {\uldb drag files}{\v DragAndDrop} from the Windows File Manager onto MicroEMACS, providing a {\ul macro}{\v Macro} has been set-up to handle them. 1011\par \tab MDI windows (aka screens) and the MicroEMACS frame window can be resized by dragging their border with the mouse or using the sizing buttons. 1012\par \tab Text can be scrolled into view by using the scroll bars located at the right and bottom of each screen. 1013\par \tab When MicroEMACS is running a {\ul macro}{\v Macro} 1014, waiting for user input on the message line, or reading/writing a file, it is possible to input menu or other mouse commands, but only a subset of features is available. In particular, resizing is disabled and most menu options are grayed. 1015\par \tab It is possible to terminate MicroEMACS at any time, using the "{\ul C}lose"{\b }(Alt+F4) item of the upper-left corner menu box. If there are modified {\ul buffers}{\v Buffer}, or a file write operation is in progress, a confirmation is requested. 1016 1017\par \tab The amount of {\uldb memory}{\v MemoryUsage} available for buffers is limited only by the actual (conventional and extended) memory available, including virtual memory when running Windows NT or Windows 3.x in 386-enhanced mode. 1018\par \tab MicroEMACS can {\uldb synchronize}{\v SynchronizingWithADosBox} with other applications it launches. 1019\par \pard\plain \s6\sa120 \f4\fs20 MicroEMACS runs as a well-behaved Windows application, {\uldb sharing the processor}{\v TimeSliceProfile} with other applications, even when a lengthy operation is in process. 1020\par Under Windows 3.x, MicroEMACS is a protected mode-only application: {\b it does not support real mode}, and runs only under standard or 386-enhanced mode. 1021\par The following {\ul page}{\v Page} are distributed with MicroEMACS for Windows and loaded by the {\uldb emacs.rc}{\v StartupFile} start-up file supplied in the distribution package: 1022\par \pard\plain \s11\li360\tx2880 \f4\fs20 {\uldb CUA.CMD}{\v CUA.CMD}\tab Common User Access macros 1023\par {\uldb DEV.CMD}{\v DEV.CMD}\tab example macro for software development 1024\par \pard \s11\li360\sa120\tx2880 {\uldb MDI.CMD}{\v MDI.CMD}\tab macros to map files to MDI windows 1025\par \pard\plain \s6\sa120 \f4\fs20 In addition, if a page named CUSTOM.CMD (to be supplied by the user) is found in the path, it is loaded after the three above. 1026\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} CUA.CMD}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} CUA.CMD}} {\plain \f4\fs16\up6 +{\footnote 1027\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Pages:CUACMD}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} CUA.CMD}} CUA.CMD 1028\par \pard\plain \s6\sa120 \f4\fs20 This {\ul page}{\v Page} is distributed with MicroEMACS for Windows and loaded by the {\uldb emacs.rc}{\v StartupFile} start-up file. It contains a number of {\ul macros}{\v Macro} and {\ul rebinds}{\v Binding} 1029 many keys, in order make MicroEMACS more similar to other Windows applications that use the Common User Access standard. 1030\par To that end, a set of {\ul clipboard}{\v Clipboard} 1031-related macros are supplied and you can select a piece of text by dragging the mouse across it while holding the left button held down or by moving around with the arrows or page keys while holding the Shift key down. That selection can then be {\b 1032deleted} by pressing the Delete key, {\b copied} to the clipboard with the Ctrl+Insert keys, {\b cut} with Shift+Delete and {\b pasted} from the clipboard with Shift+Insert 1033\par Additionally, the following general purpose macros that work on the {\ul selection}{\v Selection} are supplied: 1034\par \pard\plain \s3\fi-2880\li2880\sa120\tqr\tx720\tx900\tx2880 \f4\fs20 \tab {\ul A-U}{\v Keystroke}\tab {\b CUA-case-upper}\tab converts all the selected text to upper case 1035\par \tab {\ul A-L}{\v Keystroke}\tab {\b CUA-case-lower}\tab converts all the selected text to lower case 1036\par \tab {\ul A-W}{\v Keystroke}\tab {\b CUA-count-words}\tab displays on the {\ul message line}{\v MessageLine} the number of words, characters and lines that compose the selected text 1037\par \tab {\ul A-=}{\v Keystroke}\tab {\b CUA-flip-selection}\tab exchanges the {\ul point}{\v Point} with the other end of the selection 1038\par \tab {\ul A-^M}{\v Keystroke}\tab {\b CUA-select-region}\tab (Alt+Enter) makes the current {\ul region}{\v Region} the current selection 1039\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} DEV.CMD}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} DEV.CMD}} {\plain \f4\fs16\up6 +{\footnote 1040\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Pages:DEVCMD}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} DEV.CMD}} DEV.CMD 1041\par \pard\plain \s6\sa120 \f4\fs20 This sample {\ul page}{\v Page} is distributed with MicroEMACS for Windows and loaded by the {\uldb emacs.rc}{\v StartupFile} start-up file. It contains a few of {\ul macros}{\v Macro} 1042 that demonstrate how some features of the macro language can be used to facilitate software development: 1043\par \pard\plain \s11\li360\sa120\tx2880 \f4\fs20 The {\b run-makefile} macro is added to the {\uldb Execute menu}{\v ExecuteMenu}. It spawns a shell to run the command specified by the {\b %make} {\uldb user variable}{\v UserVariables} and {\uldb synchronizes 1044}{\v SynchronizingWithADosBox} with it. When the make process is finished, its output is displayed in a {\ul buffer}{\v Buffer} named "{\b Results}". 1045\par A series of macros are added to the {\uldb Help menu}{\v HelpMenu}. They search a specific help file for a topic matching the word under the {\ul point}{\v Point}. 1046\par \pard\plain \s253\sa240\tx2880 \b\f4\cf2 {\plain \f4\fs16\up6 \page ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} MDI.CMD}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} MDI.CMD}} {\plain \f4\fs16\up6 +{\footnote 1047\pard\plain \s245 \f4\fs20 {\fs16\up6 +} Pages:MDICMD}} {\plain \f4\fs16\up6 K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} MDI.CMD}} MDI.CMD 1048\par \pard\plain \s6\sa120 \f4\fs20 This {\ul page}{\v Page} is distributed with MicroEMACS for Windows and loaded by the {\uldb emacs.rc}{\v StartupFile} start-up file. It contains {\ul macros}{\v Macro} that make it easier to associate each {\ul buffer}{\v 1049Buffer} with a separate {\ul screen}{\v Screen} (i.e. an MDI window). To that end: 1050\par \pard\plain \s11\li360\sa120\tx2880 \f4\fs20 The {\b open-file} macro replaces the {\uldb find-file}{\v find_file} {\ul command}{\v Command} in the {\uldb File menu}{\v FileMenu} and in key bindings ({\ul ^X^F}{\v Keystroke} 1051). Instead of reusing the current screen, it creates a new screen to house each newly opened file. 1052\par The {\b rebuild-screens} macro, invoked from the {\uldb Screen menu}{\v ScreenMenu}, associates a screen to each {\ul buffer}{\v Buffer}. 1053\par The {\b kill-screen} macro ({\ul A-K}{\v Keystroke}) deletes a screen and the associated buffer. 1054\par \pard\plain \s6\sa120 \f4\fs20 MDI.CMD also contains the {\b drop-files} macro that handles {\uldb drag and drop}{\v DragAndDrop} actions by invoking the {\b open-file} macro for each dropped file. 1055\par \pard\plain \s254\qc\sa240 \b\f4\fs30\cf2 \page {\plain \f4\fs16\up6 ${\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 $} No help available}} {\plain \f4\fs16\up6 #{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 #} NoHelpAvailable}} {\plain \f4\fs16\up6 1056K{\footnote \pard\plain \s245 \f4\fs20 {\fs16\up6 K} default}} Sorry, no help available on this topic 1057\par \pard\plain \s6\sa120 \f4\fs20 You have attempted to get Help for a term that the Help system does not recognize. 1058\par Here are some other ways to find Help for individual terms: 1059\par \pard \s6 {\b\ul Help Search} 1060\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1)\tab Choose the {\b\ul S}{\b earch} button (Alt+S) from the top of this Help window (just below the menu bar). 1061\par 2)\tab In the Help Search dialog box, under Search For, type in the term you want Help for. If the term is indexed in the Help, you will go to that term in the upper list box. If the term is not indexed, you will go to the closest lexical match instead. 1062 1063\par 3)\tab Press Enter or choose the dialog's {\b Search} button. You will see a list of 1 or more Help topics in the Topics Found 1064\par \pard\plain \s6\sa120 \f4\fs20 Alternatively, within the Help Search list box, scroll through the list to find a specific topic, then press Enter or choose the {\b\ul G}{\b o To} button to jump to that Help topic. 1065\par \pard \s6 {\b\ul Help Index} 1066\par \pard\plain \s8\fi-360\li360\sa120\tx360\tx1440\tx2880\tx3600\tx4320 \f4\fs20 1)\tab Use the {\b\ul I}{\b ndex} button (Alt+I) and then choose the category that best fits your query. 1067\par 2)\tab Then traverse Help links through the topics until you find what you are looking for. If it is documented in the Help system, you should be able to find it within 4 or 5 topics. 1068\par }