On selecting text in the Minimum Profit Text Editor

Ángel Ortega

As this is a question I have to answer periodically here are my final words on it.

The Minimum Profit Text Editor has three selection modes: "movement", "block" and "vertical".

The "movement" one is the way of selecting text that is implemented everywhere and is somewhat of a standard: by pressing the shift key and using any of the movement actions (left, right, word left, word right, up, down, page up, page down, beginning of line, end of line, beginning of document or end of document) or by left clicking and dragging with the mouse. Additionally, you can right-click and drag to extend the selection. Once the block is marked any movement key deselects it. Typing something replaces the selection. Hitting del or backspace erases the selected text. Though this mode is what new users expect, it works weakly on non-GUI interfaces because of lacking or defective support in the underlying libraries and systems.

The "block" selection mode is an older style one (and the first one that MP had): by pressing a key (f9 by default) you mark the beginning or end of the marked text. The selection survives any movement (indeed, it's the only way block selection can be done, by moving to another place and marking the other end) and you can extend the block above or below whenever you want. Replacing and erasing works as expected. Additionally, most operations like search, replace, etc. only apply to the marked text if there is one (this is very useful). The selection only disappears when copying, erasing, replacing, mouse-clicking or unmarking (by pressing the f8 key). This is the way I copy and paste; I never use the standard way (I know you don't care).

The "vertical" selection mode also works by marking the beginning or the end of the block, but the selection forms a square shape (x, y to x', y') instead of a line-flow one. By default it's done by hitting ctrl-b. The selection can also be extended repeatedly. As in "block" mode, marked text is disabled after copying or by pressing f8. I never use this option and never did (it was implemented by a fellow programmer).

I agree that the "movement", "block" and "vertical" terms are a sloppy way to describe the operations they do.