Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zle: vi mode: wrong undo handling on fresh lines

On Mon, Feb 3, 2014 at 1:29 PM, Oliver Kiddle <okiddle@xxxxxxxxxxx> 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.

Messages sorted by: Reverse Date, Date, Thread, Author