名前付きディレクトリのオートコンプリート

名前付きディレクトリのオートコンプリート

次のセッションに示すように、オートコンプリート機能は、最初に名前付きディレクトリを使用するまで機能しないようです。

% setfoo() { foo=/etc; }
% setfoo

% cd ~fo<Tab> # doesn't autocomplete ~foo
% ls ~foo # this works
% cd ~fo<Tab> # now it does autocomplete ~foo

最初からオートコンプリートを有効にする方法はありますか?

メモ:

  • foo関数内ではなくコマンドラインから直接設定すると、期待どおりに機能します。
  • setfoo() { foo=/etc; true ~foo; }また、動作しますが、より適切なソリューションを探しています。

ベストアンサー1

hash -d明示的な定義を使用してディレクトリ名を指定できます。

hash -d foo=/etc

注:これには対応するパラメータは設定されていません。

% hash -d foo=/etc
% echo $foo

% echo ~foo
/etc

hash -d引数がない場合は、名前付きディレクトリハッシュテーブルが印刷されます。

おすすめ記事