Coding with Steno
A steno code editing "keybinding" model.
Modal Editing
I like modal editing. Being in a mode adds context to your keypresses, which is needed to distinguish between typing and editing. There are other ways you could add this context, like prefixing every editing keybinding with a modifier.
But no matter how you do it, you need to have some way to add context to your keypresses, whether it's a mode, pressing 20 modifier keys, the phase of the moon, you need context to separate editing and non-editing actions.
But that isn't true for steno. With steno, we have millions of strokes available at any given moment, we shouldn't need modes or modifiers.
Semi-modal Editing
While working on Onyx, a theory with a regular outline grammar, I realized that you could make sort of pseudo-modes using Onyx's strict outline structure (1 stroke with vowel keys followed by 0 or more strokes without vowel keys, also known as skeleton strokes). By starting an outline, you could then use any number of skeletons with unique meanings, as if you were in a mode, but you wouldn't need a dedicated mode exit stroke, you could simply begin the next outline.
This isn't really special to Onyx or theories that use regular outline grammars, you just have to find dedicated strokes for this.
Idk why I'm rambling on about this I'll rewrite it later :p
Selection Mode
So the idea is to dedicate a set of strokes to moving and extending the selection, and action strokes to operate on the selection.
When you start using the selection strokes, your selection will move and extend. With an active selection, if you start writing again, your selection will be thrown out and nothing will happen. If you write an action stroke with an active selection, that action will be performed on the selection.
You can see how a semi-mode (that can't be a noun but "semi-modal mode" also sounds stupid) would be nice for movement here.
I have yet to make a dictionary for this, but I probably will for Pinchord.
I couldn't get vim to actually understand these selections and actions the last time I tried :p