05/02/18 14:34:12
>>63
メーリングリストでも似たような質問を何度か見かける。試しにやってみたが、
全展開は簡単にできるが絞り込みがうまくいかない。例えば下のような感じ。
他に影響がないように機能を C-x x に割り当てている。
_foo () {compadd bar{1..5}{a,b}}
compdef _foo foo
zle -C all-matches complete-word _generic
bindkey '^Xx' all-matches
zstyle ':completion:all-matches:*' completer _all_matches _complete _match
zstyle ':completion:all-matches:*' old-matches false
zstyle ':completion:all-matches:*' match-original only
zstyle ':completion:all-matches:*' insert true
% foo bar<C-x x> → foo bar1a bar1b bar2a bar2b bar3a bar3b bar4a bar4b bar5a bar5b
% foo bar*<C-x x> → foo bar1a bar1b bar2a bar2b bar3a bar3b bar4a bar4b bar5a bar5b bar*
% foo bar[25]b<C-x x> → foo bar2b bar5b bar[25]b
などとなって、補完対象の文字列がそのまま残ってしまう。でも
% foo bar[48]a<C-x x> → foo bar4a
となったりするからよく判らん