On 08/17/2017 07:07 PM, Daniel Shahaf wrote: > Define a custom widget: > > maybe-complete-on-space() { > if [[ $LBUFFER[-1] == ' ' ]]; then > zle self-insert > else > zle expand-or-complete > fi > } > zle -N maybe-complete-on-space > > and bind it: > > bindkey ' ' maybe-complete-on-space Thank you Daniel! That does seem very close to what I want. > This implements the behaviour you specified, but I suspect you meant the > 'if' and the 'else' behaviours to be the other way around. Nope, you got what I wanted the first time. > You aren't changing the behaviour of completion, you are just changing > the method of invoking it, so the solution was in zshzle(1)'s domain, > not in zshcompsys(1)'s. Good to know. I did find a couple of oddities when I was testing as you provided: 1) I need to hit space an extra time after completion. I.e. "sip " results in "sipcalc ". - It seems as if the second space is swallowed. (I do not consider this a problem and am happy to live with it. 2) I seem to be stuck in a loop if I try to complete "kil" into "kill" because "killall" is also matched. I tried playing with recexact to allow the exact match, "kill", to be accepted. But I'm obviously missing something. I will play with it more as time permits tomorrow. Thank you again Daniel. -- Grant. . . . unix || die
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature