setopt multios
以下を行うには、zsh multios set()を使用してください。
< in1 < in2 > out
そして:
< in > out1 > out2
これはとても便利です。
私はこの機能を中括弧拡張()とsetopt braceexpand
組み合わせたいと思います。だから、次のように言います。
<in{1,2}^I
(^I
テキストタブで完成システムを呼び出します。)次に拡張したいと思います。
<in1 <in2
しかし、私が得るものは次のとおりです。
<in1 in2
この動作を修正する簡単な方法はありますか?
ベストアンサー1
必要な動作は、既存の完了設定(compinstall
数回のパスでゆっくりと生成されます)と自動的に機能するため、担当する特定の設定の範囲を絞り込むのに時間がかかりました。
コア機能は「完成者」によって提供されます_expand
。次のように含めることができます。
zstyle ':completion:*' completer _expand
_completer
完成ツールも使用している場合は、_expand
まずそれらをリストする必要があります。たとえば、これは私の実際の完成者設定です:
zstyle ':completion:*' completer _expand _complete _ignored _match _approximate _prefix
次に、支柱の拡張を有効にするには有効にする必要がありますsubstitute
。この機能はデフォルトで有効になっていますが、次のように明示的に設定できます。
zstyle ':completion:*' substitute 1
この機能をどこでも有効にしたくない場合は、次のように完全に無効にして有効にするだけです_expand
。
zstyle ':completion:*' substitute 0
zstyle ':completion:*:expand:*' substitute 1
私はこれをテストしました扱いにくいバージョン 4.3.11 および 5.0.2: 新しいシェルを起動し、以下を含むzsh -df
ファイルをインポートします。
zstyle ':completion:*' completer _expand
zstyle ':completion:*' substitute 0
zstyle ':completion:*:expand:*' substitute 1
autoload -Uz compinit
compinit
(オプションmultios
とno_ingore_brace
(エイリアスbrace_expand
)はデフォルト値なので、明示的に変更する必要はありません。)
cat <in{1,2}
次に Tab キーを入力して押しました。 Tabを数回押す必要があります。各拡張バリアントに対して一度、「すべての拡張機能」項目に移動するには、もう一度タップします(上記の例では合計3回押します)。この特定のアイテムを表示する方法が見つかりませんでした。最初。