Bashプロンプトのオートコンプリートファイル名

Bashプロンプトのオートコンプリートファイル名

私は通常、ファイルやディレクトリ名の前に2014-04-20 file_name.doc

したがって、フォルダには通常、日付で始まる複数のファイルとディレクトリがあります。

ただし、コマンドライン(私の場合はbash)からこれらのフォルダにアクセスするときにオートコンプリートを押す前にすべての日付を入力する必要があるため、少し迷惑ですTAB

私が望むのは、ファイル名の一部だけを入力し、システムをクリックしてTABからプロンプトにフルネームを入力することです。

解決策はありますか?

答え1

ワイルドカードパターンを完成させます。

ls *file_n*Tab

パターンが複数のファイルと一致する場合は、選択するように求められます。または、完了オプションに従ってリストがコマンドラインに挿入されます。操作をキャンセルし、より多くの文字を入力して一致を制限するには、完了を元に戻す(Ctrl+ _

コンテキストに合わせて完成を使用している場合、Tabワイルドカードはデフォルトでは拡張されませんが(これを変更するように設定するオプションがある場合があります)、Ctrl+はですX *

答え2

これを使用してcomplete必要な操作を実行できます(既存の完了スクリプトは適切なパッケージをインストールした後、debianの下の/etc/bash_completion.dにあります)。

デフォルトの例では、apache2.2-commonを確認できます。

https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html

答え3

\eg()を使用している場合は、glob-complete-word2番目のアスタリスクを入力する必要がないか、*file_n\eg代わりにを入力できます*file_n*<tab>

複数のファイルがパターンと一致する場合は、最初の一致menu-completeまたは最後の一致を挿入できますmenu-complete-backward。たとえば、次を追加すると

"\et": menu-complete
"\er": menu-complete-backward

~/.inputrc*file_n*\et最初のゲームを完了し、*file_n*\er最後のゲームを完了します。

関連情報