Wily

## Notation

B1, B2 & B3 are left, middle, right mouse buttons, respectively. "B1B2" means to select some text with B1 held down, then click and release on B2 while still holding B1 down. This is the B1B2 chord. There are others. "Sweep with B1" means to hold down B1, drag it across some text to select it, and then release B1.

## Screen layout/control.

The screen is divided into columns, each of which is divided into windows. Each window has a scrollbar and a one-line "tag" containing a file/directory name and some commands. There is also a tag at the top of each column, and at the top of the whole screen. A "layout box" is at the left of each tag: dragging this box with B1 moves the window around the screen; windows re-layout automatically when you drag and release windows with this box. Clicking on the with B1 "grows" the window slightly; B2 makes it grow until all other windows in the column only show their tags. B3 makes the window tag up the whole column, hiding other windows completely.

## Selecting and editing text

Type normally anywhere on the screen to enter text; move the pointer into the tag/window you want to type into. Position the cursor within text either with cursor keys, or clicking once with B1. Sweeping text and then typing Cuts the selected text, and replaces it with the typed text. Cut and Paste are chords B1B2 and B1B3: sweep text with B1, and complete the B1B2 chord to delete. B1B3 Pastes text over the selected text. Double-clicking with B1 selects text quickly, picking a word, a line, or text delimited by quotes, brackets, braces, or parentheses, depending on where you double-clicked. Undo and Redo give edit history. Layout box is filled in when text is modified but not saved.

## Executing commands

Sweep text (anywhere!) with B2 to execute it as a command. A single B2 click automatically selects a sensible "word" as the command. Commands can be built-in (Capital first letters, by convention) or passed to the shell for invocation. To invoke commands with arguments, sweep the argument with B1, then click on the command with B2B1. If a B2 command begins with |, > or < characters, the B1-selected text is piped through, fed into or replaced by the results of the command, respectively. Any output generated by commands appears in a window named dir/+Errors, where dir is the directory the command was invoked in.

## File/directory management

Windows show file or directory contents. The full path of the file/directory is given in the tag. Selecting a filename with B3 (sweep or single-click) will attempt to open that name relative to the pathname in the window's tag. The new file/directory appears in a new window. If the file can't be found, the B3'd text is searched for in the current window instead. If the B3'd text is of the form ":n", it is a line number to go to. ":/pattern" is a regular expression pattern to search for.

## Builtin commands

Anchor prints current selection address in tag. Clear clears window. Cut cuts selected text to buffer. Del deletes window. Delcol deletes column and windows. Dotfiles toggles display of dot files in directory windows. Font toggles fixed/proportional fonts. Get reloads window. Indent toggles autoindent. Kill halts named B2'd program. Look searches for text. New creates new window. Newcol creates new column. Paste pastes buffer. Put writes file to disk. Putall writes all files. Quit exits Wily. Redo undoes last Undo. Snarf copies text to buffer. Split opens up another window on the same file. Undo undoes last edit.

`Steve_Kilbane@cegelecproj.co.uk`