Difference between revisions of "Dmuse: Key commands"
m |
m (adding a word) |
||
(115 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | = Introduction to the Keyboard command list in Dmuse = | |
+ | [[File:Dmuse-editscreen.png|250px|thumb|right|Initial editing screen shown after starting Dmuse.]] | ||
− | + | After an initial splash screen, Dmuse presents to the user an empty text-editing window as illustrated in the figure to the right. What you see is a view of one out of thirty possible editing windows. You will see a blinking cursor in the upper left-hand corner of the screen. The arrow keys will move the cursor anywhere within the screen. The metaphor here is a blackboard: as you can write anywhere on the blackboard with a piece of chalk, you can write (type) anywhere on a Dmuse window. In this respect, Dmuse does not work like most text processors which contain empty lines that are filled with content from left to right. | |
− | + | The Dmuse interface makes extensive use of the keyboard with numerous combinations of the {{keypress|Shft}}, {{keypress|Ctrl}}, and {{keypress|Alt}} keys. Since the layout and response for the PC-Linux and Macintosh keyboards is slightly different (<i>e.g.</i>, the Mac has no {{keypress|Insert}} key), there are some differences between the PC-Linux and Macintosh versions of the command list. The Dmuse documentation is designed to take this into account; so that if you are running the Mac version of Dmuse, all of the internal documentation will correspond to that version. For purposes of this document, the following descriptions will be for the PC-Linux version of Dmuse. Every keystroke combination in the PC-Linux version has a corresponding keystroke combination for the Mac. | |
− | |||
− | + | == Commands for moving the cursor and viewing the window. == | |
− | + | [[File:Window-screen.png|100px||right|Schematic of a <i>window</i> and a <i>screen</i> in Dmuse.]] | |
− | + | The first thing to note is the difference between a "window" and the "screen". Using the metaphor above, a "window" is the full blackboard; the "screen" is a view of a portion of that window. Windows in Dmuse can be quite large; up to 960 columns, and up to one million lines of text. The screen size is whatever fits into the X-window you have set up for Dmuse (changeable by your computer's window manager). Here are some commands for moving the cursor and viewing windows: | |
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Left}}, {{keypress|Up}}, {{keypress|Down}}, {{keypress|Right}} || move the cursor left, up, down, or right. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Left}}/{{keypress|Up}}/{{keypress|Down}}/{{keypress|Right}}, or<br> {{keypress|Right-Shft|Left}}{{keypress|Up}}/{{keypress|Down}}/{{keypress|Right}}|| scroll the contents of a window up, down, left and right. | ||
+ | |- | ||
+ | | {{keypress|PgUp}}, {{keypress|PgDn}} || shift the view of the window up or down by one page. Note, shifting the view of a window up by one page({{keypress|PgUp}}) is the same as scrolling the contents of the screen down by one page. | ||
+ | |- | ||
+ | | {{keypress|Home}} || put cursor at top of window (line 1, column 1). | ||
+ | |- | ||
+ | | {{keypress|End}} || put cursor below last line of text in window and in column 1. | ||
+ | |- | ||
+ | | {{keypress|KeyPad 0..9}} || change between windows 0 through 9, respectively (NumLock turned off). | ||
+ | |- | ||
+ | | {{keypress|Ctrl|KeyPad 0..9}} || access windows 10 to 19, respectively (NumLock turned off). | ||
+ | |- | ||
+ | | {{keypress|Alt|KeyPad 0..9}} || access windows 20 to 29, respectively (NumLock turned off). | ||
+ | |- | ||
+ | | {{keypress|KeyPad •}} || toggle between current and previous windows. {{keypress|Shft|Esc}} (for LapTops) will do this also. | ||
+ | |} | ||
+ | </center> | ||
− | + | == The mouse == | |
− | |||
− | |||
− | |||
− | |||
Dmuse developed initially as a keyboard only interface, with the mouse | Dmuse developed initially as a keyboard only interface, with the mouse | ||
being added much later. So the mouse does not do many of the things | being added much later. So the mouse does not do many of the things | ||
most users expect. This section describes what the mouse does do; | most users expect. This section describes what the mouse does do; | ||
− | the next section describes some of keystrokes that provide the functionality | + | the next section describes some of the keystrokes that provide the functionality |
you would expect from a mouse (but do not get with Dmuse). | you would expect from a mouse (but do not get with Dmuse). | ||
* Across the bottom frame of Dmuse you will see the numbers 0 to 29. Click on one of these to change to that window. There is also a question mark on that frame. Click on that and you will get a summary description of what is in each of the windows (since it is sometimes hard to remember what you have put where). | * Across the bottom frame of Dmuse you will see the numbers 0 to 29. Click on one of these to change to that window. There is also a question mark on that frame. Click on that and you will get a summary description of what is in each of the windows (since it is sometimes hard to remember what you have put where). | ||
− | + | * Click on the word "Window" in the top frame to toggle between windows (same as {{keypress|KeyPad .}}). Click anywhere else in the top frame to call up the resident file manager. | |
− | * Click on the word "Window" in the top frame to toggle between windows (same as KeyPad | ||
− | |||
* Along the right frame is something that looks like a scroll bar. It is not a real scroll bar, but you can click in different places along the "track" to shift the view to different places in the window. The real purpose of the pseudo scroll bar is to show you approximately where you are in a window. It is not uncommon for a window to contain thousands of lines, and in this case you would like to know if you are somewhere near the top or near the bottom of a window. At the right-hand side of the top frame are two numbers representing the current position of the cursor in the window: line number and column number. | * Along the right frame is something that looks like a scroll bar. It is not a real scroll bar, but you can click in different places along the "track" to shift the view to different places in the window. The real purpose of the pseudo scroll bar is to show you approximately where you are in a window. It is not uncommon for a window to contain thousands of lines, and in this case you would like to know if you are somewhere near the top or near the bottom of a window. At the right-hand side of the top frame are two numbers representing the current position of the cursor in the window: line number and column number. | ||
− | + | * If you activate the resident file manager ({{keypress|F4}}), the mouse can be used to select various commands for this sub-program. | |
− | * If you activate the resident file manager (F4), the mouse can be used to select various commands for this sub-program. | ||
− | |||
* Finally, if you click anywhere in the main screen, the cursor will go there. | * Finally, if you click anywhere in the main screen, the cursor will go there. | ||
− | + | == Keystrokes that highlight, and what you can do with highlighted material. == | |
− | |||
− | |||
− | |||
− | |||
− | + | With many programs the mouse is used to highlight text. This requires the "hold and drag" motion of the mouse, something Dmuse does not currently do. Instead, Dmuse has the following keystrokes to highlight areas of the window. In Dmuse, there are two kinds of highlight: box highlight and line highlight. | |
− | |||
− | |||
− | |||
− | |||
− | + | === Box highlighting commands === | |
+ | <center> | ||
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Left}}/{{keypress|Up}}/{{keypress|Down}}/{{keypress|Right}}|| box highlight a region of the window, moving from the current cursor position to the left, up, down, or right. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|Left}}/{{keypress|Up}}/{{keypress|Down}}/{{keypress|Right}}|| move box selection around in the window. After contents have been moved, any other keystroke will deposit content of the box in its new location, overwriting whatever was there on the screen. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Insert}} || load contents of box into the "box buffer." There is only one box buffer, so whatever was previously in the box buffer will be replaced. | ||
+ | |- | ||
+ | | {{keypress|Shft|Insert}} || copy contents of box buffer to the screen at cursor location. The box buffer is universal to all Dmuse windows, so you can use the box buffer to copy material from one window to another. Copying from the box buffer does not change the contents of the buffer. | ||
+ | |- | ||
+ | | {{keypress|Delete}} || delete window region covered by the highlight. Anything to the right of deleted material moves left. | ||
+ | |- | ||
+ | | {{keypress|-}} or {{keypress|_}} || draw single or double line around the edge of the box. You can use this facility to build up complicated line patterns and templates. | ||
+ | |- | ||
+ | | {{keypress|~}} || used with the box highlight, the tilde key will remove any line characters around the edge of the highlighted area. | ||
+ | |- | ||
+ | | {{keypress|t}} || if highlighting a column of numbers, calculates the sum and places the total underneath highlighted region. | ||
+ | |- | ||
+ | | {{keypress|a}} || if highlighting two columns of numbers side by side, gives a third column which is the row-by-row sum. Be sure your highlight includes space for the third column of numbers. | ||
+ | |- | ||
+ | | {{keypress|s}} || similar to {{keypress|a}} but gives a third column which is the difference between the two highlighted columns. If your columns contain commas, you will get commas in your answer; and if one of your numbers has a dollar sign, you will get a dollar sign in your answer. (works with pounds and yen, too). | ||
+ | |} | ||
+ | </center> | ||
− | + | === Line highlighting commands === | |
− | |||
− | The line buffer does not work like the box buffer. It is a last-in, first-out trash heap. And its size is limited only by the size of your disk! The | + | The second type of highlight is the line highlight. |
+ | The line buffer does not work like the box buffer. It is a last-in, first-out trash heap. And its size is limited only by the size of your disk! The line buffer works across all windows, so you can use this feature to move material between windows. | ||
− | If | + | <center> |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Up}}/{{keypress|Down}} || Start/adjust a line highlight selection range, one line up or down. Cursor must be positioned at starting line of selection. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|PgDn}}/{{keypress|PgUp}} || Start/adjust a line highlight selection range, one page up or down. Cursor must be positioned at starting line of selection. | ||
+ | |- | ||
+ | | {{keypress|Delete}} || Delete highlighted lines from the window. | ||
+ | |- | ||
+ | | {{keypress|Insert}} || Copy highlighted lines (they are not deleted, and highlighting is removed from lines). | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|Insert}} || Retrieve the last "block" of lines placed into the line buffer, whatever number of lines that was, and insert them into your current window just above the cursor. If {{keypress|Shft|Alt|Insert}} is used more than once, it will continue to retrieve lines from the line buffer (trash heap), but only one line at a time. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|Insert}} || Similar to the previous command, but will copy instead of retrieve lines from the line buffer. You can use {{keypress|Ctrl|Shft|Insert}} multiple times to copy the same group over and over again. | ||
+ | |- | ||
+ | | {{keypress|Alt|Delete}} || Delete a line to the trash heap without using the line highlight. | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|Delete}} || Copies a line to the trash heap but does not delete it. Instead the cursor moves down one line. Holding down {{keypress|Left-Shft|Alt}} and pushing {{keypress|Delete}} several times will copy serveral lines (one at a time) to the trash heap. Holding down {{keypress|Left-Shft|Alt}} and pushing {{keypress|Delete}} and {{keypress|Insert}} in alternation will copy the same line over and over again. | ||
+ | |} | ||
+ | </center> | ||
− | + | Note: We normally use the line highlight method to delete or copy lines. Not only does this allow groups of lines to be deleted/copied, but also for safety reasons it is helpful to <i>see</i> what you are deleting <i>before</i> it is deleted. Note also that all lines deleted in this way can always be recovered at least once. The trash heap never goes away, but the top layer can be removed. There are two other commands that delete lines (covered below), which do not put deleted material on the trash heap. Material delete by those commands goes away completely (from the window, anyway). | |
− | + | == Loading and storing files. == | |
− | |||
− | + | <center> | |
− | + | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | |
− | KeyPad | + | |- {{Style|table header}} |
− | + | ! scope="col" width="150px" | Key sequence | |
− | KeyPad | + | ! scope="col" width="500px" | Description |
+ | |- | ||
+ | | {{keypress|KeyPad +}} || load a file to the current window, at the line the cursor is currently on. | ||
+ | |- | ||
+ | | {{keypress|Shft|KeyPad +}} || store contents of the current window (the entire contents) to a file. | ||
+ | |} | ||
+ | </center> | ||
It is very important to make a distinction between the contents of a window and the contents of a file that might have the source for that window. First of all, any changes to the contents of the window are NOT reflected in the file unless and until the window is stored back to the file. Second, if a file is loaded into a window anywhere below the top line, the window and the file will be different right away. Dmuse provides a flag in the top frame, which signals when the contents of a window is different from the file which was its source (if there was one). If a file is loaded into a window (at any location), the top frame contains the name of the source file. If a window was not loaded from a file, no source is specified. | It is very important to make a distinction between the contents of a window and the contents of a file that might have the source for that window. First of all, any changes to the contents of the window are NOT reflected in the file unless and until the window is stored back to the file. Second, if a file is loaded into a window anywhere below the top line, the window and the file will be different right away. Dmuse provides a flag in the top frame, which signals when the contents of a window is different from the file which was its source (if there was one). If a file is loaded into a window (at any location), the top frame contains the name of the source file. If a window was not loaded from a file, no source is specified. | ||
− | When you type KeyPad | + | When you type {{keypress|KeyPad +}}, you will be asked for the name of the file to load. If you respond with {{keypress|$}}, you will be asked for the name again, and the file will be displayed as a Hex dump (handy for looking as such things as MIDI files). If a file is loaded as a Hex dump, the contents of the window do not match the contents of the file. You therefore do NOT want to store the window back to the file which was its source. To prevent this error from happening, a "read-protect" lock is put on the window. The word "Window" at the left of the top frame turns Blue. This way, the window cannot be "read" back to any file. You can toggle the read-protect flag using a command from the menu invoked by the {{keypress|Ctrl|F10}} keystroke. If you totally clear a window, the read-protect flag automatically goes off. |
− | When you type KeyPad | + | When you type {{keypress|Shft|KeyPad +}}, you will be asked for the name of the file to which the window is to be stored. If you enter {{keypress|$}}, the window will be stored back to the file from which it was last loaded (as noted in the top frame). When a window is stored to a file, the contents of the window and the file are the same, and the "difference flag" in the top frame goes off. |
− | of the file to | + | You can load one window from another by typing {{keypress|KeyPad +}} and then giving "{{keypress|*}}<number>" as the name of the file to load, <number> being the number of the source window. A window loaded in this way has no "source" <i>per se</i>. |
− | + | There are two mouse shortcuts to loading and storing windows. Under the "File" title, "Load" has the same effect as {{keypress|KeyPad +}}. "Save" has the same effect as the combination {{keypress|Shft|KeyPad +}} followed by the dollar sign. In other words, it can only save the window back to its source, not to another file. | |
− | + | == Clearing a window == | |
− | 1. | + | <center> |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|KeyPad -}} ||| clear only the current line to the right of cursor. | ||
+ | |- | ||
+ | | {{keypress|Shft|KeyPad -}} || clear a window to the right and below the cursor. | ||
+ | |} | ||
+ | </center> | ||
− | + | Material cleared in this way cannot be retrieved. Clearing a window has NO EFFECT on files. The source file, if there be one, is unaffected. | |
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" bgcolor="#aaffaa" style="background:#aaffaa; width:700px" | ||
+ | |- style="background:#559955; color:white" | ||
+ | ! scope="col" width="150px" | Menu sequence | ||
+ | ! scope="col" width="550px" | Description | ||
+ | |- | ||
+ | | File→Clear || move the cursor to Home (line 1, column 1) and clear the window ({{keypress|Shft|KeyPad -}}) | ||
+ | |} | ||
+ | </center> | ||
− | + | == Searching a window == | |
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|KeyPad /}} || search for a string in the current window. You will be prompted for the search string. If you type {{keypress|Down}}, you will be presented with a choice of the last 10 search strings you have entered. This allows you to redo former searches without having to retype the string. | ||
+ | |- | ||
+ | | {{keypress|F11}} || repeat the search starting at current cursor position, going forward in the window. | ||
+ | |- | ||
+ | | {{keypress|F12}} || repeat the search starting at current cursor position, going backward in the window. | ||
+ | |} | ||
+ | </center> | ||
− | + | == What else? == | |
− | Insert | + | <center> |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Insert}} || toggles between insert and overstrike mode. A plus sign (+) appears in the top frame when you are in insert mode. | ||
+ | |- | ||
+ | | {{keypress|Delete}} || delete character; move the rest of the line one column to the left. | ||
+ | |- | ||
+ | | {{keypress|Backspace}} || back the cursor up one column and replace whatever is there with a "space". | ||
+ | |- | ||
+ | | {{keypress|Alt|Left}} || move the cursor one word to the left. If there are no more words to the left, the cursor will jump back a line to the last word on that line. | ||
+ | |- | ||
+ | | {{keypress|Alt|Right}} || move the cursor one word to the right. If there are no more words to the right, the cursor will jump to the first word on the next line. | ||
+ | |- | ||
+ | | {{keypress|Return}} || put the cursor at the beginning of the next line. This requires some discussion. On many text processors, the text is stored as a stream of characters, and the <return> character signals the end of a paragraph. Dmuse treats each line on the screen as a separate record. When a window is stored to a file, a <return><line-feed> character combination is attached automatically to the end of each line. When a file is loaded to a window, these "record delimiter" characters are simply removed and each record appears on a new line. | ||
+ | |} | ||
+ | </center> | ||
− | + | Now a word about "record delimiters" for you Linux users. The use of the character combination <return><line-feed> as a record delimiter originated with IBM computers, and was adopted early on by Microsoft. Linux grew out of the old AT&T Unix system, which used only the <line-feed> character as a record delimiter. Linux recognizes both systems, but some Linux applications (some versions of [http://en.wikipedia.org/wiki/Make_(software) makefiles] for example), still expect to see only the <line-feed> character, and will treat the <return> character as part of the text of a line. Being able to handle both systems is therefore a priority. Dmuse provides a way to do this. If you load a file that uses only the <line-feed> character as a record delimiter, a flag will appear in the right-hand portion of the top frame. If you later store this file, it will be stored using only the <line-feed> character as a delimiter. You can toggle the delimiter flag using the keysrokes {{keypress|Ctrl|Shft|KeyPad *}}. When the flag is off, the record delimiter will revert to <return><line-feed>. Thus you can load a file in one format, and store it in another. | |
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Return}} || puts an actual carriage-return character at the end of the line and puts the cursor on the next line. | ||
+ | |- | ||
+ | | {{keypress|Alt|Return}} || puts the cursor on the next line and below the first (non-blank) character in the previous line | ||
+ | |- | ||
+ | | {{keypress|tab}} || moves the cursor to the next tab or to the next line. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|tab}} || moves the cursor backward to the previous tab or to the last tab on the previous line. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|tab}} || sets (or removes) a tab position at the cursor location. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Ctrl|tab}} || removes all tabs | ||
+ | |- | ||
+ | | {{keypress|F10}} || Toggle button to see where tabs are set. | ||
+ | |} | ||
+ | </center> | ||
− | + | Tabs also require some discussion. In some Linux applications (again, makefiles are an example), the Tab character is an important delimiter. It must be present for the file to be read properly. When Dmuse loads a file, it treats the Tab character like a text character. Yes, the Tab has its own character in Dmuse, which can be entered by typing {{keypress|Shft|Alt|0}}. This means two things: (1) the Tab is not expanded, and (2) such files can be edited correctly by Dmuse. If you want the Tab expanded, you need to use the command {{keypress|Ctrl|KeyPad +}} to load the file. But use caution here. In expanding the Tab character, you may lose it. Or you may lose space characters before a Tab. When in doubt, for files like this, we recommend using another editor entirely. | |
− | + | == Wordwrap == | |
− | + | Most text processors use wordwrap automatically. In fact, you cannot disable wordwrap on most text processors. You cannot put the cursor beyond the end of a line, because the line, itself, is not a separate entity. Wordwrap has meaning only when there are right and left margins. For most text processors, these margins are the right and left limits of the window you are typing in. Change the horizontal size and you change the margins . | |
− | + | Dmuse has wordwrap as an advanced feature. But, as you can imagine, this can only work within limits. The first limits are the margins, themselves. Wordwrap works only when the cursor is between the legal margins. When the cursor is outside the margins, you can still type text, but whatever you type might disappear if the margins are changed, so be careful. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Toggle with {{keypress|F10}} to see where the margins are set. {{keypress|Left-Shft|Alt|Right}}/{{keypress|Left}} will move the left margin. {{keypress|Right-Shft|Alt|Right}}/{{keypress|Left}} will move the right margin. {{keypress|Ctrl|Shft|Right}}/{{keypress|Left}} will move both margins simultaneously. The default action is for margins to move only for the paragraph the cursor is in. You can change this default using choices from the menu invoked by {{keypress|Ctrl|F10}}. | |
− | the | + | Dmuse is initially provided with wordwrap disabled. You can activate it using a command from the {{keypress|F9}} menu. When wordwrap is enabled, {{keypress|KeyPad *}} toggles it on and off. When wordwrap is "on," you will see the wordwrap flag [W] on the right-hand side of the top frame. We rarely work with wordwrap on, but we do use it to reformat (change the horizontal size of) paragraphs. |
− | |||
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|F10}} || Toggle view of margins. | ||
+ | |- | ||
+ | | scope="row" colspan="2" | The following commands will only work if the text does not exceed the right margin. These commands will work even when wordwrap is off. A <em>text block</em> is a set of lines which all have text starting at the left margin. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|p}} || Reformat sentences which are in a text block selected by the cursor into a paragraph. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|s}} || Reformat paragraph which is selected by the cursor into a text block of sentences, each sentence starting at the beginning of the line (and wrapping at the right margin if longer than one line). Sentences boundaries are defined by a period (.) followed by two spaces. Grammatical sentences ending in question marks (?) or exclamation marks (!) will not be treated as sentences by this command. Sentences ending at the right margin must have two spaces after the period in order for this command to work properly. | ||
+ | |} | ||
+ | </center> | ||
− | + | When wordwrap is on, the keystrokes {{keypress|Return}}, {{keypress|Insert}} and {{keypress|Delete}} behave differently. This difference is documented in the "[[Media:Topics.html|Advanced Topics]]" choice under the "Help" menu in the top frame of the Dmuse screen, and will not be discussed here. | |
− | + | == Connect mode == | |
− | + | Dmuse starts out as a simple screen editor. You can activate the connect mode feature by using a command from the {{keypress|F9}} menu. Once you activate this feature, it stays activated for all future Dmuse sessions until you deactivate it. | |
− | |||
− | can | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | The {{keypress|Shft|KeyPad *}} keystroke toggles connect mode. When you enter connect mode, Dmuse responds with the message, "Ready for program," and the connect mode flag [*] comes on in the top frame. Connect mode is window dependent, that is, each window has its own connect mode state. | |
− | + | When a window is in connect mode, you can type anything you want and put the cursor anywhere you want. Nothing happens until you type {{keypress|Return}}. When you do that, Dmuse reads whatever is on that line, regardless of how it got there, and sends this to the connect portion of the program. The program at this point expects one of three things: | |
− | + | # the name of a specified program that you want to run. This must be a Zbex program, and it must be in a pre-specified library (see the page describing the [[Dmuse: init file|init file]] for how to do this). | |
+ | # the command "zz" which invokes the Zbex compiler and interpreter (see the section of Running zbex programs for how this works). | ||
+ | # "&&" followed directly by a bash-shell command. For a limited number of commands, this will direct the command to the operating system, with the output from the command being direct back to the Dmuse window you are in. This works especially well for commands like "man", since you can easily scroll through the entire output, and even grab portions of it to put in other windows -- even make your own documentation files. | ||
− | The | + | The most important point here, and what makes Dmuse different from most other interfaces, is that it doesn't matter how or when something got put on the screen. If you type return, the entire line gets read and sent to the program. The Zbex language has an instruction, getc, which works the same way. When executing a getc, Zbex waits -- does not listen to what you type -- does not care if you change windows, insert or delete lines, move the cursor, whatever. It simple waits for you to type {{keypress|Return}}, and when you do, it reads the line the cursor is currently on and sends this to the program. |
− | + | = Keyboard command list in Dmuse = | |
− | Dmuse | + | Dmuse has a utility called "Keystrokes" which can be called either from the "Help" menu or with the keystroke command {{keypress|Ctrl|F1}}. Once you enter this utility, each key you press on your computer keyboard returns a complete description of what that keystroke does, including all combinations with {{keypress|Shft}}, {{keypress|Ctrl}}, and {{keypress|Alt}}. The only way to exit this utility is to push {{keypress|Esc}} twice. Listed below are some of the most important and useful keystrokes. |
− | The | + | == The Escape and Function Keys == |
− | + | <center> | |
+ | {| class="wikitable" cellpadding= "5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Esc}} || Open dialog box for extended keystrokes. This is mainly for Laptops, where the keyboard does not include the KeyPad. {{keypress|Esc}} is also used to exit from various dialog boxes and sub-programs. | ||
+ | |- | ||
+ | | {{keypress|Shft|Esc}} || Toggle between the current window and the previous window. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Esc}} || (on the Macintosh) = {{keypress|Ctrl|Break}} (PC-Linux). | ||
+ | |- | ||
+ | | {{keypress|Shft|Ctrl|Esc}} || (on the Macintosh) = {{keypress|Shft|PrtSc}} (PC-Linux). | ||
+ | |- | ||
+ | | {{keypress|F1}} || Introduction to help. | ||
+ | |- | ||
+ | | {{keypress|Shft|F1}} || Toggle between the current window and the Help window. The Help window must first be loaded from the Help menu. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|F1}} || Editor Keystrokes utility. | ||
+ | |- | ||
+ | | {{keypress|F2}} || Activate the top panel with the five pull-down menus. Once the panel is activated, the cursor arrows, {{keypress|Left}}, {{keypress|Up}}, {{keypress|Right}}, {{keypress|Down}}, can be used to move between choices. Make a choice with {{keypress|Enter}}. {{keypress|Esc}} will exit the panel. The mouse can also be used to activate the panel and make a choice. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|F2}}|| Exit Dmuse. | ||
+ | |- | ||
+ | | {{keypress|Shft|F2}} || Store the state of Dmuse in a personal default file and then exit Dmuse. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|F2}} || Store the state of Dmuse in a project file you specify and then exit Dmuse. | ||
+ | |- | ||
+ | | {{keypress|F3}} || Move the cursor to a specified line number in the current window. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|F3}} || Check window data structure. If for some reason you think Dmuse is behaving badly, use this command. If the data structure is corrupted, Dmuse will tell you and will try to fix itself. For safety reasons, you should then save important work and exit Dmuse. Note: Dmuse is quite stable, but ... well, as they say in Islam, only Allah is perfect. | ||
+ | |- | ||
+ | | {{keypress|F4}} || Activate the [[Dmuse: file manager | resident file manager]]. | ||
+ | |- | ||
+ | | {{keypress|F5}} to {{keypress|F8}} || These function keys control screen display colors. There are 16 possible combinations of foreground and background colors in Dmuse. These can be referenced by the four function keys, {{keypress|F5}}, {{keypress|F6}}, {{keypress|F7}}, and {{keypress|F8}} in their unaltered, {{keypress|Shft}}, {{keypress|Ctrl}}, and {{keypress|Ctrl|Shft}} states. In normal typing mode, if you push, say {{keypress|Ctrl|F6}}, everything you then type (in the current window) will appear in color combination 10. Each window keeps track of its own current color combination. The 16 possible combinations are specified in your [[Dmuse: init file | init file]] (read by Dmuse when it first starts up). If you have used the {{keypress|Shft}} arrow keys to highlight a (box) section of the screen, then pushing, say {{keypress|Ctrl|F6}}, will switch that area of the screen to color combination 10 (normal typing is not changed). By convention {{keypress|F5}} switches to the default color combination. | ||
+ | |- | ||
+ | | {{keypress|F9}} || Change global parameters. | ||
+ | |- | ||
+ | | {{keypress|F10}} || Toggle the margin display panel. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|F10}} || Change display parameters for this window. | ||
+ | |- | ||
+ | | {{keypress|F11}} || Search forward (to the right and then down) in the current window for the next occurance of the search string. | ||
+ | |- | ||
+ | | {{keypress|F12}} || Search backward (to the left and then up) in the current window for a previous occurance of the search string. | ||
+ | |- | ||
+ | | {{keypress|Shft|F12}} || Save the current state of Dmuse in a personal default file, but don't exit Dmuse. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|F12}} || Save the current state of Dmuse in a project file you specify, but don't exit Dmuse. | ||
+ | |} | ||
+ | </center> | ||
− | + | == The Sidebar Keys == | |
− | (2) the | + | <center> |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Shft|PrtSc}} || Format the contents of the current window for printing on an HP printer, or any printer that speaks PCL-3 or one of its derivative languages. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Break}} || Send the Break message to a [[Zbex]] program. | ||
+ | |- | ||
+ | | {{keypress|Insert}} || (1) If a line highlight is present, {{keypress|Insert}} adds the highlighted lines to the line buffer (trash heap). The line buffer grows larger by this number of lines. (2) Otherwise, {{keypress|Insert}} toggles the editor between insert mode and overstrike mode. | ||
+ | |- | ||
+ | | {{keypress|Alt|Insert}} || Insert blank line. Insert an empty line above the line the cursor is currently on. | ||
+ | |- | ||
+ | | {{keypress|Shft|Insert}} || Copy the box (or stream) buffer to the screen. Insert the contents of the box buffer (if wordwrap = off) or the contents of the stream buffer (if wordwrap = on) at the point of the cursor. The contents of these buffers is not changed. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Insert}} || Copy the box (or stream) highlight to its buffer. If the box highlight or the stream highlight is present (set by the {{keypress|Shft}} arrow keys), copy the contents to the appropriate buffer. | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|Insert}} || Transfer lines from the line buffer to the screen. Remove the line or lines most recently placed in the line buffer and insert them in the current window above the line the cursor is on. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|Insert}} || Copy lines from the line buffer to the screen. Insert the line or lines most recently place in the line buffer into the current window just above the line the cursor is on. The line buffer is unchanged. | ||
+ | |- | ||
+ | | {{keypress|Delete}} || (1) If material is highlighted, delete material. If lines are highlighted, Delete removes the highlighted lines from the window and adds them to the line buffer. If the stream highlight is on (wordwrap = on), {{keypress|Delete}} removes the highlighted stream from the window and reformats the remaining portion of the window. If the box highlight is on (wordwrap = off), {{keypress|Delete}} removes the material in the highlighted box and shifts the material on the right of the box leftward to fill the space. (2) Otherwise, delete the character above the cursor. The current line to the right of the cursor moves left by one column. | ||
+ | |- | ||
+ | | {{keypress|Alt|Delete}} || Delete line. Remove the line the cursor is currently on and add it to the line buffer (trash heap). | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|Delete}} || Add the line the cursor is currently on to the line buffer and move the cursor down one line. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Delete}} || If material is highlighted as a box highlight or a stream highlight, delete this material in the same manner as {{keypress|Delete}}, and also place the deleted material in the box or stream buffer. The former contents of the box or stream buffer is overwritten. | ||
+ | |- | ||
+ | | {{keypress|Home}} || put the cursor at the top of the window (line 1, column 1). | ||
+ | |- | ||
+ | | {{keypress|End}} || put the cursor below the last line of text in the window and in column 1. | ||
+ | |- | ||
+ | | {{keypress|PgUp}} || Shift the screen view of the window up one page. | ||
+ | |- | ||
+ | | {{keypress|Shft|PgUp}} || If the line highlight has been started, remove 24 lines from the line highlight and scroll down 24 lines if necessary to keep the highlighted text in view. If there is less than 24 lines in the line highlight to begin with, all highlighted lines will be removed, and the highlight will disappear. This works with box highlights, too, but not with wordwrap on. | ||
+ | |- | ||
+ | | {{keypress|PgDn}} || Shift the screen view of the window down one page. | ||
+ | |- | ||
+ | | {{keypress|Shft|PgDn}} || Add 24 lines of line highlight and scroll up 24 lines if necessary to keep highlighted text in view. Works on box highlights, too, but not with wordwrap on. | ||
+ | |- | ||
+ | | {{keypress|Left}} {{keypress|Up}} {{keypress|Right}} {{keypress|Down}} || Move the cursor in the direction of the arrow. Do not scroll the window up or down; vertical cursor travel is circular. Horizontal travel is not. The cursor can move to the right up to column 960, and the screen will scroll so as to always show the cursor. When the screen scrolls to the left, a "fence" appears in column 11 and the first 10 columns stay fixed. This way you can always see the beginning of the line you are on, even when the cursor is far to the right. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft}} arrow keys || create a box (wordwrap=off) or a stream (wordwrap=on) highlight. | ||
+ | |- | ||
+ | | {{keypress|Ctrl}} arrow keys || Scroll the contents of the screen in the direction of the arrow. Since some Laptop keyboards do not have a {{keypress|Right-Ctrl}} button, {{keypress|Right-Shft}} arrow keys will also scroll the contents of the screen. This way, scrolling can always be done with the right hand alone. | ||
+ | |- | ||
+ | | {{keypress|Alt|Left}} || Move the cursor one word to the left, or to the last word on the previous line. | ||
+ | |- | ||
+ | | {{keypress|Alt|Right}} || Move the cursor one word to the right, or to the first word on the next line. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Alt|Right}}/{{keypress|Left}} || Move the left margin to the right or left. | ||
+ | |- | ||
+ | | {{keypress|Right-Shft|Alt|Right}}/{{keypress|Left}} || Move the right margin to the right or left. | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|Down}} || Copy the line the cursor is on to the line buffer and move the cursor down one line. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Sft|Right}}/{{keypress|Left}} || Move both margins simultaneously to the right or left. | ||
+ | |} | ||
+ | </center> | ||
− | + | == The KeyPad Keys == | |
− | + | <center> | |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! scope="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|KeyPad 0..9}} || Change to window 0 through 9, respectively. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|KeyPad 0..9}} || Change to window 10 through 19, respectively. | ||
+ | |- | ||
+ | | {{keypress|Alt|KeyPad 0..9}} || Change to window 20 through 29, respectively. | ||
+ | |- | ||
+ | | colspan="2" | Window change can also be accomplished by clicking with the mouse on one of the numbers in the bottom frame. The extended keystrokes (activated by {{keypress|Esc}}) also contain commands for changing windows. | ||
+ | |- | ||
+ | | {{keypress|KeyPad .}} || Toggle between the current window and the previous window. {{keypress|Shft|Esc}} does this also. | ||
+ | |- | ||
+ | | {{keypress|KeyPad /}} || Initiate a search for a string pattern in the current window. You will be prompted to enter the string pattern. The search is conducted forward (to the left and then down). If you press {{keypress|Down}},a box will appear showing the last ten searches that you conducted. You may choose a search string from this list. (see also {{keypress|F11}} and {{keypress|F12}}) | ||
+ | |- | ||
+ | | {{keypress|KeyPad *}} || Toggle Wordwrap. Most screen editing is done with wordwrap = off. The wordwrap feature can cause strange things to happen to the contents of a window if it is not used properly. For this reason, wordwrap is considered an advanced feature and is disabled at the time Dmuse is first installed. The {{keypress|F9}} function key provides a means for enabling the wordwrap feature. | ||
+ | |- | ||
+ | | {{keypress|Shft|KeyPad *}} || Toggle Connect mode. The Dmuse environment includes an applications programming language called [[Zbex]]. With connect mode = on, a window behaves like a Terminal connected to the computer. Zbex programs can be started with the "zz" command. All features of the editor (except wordwrap) continue to operate. When you press {{keypress|Enter}}, the computer reads the entire line that the cursor is on. No distinction is made between text that you may have typed and text written by the computer. Connect mode is disabled at the time Dmuse is first installed. The {{keypress|F9}} function key provides a means for enabling connect mode. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|KeyPad *}} || Toggle File Format flag. Text files in Linux and Microsoft Windows differ in one respect. Microsoft Windows uses the two-byte pattern, carriage-return(ASCII-13) + new-line(ASCII-10), to mark the end of a record, whereas Linux uses only the new-line(ASCII-10) byte. The default with Dmuse is the two-byte pattern, but if a Linux type file is loaded into a window, Dmuse sets a flag (on the right-hand side of the top frame), showing that this file used the single byte delimiter. If this flag is set when the file is written back to the disk, it will be written in the Linux format. {{keypress|Ctrl|Shft|KeyPad *}} allows the user to toggle this flag. | ||
+ | |- | ||
+ | | {{keypress|KeyPad -}} || Delete the character above the cursor and all characters to the right of the cursor on the current line. (Clear line at and to the right of the cursor.) | ||
+ | |- | ||
+ | | {{keypress|Shft|KeyPad -}} || Delete the character above the cursor and all characters to the right of the cursor on the current line. Also delete all lines below the cursor. (Clear screen at and below the cursor.) | ||
+ | |- | ||
+ | | {{keypress|KeyPad +}} || Load file into window. The load point in the window will be at the line the cursor is currently on. If the cursor is not at the top of the window, the contents of the window will not match the contents of the file. Dmuse will ask you for the name of the file you want to load. If you enter {{keypress|$}}, the file will be loaded in hexadecimal notation. Also, if Dmuse thinks the file is not an ordinary text file, it will automatically give you the choice of seeing the file as characters or in hexadecimal notation. | ||
+ | |- | ||
+ | | {{keypress|Shft|KeyPad +}} || Store the contents of the current window in a file. Dmuse will ask you for the name of the output file. If you enter {{keypress|$}} and if the window was originally loaded from a file, Dmuse will overwrite (update) the source file with the contents of the window. | ||
+ | |} | ||
+ | </center> | ||
− | The | + | == The Main Keyboard; Special Keystrokes == |
− | 2. | + | <center> |
+ | {| class="wikitable" cellpadding="5" cellspacing="0" border="1" style="width:700px" | ||
+ | |- {{Style|table header}} | ||
+ | ! scope="col" width="150px" | Key sequence | ||
+ | ! score="col" width="500px" | Description | ||
+ | |- | ||
+ | | {{keypress|Alt}} used with the numbers 1 ... 9 || These keystrokes are used to add or change diacritical marks over letters. They can be used in two ways. If you just typed a letter, such as an "e", which needs an acute accent, you can type {{keypress|Alt|7}} and an acute will appear above the "e", even though the cursor has moved to the next column. Or if you later want to change that acute to a grave, you put the cursor under the "é" and type {{keypress|Alt|8}}, and the acute will be replaced by a grave. | ||
+ | |- | ||
+ | | {{keypress|Alt|1}} || Adds a tilde to the letters n (ñ) and o (õ). | ||
+ | |- | ||
+ | | {{keypress|Alt|2}} || Adds a cedilla to c (ç); add a slash to o (ø); change s to German ss (ß). | ||
+ | |- | ||
+ | | {{keypress|Alt|3}} || Adds an umlaut to letters a, e, i, o, u, and y: ä, ë, ï, ö, ü, ÿ. | ||
+ | |- | ||
+ | | {{keypress|Alt|4}} || Adds a circle above letter a (å). | ||
+ | |- | ||
+ | | {{keypress|Alt|5}} || Adds a caron above the letters r (ř) and s (š). | ||
+ | |- | ||
+ | | {{keypress|Alt|6}} || Removes accent or alteration from a letter. | ||
+ | |- | ||
+ | | {{keypress|Alt|7}} || Adds an acute accent to letters a, e, i, o, u, and y: á, é, í, ó, ú, ý. | ||
+ | |- | ||
+ | | {{keypress|Alt|8}} || Adds a grave accent to letters a, e, i, o,and u: à, è, ì, ò, ù. | ||
+ | |- | ||
+ | | {{keypress|Alt|9}} || Adds circumflex to letters a, e, i, o, and u: â, ê, î, ô, û. | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|0}} || Vertical dotted line (used to represent tab character). | ||
+ | |- | ||
+ | | {{keypress|-}} || Dash character. Also draws a single line around the edge of a box highlight. | ||
+ | |- | ||
+ | | {{keypress|{{=}}}} || Equals character. Also draws a double line around the edge of a box highlight. | ||
+ | |- | ||
+ | | {{keypress|Backspace}} || Move cursor left one column and place a blank above the cursor. | ||
+ | |- | ||
+ | | {{keypress|Shft|Backspace}} || Move cursor to the left margin. | ||
+ | |- | ||
+ | | {{keypress|Tab}} || Move the cursor to the next tab on the right or move the cursor to the beginning of the next line. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|tab}} || Move the cursor to the previous tab on the left or move the cursor to the last tab on the previous line. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Tab}} || Toggle the tab marker at the position of the cursor. | ||
+ | |- | ||
+ | | {{keypress|Left-Shft|Ctrl|Tab}} || Clear all tab markers for this window. | ||
+ | |- | ||
+ | | {{keypress|Right-Shft|tab}} || Same as {{keypress|Tab}}, but proceed in "backup" mode. In backup mode, the cursor does not move, and as characters are typed, space is made for them by backing up characters previously typed while in this mode. Backup mode is terminated with the period (decimal) or the <space> bar. The terminating character is displayed one position to the right, and the cursor now moves forward in normal fashion. Backup mode has many uses but its primary purpose is for entering columns of numbers. | ||
+ | |- | ||
+ | | {{keypress|Right-Shft|Ctrl|Tab}} || Same as {{keypress|Left-Shft|Tab}}, but proceed in "backup" mode. | ||
+ | |- | ||
+ | | {{keypress|Enter}} (with wordwrap off) || Move the cursor to the left margin and down one line. | ||
+ | |- | ||
+ | | {{keypress|Enter}} (with WW on) || Break line. Insert a blank line below the current line. Move the right half of the current line (starting at the cursor) to the new line starting at the left margin. Move the cursor to the beginning of the new line. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Return}} with WW off || Break line, as with wordwrap on. | ||
+ | |- | ||
+ | | {{keypress|Enter}} (connect mode) || Send the entire line the cursor is on to the program running in the current window. Move the cursor to the beginning of the next line. | ||
+ | |- | ||
+ | | colspan="2" bgcolor="white"| The following special characters are available in Dmuse. These are represented internally by byte values that lie outside the standard ASCII range of 32 to 127. So, if they are written to a file and that file is read by another program, other characters may appear in their place. | ||
+ | |- | ||
+ | | {{keypress|Alt|o}}/{{keypress|p}}/{{keypress|[}}/{{keypress|]}} || shaded cells: one-quarter/one-half/three-quarters/full shade. | ||
+ | |- | ||
+ | | {{keypress|Alt|L}}/{{keypress|{{;}}}}/{{keypress|,}}/{{keypress|.}} || full shade on a half cell: upper half/ lower half/left half/right half. | ||
+ | |- | ||
+ | | {{keypress|Shft|Alt|9}} || Centered dot. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|[}} || Small centered box. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|]}} || Small centered dot. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|D}} || Centered diamond. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|Z}} || House character. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|I}}/{{keypress|J}}/{{keypress|P}}/{{keypress|Q}} || Large arrow head pointing up/down/right/left. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|X}}/{{keypress|Y}}/{{keypress|M}}/{{keypress|N}} || Small arrow up/down/right/left. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|E}}/{{keypress|F}} || Top/bottom of large open parenthesis. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|G}}/{{keypress|H}} || Top/bottom of large close parenthesis. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|R}} || Small square root. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|S}} || Top of square root. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|W}} || Part of a large square root. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|V}} || Part of a large square root. | ||
+ | |- | ||
+ | | {{keypress|Ctrl|Shft|A}}/{{keypress|B}}/{{keypress|C}} || Musical sharp ({{music|sharp}}), flat ({{music|flat}}), and natural ({{music|natural}}). | ||
+ | |- | ||
+ | | colspan="2" | Dmuse also provides access to the full compliment of line drawing characters. The nine keystrokes in the block {{keypress|Alt}} (qwe,asd,zxc) together with {{keypress|Alt|r}} and {{keypress|Alt|t}} can be used to draw single line boxes and other single line diagrams; likewise, the nine keystrokes in the block {{keypress|Alt}} (tyu,ghj,bnm) together with {{keypress|Alt|i}} and {{keypress|Alt|k}} can be used to draw double line boxes and other double line diagrams. {{keypress|Shft|Alt}} with these combinations draws the mixtures (i.e., horizontal-single, vertical-double, and vise versa). You simply need to experiment with these to understand how they work. The best way to draw lines and boxes is to use the box highlight and the {{keypress|-}} and {{keypress|{{=}}}} keystrokes, as described above. Single and Double line boxes can overlap, which explains the need for the mixture characters. | ||
+ | |- | ||
+ | | Key sequence goes here || Description goes here. | ||
+ | |- | ||
+ | | Last sequence || Last description. | ||
+ | |} | ||
+ | </center> |
Latest revision as of 02:04, 12 October 2010
Contents
- 1 Introduction to the Keyboard command list in Dmuse
- 2 Keyboard command list in Dmuse
Introduction to the Keyboard command list in Dmuse
After an initial splash screen, Dmuse presents to the user an empty text-editing window as illustrated in the figure to the right. What you see is a view of one out of thirty possible editing windows. You will see a blinking cursor in the upper left-hand corner of the screen. The arrow keys will move the cursor anywhere within the screen. The metaphor here is a blackboard: as you can write anywhere on the blackboard with a piece of chalk, you can write (type) anywhere on a Dmuse window. In this respect, Dmuse does not work like most text processors which contain empty lines that are filled with content from left to right.
The Dmuse interface makes extensive use of the keyboard with numerous combinations of the Shft, Ctrl, and Alt keys. Since the layout and response for the PC-Linux and Macintosh keyboards is slightly different (e.g., the Mac has no Insert key), there are some differences between the PC-Linux and Macintosh versions of the command list. The Dmuse documentation is designed to take this into account; so that if you are running the Mac version of Dmuse, all of the internal documentation will correspond to that version. For purposes of this document, the following descriptions will be for the PC-Linux version of Dmuse. Every keystroke combination in the PC-Linux version has a corresponding keystroke combination for the Mac.
Commands for moving the cursor and viewing the window.
The first thing to note is the difference between a "window" and the "screen". Using the metaphor above, a "window" is the full blackboard; the "screen" is a view of a portion of that window. Windows in Dmuse can be quite large; up to 960 columns, and up to one million lines of text. The screen size is whatever fits into the X-window you have set up for Dmuse (changeable by your computer's window manager). Here are some commands for moving the cursor and viewing windows:
Key sequence | Description |
---|---|
←, ↑, ↓, → | move the cursor left, up, down, or right. |
Ctrl+←/↑/↓/→, or Right-Shft+←↑/↓/→ |
scroll the contents of a window up, down, left and right. |
PgUp, PgDn | shift the view of the window up or down by one page. Note, shifting the view of a window up by one page(PgUp) is the same as scrolling the contents of the screen down by one page. |
Home | put cursor at top of window (line 1, column 1). |
End | put cursor below last line of text in window and in column 1. |
KeyPad 0..9 | change between windows 0 through 9, respectively (NumLock turned off). |
Ctrl+KeyPad 0..9 | access windows 10 to 19, respectively (NumLock turned off). |
Alt+KeyPad 0..9 | access windows 20 to 29, respectively (NumLock turned off). |
KeyPad • | toggle between current and previous windows. Shft+Esc (for LapTops) will do this also. |
The mouse
Dmuse developed initially as a keyboard only interface, with the mouse being added much later. So the mouse does not do many of the things most users expect. This section describes what the mouse does do; the next section describes some of the keystrokes that provide the functionality you would expect from a mouse (but do not get with Dmuse).
- Across the bottom frame of Dmuse you will see the numbers 0 to 29. Click on one of these to change to that window. There is also a question mark on that frame. Click on that and you will get a summary description of what is in each of the windows (since it is sometimes hard to remember what you have put where).
- Click on the word "Window" in the top frame to toggle between windows (same as KeyPad .). Click anywhere else in the top frame to call up the resident file manager.
- Along the right frame is something that looks like a scroll bar. It is not a real scroll bar, but you can click in different places along the "track" to shift the view to different places in the window. The real purpose of the pseudo scroll bar is to show you approximately where you are in a window. It is not uncommon for a window to contain thousands of lines, and in this case you would like to know if you are somewhere near the top or near the bottom of a window. At the right-hand side of the top frame are two numbers representing the current position of the cursor in the window: line number and column number.
- If you activate the resident file manager (F4), the mouse can be used to select various commands for this sub-program.
- Finally, if you click anywhere in the main screen, the cursor will go there.
Keystrokes that highlight, and what you can do with highlighted material.
With many programs the mouse is used to highlight text. This requires the "hold and drag" motion of the mouse, something Dmuse does not currently do. Instead, Dmuse has the following keystrokes to highlight areas of the window. In Dmuse, there are two kinds of highlight: box highlight and line highlight.
Box highlighting commands
Key sequence | Description |
---|---|
Left-Shft+←/↑/↓/→ | box highlight a region of the window, moving from the current cursor position to the left, up, down, or right. |
Ctrl+Shft+←/↑/↓/→ | move box selection around in the window. After contents have been moved, any other keystroke will deposit content of the box in its new location, overwriting whatever was there on the screen. |
Ctrl+Insert | load contents of box into the "box buffer." There is only one box buffer, so whatever was previously in the box buffer will be replaced. |
Shft+Insert | copy contents of box buffer to the screen at cursor location. The box buffer is universal to all Dmuse windows, so you can use the box buffer to copy material from one window to another. Copying from the box buffer does not change the contents of the buffer. |
Delete | delete window region covered by the highlight. Anything to the right of deleted material moves left. |
- or _ | draw single or double line around the edge of the box. You can use this facility to build up complicated line patterns and templates. |
~ | used with the box highlight, the tilde key will remove any line characters around the edge of the highlighted area. |
t | if highlighting a column of numbers, calculates the sum and places the total underneath highlighted region. |
a | if highlighting two columns of numbers side by side, gives a third column which is the row-by-row sum. Be sure your highlight includes space for the third column of numbers. |
s | similar to a but gives a third column which is the difference between the two highlighted columns. If your columns contain commas, you will get commas in your answer; and if one of your numbers has a dollar sign, you will get a dollar sign in your answer. (works with pounds and yen, too). |
Line highlighting commands
The second type of highlight is the line highlight. The line buffer does not work like the box buffer. It is a last-in, first-out trash heap. And its size is limited only by the size of your disk! The line buffer works across all windows, so you can use this feature to move material between windows.
Key sequence | Description |
---|---|
Left-Shft+↑/↓ | Start/adjust a line highlight selection range, one line up or down. Cursor must be positioned at starting line of selection. |
Left-Shft+PgDn/PgUp | Start/adjust a line highlight selection range, one page up or down. Cursor must be positioned at starting line of selection. |
Delete | Delete highlighted lines from the window. |
Insert | Copy highlighted lines (they are not deleted, and highlighting is removed from lines). |
Shft+Alt+Insert | Retrieve the last "block" of lines placed into the line buffer, whatever number of lines that was, and insert them into your current window just above the cursor. If Shft+Alt+Insert is used more than once, it will continue to retrieve lines from the line buffer (trash heap), but only one line at a time. |
Ctrl+Shft+Insert | Similar to the previous command, but will copy instead of retrieve lines from the line buffer. You can use Ctrl+Shft+Insert multiple times to copy the same group over and over again. |
Alt+Delete | Delete a line to the trash heap without using the line highlight. |
Shft+Alt+Delete | Copies a line to the trash heap but does not delete it. Instead the cursor moves down one line. Holding down Left-Shft+Alt and pushing Delete several times will copy serveral lines (one at a time) to the trash heap. Holding down Left-Shft+Alt and pushing Delete and Insert in alternation will copy the same line over and over again. |
Note: We normally use the line highlight method to delete or copy lines. Not only does this allow groups of lines to be deleted/copied, but also for safety reasons it is helpful to see what you are deleting before it is deleted. Note also that all lines deleted in this way can always be recovered at least once. The trash heap never goes away, but the top layer can be removed. There are two other commands that delete lines (covered below), which do not put deleted material on the trash heap. Material delete by those commands goes away completely (from the window, anyway).
Loading and storing files.
Key sequence | Description |
---|---|
KeyPad + | load a file to the current window, at the line the cursor is currently on. |
Shft+KeyPad + | store contents of the current window (the entire contents) to a file. |
It is very important to make a distinction between the contents of a window and the contents of a file that might have the source for that window. First of all, any changes to the contents of the window are NOT reflected in the file unless and until the window is stored back to the file. Second, if a file is loaded into a window anywhere below the top line, the window and the file will be different right away. Dmuse provides a flag in the top frame, which signals when the contents of a window is different from the file which was its source (if there was one). If a file is loaded into a window (at any location), the top frame contains the name of the source file. If a window was not loaded from a file, no source is specified.
When you type KeyPad +, you will be asked for the name of the file to load. If you respond with $, you will be asked for the name again, and the file will be displayed as a Hex dump (handy for looking as such things as MIDI files). If a file is loaded as a Hex dump, the contents of the window do not match the contents of the file. You therefore do NOT want to store the window back to the file which was its source. To prevent this error from happening, a "read-protect" lock is put on the window. The word "Window" at the left of the top frame turns Blue. This way, the window cannot be "read" back to any file. You can toggle the read-protect flag using a command from the menu invoked by the Ctrl+F10 keystroke. If you totally clear a window, the read-protect flag automatically goes off.
When you type Shft+KeyPad +, you will be asked for the name of the file to which the window is to be stored. If you enter $, the window will be stored back to the file from which it was last loaded (as noted in the top frame). When a window is stored to a file, the contents of the window and the file are the same, and the "difference flag" in the top frame goes off.
You can load one window from another by typing KeyPad + and then giving "*<number>" as the name of the file to load, <number> being the number of the source window. A window loaded in this way has no "source" per se.
There are two mouse shortcuts to loading and storing windows. Under the "File" title, "Load" has the same effect as KeyPad +. "Save" has the same effect as the combination Shft+KeyPad + followed by the dollar sign. In other words, it can only save the window back to its source, not to another file.
Clearing a window
Key sequence | Description |
---|---|
KeyPad - | clear only the current line to the right of cursor. |
Shft+KeyPad - | clear a window to the right and below the cursor. |
Material cleared in this way cannot be retrieved. Clearing a window has NO EFFECT on files. The source file, if there be one, is unaffected.
Menu sequence | Description |
---|---|
File→Clear | move the cursor to Home (line 1, column 1) and clear the window (Shft+KeyPad -) |
Searching a window
Key sequence | Description |
---|---|
KeyPad / | search for a string in the current window. You will be prompted for the search string. If you type ↓, you will be presented with a choice of the last 10 search strings you have entered. This allows you to redo former searches without having to retype the string. |
F11 | repeat the search starting at current cursor position, going forward in the window. |
F12 | repeat the search starting at current cursor position, going backward in the window. |
What else?
Key sequence | Description |
---|---|
Insert | toggles between insert and overstrike mode. A plus sign (+) appears in the top frame when you are in insert mode. |
Delete | delete character; move the rest of the line one column to the left. |
← Backspace | back the cursor up one column and replace whatever is there with a "space". |
Alt+← | move the cursor one word to the left. If there are no more words to the left, the cursor will jump back a line to the last word on that line. |
Alt+→ | move the cursor one word to the right. If there are no more words to the right, the cursor will jump to the first word on the next line. |
Return | put the cursor at the beginning of the next line. This requires some discussion. On many text processors, the text is stored as a stream of characters, and the <return> character signals the end of a paragraph. Dmuse treats each line on the screen as a separate record. When a window is stored to a file, a <return><line-feed> character combination is attached automatically to the end of each line. When a file is loaded to a window, these "record delimiter" characters are simply removed and each record appears on a new line. |
Now a word about "record delimiters" for you Linux users. The use of the character combination <return><line-feed> as a record delimiter originated with IBM computers, and was adopted early on by Microsoft. Linux grew out of the old AT&T Unix system, which used only the <line-feed> character as a record delimiter. Linux recognizes both systems, but some Linux applications (some versions of makefiles for example), still expect to see only the <line-feed> character, and will treat the <return> character as part of the text of a line. Being able to handle both systems is therefore a priority. Dmuse provides a way to do this. If you load a file that uses only the <line-feed> character as a record delimiter, a flag will appear in the right-hand portion of the top frame. If you later store this file, it will be stored using only the <line-feed> character as a delimiter. You can toggle the delimiter flag using the keysrokes Ctrl+Shft+KeyPad *. When the flag is off, the record delimiter will revert to <return><line-feed>. Thus you can load a file in one format, and store it in another.
Key sequence | Description |
---|---|
Left-Shft+Return | puts an actual carriage-return character at the end of the line and puts the cursor on the next line. |
Alt+Return | puts the cursor on the next line and below the first (non-blank) character in the previous line |
Tab ⇆ | moves the cursor to the next tab or to the next line. |
Left-Shft+Tab ⇆ | moves the cursor backward to the previous tab or to the last tab on the previous line. |
Ctrl+Tab ⇆ | sets (or removes) a tab position at the cursor location. |
Left-Shft+Ctrl+Tab ⇆ | removes all tabs |
F10 | Toggle button to see where tabs are set. |
Tabs also require some discussion. In some Linux applications (again, makefiles are an example), the Tab character is an important delimiter. It must be present for the file to be read properly. When Dmuse loads a file, it treats the Tab character like a text character. Yes, the Tab has its own character in Dmuse, which can be entered by typing Shft+Alt+0. This means two things: (1) the Tab is not expanded, and (2) such files can be edited correctly by Dmuse. If you want the Tab expanded, you need to use the command Ctrl+KeyPad + to load the file. But use caution here. In expanding the Tab character, you may lose it. Or you may lose space characters before a Tab. When in doubt, for files like this, we recommend using another editor entirely.
Wordwrap
Most text processors use wordwrap automatically. In fact, you cannot disable wordwrap on most text processors. You cannot put the cursor beyond the end of a line, because the line, itself, is not a separate entity. Wordwrap has meaning only when there are right and left margins. For most text processors, these margins are the right and left limits of the window you are typing in. Change the horizontal size and you change the margins .
Dmuse has wordwrap as an advanced feature. But, as you can imagine, this can only work within limits. The first limits are the margins, themselves. Wordwrap works only when the cursor is between the legal margins. When the cursor is outside the margins, you can still type text, but whatever you type might disappear if the margins are changed, so be careful.
Toggle with F10 to see where the margins are set. Left-Shft+Alt+→/← will move the left margin. Right-Shft+Alt+→/← will move the right margin. Ctrl+Shft+→/← will move both margins simultaneously. The default action is for margins to move only for the paragraph the cursor is in. You can change this default using choices from the menu invoked by Ctrl+F10.
Dmuse is initially provided with wordwrap disabled. You can activate it using a command from the F9 menu. When wordwrap is enabled, KeyPad * toggles it on and off. When wordwrap is "on," you will see the wordwrap flag [W] on the right-hand side of the top frame. We rarely work with wordwrap on, but we do use it to reformat (change the horizontal size of) paragraphs.
Key sequence | Description |
---|---|
F10 | Toggle view of margins. |
The following commands will only work if the text does not exceed the right margin. These commands will work even when wordwrap is off. A text block is a set of lines which all have text starting at the left margin. | |
Ctrl+p | Reformat sentences which are in a text block selected by the cursor into a paragraph. |
Ctrl+s | Reformat paragraph which is selected by the cursor into a text block of sentences, each sentence starting at the beginning of the line (and wrapping at the right margin if longer than one line). Sentences boundaries are defined by a period (.) followed by two spaces. Grammatical sentences ending in question marks (?) or exclamation marks (!) will not be treated as sentences by this command. Sentences ending at the right margin must have two spaces after the period in order for this command to work properly. |
When wordwrap is on, the keystrokes Return, Insert and Delete behave differently. This difference is documented in the "Advanced Topics" choice under the "Help" menu in the top frame of the Dmuse screen, and will not be discussed here.
Connect mode
Dmuse starts out as a simple screen editor. You can activate the connect mode feature by using a command from the F9 menu. Once you activate this feature, it stays activated for all future Dmuse sessions until you deactivate it.
The Shft+KeyPad * keystroke toggles connect mode. When you enter connect mode, Dmuse responds with the message, "Ready for program," and the connect mode flag [*] comes on in the top frame. Connect mode is window dependent, that is, each window has its own connect mode state.
When a window is in connect mode, you can type anything you want and put the cursor anywhere you want. Nothing happens until you type Return. When you do that, Dmuse reads whatever is on that line, regardless of how it got there, and sends this to the connect portion of the program. The program at this point expects one of three things:
- the name of a specified program that you want to run. This must be a Zbex program, and it must be in a pre-specified library (see the page describing the init file for how to do this).
- the command "zz" which invokes the Zbex compiler and interpreter (see the section of Running zbex programs for how this works).
- "&&" followed directly by a bash-shell command. For a limited number of commands, this will direct the command to the operating system, with the output from the command being direct back to the Dmuse window you are in. This works especially well for commands like "man", since you can easily scroll through the entire output, and even grab portions of it to put in other windows -- even make your own documentation files.
The most important point here, and what makes Dmuse different from most other interfaces, is that it doesn't matter how or when something got put on the screen. If you type return, the entire line gets read and sent to the program. The Zbex language has an instruction, getc, which works the same way. When executing a getc, Zbex waits -- does not listen to what you type -- does not care if you change windows, insert or delete lines, move the cursor, whatever. It simple waits for you to type Return, and when you do, it reads the line the cursor is currently on and sends this to the program.
Keyboard command list in Dmuse
Dmuse has a utility called "Keystrokes" which can be called either from the "Help" menu or with the keystroke command Ctrl+F1. Once you enter this utility, each key you press on your computer keyboard returns a complete description of what that keystroke does, including all combinations with Shft, Ctrl, and Alt. The only way to exit this utility is to push Esc twice. Listed below are some of the most important and useful keystrokes.
The Escape and Function Keys
Key sequence | Description |
---|---|
Esc | Open dialog box for extended keystrokes. This is mainly for Laptops, where the keyboard does not include the KeyPad. Esc is also used to exit from various dialog boxes and sub-programs. |
Shft+Esc | Toggle between the current window and the previous window. |
Ctrl+Esc | (on the Macintosh) = Ctrl+Break (PC-Linux). |
Shft+Ctrl+Esc | (on the Macintosh) = Shft+PrtSc (PC-Linux). |
F1 | Introduction to help. |
Shft+F1 | Toggle between the current window and the Help window. The Help window must first be loaded from the Help menu. |
Ctrl+F1 | Editor Keystrokes utility. |
F2 | Activate the top panel with the five pull-down menus. Once the panel is activated, the cursor arrows, ←, ↑, →, ↓, can be used to move between choices. Make a choice with ↵ Enter. Esc will exit the panel. The mouse can also be used to activate the panel and make a choice. |
Ctrl+Shft+F2 | Exit Dmuse. |
Shft+F2 | Store the state of Dmuse in a personal default file and then exit Dmuse. |
Ctrl+F2 | Store the state of Dmuse in a project file you specify and then exit Dmuse. |
F3 | Move the cursor to a specified line number in the current window. |
Ctrl+F3 | Check window data structure. If for some reason you think Dmuse is behaving badly, use this command. If the data structure is corrupted, Dmuse will tell you and will try to fix itself. For safety reasons, you should then save important work and exit Dmuse. Note: Dmuse is quite stable, but ... well, as they say in Islam, only Allah is perfect. |
F4 | Activate the resident file manager. |
F5 to F8 | These function keys control screen display colors. There are 16 possible combinations of foreground and background colors in Dmuse. These can be referenced by the four function keys, F5, F6, F7, and F8 in their unaltered, Shft, Ctrl, and Ctrl+Shft states. In normal typing mode, if you push, say Ctrl+F6, everything you then type (in the current window) will appear in color combination 10. Each window keeps track of its own current color combination. The 16 possible combinations are specified in your init file (read by Dmuse when it first starts up). If you have used the Shft arrow keys to highlight a (box) section of the screen, then pushing, say Ctrl+F6, will switch that area of the screen to color combination 10 (normal typing is not changed). By convention F5 switches to the default color combination. |
F9 | Change global parameters. |
F10 | Toggle the margin display panel. |
Ctrl+F10 | Change display parameters for this window. |
F11 | Search forward (to the right and then down) in the current window for the next occurance of the search string. |
F12 | Search backward (to the left and then up) in the current window for a previous occurance of the search string. |
Shft+F12 | Save the current state of Dmuse in a personal default file, but don't exit Dmuse. |
Ctrl+F12 | Save the current state of Dmuse in a project file you specify, but don't exit Dmuse. |
The Sidebar Keys
Key sequence | Description |
---|---|
Shft+PrtSc | Format the contents of the current window for printing on an HP printer, or any printer that speaks PCL-3 or one of its derivative languages. |
Ctrl+Break | Send the Break message to a Zbex program. |
Insert | (1) If a line highlight is present, Insert adds the highlighted lines to the line buffer (trash heap). The line buffer grows larger by this number of lines. (2) Otherwise, Insert toggles the editor between insert mode and overstrike mode. |
Alt+Insert | Insert blank line. Insert an empty line above the line the cursor is currently on. |
Shft+Insert | Copy the box (or stream) buffer to the screen. Insert the contents of the box buffer (if wordwrap = off) or the contents of the stream buffer (if wordwrap = on) at the point of the cursor. The contents of these buffers is not changed. |
Ctrl+Insert | Copy the box (or stream) highlight to its buffer. If the box highlight or the stream highlight is present (set by the Shft arrow keys), copy the contents to the appropriate buffer. |
Shft+Alt+Insert | Transfer lines from the line buffer to the screen. Remove the line or lines most recently placed in the line buffer and insert them in the current window above the line the cursor is on. |
Ctrl+Shft+Insert | Copy lines from the line buffer to the screen. Insert the line or lines most recently place in the line buffer into the current window just above the line the cursor is on. The line buffer is unchanged. |
Delete | (1) If material is highlighted, delete material. If lines are highlighted, Delete removes the highlighted lines from the window and adds them to the line buffer. If the stream highlight is on (wordwrap = on), Delete removes the highlighted stream from the window and reformats the remaining portion of the window. If the box highlight is on (wordwrap = off), Delete removes the material in the highlighted box and shifts the material on the right of the box leftward to fill the space. (2) Otherwise, delete the character above the cursor. The current line to the right of the cursor moves left by one column. |
Alt+Delete | Delete line. Remove the line the cursor is currently on and add it to the line buffer (trash heap). |
Shft+Alt+Delete | Add the line the cursor is currently on to the line buffer and move the cursor down one line. |
Ctrl+Delete | If material is highlighted as a box highlight or a stream highlight, delete this material in the same manner as Delete, and also place the deleted material in the box or stream buffer. The former contents of the box or stream buffer is overwritten. |
Home | put the cursor at the top of the window (line 1, column 1). |
End | put the cursor below the last line of text in the window and in column 1. |
PgUp | Shift the screen view of the window up one page. |
Shft+PgUp | If the line highlight has been started, remove 24 lines from the line highlight and scroll down 24 lines if necessary to keep the highlighted text in view. If there is less than 24 lines in the line highlight to begin with, all highlighted lines will be removed, and the highlight will disappear. This works with box highlights, too, but not with wordwrap on. |
PgDn | Shift the screen view of the window down one page. |
Shft+PgDn | Add 24 lines of line highlight and scroll up 24 lines if necessary to keep highlighted text in view. Works on box highlights, too, but not with wordwrap on. |
← ↑ → ↓ | Move the cursor in the direction of the arrow. Do not scroll the window up or down; vertical cursor travel is circular. Horizontal travel is not. The cursor can move to the right up to column 960, and the screen will scroll so as to always show the cursor. When the screen scrolls to the left, a "fence" appears in column 11 and the first 10 columns stay fixed. This way you can always see the beginning of the line you are on, even when the cursor is far to the right. |
Left-Shft arrow keys | create a box (wordwrap=off) or a stream (wordwrap=on) highlight. |
Ctrl arrow keys | Scroll the contents of the screen in the direction of the arrow. Since some Laptop keyboards do not have a Right-Ctrl button, Right-Shft arrow keys will also scroll the contents of the screen. This way, scrolling can always be done with the right hand alone. |
Alt+← | Move the cursor one word to the left, or to the last word on the previous line. |
Alt+→ | Move the cursor one word to the right, or to the first word on the next line. |
Left-Shft+Alt+→/← | Move the left margin to the right or left. |
Right-Shft+Alt+→/← | Move the right margin to the right or left. |
Shft+Alt+↓ | Copy the line the cursor is on to the line buffer and move the cursor down one line. |
Ctrl+Sft+→/← | Move both margins simultaneously to the right or left. |
The KeyPad Keys
Key sequence | Description |
---|---|
KeyPad 0..9 | Change to window 0 through 9, respectively. |
Ctrl+KeyPad 0..9 | Change to window 10 through 19, respectively. |
Alt+KeyPad 0..9 | Change to window 20 through 29, respectively. |
Window change can also be accomplished by clicking with the mouse on one of the numbers in the bottom frame. The extended keystrokes (activated by Esc) also contain commands for changing windows. | |
KeyPad . | Toggle between the current window and the previous window. Shft+Esc does this also. |
KeyPad / | Initiate a search for a string pattern in the current window. You will be prompted to enter the string pattern. The search is conducted forward (to the left and then down). If you press ↓,a box will appear showing the last ten searches that you conducted. You may choose a search string from this list. (see also F11 and F12) |
KeyPad * | Toggle Wordwrap. Most screen editing is done with wordwrap = off. The wordwrap feature can cause strange things to happen to the contents of a window if it is not used properly. For this reason, wordwrap is considered an advanced feature and is disabled at the time Dmuse is first installed. The F9 function key provides a means for enabling the wordwrap feature. |
Shft+KeyPad * | Toggle Connect mode. The Dmuse environment includes an applications programming language called Zbex. With connect mode = on, a window behaves like a Terminal connected to the computer. Zbex programs can be started with the "zz" command. All features of the editor (except wordwrap) continue to operate. When you press ↵ Enter, the computer reads the entire line that the cursor is on. No distinction is made between text that you may have typed and text written by the computer. Connect mode is disabled at the time Dmuse is first installed. The F9 function key provides a means for enabling connect mode. |
Ctrl+Shft+KeyPad * | Toggle File Format flag. Text files in Linux and Microsoft Windows differ in one respect. Microsoft Windows uses the two-byte pattern, carriage-return(ASCII-13) + new-line(ASCII-10), to mark the end of a record, whereas Linux uses only the new-line(ASCII-10) byte. The default with Dmuse is the two-byte pattern, but if a Linux type file is loaded into a window, Dmuse sets a flag (on the right-hand side of the top frame), showing that this file used the single byte delimiter. If this flag is set when the file is written back to the disk, it will be written in the Linux format. Ctrl+Shft+KeyPad * allows the user to toggle this flag. |
KeyPad - | Delete the character above the cursor and all characters to the right of the cursor on the current line. (Clear line at and to the right of the cursor.) |
Shft+KeyPad - | Delete the character above the cursor and all characters to the right of the cursor on the current line. Also delete all lines below the cursor. (Clear screen at and below the cursor.) |
KeyPad + | Load file into window. The load point in the window will be at the line the cursor is currently on. If the cursor is not at the top of the window, the contents of the window will not match the contents of the file. Dmuse will ask you for the name of the file you want to load. If you enter $, the file will be loaded in hexadecimal notation. Also, if Dmuse thinks the file is not an ordinary text file, it will automatically give you the choice of seeing the file as characters or in hexadecimal notation. |
Shft+KeyPad + | Store the contents of the current window in a file. Dmuse will ask you for the name of the output file. If you enter $ and if the window was originally loaded from a file, Dmuse will overwrite (update) the source file with the contents of the window. |
The Main Keyboard; Special Keystrokes
Key sequence | Description |
---|---|
Alt used with the numbers 1 ... 9 | These keystrokes are used to add or change diacritical marks over letters. They can be used in two ways. If you just typed a letter, such as an "e", which needs an acute accent, you can type Alt+7 and an acute will appear above the "e", even though the cursor has moved to the next column. Or if you later want to change that acute to a grave, you put the cursor under the "é" and type Alt+8, and the acute will be replaced by a grave. |
Alt+1 | Adds a tilde to the letters n (ñ) and o (õ). |
Alt+2 | Adds a cedilla to c (ç); add a slash to o (ø); change s to German ss (ß). |
Alt+3 | Adds an umlaut to letters a, e, i, o, u, and y: ä, ë, ï, ö, ü, ÿ. |
Alt+4 | Adds a circle above letter a (å). |
Alt+5 | Adds a caron above the letters r (ř) and s (š). |
Alt+6 | Removes accent or alteration from a letter. |
Alt+7 | Adds an acute accent to letters a, e, i, o, u, and y: á, é, í, ó, ú, ý. |
Alt+8 | Adds a grave accent to letters a, e, i, o,and u: à, è, ì, ò, ù. |
Alt+9 | Adds circumflex to letters a, e, i, o, and u: â, ê, î, ô, û. |
Shft+Alt+0 | Vertical dotted line (used to represent tab character). |
- | Dash character. Also draws a single line around the edge of a box highlight. |
= | Equals character. Also draws a double line around the edge of a box highlight. |
← Backspace | Move cursor left one column and place a blank above the cursor. |
Shft+← Backspace | Move cursor to the left margin. |
Tab ⇆ | Move the cursor to the next tab on the right or move the cursor to the beginning of the next line. |
Left-Shft+Tab ⇆ | Move the cursor to the previous tab on the left or move the cursor to the last tab on the previous line. |
Ctrl+Tab ⇆ | Toggle the tab marker at the position of the cursor. |
Left-Shft+Ctrl+Tab ⇆ | Clear all tab markers for this window. |
Right-Shft+Tab ⇆ | Same as Tab ⇆, but proceed in "backup" mode. In backup mode, the cursor does not move, and as characters are typed, space is made for them by backing up characters previously typed while in this mode. Backup mode is terminated with the period (decimal) or the <space> bar. The terminating character is displayed one position to the right, and the cursor now moves forward in normal fashion. Backup mode has many uses but its primary purpose is for entering columns of numbers. |
Right-Shft+Ctrl+Tab ⇆ | Same as Left-Shft+Tab ⇆, but proceed in "backup" mode. |
↵ Enter (with wordwrap off) | Move the cursor to the left margin and down one line. |
↵ Enter (with WW on) | Break line. Insert a blank line below the current line. Move the right half of the current line (starting at the cursor) to the new line starting at the left margin. Move the cursor to the beginning of the new line. |
Ctrl+Return with WW off | Break line, as with wordwrap on. |
↵ Enter (connect mode) | Send the entire line the cursor is on to the program running in the current window. Move the cursor to the beginning of the next line. |
The following special characters are available in Dmuse. These are represented internally by byte values that lie outside the standard ASCII range of 32 to 127. So, if they are written to a file and that file is read by another program, other characters may appear in their place. | |
Alt+o/p/[/] | shaded cells: one-quarter/one-half/three-quarters/full shade. |
Alt+L/;/,/. | full shade on a half cell: upper half/ lower half/left half/right half. |
Shft+Alt+9 | Centered dot. |
Ctrl+Shft+[ | Small centered box. |
Ctrl+Shft+] | Small centered dot. |
Ctrl+Shft+D | Centered diamond. |
Ctrl+Shft+Z | House character. |
Ctrl+Shft+I/J/P/Q | Large arrow head pointing up/down/right/left. |
Ctrl+Shft+X/Y/M/N | Small arrow up/down/right/left. |
Ctrl+Shft+E/F | Top/bottom of large open parenthesis. |
Ctrl+Shft+G/H | Top/bottom of large close parenthesis. |
Ctrl+Shft+R | Small square root. |
Ctrl+Shft+S | Top of square root. |
Ctrl+Shft+W | Part of a large square root. |
Ctrl+Shft+V | Part of a large square root. |
Ctrl+Shft+A/B/C | Musical sharp (♯), flat (♭), and natural (♮). |
Dmuse also provides access to the full compliment of line drawing characters. The nine keystrokes in the block Alt (qwe,asd,zxc) together with Alt+r and Alt+t can be used to draw single line boxes and other single line diagrams; likewise, the nine keystrokes in the block Alt (tyu,ghj,bnm) together with Alt+i and Alt+k can be used to draw double line boxes and other double line diagrams. Shft+Alt with these combinations draws the mixtures (i.e., horizontal-single, vertical-double, and vise versa). You simply need to experiment with these to understand how they work. The best way to draw lines and boxes is to use the box highlight and the - and = keystrokes, as described above. Single and Double line boxes can overlap, which explains the need for the mixture characters. | |
Key sequence goes here | Description goes here. |
Last sequence | Last description. |