bashでワイルドカードをインライン展開する方法は?


10

私はbashが次のことができることを思い出しました:

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

$> somecommand *

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

$> somecommand a b c

キーシーケンスを思い出せず、グーグルアウトできません。助けて!


5
試してみてくださいCtrl-X *
ステファンChazelasに

回答:


7

そうでない場合は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他の細かい点については、マニュアルをご覧ください。


3

リストの完成を探しているようです。のmanページで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

そのため、これがどのように完了するかは、いくつかのコマンドの完了関数に依存します。


2

set -o vibashで使用している場合、Ctrl-X*機能しません。

set -o viモードあなたが使用する必要がありますEsc*代わりに。


1
ノーマルモードに<C-X>*入ると機能するが、これ<C-X>は不必要で何もしないことに注意してください。(<C-X>viの場合のように減少しません。)挿入モードの場合は、<Esc>最初に使用する必要があります。
wchargin

これは素晴らしい。これらは何と呼ばれていますか?bashキーボードショートカット?これらのキーボードショートカットの詳細を確認できるドキュメントはありますか?
wisbucky 2016

2
@wisbucky:少し遅れますが、他の誰にとっても、GNU Readlineが責任を負います。遅い日は、の編集コマンドのセクションをお読みくださいman readline。私はBashを10年間使用していますが、まだ新しいものを学習しています。
Soren Bjornstad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.