═══ 1. Help for Kon ═══ Kon Welcome to the Kon editor. Choose one of the following: Information about Kon Keys help Command list Configure Kon Command line parameters Settings Registration Contacting the author Kon Project Manager Copyright For in-depth information about changes in the program, please read the history section in the READ.ME file. ═══ 2. About Kon ═══ Kon Kon is a multi-purpose editor for any editing task. It edits text-files and binary-files with the built in hex-editor. Kon also features: syntax highlighting Easily reconfigurable keys (Borland/WordStar by default) Macro support. Undo/redo on all editor functions Multiple file Search/Search & Replace Multi-threaded operation Column block Word wrap Configurable toolbar Usable as a file viewer in read-only mode Autosave Selectable code page Drag & Drop And much more... Since I have not cluttered the menu with commands that still only will be used from the keyboard, please browse through the command/keys list so that you don't miss any of the useful functions Kon provides. ═══ 3. Keys Help for Kon ═══ For a description of each command see Command list. Cursor movement ┌────────────────────────┬──────────────────────────────┐ │Line up │Up arrow │ ├────────────────────────┼──────────────────────────────┤ │Line down │Down arrow │ ├────────────────────────┼──────────────────────────────┤ │Character right │Right arrow │ ├────────────────────────┼──────────────────────────────┤ │Character left │Left arrow │ ├────────────────────────┼──────────────────────────────┤ │Beginning of line │Home │ ├────────────────────────┼──────────────────────────────┤ │End of line │End │ ├────────────────────────┼──────────────────────────────┤ │One page down │PageDown │ ├────────────────────────┼──────────────────────────────┤ │One page up │PageUp │ ├────────────────────────┼──────────────────────────────┤ │Top of file │Ctrl-Home │ ├────────────────────────┼──────────────────────────────┤ │End of file │Ctrl-End │ ├────────────────────────┼──────────────────────────────┤ │Word right │Ctrl-Right arrow │ ├────────────────────────┼──────────────────────────────┤ │Word left │Ctrl-Left arrow │ ├────────────────────────┼──────────────────────────────┤ │Save cursor position │Ctrl-. │ ├────────────────────────┼──────────────────────────────┤ │Move to next saved │Ctrl-PageDown │ │position │ │ ├────────────────────────┼──────────────────────────────┤ │Move to previous saved │Ctrl-PageUp │ │position │ │ ├────────────────────────┼──────────────────────────────┤ │Set marker (0-9) │Ctrl-K+n │ ├────────────────────────┼──────────────────────────────┤ │Move to marker (0-9) │Ctrl-Q+n │ ├────────────────────────┼──────────────────────────────┤ │Set relative position │Ctrl-R │ ├────────────────────────┼──────────────────────────────┤ │Move to block │Ctrl-Q+H │ ├────────────────────────┼──────────────────────────────┤ │Move to block end │Ctrl-Q+N │ ├────────────────────────┼──────────────────────────────┤ │Move to next buffer │Alt-PageDown │ ├────────────────────────┼──────────────────────────────┤ │Move to previous buffer │Alt-PageUp │ ├────────────────────────┼──────────────────────────────┤ │Match bracket │Ctrl-V │ └────────────────────────┴──────────────────────────────┘ Edit keys ┌────────────────────────┬──────────────────────────────┐ │Insert new line at │Ctrl-N │ │cursor │ │ ├────────────────────────┼──────────────────────────────┤ │New line │Enter │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │Delete one character │Backspace │ │left │ │ ├────────────────────────┼──────────────────────────────┤ │Delete character at │Delete │ │cursor │ │ ├────────────────────────┼──────────────────────────────┤ │Delete line │Ctrl-Y │ ├────────────────────────┼──────────────────────────────┤ │Delete to end of line │Ctrl-Q+Y │ ├────────────────────────┼──────────────────────────────┤ │Delete word │Ctrl-T │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │Add block to clipboard │Alt-Insert │ ├────────────────────────┼──────────────────────────────┤ │Cut and add block to │Alt-Delete │ │clipboard │ │ ├────────────────────────┼──────────────────────────────┤ │Copy block to clipboard │Ctrl-Insert │ ├────────────────────────┼──────────────────────────────┤ │Cut block to clipboard │Shift-Delete │ ├────────────────────────┼──────────────────────────────┤ │Paste block from │Shift-Insert │ │clipboard │ │ ├────────────────────────┼──────────────────────────────┤ │Copy block │Ctrl-K+C │ ├────────────────────────┼──────────────────────────────┤ │Move block │Ctrl-K+V │ ├────────────────────────┼──────────────────────────────┤ │Read block from disk │Ctrl-K+R │ ├────────────────────────┼──────────────────────────────┤ │Write block to disk │Ctrl-K+W │ ├────────────────────────┼──────────────────────────────┤ │Hide block │Ctrl-K+H │ ├────────────────────────┼──────────────────────────────┤ │Clear block │Ctrl-Delete, Ctrl-K+Y │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │Toggle case in block │Ctrl-K+O │ ├────────────────────────┼──────────────────────────────┤ │Convert block to │Ctrl-K+E │ │lowercase │ │ ├────────────────────────┼──────────────────────────────┤ │Convert block to │Ctrl-K+E │ │uppercase │ │ ├────────────────────────┼──────────────────────────────┤ │Indent block │Ctrl-K+I │ ├────────────────────────┼──────────────────────────────┤ │Unindent block │Ctrl-K+U │ ├────────────────────────┼──────────────────────────────┤ │Format paragraphs in │Ctrl-K+Ctrl-J │ │block │ │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │Format paragraph │Ctrl-B │ ├────────────────────────┼──────────────────────────────┤ │Unformat paragraph │Ctrl-U │ └────────────────────────┴──────────────────────────────┘ Marking keys ┌────────────────────────┬──────────────────────────────┐ │Begin block │Ctrl-K+B │ ├────────────────────────┼──────────────────────────────┤ │End block │Ctrl-K+K │ ├────────────────────────┼──────────────────────────────┤ │Mark line down │Shift-Down arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark line up │Shift-Up arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark character left │Shift-Left arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark character right │Shift-Right arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark to beginning of │Shift-Home │ │line │ │ ├────────────────────────┼──────────────────────────────┤ │Mark to end of line │Shift-End │ ├────────────────────────┼──────────────────────────────┤ │Mark one page down │Shift-Page down │ ├────────────────────────┼──────────────────────────────┤ │Mark one page up │Shift-Page up │ ├────────────────────────┼──────────────────────────────┤ │Mark to beginning of │Shift-Ctrl-Home │ │file │ │ ├────────────────────────┼──────────────────────────────┤ │Mark to end of file │Shift-Ctrl-End │ ├────────────────────────┼──────────────────────────────┤ │Mark one word left │Shift-Ctrl-Left arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark one word right │Shift-Ctrl-Right arrow │ ├────────────────────────┼──────────────────────────────┤ │Mark line │Ctrl-K+L │ ├────────────────────────┼──────────────────────────────┤ │Mark word │Ctrl-K+T │ └────────────────────────┴──────────────────────────────┘ Toggles ┌────────────────────────┬──────────────────────────────┐ │Auto indent on/off │Ctrl-O+I │ ├────────────────────────┼──────────────────────────────┤ │Set Column block │Ctrl-K+G │ ├────────────────────────┼──────────────────────────────┤ │Set regular block │Ctrl-K+M │ ├────────────────────────┼──────────────────────────────┤ │Set column block on/off │Ctrl-K+N │ ├────────────────────────┼──────────────────────────────┤ │Insert/overwrite │Insert │ ├────────────────────────┼──────────────────────────────┤ │Word wrap on/off │Ctrl-O+W │ ├────────────────────────┼──────────────────────────────┤ │Grid on/off │Ctrl-O+G │ └────────────────────────┴──────────────────────────────┘ Misc commands ┌────────────────────────┬──────────────────────────────┐ │Find text │Ctrl-Q+F │ ├────────────────────────┼──────────────────────────────┤ │Replace text │Ctrl-Q+A │ ├────────────────────────┼──────────────────────────────┤ │Repeat last find/replace│Ctrl-L │ │operation │ │ ├────────────────────────┼──────────────────────────────┤ │Find text in multiple │Ctrl-Q+G │ │files/buffers │ │ ├────────────────────────┼──────────────────────────────┤ │Replace text in multiple│Ctrl-Q+R │ │files/buffers │ │ ├────────────────────────┼──────────────────────────────┤ │Jump to line │Ctrl-J │ ├────────────────────────┼──────────────────────────────┤ │Jump to absolute pos │Ctrl-P │ ├────────────────────────┼──────────────────────────────┤ │Record macro │Ctrl-Shift-R │ ├────────────────────────┼──────────────────────────────┤ │Play macro │Ctrl-Shift-P │ ├────────────────────────┼──────────────────────────────┤ │Undo │Alt-Backspace │ ├────────────────────────┼──────────────────────────────┤ │Redo │Alt-Shift-Backspace │ ├────────────────────────┼──────────────────────────────┤ │Save text │Ctrl-K+S, F2 │ ├────────────────────────┼──────────────────────────────┤ │Save and quit buffer │Ctrl-K+D │ ├────────────────────────┼──────────────────────────────┤ │Quit buffer │Alt-X, Ctrl-F4, Ctrl-K+Q │ ├────────────────────────┼──────────────────────────────┤ │Hex edit │Ctrl-H, ESC │ ├────────────────────────┼──────────────────────────────┤ │ASCII table │Ctrl-A │ ├────────────────────────┼──────────────────────────────┤ │Memo │Ctrl-M │ ├────────────────────────┼──────────────────────────────┤ │Repeat next command │Ctrl-Q+Ctrl-Q │ ├────────────────────────┼──────────────────────────────┤ │Draw right │Ctrl-Alt-Right arrow │ ├────────────────────────┼──────────────────────────────┤ │Draw left │Ctrl-Alt-Left arrow │ ├────────────────────────┼──────────────────────────────┤ │Draw up │Ctrl-Alt-Up arrow │ ├────────────────────────┼──────────────────────────────┤ │Draw down │Ctrl-Alt-Down arrow │ └────────────────────────┴──────────────────────────────┘ ═══ 4. Command line parameters ═══ Kon .. -h : Startup in hex mode -r : Startup in Read-only mode -3 : Disable Warp 4 notebook style -i : Load Kon with alternate INI-file -m : Load Kon with alternate macro-file -cNN : Move cursor to column NN at startup -lNN : Move cursor to line NN at startup : File to load. Kon accepts wildcards. ═══ 5. Configure Kon ═══ Kon can easily be reconfigured for your own style. Choose one of the following: Configure keys Configure syntax highlighting ═══ 5.1. Configure keys ═══ A keyboard configuration file is named anyname.KBD where "anyname" is a name of your decision. A command can appear in the configuration file several times with different key combinations, and all are valid. However, if the command appears on the menu, only the first occurence will be displayed. It is also possible to define simple macros, which are used as commands. Commands are case insensitive. The file is constructed as follows: MACRO Macro Command1, Command2 Command3( 1234 ) ... "string" END Command1 : Key1+Key2+Key3 Command2 : Key1+Key2+Key3 Command3( 1234 ) : Key1+Key2+Key3 Macro : Key1+Key2+Key3 ··· Key is a key combination composed of (a) dead key(s) and another key: Ctrl-Alt-R "String" is a string to be inserted in the file. This can only be used within macros. Some commands can take arguments. See the Command list for details. An open/close paranthesis sequence can only follow those arguments that specifically takes arguments. If arguments are omitted for a command which can take arguments, a dialog box will presented for the user instead. FindString : Ctrl-Q+Ctrl-F ; Will ask the user via an ordinary find dialog FindString( "String", "u" ) : Ctrl-F ; Will find "String" directly with selected option 'u' CursorDocStart() : Ctrl-Home ; Not allowed! Extract from a keyboard file: MACRO InsertDate ScreenOFF CursorEndOfLine, NewLine "Date: ",InsertDate( "V D of F, Y" ) ScreenON END CursorPageDown : PageDown CursorPageUp : PageUp CursorDocStart : Ctrl-Home CursorDocEnd : Ctrl-End InsertDate( "YYYY-MM-DD" ) : Ctrl-D Note: There are still some users who hasn't converted to the AT-style keyboard. When you press Shift-End on the numeric keypad and expect to get a Shift-End command you instead get a "1". In order to get a Shift-End, define MarkEndOfLine : Shift-1 This won't affect pressing Shift-1 on the alphanumeric part of the keyboard. Kon is configured for Borland/WordStar keyboard in the file STANDARD.KBD. Command list Key list ═══ 5.1.1. Kon commands ═══ The following list shows the commands which are used in a keyboard configuration file. In order to see the keys that corresponds to each command see the key list. Note: Some commands have arguments. These can be omitted. If so, the user will be asked for parameters via ordinary dialog boxes. See keyboard configuration. Commands with arguments has the following form: Command( "String", 12345, ... ) Cursor movement ┌────────────────────────┬──────────────────────────────┐ │CursorUp │Moves the cursor on line up. │ ├────────────────────────┼──────────────────────────────┤ │CursorDown │Moves the cursor one line │ │ │down. │ ├────────────────────────┼──────────────────────────────┤ │CursorRight │Moves the cursor one character│ │ │right. │ ├────────────────────────┼──────────────────────────────┤ │CursorLeft │Moves the cursor one character│ │ │left. │ ├────────────────────────┼──────────────────────────────┤ │CursorStartOfLine │Moves the cursor to the line │ │ │start. │ ├────────────────────────┼──────────────────────────────┤ │CursorEndOfLine │Moves the cursor to end of │ │ │line. │ ├────────────────────────┼──────────────────────────────┤ │CursorPageDown │Moves the cursor one │ │ │screenheight down. │ ├────────────────────────┼──────────────────────────────┤ │CursorPageUp │Moves the cursor one │ │ │screenheight up. │ ├────────────────────────┼──────────────────────────────┤ │CursorDocStart │Moves the cursor to start of │ │ │document. │ ├────────────────────────┼──────────────────────────────┤ │CursorDocEnd │Moves the cursor to the end │ │ │document. │ ├────────────────────────┼──────────────────────────────┤ │CursorWordRight │Moves the cursor one word │ │ │right. (Move one byte right if│ │ │in hexeditor) │ ├────────────────────────┼──────────────────────────────┤ │CursorWordLeft │Moves the cursor one word │ │ │left. (Move one byte left if │ │ │in hexeditor) │ ├────────────────────────┼──────────────────────────────┤ │SavePos │Saves the current position. │ ├────────────────────────┼──────────────────────────────┤ │MoveToNextPos │Move to the next position │ │ │saved with SavePos. │ ├────────────────────────┼──────────────────────────────┤ │MoveToPrevPos │Move to the previous position │ │ │saved with SavePos. │ ├────────────────────────┼──────────────────────────────┤ │SetMarker0-9 │Sets marker position n to │ │ │cursor position. │ ├────────────────────────┼──────────────────────────────┤ │MoveToMarker0-9 │Moves cursor postion to marker│ │ │position n. │ ├────────────────────────┼──────────────────────────────┤ │SetRelative │Sets a position to which the │ │ │cursor position is show │ │ │relative to. Execute command │ │ │again to reset to normal │ │ │position display. │ ├────────────────────────┼──────────────────────────────┤ │MoveToBlock │Moves the cursor to beginning │ │ │of marked block. │ ├────────────────────────┼──────────────────────────────┤ │MoveToBlockEnd │Moves the cursor to end of │ │ │marked block. │ ├────────────────────────┼──────────────────────────────┤ │NextFile │Focus the next buffer. │ ├────────────────────────┼──────────────────────────────┤ │PrevFile │Focus the previous buffer. │ ├────────────────────────┼──────────────────────────────┤ │BracketMatch │Moves cursor to matching │ │ │bracket at cursor position. │ └────────────────────────┴──────────────────────────────┘ Edit commands ┌────────────────────────┬──────────────────────────────┐ │InsertNewLine │Inserts a linebreak at cursor.│ ├────────────────────────┼──────────────────────────────┤ │NewLine │Inserts a line break at cursor│ │ │and move cursor down. │ ├────────────────────────┼──────────────────────────────┤ │Space │Inserts a space at cursor. │ ├────────────────────────┼──────────────────────────────┤ │Tab │Inserts a tab at cursor. │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │BackSpace │Deletes character left of │ │ │cursor. │ ├────────────────────────┼──────────────────────────────┤ │Delete │Delete character at cursor. │ ├────────────────────────┼──────────────────────────────┤ │DeleteLine │Delete line at cursor. │ ├────────────────────────┼──────────────────────────────┤ │DeleteToEOL │Delete from cursor to end of │ │ │line. │ ├────────────────────────┼──────────────────────────────┤ │DeleteWord │Delete word on cursor. │ └────────────────────────┴──────────────────────────────┘ Block commands ┌────────────────────────┬──────────────────────────────┐ │AddBlockToClipbrd │Add marked block to clipboard.│ ├────────────────────────┼──────────────────────────────┤ │CutAndAddBlockToClipbrd │Add marked block to clipboard │ │ │and delete it from file. │ ├────────────────────────┼──────────────────────────────┤ │CopyBlockToClipbrd │Copy marked block to clipboard│ ├────────────────────────┼──────────────────────────────┤ │CutBlockToClipbrd │Copy marked block to clipboard│ │ │and delete it from file. │ ├────────────────────────┼──────────────────────────────┤ │PasteBlockFromClipbrd │Paste block from clipboard. │ ├────────────────────────┼──────────────────────────────┤ │CopyBlock │Copy marked block to cursor │ │ │position. │ ├────────────────────────┼──────────────────────────────┤ │MoveBlock │Move marked block to cursor │ │ │position. │ ├────────────────────────┼──────────────────────────────┤ │ReadBlock( "Filename" ) │Read file from disk and insert│ │ │at cursor. │ │ │ │ │ │Filename : Any valid file name│ ├────────────────────────┼──────────────────────────────┤ │WriteBlock( "Filename" )│Write marked block to disk. │ │ │ │ │ │Filename : Any valid file name│ ├────────────────────────┼──────────────────────────────┤ │ClearBlock │Delete marked block. │ ├────────────────────────┼──────────────────────────────┤ │HideBlock │Hide block. │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │BlockToggle │Toggles case in marked block. │ ├────────────────────────┼──────────────────────────────┤ │BlockToLower │Convert marked block to │ │ │lowercase. │ ├────────────────────────┼──────────────────────────────┤ │BlockToUpper │Convert marked block to │ │ │uppercase. │ ├────────────────────────┼──────────────────────────────┤ │IndentBlock │Indents marked block one space│ │ │right. │ ├────────────────────────┼──────────────────────────────┤ │UnindentBlock │Unindent marked block one │ │ │space left. │ ├────────────────────────┼──────────────────────────────┤ │BlockSpaceFix │Convert tabs to spaces in │ │ │marked block. │ ├────────────────────────┼──────────────────────────────┤ │BlockTabFix │Convert spaces to tabs in │ │ │marked block. │ ├────────────────────────┼──────────────────────────────┤ │FormatParagraphsInBlock │Format all paragraphs in │ │ │marked block. │ ├────────────────────────┼──────────────────────────────┤ │UnformatParagraphsInBloc│Unformat all paragraphs in │ │ │marked block. │ └────────────────────────┴──────────────────────────────┘ ┌────────────────────────┬──────────────────────────────┐ │FormatParagraph │Adjusts a paragraph according │ │ │to right margin. A paragraph │ │ │is ended with an empty line. │ ├────────────────────────┼──────────────────────────────┤ │UnformatParagraph │Unwraps a formatted paragraph │ │ │into a single line. │ └────────────────────────┴──────────────────────────────┘ Mark commands ┌────────────────────────┬──────────────────────────────┐ │BeginBlock │Marks the beginning of a │ │ │block. │ ├────────────────────────┼──────────────────────────────┤ │EndBlock │Marks the end of a block. │ ├────────────────────────┼──────────────────────────────┤ │MarkDown │Marks from cursor position to │ │ │the same column on the next │ │ │line. │ ├────────────────────────┼──────────────────────────────┤ │MarkUp │Marks from cursor position to │ │ │the same column on the │ │ │previous line. │ ├────────────────────────┼──────────────────────────────┤ │MarkLeft │Marks from cursor position one│ │ │character left. │ ├────────────────────────┼──────────────────────────────┤ │MarkRight │Marks from cursor position one│ │ │character right. │ ├────────────────────────┼──────────────────────────────┤ │MarkStartOfLine │Marks form cursor position to │ │ │linestart. │ ├────────────────────────┼──────────────────────────────┤ │MarkEndOfLine │Maks from cursor position to │ │ │end of line. │ ├────────────────────────┼──────────────────────────────┤ │MarkPageDown │Marks from cursor position one│ │ │screenheight down, same │ │ │column. │ ├────────────────────────┼──────────────────────────────┤ │MarkPageUp │Marks from cursor position one│ │ │screenheight up, same column. │ ├────────────────────────┼──────────────────────────────┤ │MarkStartOfDoc │Marks from cursor position to │ │ │file start. │ ├────────────────────────┼──────────────────────────────┤ │MarkEndOfDoc │Marks from cursor position to │ │ │file end. │ ├────────────────────────┼──────────────────────────────┤ │MarkWordLeft │Marks from cursor position to │ │ │one word left. │ ├────────────────────────┼──────────────────────────────┤ │MarkWordRight │Marks from cursor position to │ │ │one word right. │ ├────────────────────────┼──────────────────────────────┤ │MarkLine │Marks the current line. │ ├────────────────────────┼──────────────────────────────┤ │MarkWord │Marks the word at cursor │ │ │position. │ └────────────────────────┴──────────────────────────────┘ Toggles ┌────────────────────────┬──────────────────────────────┐ │AutoIndent │Turns autoindent on/off. │ ├────────────────────────┼──────────────────────────────┤ │SetColumnBlock │Turn column block on. │ ├────────────────────────┼──────────────────────────────┤ │SetNormalBlock │Sets regular block on. │ ├────────────────────────┼──────────────────────────────┤ │ToggleColumn │Turns columnblock on/off. │ ├────────────────────────┼──────────────────────────────┤ │ToggleInsert │Toggle insert/overwrite mode. │ ├────────────────────────┼──────────────────────────────┤ │ToggleWordWrap │Toggle Word wrap on/off. │ ├────────────────────────┼──────────────────────────────┤ │ToggleDisplayGrid │Toggle grid on/off. │ └────────────────────────┴──────────────────────────────┘ Misc commands ┌────────────────────────┬──────────────────────────────┐ │FindText( "Findstring", │Find text. │ │"Options" ) │ │ │ │ │ │ │Findstring : The string to │ │ │search for │ │ │ │ │ │Options : Option string built │ │ │up from the following chars: │ │ │ │ │ │ u : Case insensitive │ │ │ w : Whole words only │ │ │ e : Escape characters │ │ │enabled │ │ │ g : Regular expressions │ │ │enabled │ │ │ b : Search backwards │ │ │ s : Scope is selected text │ │ │ d : Search from file/block │ │ │start │ ├────────────────────────┼──────────────────────────────┤ │ReplaceText( │Replace text. │ │"Findstring", │ │ │"Replacestring", │ │ │"Options" ) │Findstring : The string to │ │ │search for │ │ │ │ │ │Replacestring : The string to │ │ │replace with │ │ │ │ │ │Options : Options same as for │ │ │FindText, with the following │ │ │additions: │ │ │ │ │ │ n : Replace without asking │ │ │ nn : The number of │ │ │replacements to be done │ │ │ a : Replace all occurences │ ├────────────────────────┼──────────────────────────────┤ │RepeatFind │Repeat last find/replace │ │ │operation. │ ├────────────────────────┼──────────────────────────────┤ │MultiFindText │Searches for text in multiple │ │ │files/buffers. │ ├────────────────────────┼──────────────────────────────┤ │MultiReplaceText │Searches and replaces text in │ │ │multiple files/buffers. │ ├────────────────────────┼──────────────────────────────┤ │JumpToLine( Line ) │Jump to line. │ │ │ │ │ │Line : Line │ ├────────────────────────┼──────────────────────────────┤ │JumpToPos( Pos ) │Jump to absolute position. │ │ │ │ │ │Pos : Position │ ├────────────────────────┼──────────────────────────────┤ │NewFile │Open a new empty buffer. │ ├────────────────────────┼──────────────────────────────┤ │LoadFile( "Filename" ) │Open file in a new buffer. │ │ │ │ │ │Filename : Any valid filename │ ├────────────────────────┼──────────────────────────────┤ │LoadFileInSameBuffer( │Open file in same buffer. │ │"Filename" ) │ │ │ │Filename : Any valid filename │ ├────────────────────────┼──────────────────────────────┤ │RecordMacro │Record a keyboard macro. │ ├────────────────────────┼──────────────────────────────┤ │PlayMacro │Playback recorded macro. │ ├────────────────────────┼──────────────────────────────┤ │SaveMacro │Saves the previously recorded │ │ │macro. │ ├────────────────────────┼──────────────────────────────┤ │EditMacros │Edit the saved macros. │ ├────────────────────────┼──────────────────────────────┤ │Undo │Undo the last operation. │ ├────────────────────────┼──────────────────────────────┤ │Redo │Redo the last undone │ │ │operation. │ ├────────────────────────┼──────────────────────────────┤ │SaveText │Save text in buffer. │ ├────────────────────────┼──────────────────────────────┤ │SaveAs( "Filename" ) │Save text in buffer with a new│ │ │name. │ │ │ │ │ │Filename : Any valid filename │ ├────────────────────────┼──────────────────────────────┤ │SaveAndQuit │Save text in buffer and quit. │ ├────────────────────────┼──────────────────────────────┤ │Quit │Quit buffer. │ ├────────────────────────┼──────────────────────────────┤ │HexEdit │Edit file in binary mode. │ ├────────────────────────┼──────────────────────────────┤ │ASCIITable │Pops up an ASCII table. │ ├────────────────────────┼──────────────────────────────┤ │InsertDate( "DateString"│Inserts formatted date at │ │) │current position. Parameter │ │ │description │ ├────────────────────────┼──────────────────────────────┤ │Memo │Pops up a memo window. Use as │ │ │you wish. The text is stored │ │ │globally in the INI-file. │ ├────────────────────────┼──────────────────────────────┤ │ScreenOFF │Turns off screen update. (Use │ │ │in macros) │ ├────────────────────────┼──────────────────────────────┤ │ScreenON │Turns screen update back on. │ │ │(Use in macros) │ ├────────────────────────┼──────────────────────────────┤ │Print │Open the print dialog. │ ├────────────────────────┼──────────────────────────────┤ │RepeatNextCommand( │Repeat the next command │ │RepeatCount ) │RepeatCount number of times. │ ├────────────────────────┼──────────────────────────────┤ │SetRelative │Sets a position in the buffer │ │ │to where the current cursor │ │ │position will be related to in│ │ │the position field. Execute │ │ │this command again to return │ │ │to normal position display. │ ├────────────────────────┼──────────────────────────────┤ │DrawRight │Draw a line to the right. │ ├────────────────────────┼──────────────────────────────┤ │DrawLeft │Draw a line to the left. │ ├────────────────────────┼──────────────────────────────┤ │DrawUp │Draw a line to upwards. │ ├────────────────────────┼──────────────────────────────┤ │DrawDown │Draw a line to downwards. │ ├────────────────────────┼──────────────────────────────┤ │FrameBlock │Draw a frame around the │ │ │selected column block. │ ├────────────────────────┼──────────────────────────────┤ │ConvertCodepage( FromCP,│Convert text in buffer from │ │ToCP ) │codepage FromCP to codepage │ │ │ToCP. │ └────────────────────────┴──────────────────────────────┘ ═══ 5.1.2. Kon keys ═══ Any "white" key. Ctrl Shift Alt UpArrow DownArrow RightArrow LeftArrow Home End PageUp PageDown Enter NewLine BackSpace Tab Delete Insert Space Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 ═══ 5.2. Configure syntax highlighting ═══ Syntax highlighting is used to display keywords in a source file with different color than the other text. This makes the code much easier to read. A syntax highlighting file is named anyname.SYN where "anyname" is a name of your decision, A syntax highlighting file consists of at least one of four type of headers: @PAIR @KEYWORD @WORDTOEOL @LITERALCHAR There are also two additional headers that are used to define when case sensitive or case insensitive words follow: @CASE_SENSITIVE @CASE_INSENSITIVE Default is case sensitive. @PAIR defines bracket type of words like "", /* */ etc. @PAIR Start fg bg End m Start is the start word. fg is the foreground color. bg is the background color. End is the end word. The end word can be the word !space, and then defines the end word to be the space character. m is optional, and defines that the pair can stretch over several lines. @KEYWORD defines single keywords. @KEYWORD KeyWord fg bg x Keyword is the keyword. fg is the foreground color. bg is the background color. x is optional, and defines that the keyword can appear anywhere in a string without delimitor chars in front of and after the keyword. @WORDTOEOL defines a keyword which affects color to end of line. @WORDTOEOL KeyWord fg bg c Keyword is the keyword. fg is the foreground color. bg is the background color. c is optional, and defines that the keyword defines a comment to end of line. @LITERALCHAR defines the character which tells Kon to skip the immediate following open or close pair keywords. " \" " The " should be part of the string and the '\' is the literal char. Kon highlights between the first and last '"'. @LITERALCHAR \ Extracts from a syntax highlighting file for C: @LITERALCHAR \ @PAIR /* 8 -1 */ m " 8 -1 " ' 8 -1 ' @WORDTOEOL #define 13 -1 #elif 13 -1 #else 13 -1 #endif 13 -1 // 8 -1 c @KEYWORD break 1 -1 case 1 -1 continue 1 -1 default 1 -1 do 1 -1 else 1 -1 Kon has configuration files for IPF, HTML and C++ in the files IPF.SYN, HTML.SYN and CPP.SYN. ═══ 6. Kon settings ═══ Editor options Editor settings Word wrap settings Load options Display settings Display settings cont'd Font/Color settings Hexeditor display settings Syntax hilight settings Configure toolbar Misc settings Priority setting ═══ 6.1. Editor options ═══ Create backup file Check to create a backup file when saving. Word wrap Check to split lines not fitting within the right margin while typing. Auto indent Check to set autoindent on. Paste word into find dlg. Check to paste the word at cursor position into find dialog when it is opened. If Paste block into find dlg. is set, it has precedence over this setting. Paste block into find dlg. Check to paste the marked block into find dialog when it is opened. Stream edit Check to enable stream editing. Optimal fill Check to fill with tabs instead of spaces if possible. Use tab character Check to insert a tab character when pressing TAB-key. Column blocks Check to use column blocks. Persistent blocks With persistent blocks checked, blocks remain marked until it is deleted, or until another block is marked. With persistent block unchecked, selected text will be unmarked if the cursor moves. If the delete or backspace key is pressed, the entire block will be removed. Inserting text will replace the marked block with the inserted text. Cursor after block Check to move the cursor to end of block when a block is pasted or copied. ═══ 6.2. Editor settings ═══ Tab size Set the size in spaces of a tab. Indent steps Set the number of columns to move when Indenting/Unindenting blocks. Default extension Fill in the extension to add to the filename. Separators Fill in the chars that separate words when jumping to next word. CR+LF Insert CR+LF at line end. LF Insert LF at line end. ═══ 6.3. Wordwrap settings ═══ Right margin Set the right margin. The margin is measured in units of the width of one space character. Word-wrap separators Fill in the chars that separate words when using word-wrap. Chars req. space Fill in the chars that require a space afterwards. Measure characters using fixed widths Check to measure characters using fixed widths even if a proportional font is used. Use LF for soft EOL, CR+LF for paragraph end Check to separate paragraphs with a CR+LF combination instead of an empty line. Linebreaks inserted by Kon when reformatting a paragraph will be a single LF. Wrap only current line when typing Only wraps words typed beyond the right margin on the current line. ═══ 6.4. File load options ═══ Load only one instance of Kon Check to load only one copy of Kon in memory when starting multiple Kon sessions. Do not load duplicate files Check to prevent loading of duplicate files. ═══ 6.5. Display settings ═══ Syntax highlighting Check to set syntax highlighting on. Show right margin Check to display where the right margin is with a gray line. Show tabs Check to display tabs as "·" instead of as a space. Show End of file Check to display an indication line for end of file. Width Enter the size in characters for the initial width of editor window. Height Enter the size in characters for the initial height of editor window. Save window pos & size Check to save the window coordinates when a window is closed. Next opened window will open at the same position. This setting overrides the Width and Height settings above. ═══ 6.6. Display settings cont'd ═══ Code page Choose the code page to be used. The default is Latin 1 (850). Horizontal scroll units The number of characters to scroll when the cursor is moved outside the left or right window edge. Vertical scroll units The number of lines to scroll when the cursor is moved outside the upper or lower window edge. Grid X and Y size Select grid spacing. Interruptable display Check to select. In interruptable display mode, the screen will not be redrawn until there are no keys in the keyboard buffer. ═══ 6.7. Font/Color settings ═══ Font Choose a font from the list to use in the edit window. Size Choose a font size from the list. Fixed width only Select to choose from fixed width fonts only. (Recommended) Bitmap fonts only Select to choose from bitmap fonts only. Color index Select the color you want to set. Foreground Select foreground color of the text item selected. Background Select background color of the text item selected. Text item Select the text item which you want to change colors on. ═══ 6.8. Hexeditor settings ═══ Font Choose a font from the list to use in the hexeditor window. In the hexeditor, Kon only uses fixed width fonts. Size Choose a font size from the list. Display position in hex Display current position in hex instead of decimal. Display dividing lines Display dividing lines in the same color as the margin between hex- and ASCII-field, and divide the hex-field in two. ═══ 6.9. Syntax hilight settings ═══ Extension Select which extension to connect a syntax hilighting file for. Syntax file Select the syntax highlight file to connect to chosen extension. Add extension Add extension to extension list. Remove extension Remove selected extension from list. ═══ 6.10. Configure toolbar ═══ Toolbar This list box contains all commands on the toolbar. Available commands This list box contains all commands that can be placed on the toolbar. <-- Move command from command list to toolbar. --> Remove command from toolbar. In order to place commands in the toolbar, select one or more commands from the right list box (Available commands) and press the "<--" button. The selected commands will be transferred to the tool bar before the position of the cursor in the Toolbar list box. If no position is set, the commands will be placed last in the list. To remove commands from the Toolbar list box, select one or more commands and press the "-->" button. ═══ 6.11. Path ═══ Backup path Enter the path to where you want to save your backup-files. Leave blank to save in the current directory. Autosave path Enter the path to where you want your autosaved file to be placed Leave blank to save in the current directory. Always change extension to .BAK in backup file If the backup path is different than the path where the original file resides, you can save the backup under the same name as the original file. ═══ 6.12. Mouse settings ═══ Function Select a function to assign a mouse command to. Mark word: Mark the word at cursor position. Mark line: Mark the line at cursor position. Mark block: Mark block using the current mode. (Column or regular). Mark column block: Mark column block. Mark regular block: Mark regular block. Local menu: Pops up a local menu. Button The button to invoke the command. Click How the button should be clicked to invoke the command. Modifier Key modifiers. ═══ 6.13. Cursor settings ═══ Mode Select the mode to configure the cursor to. Cursor width Enter the width of the cursor The width is measured in percent of character width. Cursor height Enter the height of the cursor. The height is measured in percent of character height. Solid The cursor appears as a solid box. Halftone The cursor appears as a halftoned box. Frame The cursor appears as a framed box. Flash Check to make the cursor flash. ═══ 6.14. Language settings ═══ Select language Select the language you wish to use. The list displays all languages found in the directory where Kon is located. The different language versions are contained in DLL's named kon_xx.dll, where xx is an abbreviation of the language defined in that DLL. If Kon has not been translated to your language you are very welcome to help the author with the translation. Contact me for more information. Note that the codebase is common for all languages, so you may download a different language module, without having to download a new version of Kon. When you press OK, Kon will switch to the language you have defined, and remember it for the next time kon is run. ═══ 6.15. Misc settings ═══ Autosave in s. Set the delay between autosaves. Files will be stored in the directory where KON.EXE resides. If the system hangs and you lose edits, search in that directory for *.SAV files. Enable (autosave). Enables or disables autosave. Undo buffer size (bytes) Set the size of the undo buffer in bytes. The undo buffer is a circular buffer, which means that the first edits will be removed from the undo buffer if the buffer becomes full, First In First Out. The number of bytes doesn't reflect the actual number of chars which can be undone, since there is an overhead for each edit to store position, size etc.. Warn on filesize larger than Kon loads the file it's editing entierly in memory. This means that loading may take a long time on large files and the swap file may also expand a lot depending on the size of the loaded file and available physical memory. In order to prevent accidental loading of such files, this field allows Kon to display a warning before trying to load a file larger than the selected size. Enter the size you prefer in Mb. Key binding Choose the keyboard configuration file to be used. The list displays all *.KBD files found in the startup directory. Save local INI Check to save a local configuration file. Local INI-file are saved each time you quit your editor. This means that your whole harddisk can be cluttered with INI-files. Use with caution. Msg box on string not found Check to display a message box when a string is not found, instead of only a message at the status line. ═══ 6.16. Priority setting ═══ Move the slider to the desired priority. Always run Kon at the lowest priority possible. If Kon feels slow or unable to catch up with the keyboard, move the slider rightwards to a higher priority until Kon runs smoothly. ═══ 7. Tips ═══  To load a file from the file menu in the current window, hold down the CTRL-key when releasing the mouse button.  It can be useful to have different versions of Kon for different tasks. In order to get this, use the -i option. Since the configuration of Kon is stored in the INI-file (by default KON.INI), you can have different INI- files for different tasks. ═══ 8. Register Kon! ═══ Kon is a shareware program. That means that you may use and evaluate Kon for a period of 30 days, before you decide if you want to buy the program or not. Since I have not crippled the program, except for a notice at program exit, the program should be considered complete and fully functional for you to fully test and avaluate it. When you register the program you will receive a license number which allows you to use this version of Kon and all versions and bugfixes up to the next major revision (i.e. 2.x). As a registered user you will of course get a discount on the next major revision. When you register Kon, the registration notice at program exit will of course disappear. How to register Where to get the latest version Disclaimer ═══ 8.1. How to register ═══ The price of Kon is US$20. There are two ways of registering: 1. Send me cash or a cheque by mail. If you send a cheque, add $5 for the cashing fee. 2. Register through BMT Micro. Please read BMTMICRO.TXT for further information. Along with the registration fee, please also supply the following information: Your full name and adress Fax number (if applicable) E-mail adress (if applicable) Version number of Kon. (See Help-About...) Where you received Kon. For what tasks you're using Kon. What you think of Kon, improvements etc. Send to: BjФrn Andersson Vidblicksg. 13A S-412 57 Gothenburg Sweden E-mail: bjorn_and@geocities.com In return, I will send you your license information the fastest way. If you do not have e-mail or fax-number, please supply an adressed envelope. You can always get in touch with me by e-mail, for suggestions, bugs etc. Disclaimer ═══ 8.2. Where to get the latest version ═══ The latest version of Kon is available on the WWW at: http://www.bmtmicro.com/kon ═══ 8.3. Disclaimer ═══ IMPORTANT: Kon is provided "as is". The author is not responsible for any damage that Kon might cause, directly or indirectly. There is no warranty of any kind. By using the shareware version or the registered version, you agree to these terms. ═══ 9. Contacting the author ═══ Please don't hesitate to contact me if you have suggestions for improvements or want to report bugs. Mail: bjorn_and@geocities.com For the latest version of Kon, and information: http://www.bmtmicro.com/kon ═══ 10. Kon Project Manager ═══ Kon Project Manager (KPM) is a utility much like the project manager in the Borland C environment, or like the Make utility. It makes it easy to edit, compile, link and browse through compiler errors within a set of source-files (a project). KPM works with any programming language which has a stand-alone compiler that send its output to stdout or stderr. KPM is a free utility for registered users of Kon. To download or for more information: http://www.bmtmicro.com/kon ═══ 11. Copyright ═══ KON is Copyright(c) 1997-1999 BjФrn Andersson ═══ 12. Dialogs ═══ Dialogs ═══ 12.1. Find dialog ═══ Text to find Enter the text to find, or choose a previous from the drop-down list. Case sensitive Check to set case sensitive Whole words Check to search for whole words only. The word can not be part of a string. Escape characters Check to enable Escape characters. Characters which can't be directly entered from the keyboard can be written with an escape sequence as follows: \xff \123 The escape sequence '\x' defines a hexadecimal value and it must be two digits long. (Pad with zeroes at the beginning.) The escape sequence '\' defines a decimal value and it must be three digits long. Regular expressions Check to enable GREP-like regular expressions. From cursor Check to seek from cursor position. Entire scope Check to seek from file start. Forward Check to seek forward. Backward Check to seek backward. Global Check to seek in the whole file. Selected Check to seek within marked block only. ═══ 12.2. Replace dialog ═══ Text to find Enter the text to find, or choose a previous from the drop-down list. New text Enter the text to replace with, or choose a previous from the drop-down list. Case sensitive Check to set case sensitive Whole words Check to search for whole words only. The word can not be part of a string. Prompt on replace Check to ask before replace. Replace all Check to replace all occurences. Escape characters Check to enable Escape characters. Characters which can't be directly entered from the keyboard can be written with an escape sequence as follows: \xff \123 The escape sequence '\x' defines a hexadecimal value and it must be two digits long. (Pad with zeroes at the beginning.) The escape sequence '\' defines a decimal value and it must be three digits long. Regular expressions Check to enable GREP-like regular expressions. From cursor Check to seek from cursor position. Entire scope Check to seek from file start. Forward Check to seek forward. Backward Check to seek backward. Global Check to seek in the whole file. Selected Check to seek within marked block only. ═══ 12.3. Find in multiple files dialog ═══ Text to find Enter the text to find, or choose a previous from the drop-down list. Case sensitive Check to set case sensitive Whole words Check to search for whole words only. The word can not be part of a string. Escape characters Check to enable Escape characters. Characters which can't be directly entered from the keyboard can be written with an escape sequence as follows: \xff \123 The escape sequence '\x' defines a hexadecimal value and it must be two digits long. (Pad with zeroes at the beginning.) The escape sequence '\' defines a decimal value and it must be three digits long. Regular expressions Check to enable GREP-like regular expressions. Buffers only Click to search in opened buffers only, not on disk. Current dir Click to insert the current dir in the path field. Subdirectories Check to search through subdirectories of the specified path. Files Type the files or searchpatterns you wish to search in. Different files or searchpatterns are separated with ';': *.cpp;*.h;*.c This field can be left blank, and Kon will search the specified buffers instead. Path Type the path where you want Kon to search for the files. Buffers Mark the buffers you want to search in. ═══ 12.4. Search and replace in multiple files ═══ dialog Text to find Enter the text to find, or choose a previous from the drop-down list. Text to replace with Enter the text to replace with, or choose a previous from the drop-down list. Case sensitive Check to set case sensitive Whole words Check to search for whole words only. The word can not be part of a string. Prompt on replace Check to verify before replacing in each file the search word is found. This setting is recommended. The verify dialog offers options to replace word, Do not replace word, replace the rest of the words in the current file, and skip the rest of the words in the current file. Escape characters Check to enable Escape characters. Characters which can't be directly entered from the keyboard can be written with an escape sequence as follows: \xff \123 The escape sequence '\x' defines a hexadecimal value and it must be two digits long. (Pad with zeroes at the beginning.) The escape sequence '\' defines a decimal value and it must be three digits long. Regular expressions Check to enable GREP-like regular expressions. Buffers only Click to search in opened buffers only, not on disk. Current dir Click to insert the current dir in the path field. Subdirectories Check to search through subdirectories of the specified path. Files Type the files or searchpatterns you wish to search in. Different files or searchpatterns are separated with ';': *.cpp;*.h;*.c This field can be left blank, and Kon will search the specified buffers instead. Path Type the path where you want Kon to search for the files. Buffers Mark the buffers you want to search in. Warning: Search and replace in multiple files can not be undone! If "Create backup" is specified, a .BAK file will be created for each file where replacements have been done. ═══ 12.5. Multiple file find result dialog ═══ To jump to a found location, double-click on the line or press F5 on the marked line. Pressing OK while the search is running will terminate the search and close down the dialog. ═══ 12.6. Register ═══ Register Kon by entering your name and license number, which you receive upon registration. Be sure to enter both name and license number exactly as entered. ═══ 12.7. Print dialog ═══ Kon can print ASCII directly to a port, to a file, or to a queue. To print directly to a port, select LPT1-6 in the "Port" list. If you want to print ASCII to a file, type the name of the file in the "Port" field. If you want to print to a queue, select a printer from the "Port" list. Pressing the "Setup..."-button will display the appropriate dialog. (When printing to a queue, you have more options like selecting fonts and printing syntax highlighting etc.) Scope All Print the whole document. Selected Print selected text. Lines/Limit Print specified lines. If the file is viewed in the hexeditor, entry fields specifies byte positions in the file. Port Select a printer port to print to. You can also specify a file where to send the printed document. ═══ 12.8. Print dialog ═══ Target Init codes Enter a string to send to the printer before printing the document. The codes used are the same as for header and footer. See below. Page Left margin Enter the left margin in characters. Page length Enter the page length in lines. Header Enter the header for the page. You can enter certain control-codes in this field and the footer field. &l: Print an empty line &n: Print the name of the printed document. &p: Print the current page number. &t: Print the total number of pages. &f: Send a form-feed. &e: Escape character &d: Insert date using code between brackets: [codes] &c: Center text appearing after this code to line end or &r. &r: Right justify text from this code to end of line. Footer Enter the footer for the page. You can enter the same control-codes in this field as in the Header field. ═══ 12.9. Print dialog ═══ Header/Footer Enter the header and footer for the page. You can enter certain control-codes in this field and the footer field. &n: Print the name of the printed document. &p: Print the current page number. &t: Print the total number of pages. &d: Insert date using code between brackets: [codes] &c: Center text appearing after this code to line end or &r. &r: Right justify text from this code to end of line. Margins Left/Right/Top/Bottom margin Enter the margins in millimeters. Note: Text extending beyond the right margin will be clipped! Syntax Highlighting Print syntax highlighting Enables or disables printout of color syntax highlighting. Enabling this is likely to slow down printing, depending on your printer and printer driver. Print keywords in Bold Use a bold font for printing keywords. Print comments in Italic Use an italic font for printing comments and strings. Note: If you selected a printer font (this is not visible in the font list) for text output, and also Bold or Italic, the output may become corrupted. To get around this problem, select a font which is not built in to your printer, or change to another font size. Pages Two up Print two columns, with one page on the left and the other on the right. This is most useful if you select landscape mode on your printer and a small font. Even pages Print only even pages. Together with "Odd pages", this is useful if you want to have double-sided printing on your single-sided printer. Odd pages Print only odd pages. Text Font Select the font you wish to use for text. It is recommended that you always use a fixed width font. Size Select a point size. Fixed width only Select to list only fixed width fonts. Header/Footer Font Select the font you wish to use for header and footer. Size Select a point size. Setup printer... Push this button to edit job properties. Job properties will be stored for later use. ═══ 12.10. Ascii table ═══ Double click on a character or press the insert button to insert the selected character in the current file. ═══ 12.11. Name current macro ═══ Give the newly recorded macro a name. The name can be any string. The macro will be put under the macro menu, so if you want a keyboard shortcut, place a ~-character in front of the desired character. The macro will be stored in the file MACROS.KON in the Kon startup directory. ═══ 12.12. Macro maintenance ═══ List box The listbox contains all recorded macros. Name If you wish to rename a macro, type the new name here. Rename Press this button to rename the selected macro to the name in the name-field. Delete Press this button to delete the selected macro. Save Press this button to save the selected macro to an ASCII-file which can be included in a .KBD-file. The macro will be translated to the form MACRO This_is_a_macro ScreenOFF Command( ... ) · · Command( ... ) ScreenON END You can then edit and/or use it in your .KBD file. ═══ 12.13. Insert date ═══ The format of the string is: Y : Year M : Month D : Day F : The full month name V : The full day name A : Month abbreviated to three letters W : Day of week abbreviated to three letters Any characters except these will be included in the output string. To include the correct number of digits in the date, type the control char that many digits. In order to get all digits, type only one control character. Example: YY-MM-DD Prints 97-08-22 D/M Y Prints 22/8 1997 V D of F, Y Prints Friday 22 of August, 1997 ═══ 12.14. Convert codepage ═══ From codepage Select the codepage you wish to convert from. To codepage Select the codepage you wish to convert the file to. Warning: This operation cannot be undone! ═══ 12.15. Grep patterns ═══ ^ A circumflex at the start of the string matches the start of a line. $ A dollar sign at the end of the expression matches the end of a line. . A period matches any character. * An asterisk after a character matches any number of occurrences (including zero) of that character. For example, bo* matches bot, b, boo, and also be. + A plus sign after a character matches one or more occurrences (but not zero occurences) of that character. For example, bo+ matches bot and boo, but not b or be. [ ] Characters in brackets match any one character that appears in the brackets, but no others. For example [bot] matches b, o, or t. [^] A circumflex at the start of the string in brackets means NOT. Hence, [^bot] matches any characters except b, o, or t. [-] A hyphen within the brackets signifies a range of characters. For example, [b-o] matches any character from b through o. \ A backslash before a wildcard character tells Kon to treat that character literally, not as a wildcard. For example, \ ^ matches ^ and does not look for the start of a line. Note: Using GREP slows down the search, so use only when needed. ═══ ═══ The NULL character can cause unexpected behaviour in columnblock editing if it appears within a block. It also truncates text copied to the clipboard. Use Copy/Move block instead. ═══ ═══ Borland is a registered trademark of Borland International, Inc. WordStar is a registered trademark. ═══ ═══ 0 = Background(White) 1 = Blue 2 = Red 3 = Pink 4 = Green 5 = Cyan 6 = Foreground(black) 7 = Yellow 8 = Dark gray 9 = Dark blue 10 = Dark red 11 = Dark pink 12 = Dark green 13 = Dark cyan 14 = Brown 15 = Pale gray -1 = Background color