マルチOSを使用する場合は、記号より小さく拡張し、中括弧を拡張してください。

マルチOSを使用する場合は、記号より小さく拡張し、中括弧を拡張してください。

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

(オプションmultiosno_ingore_brace(エイリアスbrace_expand)はデフォルト値なので、明示的に変更する必要はありません。)

cat <in{1,2}次に Tab キーを入力して押しました。 Tabを数回押す必要があります。各拡張バリアントに対して一度、「すべての拡張機能」項目に移動するには、もう一度タップします(上記の例では合計3回押します)。この特定のアイテムを表示する方法が見つかりませんでした。最初。

おすすめ記事