zsh完了を選択的に無効にできますか?

zsh完了を選択的に無効にできますか?

私はpreztoを使用していますが、zsh新しいシェルを起動するのが少し遅いことがわかりました。 (注:私は設定を他の遅いシステムに移動する前に高速システムで最適化したいと思います。)

ベンチマークtime zsh -i -c exit

  • 0.046 bash:.
  • 0.080:zshプレストはありません。
  • 0.092:zshpreztoがありますが、モジュールがロードされませんでした。
  • 0.138: zshpreztoを使用してcompletion
  • 0.308:zshpreztoを使用し、すべての「基本」モジュールをロードします。

まず、ローディングzshよりbash74%遅いです。 73%の追加速度低下(preztoおよび完了ローディングを除くすべてのモジュールを使用)に対応できますが、285%の速度低下(すべてのモジュールを使用)は少し高すぎます。

これらの完成のいくつかは役に立ちますそのうちのいくつかを選択的に無効にする方法はありますか?私はこれについて聞いたことがあります他の場所で、これがただタップ完了速度を上げるためのものなのか、シェルのロード速度を上げるためのものなのかはわかりません。 (オプションで完了を無効にできる場合は、速度低下の原因を分析して把握できます。)

ベストアンサー1

preztoが/usr/lib/prezto/modules/completion。すべてがアクティブな状態でコンテンツを削除しました/usr/lib/prezto/modules/completion/init.zsh。その後、そのファイルから系統的に行を削除し始め、速度低下を引き起こす1行を分離することができました。

unsetopt CASE_GLOB

compinit私の特別なケースでは、preztoが~/.zshrcオフの状態で実行され、速度が遅くなり、compinitロード時間が3倍に増加したことに注意してください。

おすすめ記事