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

Re: zsh 4.3.4: bindkey -s xx 'yyy\n' no longer works (with bindkey -v)

Jim Meyering wrote:
> But with 4.3.4, the latter bindkey seems to have no effect:
>   r$ zsh -f
>   r% bindkey -v
>   r% bindkey -s '^x^x' '!!\n'
>   r% echo foo
>   foo
>   r% ^X^X                <<=== here I typed control-X twice,
>                                and it merely echos them

The only feature I can see that would have an effect on this is
$KEYTIMEOUT.  This is the delay in 100ths of a second for which the chip
will wait for an additional key if the key typed so far is also bound in
its own right.  However, the default (40) hasn't changed.  What does
"echo $KEYTIMEOUT" say?  Do this behaviour change if you set KEYTIMEOUT
to something larger?

Although, again, I'm not aware of the behaviour deliberately being
changed, the reason $KEYTIMEOUT is applied is because most characters,
including ^X, are bound by default to self-insert in vi insert mode.
You can stop this happening for ^X:

bindkey -r -M viins '^x'

Now it doesn't matter what delay there is between the two ^x's.

Possibly displaying the binding of ^x with

bindkey -M viins '^x'

will shed some light on differences between versions.

(I don't think you need the "-M viins" in either case, but I'm paranoid
about vi keymaps since I can never remember which is the "alternate"

Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070

To access the latest news from CSR copy this link into a web browser:  http://www.csr.com/email_sig.php

To get further information regarding CSR, please visit our Investor Relations page at http://ir.csr.com/csr/about/overview

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