ソースコード>
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 Completion
man bash
のサブセクション およびbashオンラインドキュメント、およびcomplete
組み込みコマンド。
一般に、タブ補完は定位置であり、コマンドラインのどこにいるかに基づいてさまざまな補完関数を呼び出します。 Archシステムでは、パッケージは完了ファイルを / usr / share / bash-completion
にインストールできます。 実行可能ファイルにコンテキスト対応の補完を提供します。