The EHP editor is an editor written on a HP UNIX workstation. It has been ported to OS/2 2.0 and I might call this release 1.0. For the moment the documentation (except this document) is German. The package can be compiled using EMX GCC 0.8e or greater. Unpack the file using unzip utility. Construct a suitable keyboard layout using the extracted program km.exe or use the withcoming tasten.inf. Enter the path where you stored tasten.inf in the definition of you EHPINIT environment variable. Install procedure: Copy the .exe files and the tasten.inf file to a directory of your choice (best one contained in your PATH) and set the environment variable EHPINIT to something like set EHPINIT=autoind screen 80x50 keys xxx\tasten.inf where xxx represents the path where you put the tasten.inf file. If you don't have installed emx, you have to copy the .DLL-files to a directory contained in your LIBPATH statement, e.g. to \OS2\DLL. Changes of version 1.0 compared with latest beta release: - Screen update (curses implementation) tries to work more efficiently. This turns out to be a gain e.g. when resizing or moving a window with the mouse, or when doing find/replace (command line update got much faster!). This is especially an advantage when using EHP in a PM window. Known bugs: - Since I use emx-0.8f, I can't get the mouse work in a full screen session. I tried to solve the problem with small test programs written from scratch, but without any success. I just don't want to believe that 0.8f is the reason for this, but on the other hand I didn't make any changes concerning the mouse. If using the mouse in a full screen session is necessary, try to compile the package with 0.8e and please report your results to me. - If the confirmation coming up when leaving EHP by a keyboard command is answered with the mouse, EHP gets blocked. Terminate it using CTRL-c. Iïm working on it... Things on my TO DO list: - Double click could mark a word as a block - Any kind of online help should be provided (e.g. by pressing F1 the keyboard layout pops up in a window) - I'd like to get the damned mouse work in full screen mode! - A command for matching parentheses would be nice, wouldn't it? - Pattern matching when doing find seems not to be that difficult. Patterns in replace seem more sophisticated. Please report bugs, hints, statements, comments and other feedback to me via e-Mail to auhl@fzi.de ! ------------------------- Initial keyboard layout --------------------------- CTRL-a Insert line before current line CTRL-b Block commands: - b mark beginning of block - c copy block to cursor position - d delete block - e end of rectangular block (good for moving comments) - f filter the block (e.g. pass the block through SORT) - i indent block (left or right) - m move block to cursor position - n end of normal block (with line wrap) - p copy contents of paste-buffer to cursor position - r read block from file and insert at cursor position - t cuT block (means: copy it to the paste-buffer) - u unmark block - w write block to file CTRL-c abort repeat function or macro execution, insert control code in text or command CTRL-e Edit commands: (perhaps not the right menu, open for suggestions) - l load file in current window - r rename file - s save file contained in current window CTRL-f Find / Replace - a Again (repeat last find or replace) - f find - r replace Short description of find/replace options: number: Find th element / replace elements a: (replace only) replace all occurrences b: search from the beginning of the text e: search from textend upwards ('r' implicit) g: (replace only) global (don't ask for replace) i: ignore upper-/lowercase r: reverse (search backwards) u: (replace only) underline replace expression if and only if the first character of the found search expression is underlined. (without 'u' underlining is done according to the current underline mode, see CTRL-u) w: find/replace words only CTRL-g Goto commands: - b goto beginning of marked block - e goto end of marked block - g goto marker - l last position (stored before CTRL-g, jump to beginning or end of file, searching, replacing) - n goto line number - s set marker CTRL-j Join (append following line to the current one) CTRL-k (from the German korrigieren (correct)) insert the line deleted last (with CTRL-y) before the current line CTRL-l Refresh (VI-like) CTRL-n Repeat find/replace (same as CTRL-f-a) CTRL-o (VI-like open line) insert line after current line CTRL-q Delete to end-of-line CTRL-r repeat a command sequence n times CTRL-s Set/unset flags - a autoindent - b blockhighlighting - c tabcompression (blanks may be converted to tabs when saving the file, this is the default) - s shell mode (when pressing RETURN, the part of the current line up to the cursor position is passed to the shell, the result of the executed command is inserted in the text and marked as a block) - t define tablength (how far the TAB key ought to jump, not what number of spaces is converted to a tab in the text's file representation) - . create .bak-files when overwriting an existing file CTRL-t Delete word right to the cursor (Borland-like) CTRL-u toggle underline mode (underlined characters are represented by _^H where is the underlined character). CTRL-v Macro definition/execution CTRL-w Window functions - c close current window - d switch direct to another window by supplying the name of the file contained in the window - i switch to window by index (number of the window displayed in the lower left corner of each window) - m move window on the screen - n switch to next window - o open new window - p switch to previous window. This operation is symmetric, i.e. applied twice, you get to the window where you were before. - s change size of current window - t toggle window size (two sizes exist, both of which are initially set to full size) CTRL-x Exit commands - n exit without saving and without executing the load file (the load file is a batch file, which can optionally be executed when quitting the editor, e.g. it may contain the call to MAKE) - s exit with saving all modified files, but without executing the load file - N exit without saving, but with loadfile execution. The default name for the load file is load.bat in the current directory, but it can be modified using the environment variable EHPINIT. - S exit with saving all modified files and executing the load file. CTRL-y delete the current line (can be undone using CTRL-k) arr_left move cursor left one character arr_right move cursor right one character arr_up move cursor up one character arr_down move cursor down one character CTRL-arr_left move cursor left one word CTRL-arr_right move cursor right one word CTRL-arr_up move window content including cursor one line up CTRL-arr_down move window content including cursor one line down ALT-arr_left make current line appear in the middle of the window ALT-arr_up make current line first line of window ALT-arr_down make current line last line of window HOME move cursor to beginning of current line END move cursor to end of current line CTRL-HOME move cursor to the first line of the window CTRL-END move cursor to the last line of the window PgUp one page up PgDn one page down CTRL-PgUp go to beginning of file CTRL-PgDn go to end of file ALT-PgUp go half a page up ALT-PgDn go half a page down DEL delete character on which the cursor stands Backspace delete character left to the cursor. If cursor is in first column, join current line with the upper line. Ins Toggle insert/overwrite mode --------------------------- Mouse commands ------------------------------ Left button: - click on text Set the cursor to the current mouse position and activate that window (if not already activated) - click and move on text Mark a normal block (like CTRL-b b and CTRL-b n) - click on headline and move Move the window - click on lower right corner of window and move Resize that window - click on upper left corner Close that window (like CTRL-w c) - click on upper right corner Toggle window size (like CTRL-w t) - click on arrows in frame Scroll text in arrow direction - click on yes/no-question YES Right button: - click on text with no block marked and no block in PASTE-buffer Set the cursor to the current mouse position and activate that window (if not already activated) - click on text with no block marked and block in the PASTE-buffer Paste the block from the PASTE-buffer into the text at the current mouse position - click on text with a block marked in the window clicked to The marked block is stored in the PASTE-buffer and unmarked - click and move on text Mark a rectangular block (like CTRL-b b and CTRL-b r) - click on headline Push the window into the background - click on lower right corner of window and move Resize that window - click on upper left corner Close that window (like CTRL-w c) - click on upper right corner Toggle window size (like CTRL-w t) - click on arrows in frame Scroll text in arrow direction - click on yes/no-question NO Middle and left: (press middle first, then left, probably three-button-mouse is not supported by OS/2 at the moment) - on text move marked block to mouseposition Middle and right: (press middle first, then right, probably three-button-mouse is not supported by OS/2 at the moment) - on text or frame with marked block in window clicked to delete marked block in current window ------------------- The environment variable EHPINIT -------------------- autoind turn autoindent mode on by default nohelp turn off the helpline noshowblock turn off blockhighlighting nobak turn off creation of .bak files deftab set tabsize to n screen CxL switch to screen size CxL (C=columns, L=lines) NOTE: be sure, your video card supports that mode keys keyboard file is stored in conffile config file storing information about the session, like open files, window sizes and macros, is stored in file . If not supplied, a file called config.sys if opened in the current directory. loadfile The loadfile (explained at CTRL-x) is named If this option is omitted, the file is looked for under the name load.cmd in the current directory. Enjoy, Axel (auhl@fzi.de)