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

Re: compadd -qS' ' should escape the space

On 5/7/07, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
I'm sort of surprised no one responded to this.  (Or did they and gmail
has spam-filtered it for me again?)

Nah, it's probably the fact that my question/suggestion wasn't very

On May 3,  6:11pm, Nikolai Weibull wrote:
} Subject: compadd -qS' ' should escape the space
}   _describe -t color 'color' colors -qS' '
} I'd expect the space used as a suffix to be escaped.

Er, no.  The suffix is supposed to be a separator between words; e.g.,
in file completion, you want the space between the file names to be
treated as IFS by the shell, so that you get one file name per word
as the command arguments.

You didn't provide enough context to know what you're really trying
to do and why you think the space should be escaped, so I have no
suggestions for what you should be doing instead.

I'm trying to complete a set of three colors and attributes:

     compset -P '* '

     case ($words[CURRENT]) in
       (?*' '?*' '*)
         if [[ $words[CURRENT] == *(bold|dim|ul|blink|reverse)* ]]; then
         if [[ $words[CURRENT] == *(bold|dim|ul|blink|reverse)* ]]; then
           __git_colors -qS' '
           _alternative \
             'colors:color:__git_colors -qS" "' \
             'attributes:attribute:__git_color_attributes -qS" "'

The idea is that when completing in the following context:

% git config color.branch.local |

(where '|' is the cursor) you'll be able to enter three space-separated values:

% git config color.branch.local red\ |

and now we'll still be able to complete the two other components.  If
I manually prefix the word before completing with a double quote it
all works, but I was hoping that this could also work automatically.

Feel free to ask for more context ;-).


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