nothing No command is assigned to this key. Pressing it will invoke the registered macro for unassigned key sequences. help "help" To get help on concepts or commands:  Press Alt-h If you press Alt-h at a prompt, the help screen for the current command is displayed. Otherwise, a menu of topics appears.  Use the Up and Down arrows to move to the topic you want help on  Press Enter Repeat this process until a help screen appears. To find out the key assignments for the commands described on the screen, press Alt-h again.  Esc returns you to your editing session  Grey/Keypad minus returns you to the previous menu keyboard layout Keystroke Command Keystroke Command ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Alt-a Non-inclusive Mark ³F1 Change Window Alt-b Buffer List ³F2 Resize Window Ctrl-b Line to Bottom ³F3 Create Window Alt-c Column Mark ³F4 Delete Window Ctrl-c Center Line in Window³Alt-F1 Toggle Borders Alt-d Delete Line ³ Ctrl-d Scroll Buffer Down ³F5 Search Forward Alt-e Edit File ³F6 Translate Forward Alt-f Display File Name ³Shift-F5 Search Again Alt-g Go to Line ³Shift-F6 Translate Again Alt-h Help ³Ctrl-F5 Case Sens. Toggle Alt-i Insert Mode Toggle ³Ctrl-F6 Regular Expr. Toggle Alt-j Go (Jump) To Bookmark³Alt-F5 Search Backward Alt-k Delete to End of Line³Alt-F6 Translate Backward Alt-l Line Mark ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PgDn ==> Next page Keystroke Command Keystroke Command ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Alt-m Mark ³F7 Remember Alt-n Next Buffer ³Shift-F7 Pause Remember Toggle Ctrl-n Next Error ³F8 Playback Alt-o Change Output File ³ Alt-p Print Block ³F9 Load Macro File Ctrl-p Pop Up Error Window ³Shift-F9 Delete Macro File Alt-q Quote ³F10 Execute Command Alt-r Read File ³Alt-F1 Toggle Window Borders Ctrl-r Repeat ³Alt-F10 Compile Buffer Alt-s Search Forward ³Home Beginning of Line Alt-t Translate Forward ³Home Home Top of Window Ctrl-t Line to Top ³Home Home Home Top of Buffer Alt-u Undo ³End End of Line Ctrl-u Scroll Buffer Up ³End End End of Window Alt-v Display Version ID ³End End End End of Buffer PgUp ==> Previous page ÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PgDn ==> Next page Keystroke Command Keystroke Command ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Alt-w Write ³Shift-End Right Side of Window Ctrl-w Backup File Toggle ³Ctrl-Home Top of Window Alt-x Exit ³Ctrl-End End of Window Alt-z Suspend BRIEF ³PgDn Page Down Alt-minus Previous Buffer ³PgUp Page Up Ctrl-minus Delete Curr. Buffer ³Ctrl-PgDn End of Buffer ³Ctrl-PgUp Top of Buffer Backspace Backspace ³Down arrow Down Ctrl-Bksp. Delete Previous Word ³Left arrow Left Enter Enter ³Right arrow Right Ctrl-Enter Open Line ³Up arrow Up Esc Escape ³Ctrl-Right Next Word Tab Tab ³Ctrl-Left Previous Word Shift-Tab Back Tab ³Ctrl-Break Halt ³ PgUp ==> Previous page ÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PgDn ==> Next page Keystroke Command Keystroke Command ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Alt-1 Drop Bookmark 1 ³Del Delete Alt-2 Drop Bookmark 2 ³Ins Paste from Scrap Alt-3 Drop Bookmark 3 ³Keypad - Cut to Scrap . . ³Keypad + Copy to Scrap . . ³Keypad * Undo Alt-0 Drop Bookmark 10 ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ PgUp ==> Previous page ÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ basic concepts cursor shapes BRIEF is a "modeless" editor, meaning that the commands have the same meaning almost all the time. The normal editing environment is referred to as the editing mode, and all of BRIEF's commands and editing capabilities are available from it. There are two variations on the editing mode: insert mode and overstrike mode. In insert mode, typed text is inserted at the cursor. In overstrike, existing text is overwritten as you type. Because BRIEF is a full-screen editor, you can edit any part of the screen, even if there is no text there. Screen areas with no cor- responding text are referred to as "virtual" space. If you type in virtual space, it becomes real. PgDn ==> Next page You can tell what editing mode you're in just by looking at the cursor: BRIEF's insert and overstrike cursors are different shapes. The cursor also changes shape when it's at a virtual character. Although the behavior of the cursor may be changed with Setup, the normal shapes are: Insert _ Insert/Virtual Ü Overstrike/Virtual ß Overstrike Û The following symbols are used in the descriptions on the Basic Concepts menu: a b Insert: Indicates the effect of an action in insert mode.  xxx Overstrike: Indicates the effect of an action in overstrike mode. PgUp ==> Previous page insert_mode insert and overstrike "insert_mode" Insert Mode toggles BRIEF between insert mode and overstrike mode. You can tell what mode you are in by looking at the cursor. See the Basic Concepts Overview help screen for information on cursor shapes. a b Insert:  Characters are inserted at the cursor   Backspace deletes the character left of the cursor  Enter splits the line at the cursor  Tab inserts a Tab character or spaces xxx Overstrike:  Characters replace the character at the cursor  Backspace replaces the character left of the cursor (except tab characters) with a space  Enter moves cursor to the start of the next line  Tab moves cursor to the next tab stop self_insert typing keys All alphanumeric keys, punctuation, and some other keys are self- inserting, meaning that pressing those keys causes the character shown on the key itself to be inserted at the current position. a b Insert:  Characters are inserted at the cursor   Backspace deletes the character left of the cursor  Enter splits the line at the cursor  Tab inserts a Tab character or spaces xxx Overstrike:  Characters replace the character at the cursor  Backspace replaces the character left of the cursor (except tab characters) with a space  Enter moves cursor to the start of the next line  Tab moves cursor to the next tab stop quote "quote" Quote is used when you want to insert a character that has a command assigned to it. For example, the Ctrl-r keystroke normally invokes Repeat instead of inserting a Ctrl-r character (, ASCII value 18) into the buffer. To insert the ASCII value for Ctrl-r,  Press the Quote key, then  Press Ctrl-r Not all key sequences have ASCII values. Quoting sequences that don't has no effect. For example, Quote Alt-e will still call Edit File. A list of ASCII values for keys may be found in your DOS manual. tabs back_tab "tabs,back_tab;use_tab_char" The Tabs command lets you set the tab stops for the current buffer. Tab stops are column positions that the cursor will move to when the Tab command (Tab key) or Back Tab command (Shift-Tab) is executed. Stops must be specified in ascending order. The distance between the last two you specify will be repeated for tab stops across the width of the buffer. For tabs every 8 columns, set the first at column 9. Prompt: "Enter tab stop (return terminates):" This prompt appears repeatedly. At each occurrence, enter the value for the next tab stop (in ascending order). Press Enter without entering a value to indicate that the last tab has been set. use_tab_char "use_tab_char" Use Tab Characters controls whether real tab characters (ASCII value 9) or spaces (ASCII value 32) are inserted when the Tab key is pressed and when characters are inserted in "virtual space" (beyond the ends of lines or files). Prompt: "Fill with tab chars?" Type "y" if you want to use real tab characters, or "n" if you want to use spaces. open_line newlines "open_line" Enter has the following effects: a b Insert: Puts a newline character into the current buffer at  the cursor. This is the only way to split a line. xxx Overstrike: Moves the cursor to the beginning of the next line. Open Line inserts a new line into the current buffer, on the line after the current line. Open Line works in both modes and is the only way to insert a new line in overstrike mode. delete_char deleting "delete_char;backspace,cut" Delete is used to delete characters from the buffer. If a block is marked, Delete deletes the entire block. Otherwise, it deletes the character at the cursor. Newlines are treated like all other characters; if a newline is deleted, the next line is joined to the end of the current line. This is the simplest way to join two lines. backspace "backspace;delete_char" Backspace has the following effects: a b Insert: Deletes the character to the left of the cursor.  xxx Overstrike: Replaces the character to the left of the cursor with a space. Nothing is deleted if the cursor is at the left edge of the window, so you don't accidentally delete characters you can't see. delete_next_word delete_previous_word deleting words "delete_next_word,delete_previous_word;cut" Words may be deleted quickly by using Delete Next Word and Delete Previous Word. Words are normally defined as being separated only by spaces, tabs, or newlines, although for certain types of programming language files the definition of a word may be slightly different. delete_line deleting lines "delete_line,delete_char;cut" Entire lines can be deleted with Delete Line. The following lines will move up to replace the deleted line. If you are at the end of the buffer, nothing is deleted. Lines may be joined by deleting (with Delete) the newline character that separates them. delete_to_eol deleting to end "delete_to_eol;cut" Delete to End of Line deletes all characters from the cursor to the end of the current line, except the newline character. blocks Blocks are a way of restricting editing actions (like cut, copy, and search) to a portion of the buffer. There are 4 block types: 1. Character blocks, which include all characters from a mark to the character at the cursor 2. Column blocks, which include all characters in the rectangle formed by the end of the mark and the cursor 3. Line blocks, which include all lines that are marked 4. Noninclusive blocks, which are like character blocks, except that the mark and cursor act like they are between characters You may only have one block marked at a time, and the block is always bounded by a mark at one end, and the cursor at the other. mark mark 2 mark 3 mark 4 marking "mark,mark 2,mark 3,mark 4" Marks are used to define the beginning of a block. The cursor always defines the other end. There are 4 mark commands: 1. Mark, which starts a character block (mark is left at cursor) 2. Column Mark, which starts a column block (mark is left at cursor, but block will be column-restricted) 3. Line Mark, which starts a line block (mark includes entire line where the cursor is located) 4. Noninclusive Mark, which starts a noninclusive block (mark is left "between" cursor and preceding character) If there is already a mark of the same type in the current buffer, these commands remove the mark. If there is already a mark of a different type, it is converted to the new type. swap_anchor "swap_anchor" Swap Anchor reverses the position of the cursor and the start of the marked block in the current buffer. If there is no marked block, it has no effect. cut delete_char "cut,delete_char;paste" Cut copies a marked block to the scrap and then deletes the block from the buffer. If no block is marked, Cut copies and deletes the current line. To delete a marked block without copying its contents to the scrap first, use the Delete command. Text in the scrap can be inserted in any buffer with Paste; this is is the mechanism BRIEF uses for moving and copying text. copy "copy;paste" Copy copies a marked block to the scrap. If no block is marked, Copy copies and deletes the current line. Text in the scrap can be inserted in any buffer with Paste; this is is the mechanism BRIEF uses for moving and copying text. paste "paste;cut,copy" Paste inserts a copy of the scrap into the current buffer. The scrap itself remains unchanged, so you can paste many copies of the same text without cutting or copying again. The type of block in the scrap (Character, Column, Line, or Non- Inclusive) is taken into consideration when pasting. Character and Non-inclusive blocks are inserted just before the current position. So is the first line of a column block; additional lines are inserted below the current position. Line blocks are inserted before the current line. print printing "print" Print prints the currently marked block on the standard printer device, then unmarks the block. All real tab characters are translated to the appropriate number of spaces as the text is sent to the printer. slide_in slide_out indenting blocks "slide_in,slide_out;back_tab" Normally, Tab moves the cursor to the next tab stop on the current line. Back Tab moves the cursor to the previous tab stop, or to the beginning of the line. Both commands have a slightly different effect when these conditions are in effect:  The current buffer has a language package associated with it  A block is marked In this situation, Tab acts as though it had been pressed at the first character of every line in the block, which shifts the block right by one tab stop. Back Tab has the opposite effect, shifting a block left by one tab stop. It only shifts lines that begin with tabs or spaces. tolower toupper case conversion "toupper,tolower" Uppercase Block converts all the lower-case characters in a block to upper case. Lowercase Block converts the block to upper case. If no block is marked, both commands operate on the current line. buffers Buffers are the objects that BRIEF uses to store text while you are editing it. Buffers and files are different; a buffer is a temporary copy of a file, and usually has the same name. All changes made to a buffer are stored in memory (not in the file on disk) until you explicitly write them. Each buffer has an input file and an output file associated with it. The buffer is copied from the input file, edited, and copied to the output file. These two files are normally one and the same. However, you may change the output file name. Writing a buffer to a new output file changes the input file to match. Buffers may be up to 65,535 lines long. There is no limit on their number; you can edit as many files as you want. PgDn ==> Next page The buffers are kept in a circular list called the buffer list. When a buffer is created, it is added to the list; when it's deleted, it is removed. All buffers are always in the buffer list. When you write a buffer, its contents replace the output file; if you exit BRIEF without writing a buffer, the changes made to the buffer are lost. PgUp ==> Previous page edit_file editing "edit_file" Edit File creates a new buffer, copies a file from disk into it, and views the new buffer in the current window. The buffer is created even if the disk file does not exist. If the file is already in a buffer, that buffer is put in the current window. Prompt: "File:" Enter the name of the file you want to edit. read_file reading "read_file;edit_file" Read File Into Buffer reads a copy of a file from disk into the current buffer, at the current cursor position. If the specified file is already in a buffer, the buffer is read in instead. You can't read a buffer into itself. Read File should not normally be used to edit files, because it is slower and less efficient than Edit File. It should only be used when you want to merge a file into an existing buffer. Prompt: "File to read:" Enter the name of the file you want to read in. display_file_name output_file file names "display_file_name,output_file" Display File Name displays the full path name of the output file for the current buffer. An asterisk after the name indicates that the buffer has been modified since it was loaded or written. Change Output File changes the output file name. This command may be used to create a copy of a file, or to save it on a different disk when the original disk fills up. The original input file remains associated with the buffer until it is written. Prompt: "Enter new output file name:" Enter the file name that will be used to save the buffer. You can specify any name (with or without a path), as long as you're not editing another buffer with the same input or output file name. buf_list buffer list "buf_list" The Buffer List command shows you a list of all the buffers currently in memory, and indicates whether each buffer has been modified. In the buffer list, you can use the following commands:  Move up or down with the Up and Down arrows  Scroll forward or back 1 screen with PgUp or PgDn  Move to the top or bottom of the list with Home or End  Delete the currently highlighted buffer with d  Write the currently highlighted buffer with w  Edit the currently highlighted buffer with e  Return to your editing session with Esc You cannot delete a buffer that is currently being viewed in any PgDn ==> Next page of the windows. Also, if you try to delete a modified buffer, you will receive the following prompt: Prompt: "This buffer has not been saved. Delete [ynw]?" Typing y will delete the buffer anyway, n or Esc will return you to the buffer, and w will write the buffer and then delete it. After the buffer is deleted, the next buffer in the buffer list becomes the new current buffer. PgUp ==> Previous page edit_next_buffer edit_prev_buffer change buffer "edit_next_buffer,edit_prev_buffer;buf_list" Next Buffer and Previous Buffer let you switch to the next or previous buffers in the buffer list respectively. This method is faster than selecting a buffer from the Buffer List. The new buffer is always displayed in the current window. The cursor is put the last position it held in the buffer. write_buffer writing "write_buffer;output_file" Write saves the current buffer to disk, using the current output file name. The input file name is changed, if necessary, to match the output file name. Once a file is written, changes that had been made to it can no longer be undone. You can write a marked block to a new output file. This unmarks the block, but does not clear your undo information. Prompt: "Write marked area as:" Enter a file name that will be used to save the marked block. If the disk you are writing to is full, you must change the output file name to a file on a disk that has free space. set_backup backups "set_backup" Backup files are normally created when a file is written. A backup file contains the edited file as it existed prior to the editing session. Backup files may be saved in any directory on any drive, or they may be saved in the same directory as the edited file. In the second case case, the extension of the file is changed to ".bak". The backup file location may be set with SETUP. Although we do not recommend turning backup files off, you may do so with the Backup File Toggle command. Turning backups off will not reduce the amount of space BRIEF needs to write your file, because BRIEF doesn't erase the old version until the new one is safely written. It will, however, make writing large files slightly faster, especially if backups are stored on another drive. delete_curr_buffer delete buffer "delete_curr_buffer;buf_list" Delete Current Buffer deletes the current buffer from the buffer list. If the buffer has been modified but not saved, you will see the following prompt: Prompt: "This buffer has not been saved. Delete [ynw]?" Typing y will delete the buffer anyway, n or Esc will return you to the buffer, and w will write the buffer and then delete it. After the buffer is deleted, the next buffer in the buffer list becomes the new current buffer. You can't delete a buffer if it is the only one in the list, or if it is being viewed in more than one window. del delete file "del" Delete File deletes a DOS file from inside BRIEF. This command is potentially dangerous, because it is not undoable. It does not prompt. You must first invoke Execute Command, then enter del where is the name of the file you want to delete. You cannot delete a file that you are editing. up down left right prev_char next_char character movement "up,down,left,right,prev_char,next_char" The Up, Down, Left, and Right commands are used to move the cursor in the current buffer. They will move the cursor into virtual space (into tab fill areas, past the ends of lines, or past the end of the file) if necessary. If you try to move the cursor past one of the window edges, the buffer will be scrolled if possible to bring the next line or column into view. The Previous Character and Next Character commands also move the cursor in the buffer, but will not move it into virtual space. next_word previous_word word movement "next_word,previous_word" Next Word moves the cursor to the first character of the next word. Previous Word moves the cursor to the first character of the previous word. Words are normally defined as being separated only by spaces, tabs, or newlines, although for certain types of programming language files the definition of a word be slightly different. goto_line beginning_of_line end_of_line _home _end line movement "goto_line,beginning_of_line,end_of_line,_home,_end" Go To Line moves the cursor to the first character of a specific line in the buffer. Prompt: "Go to line:" Enter the line number you want to go to. If you specify a line past the end of the buffer, the cursor will move as far as it can. Beginning of Line moves the cursor to the beginning of the current line. End of Line moves the cursor to the end of the current line. Home and End are multiple-keystroke commands. The first time Home is pressed, the cursor moves to the beginning of the line; the second time, to the top of the window; the third time, to the beginning of the buffer. End moves to the end of the line, bottom of the window, and end of the file. top_of_window end_of_window left_side right_side window movement "top_of_window,end_of_window,left_side,right_side;change_window" Top of Window moves the cursor to the top line of the current window. End of Window moves the cursor to the bottom line. Left Side of Window moves the cursor to the leftmost column in the current window. Right Side of Window moves the cursor to the rightmost column. top_of_buffer end_of_buffer buffer movement "top_of_buffer,end_of_buffer;edit_next_buffer,edit_prev_buffer" Top of Buffer moves the cursor to the first character in the current buffer. End of Buffer moves the cursor to the last character in the current buffer (which is always a newline). to_top center_line to_bottom screen_up screen_down scrolling by line "to_top,center_line,to_bottom,screen_up,screen_down" You can scroll the buffer so that the current line is as close to the top, middle, or bottom of the window as possible. The commands are:  Line To Top of Window  Center Line in Window  Line to Bottom of Window You can also scroll the buffer up or down, one line at a time, with:  Scroll Buffer Up in Window  Scroll Buffer Down in Window page_up page_down scrolling by page "page_up,page_down" Page Up moves one page back in the current buffer, leaving the cursor at the same position on the screen. Page Down likewise moves one page forward. For both commands, if you can't move an entire page in the appropriate direction, the buffer is scrolled as much as possible. drop_bookmark drop_bookmark 1 drop_bookmark 2 "drop_bookmark,drop_bookmark 1,drop_bookmark 2;drop_bookmark 3,goto_bookmark" Bookmarks let you save a position in a particular buffer. The position is anchored to a character, and moves with that character if lines are added or deleted before it in the buffer. If the character itself is moved or deleted, the bookmark remains as close as possible to the original position. Up to 10 bookmarks can be kept at once. The Drop Bookmark command drops a bookmark, saving the current position. Prompt: "Drop bookmark [1-10]:" Enter a bookmark number from 1 to 10. The current line, column, and buffer will be saved in the bookmark for later recall with Go To Bookmark. goto_bookmark "goto_bookmark;drop_bookmark" Go To Bookmark moves the cursor to a position saved with Drop Bookmark. This position may be in another buffer. If it is, the current buffer is changed to the buffer where the bookmark was dropped. The bookmark contains the line, column, and buffer where it was dropped. Prompt: "Go to bookmark [1-10]:" Enter a bookmark number from 1 to 10. The cursor will move to the position of the saved bookmark. keys and commands ";execute_macro" Commands are functions that you can perform from the keyboard. Commands may be assigned to key sequences; for example, the Exit command is assigned to by default. Commands may also be executed by name: you could also exit by invoking Execute Command and entering "exit". In BRIEF, any command may be assigned to any legal key sequence. You can change any or all of BRIEF's default key assignments, either temporarily or permanently. You can write your own commands, known as macros, to replace or supplement BRIEF's built-in commands. See the BRIEF User's Guide for information on commands. See the Macro Language Guide for detailed information on key assignments, and on reconfiguring BRIEF through macros. execute_macro execute "execute_macro" Execute Command is used to execute a command by its function name (rather than by the keystroke it's assigned to). Command names are listed in the User's Guide's Command Reference. Commands beginning with an underscore may not be invoked in this way. Prompt: "Command:" Type the name of the command, followed by any parameters you wish to provide. Spaces are permitted in a parameter, if the parameter is surrounded by double quotes. For example, dos "dir a:" will pass the single parameter "dir a:" to the dos command. Double quote characters may themselves be included in a parameter by preceding them with a backslash. remember "remember;playback" Remember causes BRIEF to start recording all keystrokes, until you call Remember again. Only one keystroke sequence may be remembered at a time. You may receive the following prompt: Prompt: "Overwrite existing keystroke macro [yn]?" You have already recorded a keystroke sequence in this editing session. Answer y if you want to overwrite the previous recording, or n if you want to return to BRIEF. lets you insert a pause into a keystroke recording (this key assignment may not be changed.) Pressing again resumes recording. When the recording is played back, it stops at the pause, and can be resumed by pressing one more time. playback "playback;remember" Playback plays back the most recently remembered keystroke sequence. If Playback encounters a pause () command in the remembered sequence, it will pause the playback; to resume it, press . When a keystroke sequence is being replayed, the notation PL appears near the lower-right-hand corner of the screen. The notation PA indicates that a Remember or Playback command is paused. repeat "repeat" Repeat lets you repeat a command several times. Prompt: "Repeat count = 1; type count or command." Enter the number of times you want to repeat the command, or the command itself. If the command requires multiple keystrokes to invoke, you must first create a keystroke recording of it, and then repeat the keystroke recording rather than the command itself. keys "keys;assign_to_key,key" The Keys command is used to:  Reconfigure key assignments for the commands included with BRIEF  Determine the current key assignments for each command (online Quick Reference card) When Keys is run, two windows appear. The left window lists the BRIEF commands. One command is always highlighted. The right window lists the key assignments for the highlighted command. PgDn ==> Next page In the left window, you can use the following commands:  Move up or down with the Up and Down arrows  Scroll forward or back 1 screen with PgUp or PgDn  Move to the top or bottom of the list with Home or End  Move to a specific command by typing its first letter  Add an assignment with Ins  Move to the right window with Enter or the Right arrow  Return to your editing session with Esc. In the right window, you can:  Add an assignment with Ins  Delete an assignment with Del  Return to the left window with Esc, F10, or the Left arrow. PgUp ==> Previous page PgDn ==> Next page Keys modifies a file called keyboard.h, which is located in the macro source file directory. If the macro source files are not installed, Keys can only be used as a Quick Reference, not for reconfiguration. You will not be able to move into the right window. If you invoke Keys with the syntax "keys 1", it will insert macro commands to produce the key assignments into the current buffer, instead of modifying keyboard.h. PgUp ==> Previous page assign_to_key "assign_to_key;keys,key" Assign to Key can be used to make one specific assignment without bringing up the Keys menu. It prompts for a key code and the name of a command to assign to that key. Prompt: "Enter key:" Enter the code for the key you wish to assign to. For example, to assign to F9, enter . A full description of key codes may be found in the Macro Language Guide. Prompt: "Enter macro name to assign:" Enter the name of the command. Command names are listed in the User's Guide's Command Reference section. key key codes "key;assign_to_key,keys" Insert Key Code inserts the key code for a given keystroke sequence into the current buffer. Prompt: "Press the keys you want converted, Esc to end." All keystrokes up to but not including an will be translated to a specific, numeric format, and inserted into the current buffer. Prompt: "Recognize only that specific ?" The key you pressed can be considered either a single keystroke (like the Tab key) or a group of keystrokes (all keys that can generate an ASCII Tab character). Responding y will treat the key as the more specific keystroke, n as the more general. load_macro "load_macro;delete_macro" Load Macro File loads a compiled macro file into BRIEF. Prompt: "Macro file:" Enter the name of the file you want to load. If you don't specify a file extension, .cm will automatically be used. If you don't specify a path, the directories listed in the BPATH environment variable will be searched for the file. delete_macro "delete_macro;load_macro" Delete Macro File removes a compiled macro file (including all the macros contained in it) from memory. Prompt: "Macro to delete:" Enter the name of the macro file to delete from memory. If the macro file is not in the current directory, you must specify the full path name. languages BRIEF provides automatic indenting, compilation from BRIEF, and syntax error location for the following languages: Assembler BASIC C COBOL dBASE FORTRAN Modula-2 Pascal BRIEF Macro Language Additional support, including "smart" automatic indenting, statement completion, and procedure location is provided for the C language. Please consult the User's Guide for further information. Support for each language is tied to the conventional file extension for the language, and must be activated with Setup. brace brace matching "brace" Brace makes sure that all opening and closing braces ({ and }) in the current buffer pair up, and moves the cursor to any that don't. compile_it compiling "compile_it;next_error,next_error 1" Compile Buffer compiles the current buffer, using the compiler that was selected during Setup. If the compilation is unsuccessful, you can use the Next Error and Pop-up Error Window commands to view and scroll through the syntax errors. next_error next_error 1 error location warnings_only "next_error,next_error 1,warnings_only;compile_it" Next Error and Pop-up Error Window let you locate syntax errors in your program. Next Error moves the cursor to the next line with an error, and displays the error message on the status line. Warnings are displayed in the normal message color, errors in the error color. Pop-up Error Window displays the compiler's output in a window. If BRIEF recognizes error messages, you can scroll through them, or press Enter to go to the line that caused the highlighted error. Warnings Only tells BRIEF to inform you when a compile turns up warnings, but no errors. Invoking it again tells BRIEF not to. routines procedure location "routines" Routines scans the current buffer for declarations of C language procedures, using the assumptions that procedure declarations begin in column 1 and that a closing parenthesis is the last non- whitespace character on the line. It builds a menu containing the names of all "procedures" located. In the menu:  Move up or down with the Up or Down arrow keys  Jump to the highlighted procedure by pressing Enter  Return to your editing session with Esc margin reform center word processing "margin,reform,center" Word processing is normally on for just .txt and .doc files, but you may change this with Setup. When word processing is active, word wrap is automatic and occurs whenever you type past the right margin. The Margin command is used to set the right margin; the left is always at column 1. Prompt: "Enter margin:" Enter the new right margin value, in columns. Reformat Paragraph forces the marked paragraph to wrap at the current margin setting. If no paragraph is marked, Reformat tries to find one by looking for blank or indented lines. Center centers the current line between column 1 and the margin. autosave BRIEF's autosave facility will save your files automatically whenever your keyboard has been idle for a predetermined time. The saved files are given a .asv extension to avoid conflicts with your source and backup files, and are deleted when you exit. If the power fails during your session, the .asv files will still be around. Autosave may be turned on and off, and the time between saves set, by using Setup. Autosave is not a substitute for writing your files; it just protects against calamities like power failures. cd change directory "cd" Change Directory changes the current directory. It does not prompt and must be run through Execute Command. For example, to change to the \brief\macros directory, you would have to:  Run Execute Command  Enter "cd \brief\macros" If you omit the directory name, the current drive and directory will be displayed. If you specify a drive letter, but omit the directory name, the specified drive becomes the default. exit "exit;exit y,exit w" The Exit command concludes your editing session and returns control to DOS. If you've made changes to buffers but haven't written them, the following prompt appears: Prompt: " buffers have not been saved. Exit [ynw]?" Pressing y exits without saving the buffers. n or Esc returns to BRIEF, and w writes all modified buffers and then exits. completion Edit File, Read File, Load Macro, and Delete Macro allow for file name completion. When you are prompted for a file name:  Type the beginning of the file name  Press Tab BRIEF will look for an existing file matching the beginning of the name. If there are none, BRIEF will beep. If there is exactly one, its name will appear on the command line. If several files match, a menu will pop up, listing them.  Move up or down in the list with the Up or Down arrow  Press Enter to select a matching file File name completion also works when you specify DOS wildcards (* and ?) in the file name. history BRIEF maintains a list of your responses to prompts, including patterns that you search for, names of files that you edit, etc. When you are prompted, you can scroll through previous responses and re-enter them (or edit them) if you wish. BRIEF normally maintains separate lists for each prompt, but you can always recover the most recent response, even if it was typed at a different prompt or command. At a prompt:  Up and Down arrow scroll through the responses to that prompt  gets the last response to ANY prompt  Normal editing of any response is permitted pause_on_error pausing errors "pause_on_error" Pause on Error instructs BRIEF to pause whenever an error message is displayed, giving you time to read the message. It is useful when error messages flash by too quickly to be read. Error messages are followed by three dots when Pause on Error is in effect. The dots are a reminder that you must press a key to resume. To turn pausing on errors off, use the Pause on Error command again. You can force pausing by using the syntax "pause_on_error 1", and you can preclude it by using "pause_on_error 0". dos suspend "dos" The Suspend BRIEF command lets you run another program (or programs) without exiting BRIEF. It starts a second copy of DOS running. Much less memory will be available to the new copy, unless you have used Setup to turn "swapping" on. While BRIEF is suspended, do NOT  Run any programs that are not completely debugged.  Alter or delete any files that you are currently editing.  Load any program that makes itself memory-resident. To return to BRIEF, type "exit" at the DOS prompt. If you forget that you have a suspended session, and start a second copy of BRIEF, the number 2 will appear just above the clock. undo "undo" Undo undoes the last undoable command. All commands that change the cursor position, text, or marks are undoable. Information about the previous commands is retained, so if you Undo 5 times, the last 5 commands will be undone. Once you write your changes to disk, they can no longer be undone. version "version" Version displays the version number of BRIEF on the message line. searching The Search commands let you search for a pattern in the current buffer. You can search:  Forward towards the end of the file  Backward towards the beginning of the file  Within a marked block  Case-sensitive (A matches only A) or case-insensitive (A matches a and A)  With (or without) powerful regular expression characters  Incrementally, as you type the pattern  Again for the last pattern specified The Translate commands let you change any or all occurrences of a pattern to a new value, with most of the above options. See specific help topics for more information. toggle_re regular expressions "toggle_re" Regular expressions are special characters in search or translate strings that let you specify character patterns to match, instead of just sequences of literal characters. Regular expression characters are similar to DOS wildcards, but are much more powerful. These are the regular expressions: Expression: Matches: ? Any character except a newline * Zero or more characters (except newlines) \t Tab character \n Newline character \c Position cursor after matching \\ Literal backslash PgDn ==> Next page Character: Matches: < or % Beginning of line > or $ End of line @ Zero or more of last expression + One or more of last expression | Either last or next expression {} Define a group of expressions [ ] Any one of the characters inside [ ] [~ ] Any character except those in [~ ] [a-z] Any character between a and z, inclusive In replacement text, \t, \n, and \c are allowed, as well as: \ Substitute text matched by th group (0 <= n <= 9) PgUp ==> Previous page PgDn ==> Next page Regular Expression Examples Pattern: Result: the Find the next occurrence of "the". {him}|{her} Find the next occurrence of "him" or "her". or Finds next occurrence where "alone" is alone on %alone$ a line. stuff*between Find next occurrence of "stuff" followed by "between" on the same line. th[eo]se Find next occurrence of "these" or "those". PgUp ==> Previous page PgDn ==> Next page Regular Expression Examples [A-Z][a-z]@; Find next capitalized word with a semicolon after it. [0-9]+ Find one or more consecutive digits. [~ \t\n] Find any character but a space, tab, or newline. Many additional examples may be found in the User's Guide. Note that the *, @, and + expressions will always match as few of the expression in question as possible. UNIX-style matching (match as many as possible) is available to macro writers. The Regular Expression Toggle command turns expressions on or off. PgUp ==> Previous page search_case case sensitivity "search_case" Case sensitivity for searches and translates can be turned on and off with the Case Sensitivity Toggle. When case sensitivity is off, "UnderWare" will match UNDERWARE, Underware, underware, etc.; when case sensitivity is on, it will only match UnderWare. search_fwd search_back search searching blocks "search_fwd,search_back;toggle_re,search_case,block_search,search_again" Search Forward and Search Backward search for the next occurrence of a pattern, starting at the cursor position. Prompt: "Search for:" Enter the pattern you're searching for (see the help screen on Regular Expressions, for information on special characters that you can include in the pattern). All searches are affected by the current states of the Regular Expression and Case Sensitivity toggles. The Block Search command determines whether or not a search is confined to a marked block. translate translate_back "translate,translate_back" Translate Forward and Translate Backward replace matches of any pattern in the current buffer. If a block is marked, translation will only occur within the block. Prompt: "Pattern:" Enter the search pattern, which may contain regular expressions. See help on Regular Expressions for more information. Prompt: "Replacement:" Enter the replacement text, which may contain regular expressions. PgDn ==> Next page Prompt: "Change [Yes|No|Global]?" Enter y to replace the current match and continue translating, n to skip this match and continue, g to replace all the remaining matches without prompting, or Esc to stop the translation. PgUp ==> Previous page search_again translate_again searching again "search_again,translate_again;search_fwd,search_back" Search Again finds the next occurrence of the pattern specified in the most recent Search Forward or Search Backward command. It searches in the same direction as the last search. Translate Again repeats the most recent Translate Forward or Translate Backward command. i_search incremental search "i_search" Incremental Search lets you search for a pattern as you type it; as you type each character, the cursor moves to the next occurrence of text that matches the pattern so far. Because patterns containing regular expressions cannot be properly matched until the entire pattern is known, incremental search ignores regular expressions. Prompt: "I-search for:" Begin typing the pattern to search for. If you make a mistake, you can press Backspace. A beep signals that no text matches the pattern you have typed. To end the search, press Esc. windows Windows are rectangular areas of the screen which provide views of text in a buffer. If a buffer contains more text than the window can view, the buffer can be scrolled through the window to bring other portions into view. You can create more than 50 tiled (non- overlapping) windows on a normal display. Windows and buffers are independent; that is, any window may view any portion of any buffer, regardless of the contents of the other windows. In addition to tiled windows, BRIEF occasionally uses pop-up (overlapping) windows such as this one. Pop-up windows are intended to display temporary information, and can only be created through use of the macro language. create_edge splitting "create_edge" Create Window creates a new tiled window by splitting the current window in half, displaying the current buffer in both windows. Prompt: "Select side for new window (use cursor keys)." Point in the direction where you want the new window with one of the arrow keys. The window will be split, and your cursor will be placed in the newly created window. Neither of the two new windows may be less than 1 line high or 14 columns wide. move_edge resizing "move_edge" Windows can be resized with the Resize Window command. Prompt: "Select an edge to move (use cursor keys)." Point to the edge you want to move with one of the arrow keys. You can only move edges that are shared by two (and only two) windows. Prompt: "Move to new edge position and press Enter." Use the cursor keys to move the cursor to the new position for the edge being moved, and press Enter to complete the command. The new windows (for both windows sharing the edge) cannot be less than 1 line high and 14 columns wide. change_window change_window 1 change_window 2 change_window 3 change_window 0 switching "change_window" Change Window lets you move the cursor to another tiled window. Prompt: "Point to destination (use cursor keys)." Point to the window you want to move the cursor into by pressing the appropriate arrow key. There is also a shortcut for switching between windows: hold down the Shift key, and press the arrow key that points to the window you want to move to. This feature doesn't work if Num Lock is on. delete_edge removing "delete_edge" Windows can be deleted by deleting the edges between them with the Delete Window command. The current window expands into the area occupied by the other window. Prompt: "Select window edge to delete (use cursor keys)." Point to the edge you want deleted with the appropriate arrow key. You cannot delete edges that are shared by more or less than two windows. borders "borders" The Borders command lets you toggle BRIEF's window borders on and off. Borderless windows are distinguished by their background color; if you're using a monochrome monitor, it may be difficult to see the boundaries between multiple windows on the screen. color "color" Color sets the background and foreground colors for bordered windows, the color of the current window's title, and the colors of normal and error messages. Each color type may be set independently. Prompt: "Enter color number:" Enter a color number from the table below. Background color must be <= 7. Other colors may be any number. 0 Black 6 Brown 12 Light Red 1 Blue 7 White 13 Light Magenta 2 Green 8 Dark Gray 14 Yellow 3 Cyan 9 Light Blue 15 Bright White 4 Red 10 Light Green 5 Magenta 11 Light Cyan