COHERENT manpages
This page displays the COHERENT manpage for me [MicroEMACS screen editor].
List of available manpages
Index
me -- Command MicroEMACS screen editor me [-e errorfile] [-f bindfile] [textfile ...] me is the command for MicroEMACS, the screen editor for COHERENT. With MicroEMACS, you can insert text, delete text, move text, search for a string and replace it, and perform many other editing tasks. MicroEMACS reads text from files and writes edited text to files; it can edit several files simultaneously, while displaying the contents of each file in its own screen window. Screen Layout Before you can use MicroEMACS, you must set the environmental variable TERM in your environment. If you do not set this variable explicitly in your .profile file, COHERENT sets it by default to ansipc. See the Lexicon entry TERM for details. If the command me is used without arguments, MicroEMACS opens an empty buffer. If used with one or more file name arguments, MicroEMACS will open each of the files named, and display its contents in a window. If a file cannot be found, MicroEMACS will assume that you are creating it for the first time, and create an appropriately named buffer and file descriptor for it. The last line of the screen is used to print messages and inquiries. The rest of the screen is portioned into one or more windows in which text is displayed. The last line of each window shows whether the text has been changed, the name of the buffer, and the name of the file associated with the window. MicroEMACS notes its current position. It is important to remember that the current position is always to the left of the cursor, and lies between two letters, rather than at one letter or another. For example, if the cursor is positioned at the letter `k' of the phrase ``Mark Williams'', then the current position lies between the letters `r' and `k'. Commands and Text The printable ASCII characters, from ` ' to `~', can be inserted at the current position. Control characters and escape sequences are recognized as commands, described below. A control character can be inserted into the text by prefixing it with <ctrl-Q> (that is, hold down the <control> key and type the letter `Q'). There are two types of commands to remove text. Delete commands remove text and throw it away, whereas kill commands remove text but save it in the kill buffer. Successive kill commands append text to the previous kill buffer. Moving the cursor before you kill a line will empty the kill buffer, and write the line just killed into it. Search commands prompt for a search string terminated by <return> and then search for it. Case sensitivity for searching can be toggled with the command <esc>@. Typing <return> instead of a search string tells MicroEMACS to use the previous search string. Some commands manipulate words rather than characters. MicroEMACS defines a word as consisting of all alphabetic characters, plus `_' and `$'. Usually, a character command is a control character and the corresponding word command is an escape sequence. For example, <ctrl-F> moves forward one character and <esc>F moves forward one word. MicroEMACS can handle blocks of text as well as individual characters, words, and lines. MicroEMACS defines a block of text as all the text that lies between the mark and the current position of the cursor. For example, typing <ctrl-W> kills all text from the mark to the current position of the cursor; this is useful when moving text from one file to another. When you invoke MicroEMACS, the mark is set at the beginning of the file; you can reset the mark to the cursor's current position by typing <ctrl- @>. Using MicroEMACS with the Compiler MicroEMACS can be invoked automatically by the compiler command cc to help you repair all errors that occur during compilation. The -A option to cc causes MicroEMACS to be invoked automatically when an error occurs. The compiler error messages are displayed in one window, the source code in the other, and the cursor is at the line on which the first error occurred. You can correct the errors one by one. To move to the next error in the list, type <ctrl-X>>; to move the previous error, type <ctrl- X><. When have finished making corrections, exit from MicroEMACS by typing <ctrl-Z>, as usual; the compiler will automatically be re-invoked to re-compile the corrected source code. If more errors are found, MicroEMACS will be re-invoked with the new list of errors. This cycle will continue either until the file compiles without error, or until you break the cycle by typing <ctrl-U> <ctrl-X> <ctrl-C>. The option -e to the me command allows you to invoke the error buffer by hand. For example, the commands cc myprogram.c 2>errorfile me -e errorfile myprogram.c divert the compiler's error messages into errorfile, and then invokes MicroEMACS to let you correct them interactively. The MicroEMACS Help Facility MicroEMACS has a built-in help facility. With it, you can ask for information either for a word that you type in, or for a word over which the cursor is positioned. The MicroEMACS help file contains the bindings for all library functions and macros included with COHERENT. For example, consider that you are preparing a C program and want more information about the function fopen. Type <ctrl-X>?. At the bottom of the screen will appear the prompt Topic: Type fopen. MicroEMACS will search its help file, find its entry for fopen, then open a window and print the following: Open a stream for standard I/O #include <stdio.h> FILE *fopen (name, type) char *name, *type; If you wish, you can kill the information in the help window and copy it into your program, to ensure that you prepare the function call correctly. Consider, however, that you are checking a program written earlier, and you wish to check the call for a call to fopen. Simply move the cursor until it is positioned over one of the letters in fopen, then type <esc>?. MicroEMACS will open its help window, and show the same information it did above. To erase the help window, type <ctrl-X>1. Options The following list gives the MicroEMACS commands. They are grouped by function, e.g., Moving the cursor. Some commands can take an argument, which specifies how often the command is to be executed. The default argument is 1. The command <ctrl-U> introduces an argument. By default, it sets the argument to four. Typing <ctrl-U> followed by a number sets the argument to that number. Typing <ctrl-U> followed by one or more <ctrl-U>s multiplies the argument by four. Moving the Cursor <ctrl-A> Move to start of line. <ctrl-B> (Back) Move backward by characters. <esc>B Move backward by words. <ctrl-E> (End) Move to end of line. <ctrl-F> (Forward) Move forward by characters. <esc>F (Forward) Move forward by words. <esc>G Go to an absolute line number in a file. Same as <ctrl-X>G. <ctrl-N> (Next) Move to next line. <ctrl-P> (Previous) Move to previous line. <ctrl-V> Move forward by pages. <esc>V Move backward by pages. <ctrl-X>= Print the current position. <ctrl-X>G Go to an absolute line number in a file. Can be used with an argument; otherwise, it will prompt for a line number. Same as <esc>G. <ctrl-X>[ Go to matching C delimiter. For example, if the cursor is positioned under the character `{', then typing <ctrl-X>[ moves the cursor to the next `}'. Likewise, if the cursor is positioned under the character }, then typing <ctrl-X>[ moves the cursor to the first preceding `{'. MicroEMACS recognizes the delimiters [, ], {, }, (, ), /*, and */. <ctrl-X>] Toggle reverse-video display of matching C delimiters. For example, if reverse-video displaying is toggled on, then whenever the cursor is positioned under a `}' MicroEMACS displays the first preceding '{' in reverse video (should it be on the screen). MicroEMACS recognizes the delimiters [, ], {, }, (, ), /*, and */. <esc>! Move the current line to the line within the window given by argument; the position is in lines from the top if positive, in lines from the bottom if negative, and the center of the window if zero. <esc>< Move to the beginning of the current buffer. <esc>> Move to the end of the current buffer. Killing and Deleting <ctrl-D> (Delete) Delete next character. <esc>D Kill the next word. <ctrl-H> If no argument, delete previous character. Otherwise, kill argument previous characters. <ctrl-K> (Kill) With no argument, kill from current position to end of line; if at the end, kill the newline. With argument set to one, kill from beginning of line to current position. Otherwise, kill argument lines forward (if positive) or backward (if negative). <ctrl-W> Kill text from current position to mark. <ctrl-X><ctrl-O> Kill blank lines at current position. <ctrl-Y> (Yank back) Copy the kill buffer into text at the current position; set current position to the end of the new text. <esc><ctrl-H> Kill the previous word. <esc><DEL> Kill the previous word. <DEL> If no argument, delete the previous character. Otherwise, kill argument previous characters. Windows <ctrl-X>1 Display only the current window. <ctrl-X>2 Split the current window into two windows. This command is usually followed by <ctrl-X>B or <ctrl-X><ctrl-V>. <ctrl-X>N (Next) Move to next window. <ctrl-X>P (Previous) Move to previous window. <ctrl-X>Z Enlarge the current window by argument lines. <ctrl-X><ctrl-N> Move text in current window down by argument lines. <ctrl-X><ctrl-P> Move text in current window up by argument lines. <ctrl-X><ctrl-Z> Shrink current window by argument lines. Buffers <ctrl-X>B (Buffer) Prompt for a buffer name, and display the buffer in the current window. <ctrl-X>K (Kill) Prompt for a buffer name and delete it. <ctrl-X><ctrl-B> Display a window showing the change flag, size, buffer name, and file name of each buffer. <ctrl-X><ctrl-F> (File name) Prompt for a file name for current buffer. <ctrl-X><ctrl-R> (Read) Prompt for a file name, delete current buffer, and read the file. <ctrl-X><ctrl-V> (Visit) Prompt for a file name and display the file in the current window. Saving Text and Exiting <ctrl-X><ctrl-C> Exit without saving text. <ctrl-X><ctrl-S> (Save) Save current buffer to the associated file. <ctrl-X><ctrl-W> (Write) Prompt for a file name and write the current buffer to it. <ctrl-Z> Save current buffer to associated file and exit. Compilation Error Handling <ctrl-X>> Move to next error. <ctrl-X>< Move to previous error. Search and Replace <ctrl-R> (Reverse) Incremental search backward; a pattern is sought as each character is typed. <esc>R (Reverse) Search toward the beginning of the file. Waits for entire pattern before search begins. <ctrl-S> (Search) Incremental search forward; a pattern is sought as each character is typed. <esc>S (Search) Search toward the end of the file. Waits for entire pattern before search begins. <esc>% Search and replace. Prompt for two strings; then search for the first string and replace it with the second. <esc>/ Search for next occurrence of a string entered with the <esc>S or <esc>R commands; this remembers whether the previous search had been forward or backward. <esc>@ Toggle case sensitivity for searches. By default, searches are case insensitive. Keyboard Macros <ctrl-X>( Begin a macro definition. MicroEMACS collects everything typed until the next <ctrl-X>) for subsequent repeated execution. <ctrl-G> breaks the definition. <ctrl-X>) End a macro definition. <ctrl-X>E (Execute) Execute the keyboard macro. <ctrl-X>M Bind a newly created keyboard macro to a given keystroke or set of keystrokes. Flexible Key Bindings <ctrl-X>R Replace one binding with another. <ctrl-X>X Rebind the prefix (meta) keys, and the multiple-execution key <ctrl-U>. <ctrl-X>S Prompt for a file name, and write all flexible keybindings and macros into it. This command also saves information about how you have configured MicroEMACS; for example, it notes whether you have turned on word-wrapping. <ctrl-X>L Prompt for a file name, and read all flexible keybindings and macros from it. <ctrl-X>I Rebind current macro to the initialization macro. By default, MicroEMACS checks for the existence of file $HOME/.emacs.rc and executes it if found. The -f option lets you specify an alternate file of keybindings macros from the me command line. After loading the file, MicroEMACS then executes the initialization macro, if one exists. For example, to load the keybindings file bindings and edit file textfile, use the command: me -f bindings textfile Change Case of Text <esc>C (Capitalize) Capitalize the next word. <ctrl-X><ctrl-L> (Lower) Convert all text from current position to mark into lower case. <esc>L (Lower) Convert the next word to lower case. <ctrl-X><ctrl-U> (Upper) Convert all text from current position to mark into upper case. <esc>U (Upper) Convert the next word to upper case. White Space <ctrl-I> Insert a tab. Default behavior is to move the cursor to the nearest 8's boundary; for example, if the cursor is in the 62nd column on the screen, pressing <ctrl-I> moves it to column 64. When used with a positive argument, change the behavior of the tab key. For example, <ctrl-U>4<ctrl-I> commands MicroEMACS to insert enough spaces for a tab key to reach a four's boundary. When used with a negative argument, change the behavior of the tab character. For example, <ctrl-U>-4<ctrl-I> says that a tab character on a file will take you to the nearest 4's boundary. Thus, if you have a file with tabs in it and you use `-4', the appearance of the file on the screen will change; but if you use `4' the appearance of the file on the screen will not change. To change the default size of a tab, set the environmental variable TABSIZE to a value other than eight. <ctrl-J> Insert a new line and indent to current level. This is often used in C programs to preserve the current level of indentation. <ctrl-M> (Return) If the following line is not empty, insert a new line; if empty, move to next line. <ctrl-O> Open a blank line; that is, insert newline after the current position. <tab> With argument, set tab fields at every argument characters. An argument of zero restores the default of eight characters. Setting the tab to any character other than eight causes space characters to be set in your file instead of tab characters. Send Commands to Operating System <ctrl-C> Suspend MicroEMACS and execute a subshell. Typing <ctrl-D> returns you to MicroEMACS and allows you to resume editing. <ctrl-X>! Prompt for a shell command and execute it. These commands recognize the shell variable SHELL to determine the shell to which it should pass the command. Setting the Mark <ctrl-@> Set mark at current position. <esc>. Set mark at current position. Help Window <ctrl-X>? Prompt for word for which information is needed. <esc>? Search for word over which cursor is positioned. <esc>2 Erase help window. Miscellaneous <ctrl-G> Abort a command. <ctrl-L> Redraw the screen. <ctrl-Q> (Quote) Insert the next character into text; used to insert control characters. <esc>Q Quote a character by numeric value. When you type this command, MicroEMACS prompts you for a numeric value, in decimal. It then inserts into your text the character whose value you type. This command is useful when you wish to enter characters with the high bit set. <ctrl-T> Transpose the characters before and after the current position. <ctrl-U> Specify a numeric argument, as described above. <ctrl-U><ctrl-X><ctrl-C> Abort editing and re-compilation. Use this command to abort editing and return to COHERENT when you are using the -A option to the cc command. <ctrl-X>H Use word-wrap on a region. <ctrl-X>F Set word wrap to argument column. If argument is one, set word wrap to cursor's current position. <ctrl-X><ctrl-X> Mark the current position, then jump to the previous setting of the mark. This is useful when moving text from one place in a file to another. Diagnostics MicroEMACS prints error messages on the bottom line of the screen. It prints informational messages (enclosed in square brackets `[' and `]' to distinguish them from error messages) in the same place. MicroEMACS manipulates text in memory rather than in a file. The file on disk is not changed until you save the edited text. MicroEMACS prints a warning and prompts you whenever a command would cause it to lose changed text. See Also commands, ed, elvis, ex, sed, TERM, vi Notes Because MicroEMACS keeps text in memory, it does not work for extremely large files. It prints an error message if a file is too large to edit. If this happens when you first invoke a file, you should exit from the editor immediately. Otherwise, your file on disk will be truncated. If this happens in the middle of an editing session, however, delete text until the message disappears, then save your file and exit. Due to the way MicroEMACS works, saving a file after this error message has appeared will take more time than usual. MicroEMACS is based upon the public domain editor by David G. Conroy.