A little discussion has led me to believe you're right. Currently, if we abort a replace, find, or etc, we don't clear the whole op stack, like vim does, just the currently-being-created operation. The difference in behavior between vim and atom for `dr<esc>d` shows this: vim waits for more input, atom deletes a line.

The right solution is probably to go ahead and use the op stack, but it requires getting cancellations to bubble up all the way up. If we wanted to leave that for a later pull, I think that would be okay.