文字クラスをインラインで含むグローバルスキーマを拡張するには?

文字クラスをインラインで含むグローバルスキーマを拡張するには?

私はこれに会った質問Bashで私のglobパターンをインラインに拡張する方法を見つけようとしています。しかし、私の場合、スキーマにいくつかの文字クラスが含まれています。

3つのファイルがあるとしましょう。abc bbc 1bc

私が入力したとき:

$> somecommand [[:alpha:]]bc

私はコマンドをインラインで拡張できるキーの組み合わせがあるかどうか疑問に思います。

$> somecommand abc bbc

私はCtrl+X *成功せずにキーシーケンスを試しました。単純なグローバルパターンでのみ機能するように見えますが、パターンに特定の文字クラスが含まれている場合は拡張されません。[[:alpha:]]

ベストアンサー1

これは、単語を完成させるための単語区切り文字と見なされる文字の:リスト(シェル変数に公開されている)があるためです。readlinebash$COMP_WORDBREAKS

後ろに:

COMP_WORDBREAKS=${COMP_WORDBREAKS/:}

:(から削除されました$COMP_WORDBREAKS)、Ctrl+がX*機能するはずです。

:文字クラス内で使用されるので、そもそもこのリストにあってはならないと主張することもできますが、次のような目的で完成機能を使用できるようにしたいという根拠があると思います。

パス=~/bin:/usr/locTab

Ctrlそして、両方を収容するには、メカニズムがあまりにも粗すぎて(+ X*onを削除しても機能しないことがわかります'a'*)、トレードオフです。どちらの場合も、適切な高度な編集機能を備えたシェルをここで確認してください。'$COMP_WORDBREAKSzsh

おすすめ記事