Behaviour when typing when blocks are selected

There’s a Bike behaviour that I have some problems with… You see, if I want to replace one or more items with something new, my default way is to select it and then either start typing, or pasting (for instance). However, this doesn’t work with Bike’s blocks.

There’s probably something I’m missing — but for me, Bike breaks with expected behaviour when I have selected a block, starts typing, and I only get error sounds.

I really think starting to type should delete the selected block(s), and put the new content from the position of the top-most selected block. (Probably with its formatting.) Same with pasting.

(Sorry if this has been mentioned (by me??) before, or has been discussed elsewhere. Didn’t find it via search.)

An example:

  • List item 1
    • Subitem I want to replace 1
    • Subitem I want to replace 2
    • Subitem I want to replace 3
  • List item 2

If I want to replace List item 1‘s subitems, what feels natural to me is to select them all, and just start typing. But when that doesn’t work, I’ll hit backspace. But I still can’t start typing, as now I’m still in block selection, but selecting List item 2.

If I have copied two other subitems and want to replace the original three with those, selecting and hitting paste doesn’t replace, but adds the new ones under it. But if I wanted to add them, I would instead add a new line before pasting. (Or at least not select all the old ones.)

1 Like

It is a bit odd, but it’s intentional and I think pretty standard for block based outlines/selections.

For example other outlines such as Workflowy, Checkvist, Roamresearch also work in the same way. Typing in block mode doesn’t replace. (Though I do notice that they switch to text mode on delete, so maybe that needs changing)

Besides being a general standard this design also opens up possibility for single key shortcuts in block mode. For example in block mode you can press spacebar to toggle “done”. I still plan to do much more in this area, but haven’t got to it yet. But look at Checkvist.com for an idea of where I’d like to go. For example type dd in block mode to set due date, etc.

(You can see these things up yourself now, by adding custom keybindings in block mode in Bike > Commands Explorer)


And that leads to a possible solution.

What if I adde a new “Replace” command. It would act a little different then delete in that it would not delete the first row in a block selection. It would delete all that rows content and then place text caret at the start of the row. Then you could bind that command to “r” when in block mode.

The end result is in your example you would press “r” and be in your desired state. Reasonable?

Edit And I still am planning to respond to your themes questions. But they are detailed and require thought I don’t have time for at moment. Give me another week and then start bumping that question if I’ve still not got too it :slight_smile:

2 Likes