With zsh multios set (setopt multios) it's possible to do things like:< in1 < in2 > outand:< in > out1 > out2which is very convenient.I want to combine this feature with brace expand (setopt braceexpand), so when I say:<in{1,2}^I(^I is a literal tab and invokes the completion system), I want it to expand to:<in1 <in2 but instead I get:<in1 in2Is there an easy way to modify this behavior?
Expand less-than sign when using multios and brace expand
zsh;autocomplete;brace expansion
This is the completer setting I'm using: zstyle ':completion:*' completer _complete _list _expand _oldlist _ignored _match _correct _approximate _prefixThe substitute setting is the default, i.e. 1.Seeing Chris's answer and pointers in the right direction, made me realize that this must have something to do with my configuration.I started poking around with the completer order and the substitute setting, none of which changed the behavior. Comparing the settings, using the minimal configuration file provided by Chris, with my own, I narrowed the problem down to my bindkey file, and from there down to bindkey -v. This has the side-effect of setting ^I to expand-or-complete which for some reason botches desired expansion.As I want to continue using the viins and vicmd keymaps the solution for me was to change tabs behavior to complete-word: bindkey -M viins \CI complete-wordbindkey -M vicmd \CI complete-wordtl;drIf you're using viins or viicmd as keymap remember to change ^I to complete-word:bindkey -M viins \CI complete-wordbindkey -M vicmd \CI complete-word