新しいソフトウェアをインストールした後、zshで開かれた端末は新しいコマンドを知らず、そのコマンドに対してオートコンプリートを生成することはできません。明らかに新しい端末を開くと問題は解決しますが、オートコンプリート機能が既存の端末で機能するようにインデックス(または何と呼ばれる)を再構築できますか?
私は試しましたが役に立ちcompinit
ませんでした。また、シェルに依存しない方法はありますか?答えを確認する方法があれば良いでしょう(何かを削除して再インストールすることを除く)。
私は、コマンド名のいくつかの文字を入力してからキーを押してから、残りを実行してフルネームをTab抽出zsh
する必要があるということです。
ベストアンサー1
実行可能なコマンドのキャッシュを書き換えるには、rehash
またはを使用しますhash -rf
。
このオプションを設定解除しないでくださいhash_list_all
。これにより、ディスクアクセスの回数が減りますが、キャッシュの更新頻度が低くなります。
コマンドを入力したくない場合は、~/.zshrc
zshに次の行を入れて、操作が完了したときにキャッシュを信頼しないように指示できます。
zstyle ":completion:*:commands" rehash 1
パフォーマンスのコストはありますが、今日の一般的なデスクトップ設定では無視してもかまいません。 ($PATH
NFSまたはRAMが不足しているシステムを使用している場合はそうではありません。)
コマンド自体はマニュアルページzstyle
に文書化されています。zshmodule
スタイル値は、zshcompsys
およびzshcompwid
マニュアルページに文書化されているか、ソースコードを読み取ることができます(_command_names
ここでは関数のソースコード)。読むことができる文書が必要な場合は...見つけたら教えてください!
¹zsh≥4.3.3が必要です。ありがとうございます。クリス・ジョンソン