ソースコード> PATHを検索します デフォルトで。
ただし、bashでは、 source の後にコマンド名を入力すると、オートコンプリートは機能しません。 。
一般に、 PATHに基づくオートコンプリートはいつ行われますか 動作しますが、いつ動作しませんか?
source に引数を入力するときに、どうすれば機能させることができますか ?
ありがとう。
承認された回答:
ソースコード> ( bash 組み込みコマンド)はファイル名を取ります 口論; PATH検索は、指定されたファイル名が見つからない場合にのみトリガーされます。したがって、 source foo 最初に./fooを開こうとします それが失敗した場合にのみ、 / path / dir / fooを探します。 。現在のディレクトリに存在するファイル名でタブ補完を試すか、目的のコマンドへのパスを指定してください。期待どおりにタブ補完する必要があります。
-
目的を達成するための最も簡単な方法は、タブ補完がcomplete-filenameを試行していることを認識することです。 ただし、完全なコマンドが必要です 。 complete-commandをトリガーできます
M-!で キーバインド別名Alt+! 。 (READLINEを参照してください セクション、完了サブセクション、man bashその他の完了関数とデフォルトのキーバインドについては、bashのオンラインドキュメントを参照してください。) -
難しい方法は、
sourceに対してトリガーされるデフォルトの完了関数を修正することです。 の完全なファイル名の両方を呼び出す最初の引数 および完全なコマンド 関数。help completeをご覧ください (コマンドラインで)、Programmable Completionman bashのサブセクション およびbashオンラインドキュメント、およびcomplete組み込みコマンド。
一般に、タブ補完は定位置であり、コマンドラインのどこにいるかに基づいてさまざまな補完関数を呼び出します。 Archシステムでは、パッケージは完了ファイルを / usr / share / bash-completionにインストールできます。 実行可能ファイルにコンテキスト対応の補完を提供します。