Implementing a Poor Person's Vim: Layers or Macros?


I’m experimenting with building some basic vim-like functionality into my Model01.

To start, I have a layer that functions as a mini-Normal mode. Once in that layer, W moves forward by a word, B moves backward by a word, and likewise with $ and 0 for lines respectively.

I would like to now build some functionality to delete, copy, or visually select text. I was thinking that for each of these, each letter (D, Y, V) can open up a new layer, and then I could keep the motions on the base mini-Normal one. Alternatively, these might be able to be implemented as macros. For example, D can have a macro like “If W then delete forward word, if B then delete backward word” etc.

The former seems more extensible in that I could add new motions later, while the latter seems like it might be better for space - thought I’m not too sure of that at all.

Does anyone have some experience with stacking ‘conditionals’ like this, or otherwise have any tips on the best way to scope this out?

Thanks for your time!

Have you tried the "Leader key plugin ? It seem to be verry Vim effective :slight_smile:
There is also a post about vim-like motions and behavior somewhere here that can be a great ressource !

Happy hacking :hammer_and_wrench: