On Mon, Feb 3, 2014 at 1:29 PM, Oliver Kiddle wrote: > > It really ought to be possible to redefine complete-word. The following > works with old-style completion but not with the new. Anyone have an > idea why? > > complete-word() { > zle .complete-word > } > zle -N complete-word > The obvious reason is that "new completion" has already re-bound complete-word to the _main_complete function. You can't override the .complete-word form, so you're always going to bypass new completion when running "zle .complete-word". The second possible problem is that you've changed complete-word from a completion widget (defined with "zle -C") into a normal widget. It mostly works to call completion widgets from normal ones (though not the other way around) but you have to be careful, and you might need to make calls to the special auto-suffix-* widgets at the right times. To get what I think you're after here, you'd more likely want complete_word() { _main_complete "$@" } zle -C complete-word .complete-word complete-word but I'm not certain.