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

Re: [PATCH] _git: auto-removable '..' suffix: remove at the end of lines

On 22.03.2014 18:37, Bart Schaefer wrote:
> The presence or absence of \n in the -r string doesn't seem to make any
> difference for me.  The suffix is auto-removed on accept-line whether
> invoked as ctrl+m or ctrl+j or enter/return, with or without \n there.
> And of course the \t only matters if you type ctrl+v tab, because in
> other cases complete-word is invoked and no character is inserted.

Right, I basically added them for completeness, because according to the
man page the default behavior (-q) includes them:

   Thus `-S "=" -q' is the same as `-S "=" -r "= \t\n\-"'.

Giving -q AND -r is superfluous, so I removed -q.

And there actually is use for \n: When entering multiple commands on
multiple lines (ALT+Return) without calling accept-line.

This way we get the default behavior, just as if only -q was given, PLUS
the additional . @ ~ ^ characters.

> Hmm.  However, here's something really strange.  Starting from zsh -f
> with compinit loaded and tab bound to complete-word ...
> With the original code:
>     compset -S '..*' || suf=( -qS .. -r '.@~ ^:' )
> the trailing ".." is not boldfaced like an autoremovable suffix is by
> default, and indeed it is not removed upon accept-line, though it is
> auto-removed by e.g. a space.
> With this:
>     compset -S '..*' || suf=( -qS .. -r '.@~ ^:\-' )
> (note that the only change is to add '\-' to the -r string), the ".." IS
> shown in boldface and is auto-removed by accept-line.
> I have no idea why that would make a difference.

I noticed that too. The part that makes the boldface work seems to be
the '\-'.
Accoding to the man-page the only thing it does is

  `\-' stands for all characters that insert nothing.

which is exactly what is needed to make it work with accept-line, but I
can't see how this is related to the boldface.

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