So whilst I see nothing illogical, I’m in agreement that a change to these commands would throw me!
I wonder why the special case for "cw" exists... I'd love to hear the story about that initial decision.
Looking around, I can't even FIND a "c on first finger" fingering.
- https://en.wikipedia.org/wiki/Touch_typing#/media/File:Finge...
- http://www.typingme.com/touch-typing/typing-lesson-9.php
- https://agilefingers.com/articles/touch-typing-finger-placem...
- https://www.computerhope.com/issues/ch001346.htm
- https://www.ratatype.com/learn/
and on and on.
And I prefer it the vis way. cw is a binding I use often, and more pleasant to type than ce. yy I also use fairly frequently, but Y is not much more pleasant, and y$ is much less pleasant, and I copy from the cursor to the line end often enough to want it to be easy, quick, and feel nice.
If the buffer is “asdf jkl” with your cursor at the beginning of the line, after dw the buffer is “jkl”. With the same starting buffer, after cw, the buffer is “ jkl”, with a space at the beginning (which is the same behavior as ce).
This “inconsistent” behavior is probably what you usually want, but it does indeed break the invariant that c<motion> is equivalent to d<motion>i .
Nit: that invariant also doesn’t work when the motion takes you to the end of the line because of how the cursor is one character wide in normal mode and zero characters wide in insert mode. On a buffer “asdf jkl” with the cursor on the letter f, c$x gets you “asd|” (| representing the cursor location), whereas d$ix gets you “as|d”.