zshの$ PATHキャッシュからオートコンプリートインデックス(または何と呼ばれる)とバイナリを再構築します。

zshの$ PATHキャッシュからオートコンプリートインデックス(または何と呼ばれる)とバイナリを再構築します。

新しいソフトウェアをインストールした後、zshで開かれた端末は新しいコマンドを知らず、そのコマンドに対してオートコンプリートを生成することはできません。明らかに新しい端末を開くと問題は解決しますが、オートコンプリート機能が既存の端末で機能するようにインデックス(または何と呼ばれる)を再構築できますか?

私は試しましたが役に立ちcompinitませんでした。また、シェルに依存しない方法はありますか?答えを確認する方法があれば良いでしょう(何かを削除して再インストールすることを除く)。

私は、コマンド名のいくつかの文字を入力してからキーを押してから、残りを実行してフルネームをTab抽出zshする必要があるということです。

ベストアンサー1

実行可能なコマンドのキャッシュを書き換えるには、rehashまたはを使用しますhash -rf

このオプションを設定解除しないでくださいhash_list_all。これにより、ディスクアクセスの回数が減りますが、キャッシュの更新頻度が低くなります。

コマンドを入力したくない場合は、~/.zshrczshに次の行を入れて、操作が完了したときにキャッシュを信頼しないように指示できます。

zstyle ":completion:*:commands" rehash 1

パフォーマンスのコストはありますが、今日の一般的なデスクトップ設定では無視してもかまいません。 ($PATHNFSまたはRAMが不足しているシステムを使用している場合はそうではありません。)

コマンド自体はマニュアルページzstyleに文書化されています。zshmoduleスタイル値は、zshcompsysおよびzshcompwidマニュアルページに文書化されているか、ソースコードを読み取ることができます(_command_namesここでは関数のソースコード)。読むことができる文書が必要な場合は...見つけたら教えてください!

¹zsh≥4.3.3が必要です。ありがとうございます。クリス・ジョンソン

おすすめ記事