Bashでワイルドカードをインラインに拡張するには?

Bashでワイルドカードをインラインに拡張するには?

Bashは次のことができることを覚えています。

現在のディレクトリにa、b、cという3つのファイルがあるとします。

$> somecommand *

次に、キー、キーの組み合わせ、またはキーシーケンスを押すと、ワイルドカード文字*がオンラインで次のように展開されます。

$> somecommand a b c

しかし、キーシーケンスを覚えておらず、Googleで検索することもできません!助ける!

答え1

glob-expand-wordそうでない場合は、キーシーケンスにバインドする必要があります。通常、次のようなものを追加します。

"\C-x*": glob-expand-word

到着する.inputrc

現在の状態の問題を確認するには、次の手順を実行します。

bind -P | grep glob-expand-word

結果は次のとおりです。

glob-expand-word can be found on "\C-x*".

これは次のことを意味します。

Ctrl-x*

これも動作する可能性が最も高いです。

Ctrl-xCtrl-*


bind -P詳細についてはマニュアルを参照してください。

答え2

リストの完成を探しているようです。マニュアルページからbash

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes‐
     sive  tabs, !, for listing alternatives on partial word comple‐
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program‐
     mable completion facilities

したがって、一部のコマンドの完了機能がどのように完了するかによって異なります。

答え3

set -o vibashで使用すると機能しませんCtrl-X*

モードではをset -o vi使用する必要がありますEsc*

関連情報