═══ 1. General Help ═══ MED is a Shareware texteditor for programmers available for OS/2 PM and Windows 9x/NT. MED's functionality is designed to be suitable for any text editing job. In addition MED provides a lot of features that support writing and compiling source code (Java, C/C++, Modula2 etc.). MED also takes advantage of OS/2 specialities: Drag'n'Drop (files, fonts, colors), EAs (cursor position, bookmarks), multiple threads and data exchange via clipboard and DDE. Furthermore, MED is not based on the MLE control element, so there is no loss of performance when editing large files. o MED features o A word about Shareware o How to register o Where to get the latest version o License Agreement ═══ 2. Important information ═══ Some MED features are not obvious at first sight. So here some important notes: o When a new version of MED is installed, the old configuration files (med.cfg, med.syn, med.kbd, med.tlb) can be used with the new version. o The keyboard is configurable. o The toolbar is configurable (height, position, predefined symbols, userdefined symbols, button size, bubble help). o You can use [SHIFT+arrowKey] to mark a standard line block. and [SHIFT+ALT+arrowKey] to mark a column block. o The Section Browser and the Section Display can be adapted to any type of file. o The Window Monitor can optionally be attached to the main window (left, right, top or bottom). Height/width and position of the Window Monitor are adjusted when the main window is moved or resized. More features... Note: This help screen is displayed only the first time you start MED (or in case you remove med.cfg)... ═══ 3. The Authors Portrait ═══ This picture shows the author maintaining his beloved canadian "Rocky Mountain" aluminum horse. ═══ 4. Menu Commands ═══ Almost every edit function can be called via an menu entry. At the end of each menu entry an optional keyboard shortcut is displayed. You may freely change this shortcut using the edit shortcut dialog. ═══ 4.1. Menu - File ═══ The File menu provides standard file operations like New, Open, Save and so on. Furthermore a File History shows the names of the last recently opened files for quick access. See also notebook "Settings", page "Misc". ═══ 4.1.1. New ═══ New creates a new untitled buffer. ═══ 4.1.2. Open via fileselector... ═══ Open via fileselector brings up the Fileselector dialog which allows you to select one or more files to be opened. If you select one file only, this file will be loaded into the current active edit window. You can change this behavior by disabling the option Open file in active edit window in the notebook Settings, on page "Load". The same is true if you select multiple files: the first will be loaded into the current active edit window (unless you disable the option mentioned above), the following will be loaded into automatically opened edit windows. Files may also be opened via Drag & Drop In case you drop multiple file icons in an edit window, the first will be loaded into the current active edit window (unless you disable the option mentioned above), the following will be loaded into automatically opened edit windows. After a file has been loaded, several operations may automatically be called. See notebook Settings, page "Load/Save". Note: A Skeleton File is loaded automatically when a new textbuffer is created or an empty file is opened. This is useful for setting up a standard header in a new file. Skeleton files must be located in the MED configuration directory (this is where med.cfg resides). ═══ 4.1.3. Pick filename from textbuffer ═══ Pick filename from textbuffer reads a filename at the current cursor position and loads the file. If the filename contains a relative path (or no path), the file is searched relative to the path of the text, from which the filename was taken. This feature is very useful to quick access include files: place the cursor anywhere to the include filename and then press [CTRL+KO] or doubleclick with the left mousebutton while pressing [CTRL+ALT]. ═══ 4.1.4. Import... ═══ Import brings up the Fileselector dialog which allows you to select the file to be inserted at the current cursor position. Note: Before calling the Import function, you must set the appropriate block mode (line/column mode). A file can be imported as a line block or as a column block. ═══ 4.1.5. Save ═══ The Save action saves the buffer displayed in the current edit window to disk. Before a file is saved, several operations may automatically be called See notebook Settings, page "Load/Save". ═══ 4.1.6. Save as... ═══ The Save as... action brings up the Fileselector dialog which permits you to change the path and file name of the current buffer. The buffer is saved to the new path and file name when you select the OK push button. If the file already exists on disk you are asked if it is OK to over-write the existing file. Before a file is saved, several operations may automatically be called See notebook Settings, page "Load/Save". ═══ 4.1.7. Close ═══ Close deletes the current buffer attached to the currently active window. If the buffer has unsaved modifications you are presented a dialog box which permits you to save the buffer before deleting, delete without saving or cancel the delete buffer operation. ═══ 4.1.8. Save & Exit ═══ Save & Exit saves the buffer displayed in the current edit window to disk and then exits the editor. A dialog box will be displayed if there are unsaved buffers, giving you the option of saving them before exiting. Before a file is saved, several operations may automatically be called See notebook Settings, page "Load/Save". ═══ 4.1.9. Exit ═══ Exit the editor, displaying a dialog box if there are unsaved buffers, giving you the option of saving them before exiting. ═══ 4.2. Menu - Edit ═══ The Edit menu provides functions which do not rely on a selected block. ═══ 4.2.1. Undo ═══ Undo backs out the last editing command which changed the contents of the current buffer's text. If you accidently undo something which you wanted to keep use the Redo command to reverse the effect of your undo action. Up to 400 edit commands will be saved in the Undo-List. You may change this amount in the notebook Settings page Edit. Note: Switching to another edit window clears the Undo-List. ═══ 4.2.2. Redo ═══ Redo reverses the effect of undoing the last editing command which was undone. Redo is available only after you have used Undo. If you accidently redo something which you wanted to keep undone use the Undo command to reverse the effect of your redo action. Note: Once you redo what you have undone and then resume editing the undo/redo information for what you have just redone will be discarded. Up to 400 edit commands will be saved in the Redo-List. You may change this amount in the notebook Settings page Edit. Note: Switching to another edit window clears the Redo-List. ═══ 4.2.3. Cut to clipboard ═══ Cut to clipboard deletes the selected block from the current active edit window and copies it to the system clipboard. The text cut to the clipboard can be retrieved anywhere in a edit window by using the Paste clipboard function. Note: any previous text contents of the clipboard are overwritten. ═══ 4.2.4. Copy to clipboard ═══ Copy to clipboard copies the selected block to the system clipboard. The selected block remains unchanged. The text copied to the clipboard can be retrieved anywhere in a edit window by using the Paste clipboard function. Note: any previous text contents of the clipboard are overwritten. ═══ 4.2.5. Append to clipboard ═══ Append to clipboard copies the selected block to the system clipboard without overwriting any previous text contents of the clipboard. The selected block remains unchanged. The accumulated clipboard contents can be retrieved anywhere in a edit window by using the Paste clipboard function. ═══ 4.2.6. Paste clipboard (line mode) ═══ Paste clipboard (line mode) copies the data from the system clipboard to the current active edit window as a line block. ═══ 4.2.7. Paste clipboard (column mode) ═══ Paste clipboard (column mode) copies the data from the system clipboard to the current active edit window as a column block. The clipboard contents will be inserted at the current cursor position. Each line of the clipboard will be integrated in the already existing lines of your edit window. ═══ 4.2.8. Save cursor position ═══ initializes the "ping-pong" bookmark. Restore cursor position sets the cursor to this bookmark. Example: Set the cursor to line 20 and call "Save cursor position". Then scroll to line 100 and call "Restore cursor position". The cursor jumps to line 20. Now call "Restore cursor position" again and the cursor jumps back to line 100. The next call will jump to line 20 and so on.... ═══ 4.2.9. Restore cursor position ═══ sets the cursor to the "ping-pong" bookmark. Save cursor position initializes the "ping-pong" bookmark. Example: Set the cursor to line 20 and call "Save cursor position". Then scroll to line 100 and call "Restore cursor position". The cursor jumps to line 20. Now call "Restore cursor position" again and the cursor jumps back to line 100. The next call will jump to line 20 and so on.... ═══ 4.2.10. Submenu - Text ═══ The Text submenu contains functions that operate on all lines of a text. ═══ 4.2.10.1. Expand tabs ═══ Expand tabs transforms all tab characters (ASCII 9) to blanks. Note: this action can be called automatically when an existing file is opened. See notebook Settings page Load/Save. ═══ 4.2.10.2. Generate tabs ═══ Generate tabs transforms blanks to tab characters (ASCII 9). Note: this action can be called automatically when an existing file is saved. See notebook Settings page Load/Save. ═══ 4.2.10.3. Reformat... ═══ Reformat applies the word wrap procedure to all lines in the active textbuffer. But first this dialog is displayed: You can enter a new wrap column and then press Ok to start the reformat procedure. The wrap column may also be specified in the notebook Settings page Edit/Word wrapping. ═══ 4.2.10.4. Sort... ═══ Sort brings up the Sort dialog which enables you to set various parms for sorting lines. ═══ 4.2.10.5. Convert Default codepage to MS Windows codepage ═══ converts all characters in the active textbuffer from the OS/2 default codepage (set in CONFIG.SYS) to the MS Windows compatible codepage 1004. Note: The codepage that is used to display/edit the text is not changed. You can switch to the MS Windows display codepage in menu Window->Codepage. ═══ 4.2.10.6. Convert MS Windows codepage to Default codepage ═══ converts all characters in the active textbuffer from the MS Windows compatible codepage 1004 to the OS/2 default codepage (set in CONFIG.SYS). Note: If a MS Windows text is edited, you can activate the MS Windows codepage in menu Window->Codepage (in case the text is still used under Windows) or you can use this function to convert the text to the OS/2 default codepage (in case the text is used only under OS/2). ═══ 4.2.11. Submenu - Word ═══ The Word submenu contains functions that manipulate words : o Select o Delete o Truncate o Upper case o Lower case o Capitalize ═══ 4.2.11.1. Select ═══ Select marks the word at the current cursor position as a block. ═══ 4.2.11.2. Delete ═══ Delete the complete word at the current cursor position. ═══ 4.2.11.3. Delete to end of word ═══ Deletes all characters from the the current cursor position to the end of a word. ═══ 4.2.11.4. Delete to start of word ═══ Deletes all characters from the the current cursor position to the start of a word. ═══ 4.2.11.5. Upper case ═══ Upper case transforms the complete word at the current cursor position to upper case. ═══ 4.2.11.6. Lower case ═══ Lower case transforms the complete word at the current cursor position to lower case. ═══ 4.2.11.7. Capitalize ═══ Capitalize transforms the first character of the word at the current cursor position to upper case. The remainder will be converted to lower case. ═══ 4.2.12. Submenu - Line ═══ The Line submenu contains functions that manipulate single lines : o Pick o Paste o Delete o Paste deleted line o Truncate o Swap o Center o Indent o Unindent ═══ 4.2.12.1. Pick line ═══ Pick line copies the current active line into a separate line buffer. This buffer can be inserted using the Paste line function. ═══ 4.2.12.2. Paste line ═══ Paste line inserts the contents of the line buffer above the current active line. A line can be copied to that line buffer using the Pick line function. ═══ 4.2.12.3. Swap lines ═══ Swap lines swaps the current and following line. ═══ 4.2.12.4. Delete line ═══ Delete line deletes the complete active line. The deleted line is stored in a separate line buffer. Use Paste deleted line to insert the deleted line in any edit window. The line will be inserted above the current active line. ═══ 4.2.12.5. Paste deleted line ═══ Paste deleted line inserts a deleted line above the current active line. ═══ 4.2.12.6. Truncate line ═══ Truncate line deletes the current active line to end of the line, starting at the current cursor position. ═══ 4.2.12.7. Center line ═══ centers a line between the first column and the word wrap column. ═══ 4.2.12.8. Indent line ═══ Instead of tab positions, the word positions in the lines above the current line are used to calculate the indenting positions, until the first visible line of the window is reached. The line is indented at the current cursor position. Example: printf("hello\n"); // Hello for(;;) printf("world!\n");// World ^ | Cursor position before Indent . . . printf("world!\n"); // World ^ | Cursor position after Indent See also Unindent and Unindent Block ═══ 4.2.12.9. Unident line ═══ Instead of tab positions, the word positions in the lines above the current line are used to calculate the indenting positions, until the first visible line of the window is reached. The line is unindented at the current cursor position. Example: printf("hello\n"); // Hello for(;;) printf("world!\n"); // World ^ | Cursor position before UnIndent . . . printf("world!\n"); // World ^ | Cursor position after UnIndent See also Indent and Indent Block ═══ 4.2.13. Submenu - Draw ═══ The Draw submenu contains the graphic drawing functions. Marked rectangles (column blocks) can be framed with the selected line style. There are 10 different line styles selectable: ╔════╦════╗ ┌────┬────┐ ╒════╤════╕ ╓────╥────╖ ║Test║Test║ │Test│Test│ │Test│Test│ ║Test║Test║ ╚════╩════╝ └────┴────┘ ╘════╧════╛ ╙────╨────╜ ░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓ ███████████ ░Test░Test░ ▒Test▒Test▒ ▓Test▓Test▓ █Test█Test█ ░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒ ▓▓▓▓▓▓▓▓▓▓▓ ███████████ +----+----+ *********** |Test|Test| *Test*Test* +----+----+ *********** ═══ 4.3. Menu - Block ═══ TheBlock menu provides block/clipboard manipulation functions. ═══ 4.3.1. Mark start ═══ Mark start sets the start line/column of a block. Note: set the cursor to the first column to mark a line block. Otherwise you'll get a column block. See How to select a block ═══ 4.3.2. Mark end ═══ Mark end sets the end end line/column of a block. See How to select a block ═══ 4.3.3. Unmark ═══ Unmark deselects a block. ═══ 4.3.4. Persistent selektion ═══ deselect this option if you want a block to be automatically unmarked when the cursor is moved. ═══ 4.3.5. Line mode ═══ activates the line block mode. Note: The block mode is set automatically when when a block is marked with the mouse. The mouse buttons can be configured on page "Mouse" in the notebook "Settings". [SHIFT+arrow key] commands switch to line block mode, [SHIFT+ALT+arrow key] commands switch to column block mode. ═══ 4.3.6. Column mode ═══ activates the column block mode. Note: The block mode is set automatically when when a block is marked with the mouse. The mouse buttons can be configured on page "Mouse" in the notebook "Settings". [SHIFT+arrowKey] commands switch to line block mode, [SHIFT+ALT+arrowKey] commands switch to column block mode. ═══ 4.3.7. Copy ═══ Copy copies a block directly to a new location in any edit window. Note: the clipboard contents will not be changed! ═══ 4.3.8. Move ═══ Move moves a block directly to a new location in any edit window. Note: the clipboard contents will not be changed! ═══ 4.3.9. Delete ═══ Delete deletes a block from the current active buffer. Note: the clipboard contents will not be changed! ═══ 4.3.10. Shift left ═══ Shift left moves a block horizontal to the left. If you have selected a line block, only the part of the block located right to the current cursor position will be moved. Note: A line block must contain only whole lines (block start column = block end column = 1). If you have selected a column block, the complete block will be moved left. The shift distance can be configured in the notebook Settings page Edit. Note: the clipboard contents will not be changed! ═══ 4.3.11. Shift right ═══ Shift right moves a block horizontal to the right. If you have selected a line block, only the part of the block located right to the current cursor position will be moved. Note: A line block must contain only whole lines (block start column = block end column = 1). If you have selected a column block, the complete block will be moved to the right. Note: the clipboard contents will not be changed! ═══ 4.3.12. Indent block ═══ Instead of tab positions, the word positions in the lines above the first block line are used to calculate the indenting positions, until the first visible line of the window is reached. The block is indented at the current cursor position. Example 1: Example 2: Note: A line block must contain only whole lines (block start column = block end column = 1). See also Unindent Block and Unindent line ═══ 4.3.13. Unident block ═══ Instead of tab positions, the word positions in the lines above the first block line are used to calculate the indenting positions, until the first visible line of the window is reached. The block is unindented at the current cursor position. Example: Note: A line block must contain only whole lines (block start column = block end column = 1). See also Indent Block and Indent line ═══ 4.3.14. Reformat... ═══ Reformat applies the word wrap procedure to the lines of a line block. But first this dialogs is displayed: You can enter a new wrap column and then press Ok to start the word wrap procedure. The wrap column may also be specified in the notebook Settings page Edit/Word wrapping. ═══ 4.3.15. Save... ═══ Save writes the selected block to disk. ═══ 4.3.16. Fill block... ═══ fills a block with a requested character. If no character is entered, the block is filled with spaces. ═══ 4.4. Menu - Search ═══ The Search menu contains the standard search/replace functions. Furthermore some special functions are provided. ═══ 4.4.1. Find... ═══ Find brings up the Find dialog allowing you to specify the search parameters. ═══ 4.4.2. Find next ═══ Find next uses the last search pattern and direction to search for the next match. ═══ 4.4.3. Replace... ═══ Replace brings up the Find & Replace dialog allowing you to specify the replace parameters. ═══ 4.4.4. Goto line... ═══ Goto line brings up the Goto line dialog in which you can enter the absolute line number you wish to jump to in the current buffer. ═══ 4.4.5. Find matching bracket ═══ Find matching bracket tries to find a corresponding bracket. To use this function set the cursor to a valid open/close bracket. Note: you may freely edit/extend the list of brackets. See notebook Settings page Brackets. ═══ 4.4.6. Help on keyword ═══ Help on keyword opens the appropriate third-party online-help for the word at the current cursor position. See also Online-Help configuration ═══ 4.4.7. Section Browser ═══ brings up the Section Browser dialog. ═══ 4.4.8. Jump to Section ═══ starts hypertext-like section searching. Set the cursor to a sections reference (for example a call to a C-function) and then start "Find section" or press [CNTRL+Return]. This will search the function declaration in the buffers first, and then in the files of the working directory. A feature to define specific directories to search will be implemented in the next version of MED (project management). ═══ 4.4.9. Previous Section ═══ with the Section Display enabled, you can use this function to jump to the previous section of a file (C-function, IPF paragraph etc.). ═══ 4.4.10. Next Section ═══ with the Section Display enabled, you can use this function to jump to the next section of a file (C-function, IPF paragraph etc.). ═══ 4.4.11. Submenu - Bookmarks ═══ The Bookmarks submenu provides functions to set/manipulate bookmarks. ═══ 4.4.11.1. Set bookmark... ═══ Set bookmark brings up the Set bookmark dialog. ═══ 4.4.11.2. Jump to bookmark... ═══ Jump to bookmark brings up the Bookmark list dialog. ═══ 4.4.11.3. Next bookmark ═══ Next bookmark sets the cursor to the next bookmark. ═══ 4.4.11.4. Prev bookmark ═══ Prev bookmark sets the cursor to the previous bookmark. ═══ 4.5. Menu - Macro ═══ The Macro menu contains functions to manage macros. ═══ 4.5.1. Start/Stop macrorecorder ═══ Start/Stop macrorecorder initiates or stops the recording of a new macro. If you start recording, the Record macro dialog is displayed, in which you must specify a key combination. This key combination is used to play back the macro after you have stopped recording. Note: you may change the key combination later in the Macro Manager dialog. The number of macros/macro events is not restricted. ═══ 4.5.2. Load macros... ═══ Load macros brings up the fileselector dialog which allows you to load a new macro file. All currently loaded macros will be overwritten. Note: macros may be loaded automatically at startup. ═══ 4.5.3. Add macros... ═══ Add macros brings up the fileselector dialog which allows you to load a new macro file. All currently loaded macros will not be overwritten. Note: macros may be loaded automatically at startup. ═══ 4.5.4. Save macros... ═══ Save macros brings up the fileselector dialog which allows you to save all currently existing macros to disk. ═══ 4.6. Menu - Window ═══ The Window menu contains the functions to switch/arrange the edit windows. ═══ 4.6.1. Next window ═══ Makes next window the current (active) window. This window is made the topmost edit window. ═══ 4.6.2. Previous window ═══ Makes previous window the current (active) window. This window is made the topmost edit window. ═══ 4.6.3. Maximize ═══ Causes all edit windows to be sized to fill the main window without overlapping each other. ═══ 4.6.4. Cascade ═══ Causes all edit windows to be sized and positioned from the upper left corner of the main window towards the lower right corner of the main window overlapping each other so that just the title bar of overlapped windows is displayed. The current window becomes the topmost window. ═══ 4.6.5. Side by side ═══ Causes all edit windows to be sized and positioned side by side. ═══ 4.6.6. Tile ═══ Causes all edit windows to be sized and positioned one beneath the other. ═══ 4.6.7. Activate Default codepage ═══ The codepage that is used to display/edit the text is changed to the OS/2 default codepage (set in CONFIG.SYS). ═══ 4.6.8. Activate MS Windows compatible codepage ═══ The codepage that is used to display/edit text is changed to the MS Windows compatible codepage 1004. Note: If a MS Windows text is edited, you can activate the MS Windows codepage (in case the text is still used under Windows) or you can use the function "Edit->Text->Convert codepage" to convert the text to the OS/2 default codepage (in case the text is used only under OS/2). ═══ 4.7. Menu - Options ═══ The Options menu contains various configuration commands. ═══ 4.7.1. Insert mode ═══ Insert mode sets the writing mode explicitly to "insert". This is useful in macros where you can't use the "toggle writing mode" command. ═══ 4.7.2. Overwrite mode ═══ Overwrite mode sets the writing mode explicitly to "overwrite". This is useful in macros where you can't use the "toggle writing mode" command. ═══ 4.7.3. Auto word wrap mode ═══ use this option to switch the automatic word wrap mode on/off. With this option enabled, word wrapping is performed dynamically during typing new text. A text or a selected block may be reformatted on demand using the Reformat function in the Edit or Block menu. Note: The wrap column can be specified in the notebook Settings page Edit/Word wrapping. ═══ 4.7.4. Reload syntax configuartion ═══ Reloads the syntax configuration file med.syn on the fly. ═══ 5. Important topics ═══ MED offers many features, so only the most outstanding ones can be mentioned here: Search & Replace o Search & Replace in all textbuffers o Multiple file/directory search generating a color coded result list o Regular expression search o brace matching (free defineable) Language specific features o configurable Syntax-Highlighting (video display and printer) o configurable Section Browser o configurable Section Display o hypertext-like Section searching o Skeleton files Tool Integration o configurable compiler support o support of compiler error messages o configurable support of third-party Online-Help and EPM NDX files o IBM C Set++ and Visual Age integration via DDE Customizing features o configurable keyboard o configurable toolbar o configurable line numbering o configurable context menu o configurable Autosave o configurable print function (formatted, raw ASCII) o configuration via commandline Text buffers o unlimited number of edit windows o unlimited number of views o auto file reload at startup o Loading/saving cursor position o "Window Monitor" o up to 99 backups per file Editing features o persistant column blocks o easy to use macro recorder o line sorting o various word functions o graphic drawing function o word wrap function o persistant bookmarks o global visible anchors o MS Windows codepage support Misc o enhanced Fileselector o automatic recognition of unix-format files o pipe-operator support o Drag & Drop support ═══ 5.1. Commandline options and startup functions ═══ Startup functions Autoloading (med.lru) can be skipped by pressing [CNTRL] during startup. If the screen resolution has changed, MED automatically restores default values for size/position/font of the main window and the configurable dialogs. This default values can be restored anytime by pressing [SHIFT+CTRL] during startup. Commandline options med [-r] [-l] [file1 [line [col]]] ... [fileN [line [col]]] [-f fileList] [-m macro1[;macro2;...]] [-i configFile] [-k kbdFile] [-t toolbarFile] [-r] This option sets MED to a global read-only mode. In this mode, all opened files are read-only. You can not switch to the edit mode during the editor session. [-l] MED supports the usage of the commandline pipe operator (|). With this operartor, the output of a program can be directly send to a second program, which reads the data as input. MED normally interprets the input stream as lines of text, and inserts the lines in a new created buffer. If the input stream is a list of file names, the -l option advises MED not to insert the file names in a text buffer, but to automatically load the given files. See also: Pipe operator support. File names the number of file names you can pass is not limited. File names may contain wildcards ("*", "?", "[]"). Note: A Skeleton File is loaded automatically when an empty file is opened. This is useful for setting up a standard header in a new file. Skeleton files must be located in the MED configuration directory (this is where med.cfg resides). Cursor line/col following each file name you may optionally specify the line and column, where the cursor will be placed after the file has been loaded. If you leave out the column, the cursor will be placed to the first column in the specified line. fileList optionally you may pass -f followed by the name of a file containing file names (with or without path) which will be automatically opened. Example: grep -l foo *.c >filelist med -f filelist Macro name optionally you may pass -m followed by the name(s) of macros separated by a semikolon. This macros are launched after all files have been loaded at program startup. Note: The name of a macro can be entered in the Macro Recorder or the Makro-Manager (button Edit). Configuration file optionally you may pass -i followed by the name of a MED configuration file (default: "med.cfg"). Keyboard file optionally you may pass -k followed by the name of a MED keyboard configuration file (default: "med.kbd"). Toolbar file optionally you may pass -t followed by the name of a MED toolbar configuration file (default: "med.tlb"). ═══ 5.2. Pipe operator support ═══ MED supports the usage of the commandline pipe operator (|). With this operartor, the output of a program can be directly send to a second program, which reads the data as input. MED normally interprets the input stream as lines of text, and inserts the lines in a new created buffer. If the input stream is a list of file names, the -l option advises MED not to insert the file names in a text buffer, but to automatically load the given files. Examples: grep -l foo *.c | med -l grep foo *.c | med See also Commandline parameter. ═══ 5.3. Print (formatted) ═══ Margins "top/left/right/bottom" this entry fields permit adjustment of page borders. Adjustments are made in millimeter increments moving toward the center of the page. Note: The minimal values are determined by your printer. Print header if this option is enabled, a header line is printed on each page. Header "Left/Center/Right" enter the format string which describes the output in the header line. The following special substitution sequences may be used: %F substitutes the file name with path. %f substitutes the file name without path. %P substitutes the page number. %D substitutes the date. %T substitutes the time. Syntax Highlighting if this option is enabled, a file is printed using either monochrome or colored syntax highlighting. In monochrome mode, only font attributes (bold, underline, italic, outline) are used. In color mode, font attributes and colors are used. Font attributes and colors can be configured in "med.syn" ( color directive). Line numbers if this option is enabled, line numbers are printed at the start of each line (useful when printing source code listings). Block if this option is enabled, only the lines of a block selection will be printed. Select font... This button brings up the standard font selector dialog. Print This button starts the printing process. During the file is sended to the printer spooler, you may continue working in another edit window. Related topics: Printer setup ═══ 5.4. Printing (raw ASCII) ═══ Port select printer port. Line numbers if this option is enabled, line numbers are printed at the start of each line (useful when printing source code listings). Block if this option is enabled, only the lines of a block selection will be printed. ═══ 5.5. Replacing strings ═══ In this dialog you can enter various params for relacing a string Entryfield "Target" enter the string you want to replace Note: The dropdown list stores the entered strings. This list will be automatically saved so you can use it in your next editing session. Entryfield "Replacement" enter the replacement string Note: The dropdown list stores the entered strings. This list will be automatically saved so you can use it in your next editing session. Regular expressions Enable this option, if you want to use a regular expression in the search/replace string. Ignore case Select this option for non case sensitive searching Search words If this option is selected, the target string will be treated as a Word. No substrings will be found. Verify select this option if you want to see the verify dialog Replace? before a string is replaced. Replace from postion If this option is selected, the next matching string will be replaced from the current cursor position. Single buffer Select this option to replace matching strings in the active text buffer only. All buffers Select this option to replace matching strings in all text buffers. Block Select this option to replace matching strings in a selected block only. Replace Start replace action. ═══ Replace verify dialog ═══ ═══ 5.6. Third-party online help configuration ═══ MED supports third-party online help (for example the online help of your C/C++ compiler, the OS/2 online help files and so on). Just place the cursor to the keyword you need help for and select "Help on keyword" in the menu "Search" (or doubleclick with the left mouse button on the keyword while pressing [ALT]). This will bring up the appropriate online-help. Of course, in order to use this feature, you first have to do some easy configuration. If you have installed the EPM index files (*.NDX), everything is already done. Otherwise, the configuration is done in the file "med.syn". This file also controls the syntax-highlighting. It is divided into sections, each holding the rules for one or more file types. The online-help is configured by entries with the following syntax: inf: viewer onlinehelp [filter] [filter] ... inf: indicates that a online-help configuration statement follows. viewer is the name of the application which will be used to view the online-help file ("view.exe" in most cases). onlinehelp is the name of the online-help file (for example "cmdref.inf") You may connect online-help files with a '+' (for example pmwin.inf+pmgpi.inf+pmmsg.inf ) filter is optional and is used to describe the relation between keywords an the online-help. A filter may contain the wildcard characters '*' and '?'. Also the '[]' operator is supported. Note: Each section of "med.syn" may contain multiple online-help definitions. MED compares a keyword with all given filters. If none of the filters match, a popup menu is shown. This menu can be used to select the appropriate online-help manually. Examples: For config.sys All keywords are covered by "cmdref.inf". We need only one line in "med.syn" to configure the online-help: inf: view.exe cmdref.inf * For C/C++ source files This is not trivial, because a C/C++ source file usually contains keywords of different APIs, which are covered by differnet online-help files. Fortunately OS/2 API calls have a unique prefix. The following example is based on the online-help delivered with Watcom C/C++ 10.5. inf: view.exe pmwin.inf Win* inf: view.exe pmgpi.inf Gpi* inf: view.exe pmmsg.inf WM_* inf: view.exe pmref.inf [A-Z]* inf: view.exe progref20.inf Dos* inf: view.exe clib.inf Note that there are no filters specified in the last statement. If none of the above filters apply, a popup menu shows up and presents the names of all online-helps for selection. ═══ 5.7. Context menu configuration ═══ Click with the right mouse button in an edit window or press [SHIFT+F10] to bring up the main context menu. This menu contains different entries depending on whether a block is marked or not marked. You can configure the context menu as follows: Adding a function: Press CNTRL and hold it down while you click on the menubar entry you want to add to the context menu. The dialog Shortcut/Menu entry configuration is opened. Removing a function: Press CNTRL and hold it down. Bring up the context menu, and click on the context menu entry you want to remove. The dialog Shortcut/Menu entry configuration is opened. ═══ 5.8. Set bookmark ═══ Use this dialog to set a bookmark Entryfield "Short description" enter a short description of the bookmark. Note: If you leave this entryfield empty, MED automatically picks up the first 40 characters of the current line. This description is used in the dialog Bookmark list for easier identification. Global visible select this option if you want the bookmark to be accessible from every textbuffer (otherwise it will be private bookmark). Save x in EAs select this option if you want the bookmark to be saved in the extended file attributes, so you can use it in future editing sessions. The status of this option is part the MED configuration. With this option activated the bookmark list would grow permanently. To prevent this, the maximum count of bookmarks to be saved can be defined. ═══ 5.9. Bookmark list ═══ Use this dialog to position the cursor to a bookmark The dialog displays the short descriptions of the accessible bookmarks. Each file may have private and public bookmarks (see Set bookmark). Public bookmarks are displayed with the filename following the short description. Doubleclick a list entry to position the cursor to the selected bookmark. Jump Select a list entry and click on this button to position the cursor to the selected bookmark. Remove... Deletes a selected bookmark. ═══ 5.10. Macro Manager ═══ In this dialog you can do several managing jobs on macros Run starts playback of the selected macro (a doubleclick will also do that job). Of course, in most cases you will start a macro by its keyboard shortcut. Edit... brings up the Edit macro parameter dialog. Delete... deletes the selected macro. ═══ 5.11. Enter/Edit Macro Shortcut ═══ In this dialog you can enter/edit a macro shortcut and macro description Entryfield "Shortcut" enter the key which must be pressed with a modifier key (SHIFT, CTRL, ALT) to call the macro. The dropdown list contains predefined names of special keys (for example Backspace). MED supports multi level keyboard shortcuts a la WORDSTAR (for example "Ctrl + KB" ). Note: This field will be initialized by default with Esc in case you prepare to record a new macro. This is very useful when recording a macro "on the fly", which will be used only in the current editing session. Ctrl select this button to use Ctrl as modifier. Shift select this button to use Shift as modifier. Alt select this button to use Alt as modifier. Protect shortcut select this option to protect the shortcut from accidental overwriting. Entryfield "Macro name" enter a optional short description. This will help you to identify the macro in the Macro Manager dialog. ═══ 5.12. Mouse support ═══ Mouse actions inside an edit window: o Doubleclick with the left mouse button to select a word. o set the mouse pointer to a number, press [CTRL] and doubleclick with the left mouse button. This will switch to the previous text buffer and put the cursor to the line represented by that number. This is useful if you are still using the commandline and good old "make" to develop your applications (I don't like IDEs): load the buggy source file and the errors file created by your compiler (which contains line numbers)... o Doubleclick with the left mouse button on a keyword while pressing [ALT]. This brings up the third-party online-help. o A single click with the right mouse button activates a context menu. Note: The mouse block selection functions can be configured in the notebook "Settings" on page "Mouse". ═══ 5.13. How to select a block ═══ There are several methods you can use to select a block: Selecting a block with the keyboard Method 1: Set the cursor to the position where you want the block to begin. Press [SHIFT] and use the arrow keys to extend the line block. Note: Use [SHIFT+ALT+Arrow key] or [SHIFT+ALT+PgUp|PgDown] to select a column block. The block mode (line/column mode) is adjusted automatically. Method 2: Set the cursor to the position where you want the block to begin and select Mark start from the menu Block. Now set the cursor to the desired block end position and select Mark end. Note: This method requires that you adjust the block mode (line/column mode). The mode can be changed even after the block end has been set. Selecting a block with the mouse Use the left mouse button (default) to select a line block. Use the right mouse button (default) to select a column block. Move the mouse pointer to the desired position, then press the right mouse button (and keep it pressed). Now move the mouse pointer up/down/left/right until the desired end position is selected. Note: The actions of left/right mouse button can be configured in the "Settings" notebook on page "Mouse". ═══ 5.14. Regular Expressions ═══ Regular Expressions are used in the Find/Replace dialogs, the Section Browser and the Section Display. Search Operators \ Escape symbol. The following character will lose it's special meaning. \n Matches a 0x0A (Line Feed) character. \r Matches a 0x0D (Carriage Return) character. \t Matches a 0x09 (Tabulator) character. \f Matchess a 0xC (Form Feed) character. ^ Match a beginning of line. $ Match an end of line. . Match any character. [ ] Specifies a class of characters. [ - ] Specifies a range of characters. [^ ] Specifies complement class. * Match zero or more occurances of preceeding pattern. + Match one or more occurances of preceeding pattern. | Matches preceeding or next pattern. ( ) Group patterns together to form complex pattern. Also used to remember the matched substring which can be used for substitution operation. Up to 9 can be used. Replace Operators: \ Escape symbol. The following character will lose it's special meaning. \n Inserts a 0x0A (Linefeed) character. \r Inserts a 0x0D (Carriage Return) character. \t Inserts a 0x09 (Tabulator) character. \f Inserts a 0xC (Form Feed) character. \1 - \9 Recalls stored substring from matched pattern ()'s. \@ Recalls entire matched pattern. \u Convert next character to uppercase. \l Convert next character to lowercase. \U Convert substring to uppercase. \L Convert substring to lowercase. ═══ 5.15. Section Browser ═══ The Section Browser is a dialog, which displays all sections of a file. A section may be a subroutine of a programming language, a paragraph of a TeX document, entries of config.sys etc.. Inkremental Search Pattern The search pattern is case insensitive and may contain the wildcards "*" and "?". Section list The section list displays the names of all sections of a specified text buffer. Doubleclick on an list entry to jump to a section. Source list The source list displays the names of opened files. Select the desired source file. Sort if this option is activated, the sections are sorted by their names. Show line numbers/Tag type This options configure the color coded output of the section list. Configuartion Sections are located using a regular expression regular expression, which can be adapted for any type of file. MED provides an internal parser for C/C++ files, so the regular expression is not necessary for this type of file. If the regular expression is defined for C/C++, the internal parser is disabled. The section browser is configured by the following directives in "med.syn": o sectionRegexp o sectionBrowserMainKey o sectionBrowserOrder ═══ 5.16. Section Display ═══ The name of the current section can be displayed as simple text in the statusbar or in a combobox in the toolbar A section is a subroutine of a programming language, a paragraph of a TeX document, entries of config.sys etc.. The toolbar's combobox dropdown list contains the section names of the active textbuffer and can be used instead of the Section Browser in many cases. The combobox entryfield can be used for incremental search. The dropdown list can be activated with the default key [F12]. You can change this key in med.kbd for the function name "sectionCombo". The dropdown list can be closed without a selection by pressing [ESC] or [F12]. The position and size of the combobox is calculated automatically when the application main window is resized. Some toolbar icons may be hidden to provide enough space for the combobox. If you are using a toolbar with many icons, you should increase the toolbar's height in the "Settings" notebook, page "Toolbar/Size". If you don't like the combobox, you can switch it off in the toolbar's context menu (activated by a click with the right mouse button on a free spot in the toolbar). The combobox font can be changed via Drag&Drop: the font must be dropped on a free spot in the toolbar, not on the combobox itself! Note: The Section Display combobox is not available in vertical toolbars. Configuration The Section Display is configured by the following directives in "med.syn": o sectionRegexp o sectionDisplayRegexp o sectionDisplay o sectionDisplayOrder ═══ 5.17. Syntax-Highlighting ═══ The configuration of the syntax-highlighting and the third-party online help is done in the file "med.syn". This file is divided into sections, each holding the rules for one or more file types. Configuartion keywords: o files o eaFileType o include o sectionRegexp o sectionDisplayRegexp o sectionBrowserMainKey o sectionDisplay o sectionBrowserOrder o sectionDisplayOrder o inf o defineColor o foregroundColor o backroundColor o blockColor o caseSensitive o checkCommentInString o color o token o string o char o symbol o literal o funcParml o eolCom o openCom o closeCom o comCol o tabWidth See also Environment variable MISTER_ED_PATH ═══ files ═══ Each section begins with the keyword files: This keyword must be followed by one or more filters to specify the file types. A filter may contain the wildcards '*' and '?'. The '[]' operator is also supported. Filters without any wildcards are allowed (for example: config.sys). If more than one filter is given, the filters must be separated by blanks. Note: you can use this keyword only once per section. Examples: files: config.sys files: *.c *.cpp *.h ═══ eaFileType ═══ OS/2 stores an optional file type description in the extended attribute ".TYPE" ("C Code", "Plain Text" etc.). If you want MED to set the file type when a file is saved, then you must define the type string after the keyword eaFileType: Examples: eaFileType: "C Code" eaFileType: "OS/2 Command File" Note: you can use this keyword only once per section. ═══ sectionRegexp ═══ The Section Browser and the Section Display can be adapted to any type of file. Sections are located using a regular expression . (MED provides an internal parser for C/C++ files, so the regular expression is not necessary for this type of file. However, if a regular expression is defined for C/C++, the internal parser is disabled.) Example: sectionRegexp: :[Hh][0-9] This defines the regular expression to locate paragraphs of IPF/IPP documents. ═══ sectionDisplayRegexp ═══ A regular expression is used to subdivide a section head into several data fields, which can be displayed in any order in the Section Browser and the Section Display. Example: sectionDisplayRegexp: (:[Hh][0-9][ ]*)(res=&)([a-zA-Z0-9_]*\.)[ ]*([a-zA-Z0-9_]*\.)(.*) This expression subdivides the head of an IPF/IPP paragraph into 5 data fields. ═══ sectionBrowserMainKey ═══ This entry defines the data field by which the section headers are sorted in the Section Browser. Example: sectionBrowserMainKey: 2 ═══ sectionBrowserOrder ═══ This entry is used to define the order, in which the data fields are displayed in the Section Browser. Example: sectionBrowserOrder: 2, 1, 5 ═══ sectionDisplayOrder ═══ This entry defines the order, in which the data fields are displayed in the Section Display. Example: sectionDisplayOrder: 2, 1, 5 ═══ sectionDisplay ═══ This entry defines two basic paramteres of the Section Display. The first parameter defines how many lines a file may contain before the Section Display is disabled in order to avoid a loss of editing performance. A value of 0 disables the Section Display. The second parameter defines how many lines may be searched for a section header starting at the current cursor position. Example: sectionDisplay: 5000, 1000 ═══ tabWidth ═══ defines the tab width. This value overrides the default tab width that can be set in the notebook "Settings" on page "Edit". Example: tabWidth: 4 ═══ include ═══ use this keyword to make the syntax configuration more readable. Syntax: include: file Examples: files: *.c *.cpp *.h include: med_c.syn files: *pas include: med_pas.syn ═══ caseSensitive ═══ this keyword controls whether the list of reserved words is case sensitive or not. Syntax: caseSensitive: flag Examples: caseSensitive: yes caseSensitive: no Note: you can use this keyword only once per section. It must appear before the reserved words are defined. ═══ checkCommentInString ═══ this keyword controls wether comments are searched within string constants (for example printf("/*")). With this option enabled, syntax highlighting is more reliable, but a little slower. Syntax: checkCommentInString: flag Examples: checkCommentInString: yes checkCommentInString: no Note: you can use this keyword only once per section. ═══ color ═══ this keyword sets the current color and font attributes to be used for reserved words or symbols. Syntax: color: dispColor, dispFontAttr, printColor, printFontAttr You can use the predefined standard colornames or user defined colornames. For video display output, any (defined) color can be used in combination with the font attributes bold, underline and boldUnderline. For printer output, any (defined) color can be used in combination with the font attributes bold, underline, italic, outline The font attributes can be added by concatenating the identifiers (case is ignored). Example: color: blue, boldUnderline, darkblue, bold Note: you may use this keyword as often as you like per section. ═══ token ═══ this keyword is used to detail the reserved words which are to be highlighted. Reserved words can appear on as many lines as are required, each beginning with the token: directive. The order is not important. The number of reserved words is unlimited, but the list should not be made any larger than necessary to avoid impacting screen update speed. Syntax: token: word1 [word2] [word3] ... Example: token: int long char Note: you may use this keyword as often as required. You can specify a different color for each reserved word (or group of reserved words). Example: color: red token: char color: green token: int color: blue token: long ═══ string ═══ this keyword designates the character which is used to open and close string constants. Syntax: string: char Example: string: " ═══ char ═══ this keyword designates the character which is used to open and close character constants. Syntax: char: char Example: char: ' ═══ symbol ═══ this keyword is used to designate the characters which are considered to be symbols. Symbols can not appear as a part of a reserved word. The characters are simply listed in one long string. The order is not important. Syntax: symbol: char[char][char]... Example: symbol: !> literal ═══ this keyword designates the character which is used to remove significance from an open/close string character while within a string. Syntax: literal: char Example: literal: \ ═══ funcParml ═══ this keyword designates the character which is used to open the parameter list of a procedure or function. Syntax: funcParml: char Example: funcParml: ( ═══ eolCom ═══ this keyword is used to designate the sequence used to initiate an end-of-line comment. Syntax: eolCom: char-sequence Example: eolCom: // ═══ openCom ═══ this keyword is used to designate the sequence used to open a comment block. Syntax: openCom: char-sequence Example: openCom: /* ═══ closeCom ═══ this keyword is used to designate the sequence used to close a comment block. Syntax: closeCom: char-sequence Example: closeCom: */ ═══ comCol ═══ this keyword can be used to designate the column in which the end-of-line comment sequence must appear in order to be recognized as a comment. Syntax: comCol: column Example: comCol: 1 Note: Use a zero value to indicate that the comment sequence should be recognized in all columns. ═══ inf ═══ this keyword is used to define an external third-party online-help. ═══ defineColor ═══ by default there are sixteen predefined standard colornames. You may define your own colornames via decimal RGB-values. You can use your own colornames in conjunction with other keywords in "med.syn". Syntax: defineColor: colorname red green blue Examples: defineColor: myRed 210 0 0 defineColor: myGray 224 224 224 Note: you may use this keyword as often as required. For good results, your video adapter should support 64k colors or more. 256 colors are also worth a try. ═══ foregroundColor ═══ this keyword is used to designate the foreground color for "non-reserved" words. Syntax: foregroundColor: colorname You can use the predefined standard colornames or user defined colornames. Example: foregroundColor: black ═══ backgroundColor ═══ this keyword is used to designate the background color for "non-reserved" and reserved words. Syntax: backgroundColor: colorname You can use the predefined standard colornames or user defined colornames. Example: backgroundColor: myLightGray ═══ blockColor ═══ this keyword is used to designate the background color for a marked block. Syntax: blockColor: colorname Example: blockColor: myBlockColor ═══ Standard colornames ═══ This are the predefined colornames: black white blue red pink green cyan yellow darkgray darkblue darkred darkpink darkgreen darkcyan brown palegray ═══ 5.18. Searching a string ═══ The find dialog can be activated by using the "Search" menu "Find..." option Entry field "Target" Enter the string you want to search for. Note: The dropdown list stores the entered strings. This list will be automatically saved so you can use it in your next editing session. Regular expressions Enable this option, if you want to use a regular expression in the search string. Ignore case Select this option for non case sensitive searching Search words If this option is selected, the target string will be treated as a Word. No substrings will be found. Search backward If this option is selected, the next matching string will be searched upward. Find from position If this option is selected, the next matching string will be searched from the current cursor position. Single buffer Select this option to search for matching strings in the active text buffer only. All buffers Select this option to search for matching strings in all text buffers. Block Select this option to search for matching strings in a selected block only. Find Starts search for first matching string. If an item has to be searched again, use the Find next option from the "Search" menu. ═══ 5.19. Find in files ═══ Find in files is used mainly to search for a string in files, that are not loaded in the editor (like grep at the command line) and to generate a color coded result list. For instance, Find in files can give you a quick overview, where and how often calls to a C-function are made in all source files of a project, without having to load all files in the editor. However, there is an option, that allows you to search only in the textbuffers to generate the result list. Note: The Find in files dialog is not modal and can be resized. The dialog has an entry in the OS/2 window list. Dialog controls Search for Enter the string you want to search for. Note: The dropdown list stores the entered strings. This list will be automatically saved so you can use it in the next editing session. In file Enter one or more filters or filenames separated by a semicolon. Examples: *.c *.c;*.h a*.c alloc.c alloc.c;mem.c;*.h The menu Filter contains predefined filters. You can freely alter or extend the filter list in notebook Settings, page Fileselector - Filter. Select... opens the fileselector. You can select one or more files, in which the string is searched, or just a folder, in which the search is started. In path Enter the search path. The menu Path contains predefined paths. You can freely alter or extend the path list in notebook Settings, page Fileselector - Paths. Home switches to the directory, from which MED was started. Regular expressions Enable this option, if you want to use a regular expression in the search string. Ignore case Select this option for non case sensitive searching Search words If this option is selected, the target string will be treated as a Word. No substrings will be found. Similarity This option enables/disables fuzzy search. Filenames only the result list may contain the textlines with line numbers or the filenames only, in which the target string was found. Open files autoload files, in which the target string was found. Optional you may be asked before the files are loaded (menu Options->Ask before opening files). Range Filesystem search in files under the specified path. The option Subflds. enables recursive search in subfolders. When the MED Project-Manager is implemented, there will be an option, to search only in project folders. Range Buffers search in text buffers only. Start starts the search. The Stop button is enabled so the search can be aborted any time. Close closes the dialog. The dialog is not modal. Result list The color coded search result is displayed in a list box. Doubleclicking the active line of the result list loads the file (if not already loaded) and jumps to the line/column, where the string was found. You can copy the active line of the result list to the system clipboard ([CTRL+Ins]). Dialog menubar Menu "Filter" contains all predefined filters. You can freely alter or extend the filter list in notebook Settings, page Fileselector - Filter. Menu "Path" displays all predefined paths. You can freely alter or extend the path list in notebook Settings, page Fileselector - Paths. Menu "Result" The result list can automatically be cleared before the next search, or the result of the next search can be appended to the current list. Save... saves the current result list. Menu "Options" When the dialog is opened, Switch to home directory sets the search path to the path, from which MED was started. Ask before opening files enables a request dialog before files are loaded automatically. Add current path extends the path list. Edit filter/paths... opens the Settings notebook to edit the userdefined Filters or Paths. ═══ 5.20. Keyboard configuration ═══ The keyboard configuration is saved in the file "med.kbd". You can edit this configuartion file or you can change the shortcut of a function "on the fly" with the dialog Shortcut/Menu entry configuration (press the [Cntrl] key and hold it down, then click on the menu entry you want to change). Format of "med.kbd" A line has the following format: key: shortCut functionName Examples: key: Ctrl+O open assigns the key combination [CNTRL + O] to the function "open". key: Ctrl+KB blkStart assigns the key combination [CNTRL + KB] to the function "blkStart". Note: You can assign multiple key combinations to the same function. By default the keyboard configuration file "med.kbd" is loaded at startup. Optionally you may pass the -k commandline parameter followed by the name of a keyboard configuration file. The shortcuts of the menu titles ("File", "Edit" etc.) can also be modified. You can use any key combination (not only [ALT] combinations). key: Alt+D menuFile key: Alt+E menuEdit key: Alt+B menuBlock key: Alt+S menuSearch key: Alt+M menuMacro key: Alt+T menuTools key: Alt+F menuWindow key: Alt+O menuOptions key: Alt+H menuHelp ═══ 5.21. Tool-Manager ═══ This dialog box is used to run/configure compilers and other utilities You can keep the dialog box open during an editing session. Add... opens the tool configuration notebook in order to add a new tool. Modify... opens the tool configuration notebook in order to modify the configuration of the selected tool. Copy clones the selected tool. Delete... removes the selected tool from the tool list.   moves the selected tool up/down. Start runs the selected tool. The tool output window is opened. Note: Tools can also be started via keyboard shortcut, menu entry or toolbar. See Shortcut/Symbol. Stop aborts the currently running tool. The tool output window is closed. Done closes the tool manager and the tool output window. Ignore filter with this option activated, all tools are displayed in the tool list. Otherwise only those tools are displayed, that match the filename in the active text window with their filter configuration. ═══ 5.22. Tool output window ═══ The output of a tool is redirected to a special window: Size/position and font (configurable via Drag&Drop) of this window are saved in the editor configuration. The example output shows lines in three different colors. Lines which can be identified as error or warning messages are displayed red or blue respectively. All other output lines are displayed black. In order to make the identification of output lines work properly, you must set the tool specific parameters in the tool configuration notebook (page "Messages"). You can also specify which types of output lines will be displayed (page "Options"). Jump to error in source window ... using the mouse a double click on a error/warning message in the tool output window sets the cursor to the appropriate line/column in the source window. Selecting the toolbar "bugs" jumps to the next/previous error in the source window. ... using the keyboard first hit [SPACE] or [TAB] to activate the editor main window. Jump to error processing is now performed by the "Next error" and "Previous error" commands (default key assignments are [ALT+DownArrow] and [ALT+UpArrow] respectively). Note: by default, source files containing errors are loaded automatically during tool processing. You can change this behavior in the tool configuration notebook on page Actions You can use [F9] to activate the tool manager dialog. ═══ 5.23. Tool configuration - Program ═══ Title enter a descriptive title for the tool. This description appears in the tool manager list box and is used to identify the tool. Path and file name enter the full path and file name including the extension to the program to be executed. (If this program is in your PATH environment you may omit the path.) Batch files (.CMD) require the executable CMD.EXE. Specify the batch file name in the parameters field preceeded with /C. The path may contain environment variables. An environment variable is denoted by a % character as pre- and postfix. Example: %WATCOM%\binp\wmake.exe Filter enter one or more filter expressions, which are used to associate the program to specific file types. A filter may contain the wildcards '*' and '?'. The '[]' operator is also supported. Filters without any wildcards are allowed. If more than one filter is given, the filters must be separated by semicolons. This field is optional. Paramter list enter the command line arguments to pass to the program. Parameters are optional. The following special substitution sequences may be used in the parameters field: %F substitutes the path and file name of the current buffer %N substitutes the file name without path/extension of the current buffer %P substitutes one or more additional parameters, which can be entered in an automatically opened dialog box just before the program gets invoked. Working dir if you wish to have the current working directory changed before invoking the program, enter the directory path to be switched to. This field is optional. By default the working dir is '.', which is the path of the file in the active text buffer. The path may contain environment variables. An environment variable is denoted by a % character as pre- and postfix. Example: %PROJECT1%\src ═══ 5.24. Tool configuration - Messages ═══ On this notebook page you can enter the keywords denoting an error/warning line and the format of a error/warning line: Error Token enter the keyword denoting an error line (usually "error"). This field is optional, so if your compiler does not emit such a keyword (for example GNU C), leave this field blank. Warning Token enter the keyword denoting a warning line (usually "warning"). This field is optional. Error/Warning message format enter the format string which describes the fields in an error/warning message. The following special substitution sequences may be used: %F substitutes the path and file name of the source file, in which an error/warning was found. %L substitutes the line number, in which the error/warning was found %C substitutes the column number, in which the error/warning was found %E substitutes the error keyword %W substitutes the warning keyword %X substitutes the error or the warning keyword Example: The Watcom C-Compiler generates this error/warning messages: foo.c(6): Warning! W106: Constant out of range - truncated foo.c(8): Error! E1011: Symbol 'i' has not been declared The format string is: %F(%L): %X The substitution sequence "%X" must be used, because the error and the warning keywords share the same field position. Note: Any words between the substitution sequences which can not be interpreted as field separators must be given in double quotes. Example: Speed-Pascal/2 generates this messages: Error detected in 10,5 Warning detected in 12,1 The format string is: %X "detected" "in" %L,%C ═══ 5.25. Tool configuration - Actions ═══ Actions before tool is executed enable this option if you want all modified buffers to be saved automatically before the tool is invoked. Runtime actions enable this options if you want source files to be loaded automatically if an error/warning was found. Actions after tool has completed successful enable this option if you want the output window to be closed automatically. ═══ 5.26. Tool configuration - Options ═══ Tool writes to select which output channels (stdout/stderr) are redirected to the tool output window. Output window shows select the message types to be shown in the tool output window. Hide output window enable this option if you do not want the output window to be opened automatically. You can open it manually by calling the "Output window" function (menu "Tools"). Add to OS/2 tasklist activate this option to add an entry for the output window to the OS/2 tasklist. ═══ 5.27. Tool-Configuration - Shortcut/Symbol ═══ In this dialog you can configure the keyboard shortcut and the toolbar symbol for a tool. You can also specify, whether the tool should have an menu entry or not. There are no predefined tool symbols, so you have to create your own bitmaps. Activate the "userdefined symbol" option and then click on the "Select..." button to install a symbol for the current tool. The position of a symbol in the toolbar can be changed with the right mouse button. You can configure the toolbar position/height and the button size in the "Settings" notebook on page "Toolbar - Size/Position". ═══ 5.28. Environment variable "MISTER_ED_PATH" ═══ You can set the optional environment variable "MISTER_ED_PATH" in your config.sys. The environment variable must point to an existing directory, where MED can save his configuration files, macro files and Skeleton files. Example: set MISTER_ED_PATH=e:\usr\bin\med If MISTER_ED_PATH is undefined or invalid, configuration files are searched in the directory ".\med" starting from the directory, where "med.exe" resides. If ".\med" does not exist, the MED startup directory is used. ═══ 5.29. Sorting lines ═══ Use this dialog to set the various parms for sorting lines Note: the sort action has its own thread, so you can continue editing in another textbuffer without any restrictions. Needless to say - you won't be able to edit the text that is on sorting... Invert select this option to enable inverted sorting. Numeric key select this option if you want the sort key to be interpreted as a number. Ignore case select this key if you want the sort key to be case insensitive. Sort block this option is very important! If it is not selected, all lines in a textbuffer will be sorted using the complete lines as the sort key. But maybe you only want to sort a section of a text. No problem at all. Just mark the section as a line block and select the "sort block" option. Here we go. Ok, what if only a part of the lines should be used as a sort key? Easy! Mark the section as a column block! Sort starts the sort action. ═══ 6. Settings Notebook ═══ The notebook Settings gives you access to various configuration options that define MED's look and feel. The notebook contains the following pages: o Startup o DDE o Edit o Word wrapping o Mouse functions o Mouse pointer o Cursor o Window controls o Window colors/font o Window Monitor o Fileselector Filter o Fileselector Paths o Brackets o Load o Save o Autosave o Toolbar predef symbols o Toolbar userdef symbols o Toolbar Size/Position o Misc You can exit the notebook using one of the following buttons Apply changed settings will be applied to the current configuration. Note: The configuration is always saved automatically when you exit MED. Save as... Save the configuration to a new configuration file. The name of a configuartion file can be passed to MED at the commandline. By default, MED loads the configuration file "med.cfg". (See Environment variable "MISTER_ED_PATH") Note: The configuration is always saved automatically in the current active configuration file when you exit MED. Cancel discards all changes. ═══ Settings "Startup" ═══ Load file list (med.lru) from The names of the current open documents are saved in the file "med.lru" when MED shuts down and are reloaded automatically when MED is started again. "med.lru" can be saved in the current working directory (local) or in the MED configuration directory (global). Restore window positions: With this option enabled, the window positions of the current open documents are saved in "med.lru", and automatically restored at startup. Note: The autoload functionality can be disabled by pressing [CNTRL] during startup. Text window layout this options configure the initial window layout. Macro files this list displays names (without path) of macro files which are automatically loaded when MED starts up. Note: The path to be searched for macro files can be set in the environment variable "MISTER_ED_PATH". Add... brings up the fileselector dialog. Select the macro file you want to be loaded at startup. Note: the new macro file(s) will be loaded the next time you start MED. During a editor session you can use the menu options Load macros or Add macros to load/add macros on the fly. Delete... deletes the selected macro file from the startup list. The macro file will not be removed from your harddisk! Use one program instance If this option is enabled, only the first instance of MED is loaded into memory. As long as this instance runs, the parameters of following calls to MED will be passed to that first instance. In other words, you can start MED via commandline/icon several times and pass the names of files to be opened, but all files are loaded into new edit windows in the same MED main window. This helps to save memory and desktop space. Pipe operator support enables/disables the pipe operator support. ═══ Settings "Edit" ═══ Shift count enter the number of blanks, which will be used by Shift left and Shift right to horizontal shift a block. Word separators enter a list of word separator characters. This characters are used by the Find function, the Word functions, and the Center line function. Note: The Reformat function, and the Auto word wrap function have private word separators. Auto indent select this option to enable auto indenting. Transfer marked word to find dialog with this option enabled, a marked word ("Edit->Word->Mark" or double click with right mouse button) is automatically used as the current search target string. Go to next line when reaching end of line This option configures the [Right Arrow] cursor movement. If enabled, the cursor is placed to the start of the next line when the end of a line is reached. If not enabled, the cursor can be moved past the end of a line. Jumpy horizontal scrolling This option configures the [Right Arrow] cursor movement. If enabled, the window is scrolled half the window width, when the cursor reaches the right most column of the window. If not enabled, the window is scrolled only one column, when the cursor reaches the right most column. ═══ Settings "Undo" ═══ Undo steps enter the max. count of editing commands which can be reverted by Undo or Redo. ═══ Settings "Tab" ═══ Tab count enter the tab distance (adjustment in characters). This value is used by Tab and Backtab (SHIFT+Tab). Convert new tabs to spaces with this option enabled, new inserted tabs are converted to the equivalent number of spaces. ═══ Settings "Word wrapping" ═══ Word wrap column enter the column that is used by the Reformat and the Auto word wrap function. Word separators enter a list of characters, that separate words. This characters are used exclusively by the word wrap functions. By default, this list contains only the space character. Note: The Find function, the Word functions, and the Center line function have private word separators. Paragraph separators A list of characters can be defined, which will cause the word wrap function to begin a new paragraph, in case one of this characters appears in the first column of a line. ═══ Settings "Window controls" ═══ Vertical/Horizontal Scrollbar use this options to switch on/off the text window scrollbars. Display ASCII character code optionally the ASCII code of the current character is displayed along with the cursor's line/column position. The code can be displayed decimal or hexadecimal. Width of line numbering area the Line numbering option in menu "Options" activates an area, in which the line numbers of each line is displayed. The width of this area can be configured to save screen space. If you will never edit files with more than 9999 lines, you can set the width to 4 columns. Auto resize text window select this option if you want the edit windows to be automatically adapted in case you change the main windows size. Update views every x 1/10 seconds Changes you make in a view get also visible in all other views of the text buffer after the specified period of time. Scroll factor enter the percentage of the text window area to be scrolled. ═══ Settings "Window colors/font" ═══ Textwindow colors/font set the default foreground/background colors and font to be used in all edit windows. The colors can be set in the syntax-highlighting configuration file "med.syn" for each file type individually. Note: MED supports only monospaced fonts! ═══ Settings "Window Monitor" ═══ Keep resident: If this option is enabled, the Window Monitor will not automatically be closed when you doubleclick a list entry. The window monitor will be visible/accessible during the whole time of an editing session. Also the window monitor is opened automatically when MED is started. Attach to main window the Window Monitor can optionally be attached to the main window (left, right, top or bottom). Height/width and position of the Window Monitor are automatically adjusted when the main window is moved or resized. Add to OS/2 tasklist activate this option to add an entry for the Window Monitor to the OS/2 tasklist. New text window the entry of a new text window can be added to the Window Monitor at the end of the list, after the entry of the active text window or sorted by filename. ═══ Settings "Misc" ═══ Max. File History entries the File History shows the names of up to 40 files in menu "File" for quick access. When the File History exceeds 10 entries, a submenu "More..." is created. Ignore keyboard input older than x ms this value controls the "after-running" of screen output. Higher values will result in "after-running" on slower machines. ═══ Settings "Open actions" ═══ Actions when opening a file Open file in active edit window If this option is enabled, a new file is loaded (via Open or Drag & Drop) into the active edit window. Else a new edit window is created before a file is opened. Expand tabs to blanks select this option if you want tabs to automatically be transformed into blanks. ═══ Settings "Save actions" ═══ Actions when saving a file Remove blanks at line end select this option if you want the redundant blanks at line ends to be deleted before a file is saved. Add Ctrl-Z at end of file select this option if you want a "Ctrl-Z" character to be appened at the end of a file. Line format this options determine the line end style. "Dos" forces the line ends to be saved as CR + LF. "Unix" forces the line ends to be saved as LF. "Mac" forces the line ends to be saved as CR. Use the "Default" option, if you want the line ends to be saved in the style they had, when the file was loaded. Create backups in directory select this option if you want the original file to be moved to a special backup folder before a file is saved. Note: you may enter the full path or only the name of the backup folder. If you enter a full path, all file backups are moved to this folder, wherever the original file resides. What you get is "global" backup site. If you enter a folder name (without path), the backup folder will be created in the parent directory of the file to be saved. What you get is a "local" backup site. The path may contain environment variables. An environment variable is denoted by a % character as pre- and postfix. Example: %TMP%\backups Up to 99 backups per file may be created. In multiple mode, backup file names are extended by the current date and time (only on filesystems that support long filenames) or by a number. Example: Backup filename extended by timestamp main.c~051597-024539 Examples: Backup filenames extended by counters main.c~0 main.c~1 ═══ Settings "Fileselector - Filter" ═══ Freely extend or alter the filter list. The filter list is used by the Fileselector and the Find in files dialog in the Filter menu. Add... brings up a dialog in which you can enter a new filter. Note: A filter may contain the meta characters * and ? and the regular expression operator []. Multiple filters may be given separated by a semicolon. Example: *.c;*.cpp;*.h displays all files with the extensions *.c, *.cpp and *.h. Edit... brings up a dialog in which you can edit an existing filter. Delete... deletes the selected filter. Use system file selector enable this option to replace the MED file selector with the standard OS/2 file selector. ═══ Settings "Fileselector - Paths" ═══ Freely alter or extend a list of frequently accessed paths. The path list is used by the Fileselector and the Find in files dialog in the Path menu. Add... brings up a dialog in which you can enter a new path. Path definitions may contain environment variables. An environment variable is denoted by a % character as pre- and postfix. Example: %TMP%\backups Note: You may add an optional filter at the end of a path, which will be used every time you switch to the path. The filter must be separated by a | (Pipe). Example: e:\mat\src\pm\med|*.c Edit... brings up a dialog in which you can edit an existing path. Delete... deletes a selected path. ═══ Settings "Brackets" ═══ You may specify an unlimited number of brackets. Add... brings up a dialog in which you may enter a new bracket Edit... brings up a dialog in which you may edit an existing bracket Delete... deletes the selected bracket ═══ Settings "Keyboard Shortcuts" ═══ This dialog displays short descriptions of pure keyboard commands (you will see none of them in the menubar) and their current shortcuts. Doubleclick a list entry to bring up the dialog Edit shortcut, in which you can change the key combination for the specified keyboard command. ═══ Settings "Autosave" ═══ Autosave saves a file after a specified number of changes or a specified amount of time. The backup file is saved in a special directory with the file name extended by "~sav" on HPFS respective "~" on FAT drives. Note: you may enter the full path or only the name of the backup folder. If you enter a full path, all file backups are moved to this folder, wherever the original file resides. What you get is "global" backup site. If you enter a folder name (without path), the backup folder will be created in the parent directory of the file to be saved. What you get is a "local" backup site. The path may contain environment variables. An environment variable is denoted by a % character as pre- and postfix. Example: %TMP%\backups ═══ Settings "Toolbar - Predefined Symbols" ═══ In this dialog you can choose the predefined symbols to be displayed in the toolbar. This symbols can not be modified. Predefined symbols are not provided for every editor function but you can add your own bitmap creations as userdefined symbols. You can change the position of a symbol in the toolbar with the right mouse button. You can configure the height/position of the toolbar and the size of the symbol buttons in the "Settings" notebook on page "Toolbar - Size/Position". ═══ Settings "Toolbar - Userdefined Symbols" ═══ This dialog lists all installed userdefined symbols. You can remove a selected symbol from the toolbar with the "Delete..." button. You can add or remove a symbol for any editor function with the following procedure: Press the [CNTRL] key and hold it down while you click on a function in a pulldown menu. The dialog Shortcut/Menu entry configuration appears to give you the choice to install/remove a predefined symbol or a userdefined symbol. The position of an icon in the toolbar can be changed with the right mouse button. You can configure the toolbar position/height and the button size in the "Settings" notebook on page "Toolbar - Size/Position". ═══ Settings "Toolbar - Size/Position/Help" ═══ In this dialog you can configure the position and the height of the toolbar. The height is given in "symbol rows". You can also configure the size of the symbol buttons. The size is given in "pixels". You can configure the bubble help threshold time (in tenth of a second) and the display time (in seconds). A display time of 0 disables the bubble help. ═══ Settings "Cursor" ═══ Cursor shape The shape of the cursor can be set individually for insert mode and overwrite mode. Save cursor position The cursor position is stored in the extended attributes of a file if one or both options are enabled. Scrollbars move cursor With this option disabled, the cursor remains at his current text position when the text is scrolled via the scrollbars. ═══ Settings "Mouse" ═══ in this dialog several functions can be assigned to the mouse buttons. ═══ Settings "Mouse pointer" ═══ the default mouse pointer in text windows can be set to "I-beam" or "Arrow". ═══ Select symbol ═══ In this dialog you can select a userdefined Symbol. Select the button Edit... to launch the Iconeditor (iconedit.exe). Note: A symbol must be saved as a 24x24 bitmap in the OS/2 Format 2.0 (not 1.2) ! ═══ 7. The to-do list ═══ o project management o support of hard tabs o ctags compatible index file o smart indenting o templates o RCS support o multiple blocks o folding o Drag & Drop block operations o PM dialog macros o macro language o installation program I would be happy to receive further suggestions! ═══ 8. How to register ═══ USA, Canada, South America You can register via BMT Micro. The registration fee is 25 US$ (40.- Deutsche Mark). Your one-time payment of 25 US$ is a lifetime license for all future versions of MED for OS/2. For further information see file "BMTMICRO.TXT". Other countries You can register directly Via mail Print out the registration form (register.txt), fill in all needed information and send it to Matthias Pfersdorff Marie-Alexandrastr. 3 D-76135 Karlsruhe Germany Via E-mail Send the registration form (register.txt) to med@utopia-planitia.de Note: Registration letters are sent out via E-mail within a week of arriving to me. If you don't receive a mail, please let me know. E-mails sometimes get lost... How to pay The registration fee for a single license is 25 US$ (40.- Deutsche Mark) for private use (please ask for commercial/multiple licenses). Your one-time payment is a lifetime license for all future versions of MED for OS/2. Check Send a personal check in your currency (covering the amount to be charged) . If you order from Germany, send an Euro- or Verrechnungsscheck. Cash If you send cash, please use registered mail. Bank Transfer Use only from inside Germany. My bank is VOLKSBANK KARLSRUHE (BLZ 661 900 00) account is 767786. ═══ License Agreement ═══ The use of MED is subject to the following terms and conditions: The copy of MED that you have is distributed as shareware. You may freely copy and distribute the file MREDxxxx.ZIP but only AS LONG AS THIS FILE IS NOT MODIFIED IN ANY WAY. You may NOT distribute individual components of MREDxxxx.ZIP, either as-is or in modified form, without written permission from the author Matt Pfersdorff. ═══ Main window work area ═══ The main window work area is the area between toolbar and statusbar. This area is used to display the edit windows. ═══ Word ═══ A word is a subsection of a line limited by free defineable characters. This word separators can be defined in the notebook Settings on page Edit. Note: The Reformat function, and the Auto word wrap function have private word separators. This separators can be defined in the notebook Settings on page Edit/Word wrapping Start/End of line are "natural" word separators. ═══ Column block ═══ A column block is a rectangular text section. To select a column block, set the cursor to the position where you want the block to begin. Then press [SHIFT+ALT] and use the arrow keys to extend the block. The block mode (line/column mode) is adjusted automatically. You can also use the right mouse button (default) to select a column block. A line block looks like this To select a line block, set the cursor to the position where you want the block to begin. Then press [SHIFT] and use the arrow keys to extend the block. The block mode (line/column mode) is adjusted automatically. You can also use the left mouse button (default) to select a line block. ═══ Line block ═══ A line block looks like this To select a line block, set the cursor to the position where you want the block to begin. Then press [SHIFT] and use the arrow keys to extend the block. The block mode (line/column mode) is adjusted automatically. You can also use the left mouse button (default) to select a line block. A column block is a rectangular text section. To select a column block, set the cursor to the position where you want the block to begin. Then press [SHIFT+ALT] and use the arrow keys to extend the block. The block mode (line/column mode) is adjusted automatically. You can also use the right mouse button (default) to select a column block. ═══ Arrow keys ═══ Arrow keys are used to move the cursor. ═══ Bracket ═══ A bracket consists of two free defineable strings. The first string defines the "open" bracket, the second string defines the "close" bracket. Examples: ┌───────────────┬───────────────┐ │Open │Close │ ├───────────────┼───────────────┤ │{ │} │ ├───────────────┼───────────────┤ │BEGIN │END │ ├───────────────┼───────────────┤ │/* │*/ │ └───────────────┴───────────────┘ You can freely edit or extend the bracket list in notebook Settings on page Brackets. To jump to a correspnding bracket use the command Find matching bracket in menu Search. ═══ Bookmark ═══ Bookmarks help you to jump quick to important text passages. You can define as much bookmarks per text as you like. You can save bookmarks in the extended file attributes, so you are able to use them in future editing sessions. Besides the bookmarks, there are five global anchors, that can be set on the fly via keyboard. The default keys are [ALT + 1..5] and [Ctrl + 1..5] for dropping respective searching an anchor. ═══ Toolbar ═══ The toolbar provides those funny little symbols which you can use to call the most important editing functions. You can add or remove a symbol for any editor function with the following procedure: Press the [CNTRL] key and hold it down while you click on a function in a pulldown menu. The dialog Shortcut/Menu entry configuration appears to give you the choice to install/remove a predefined symbol or a userdefined symbol. The position of a symbol can be changed with the right mouse button. You can configure the toolbar position/height and the button size in the "Settings" notebook on page "Toolbar - Size/Position". ═══ Userdefined Symbol (bitmap) ═══ Userdefined symbols are external bitmap files in OS/2 format 2.0 of the size 24x24. The files must be located in the directory "med-bmp". This directory must be located in the same place as the MED configuration files ("med.cfg", "med.kbd", "med.syn", "med.tlb".). ═══ View ═══ You can create multiple views of the same text buffer to make different parts of a text visible simultaneously. Changes you make in a view become also visible in all other views of the text buffer after a short period of time. You can configure the time value in notebook "Settings" on page "Windows". The sub menu "Views" in menu "Windows" provides functions to create/close and arrange all views of the active text buffer. All other functions in the "Windows" menu manipulate the top views of all text buffers. ═══ Edit window ═══ An edit window displays on file at a time. ═══ Anchors ═══ Besides the Bookmarks, there are five global anchors, that can be set on the fly via keyboard. The default keys are [ALT + 1..5] and [Ctrl + 1..5] for dropping respective searching an anchor. ═══ Unix text format ═══ Under OS/2 line ends consist of two bytes (CR und LF). Under UNIX line ends are a single byte (LF). MED automatically recognizes the file format. Note: a file will be saved in the same format as it has been loaded. ═══ MED is fast ═══ Unlike nearly every other PM editor, the heart of MED is not the MLE (multi line edit) control. The biggest part of functionality every MLE based editor provides is done by this control, that has been coded by the developers of OS/2. So why is MED not based on the MLE? The major reasons are performance and portability. And, of course, you will probably never find a MLE editor, that has features like column blocks or syntax highlighting.... ═══ Macro ═══ A macro consists of several editing commands, packed together to a complex user defined command. You can assign a key combination to a macro, so it can be called via the keyboard. o Macros may contain an unlimited number of editing commands o You can assign a new key combination any time you like o You can save/load macros o Macros can be loaded automatically at startup o Macros can be started automatically at startup with the commandline option "-m" Note: MED is able to manage an unlimited number of macros. ═══ Key combination ═══ A key combination may consist of one or more keys that have to be pressed simultaneous. Case 1: A modifier key (Shift, Ctrl, Alt) has to be pressed in conjunction with one normal key. Case 2: MED supports multi level key combinations a la WORDSTAR. A modifier key (Shift, Ctrl, Alt) has to be pressed and held down followed by two normal keys (for example "CNTRL + KB"). ═══ Drag & Drop ═══ MED supports the following Drag&Drop actions: Open files drop a file icon in an edit window. In case you drop one icon only, this file will be loaded into the current active edit window. You can change this behavior by disabling the option Open file in active text window in the notebook Settings page Load. The same is true if you drop multiple icons: the first will be loaded into the current active edit window (unless you disable the option mentioned above), the following will be loaded into automatically opened edit windows. Configure font drop a font in an edit window. Note: MED supports monospaced fonts (System VIO, Courier, System monospaced) only, due to the fact, that a column block can't be displayed properly with proportional fonts. Configure text foreground/background color drop a color in an edit window to set the background color. Press [CNTRL] and drop a color in a edit window to set the foreground color. Configure main window background color drop a color in the main window to set the background color. Note: MED currently supports only solid colors. ═══ DDE ═══ The following "EPM" commands are supported: EDIT filename1 [filename2] ... [filenameN] GOTO line [col] SAYERROR errorMsg MED's default DDE server name is "MRED". If a client does not support configuration of the server name, you can change MED's server name. To get full DDE compatibility to EPM, just set MED's sever name to "EPM". ═══ Skeleton Files ═══ A Skelton File is loaded automatically when a new textbuffer is created or an empty file is opened. This is useful for setting up a standard header in a new file. Skeleton files must be located in the MED configuration directory (this is where med.cfg resides) and have a filename like this: skeleton.X The X substitutes any file extension. The extension is used to determine the skeleton file to be loaded. Examples: skeleton.c is loaded when a new C source file is opened skeleton.pas is loaded when a new Pascal source file is opened ═══ Where to get the latest version ═══ You can find the latest english and german version at the MED Homepage: http://www.utopia-planitia.de ═══ Shareware ═══ MED is Shareware. So what does that mean? You may use MED for a 31 day trial period without any financal contribution. If you continue to use MED beyond this 31 day trial period, you are obligated to register it. As the only limitation, the unregistered version of MED allows you to print only once per run of MED. Please be fair! Register and support further development of MED. Note: Also, while I will listen to any suggestions I receive, I pay closer attention to suggestions from registered users ;-) Related topics: "How to register". ═══ Line numbering ═══ The option Line numbering in menu "Options" activates an area, in which the line number of each line is displayed. Note: Font and colors of the line numbering can be configured via Drag&Drop. The width of the line numbering area can be configured in the "Settings" notebook, page "Window - Controls". ═══ Fileselector ═══ Fileselector menubar Menu "Filter" contains all predefined filters. You can freely alter or extend the filter list in notebook Settings, page Fileselector - Filter. Menu "Path" contains all predefined paths. You can freely alter or extend the path list in notebook Settings, page Fileselector - Paths. Menu "Options" Activate Use [Tab] for filename completion if you want to use the [Tab] key for filename completion (the default function of [Tab] is to move the focus to the next dialog control). Add current path extends the path list. Edit filter/paths... opens the Settings notebook to edit the userdefined Filters or Paths. Fileselector controls Drive displays all accessible drive letters and the volume labels. Current path / History displays the path of the currently active drive. The dropdown list provides a history of the last 20 paths, that have been used to load/save a file. Filename|Dirname|Path enter a path and/or file name manually. This entry field supports path and file name completion. Type in the first character(s) of a path/file name and press [Down arrow] or [Up arrow] or [Tab] for completion. You can also enter one or more filters separated by a semicolon. Press [RETURN] to load all files matching the filter. Press [CTRL+RETURN] to activate the filter. The filter is not inserted into the userdefined filter list. This helps to keep the userdefined list clean of rare used filters. Home switches to the directory, from which MED was started. Files displays file names of the current directory that match the selected filter. Note: Some operations allow you to select more than one entry of the file list (for example Open). Folders displays all subdirectories located in the current directory. Read only check this option to open files in read only mode. You can switch to the edit mode by clicking the "pen" symbol in the window's status display. ═══ Goto line ═══ Use this dialog box to position the cursor to any line in the current buffer. ═══ Printer setup ═══ Select a print queue from the displayed list, then press the OK button. The selected printer queue will remain in effect until explicitly changed. Pressing Job properties displays another dialog that, among other options, specifies page orientation. ═══ Exit dialog ═══ The following dialog is displayed when you have requested to exit MED but there are files with unsaved changes. This dialog allows you to choose the files you wish to save before the editor exits. You can save all the displayed files, select those you wish to save, or save none. Save all this button will save all the files displayed in the list box. Save selected this button will save only the files you have selected in the list box. Discard all this button tells MED that you don't want to save any of the modified files. Use this option with care! Cancel this button will abort exiting from MED. No files will be saved. ═══ Window Monitor ═══ This dialog diplays the names of all opened test windows (with or without path). The active window entry is displayed inverted. Modified edit windows are marked by a red "LED". Views are indented and displayed in blue color. A doubleclick switches to another text window. A right mouse button click brings up a context menu. You can change the dialogs size, position and font/colors (via Drag&Drop). This settings are saved in the editor configuration. To change the text color of a regular window entry, press [CNTRL] while dropping the color. To change the text color of a view window entry, press [SHIFT+CNTRL] while dropping the color. The Window Monitor can optionally be attached to the main window (left, right, top or bottom). Height/width and position of the Window Monitor are adjusted when the main window is moved or resized. Note: you can keep this dialog open during an editing session. It will be automatically updated in case a edit window is opened or closed. See Settings "Window Monitor" ═══ Shortcut/Menu entry configuration ═══ A keyboard shortcut is a key combination which calls a specified editor function. MED supports free user defined keyboard shortcuts for every editor function. To change the shortcut of a menu entry do this: Press Cntrl and hold it down. Then click on the menu entry you want to change. Another method to setup the keyboard is to edit the configuration file "med.kbd". Entryfield "Shortcut" enter the key which must be pressed with a modifier key (SHIFT, CTRL, ALT) to call the specified function. The dropdown list contains predefined names of special keys (for example Backspace). Note: MED supports multi level shortcuts a la WORDSTAR (for example "Ctrl + KB" ). Ctrl select this button to use Ctrl as modifier. Shift select this button to use Shift as modifier. Alt select this button to use Alt as modifier. no Symbol select this button if the function should not appear in the toolbar. predefined Symbol select this button if the predefined symbol for the function should appear in the toolbar. userdefined Symbol select this button if a userdefined symbol for the function should appear in the toolbar. Press the "Select..." button to bring up the dialog Select symbol. Add menu entry to context menu 1 select this button if you want the menu entry to appear in the main context menu in case no block is marked. The main context menu is called by a click with the right mouse button in a edit window. Note: this button is disabled for keyboard functions. Add menu entry to context menu 2 select this button if you want the menu entry to appear in the main context menu in case a block is marked. The main context menu is called by a click with the right mouse button in a edit window. Note: this button is disabled for keyboard functions.