Explicitly binding "undo" to a key didn't help. However, I've gone ahead and bisected this; looks like it was introduced between 5.0.2 and 5.0.3, and fixed in 5.0.5-dev-1. Introduced in: 0ed3c5c (31765: If zle starts in viins mark as insertion. This allows undo to work on everything entered.) Fixed in: a8c4ed6 (32314: merge undo events corresponding to vi change in the vi-cmd-mode widget so undo from insert mode is useful again) Guess I'll upgrade. Thanks! On Sat, Feb 27, 2016 at 8:47 AM Bart Schaefer wrote: > On Fri, Feb 26, 2016 at 10:35 PM, Michael Giuffrida > wrote: > > When using vi bindings, my understanding is that `C-_` should trigger > > readline's undo behavior, as should `u` when in command mode.[1] > > Zsh does not use readline. It has its own editor with its own set of > key bindings. > > > In zsh in vi mode, it just clears the whole line. So it's not useful for > > undoing the effect of glob expansion or other tab completion. > > Are you sure you have C-_ bound to what you think you do? With > > bindkey -v > bindkey '\C-_' undo > > I get the behavior you expect rather than the behavior you report. > > What does > > bindkey '\C-_' > > output for you? >