It seems to implement the Avy (https://github.com/abo-abo/avy) model of input. It can't be improved very much, because when dealing with dynamic data, you can't make things repeatable. The idea of "muscle memory" for things that change is kind of fallacious. The best you can do is ensure some predictability in the subset of keys you're using for element selection.