web-dev-qa-db-ja.com

zshのより高速な起動

私はtmuxが大好きですが、新しいペインまたは新しいウィンドウで分割を作成する必要があるときはいつでも、zsh initscripsや.profileなどを実行する必要があります。実行には数秒かかります。 fasd などのようなものを初期化する

起動を速くすることは可能ですか?

4
iLemming

「fasdなどのようなものを初期化する。」 —ええと、複雑なことをするのには時間がかかるはずです。

Zshの起動を高速化するための一般的なヒントを次に示します。

  • 実際に必要なコマンドのみを実行してください。すべての人に対応するふりをするさらに別の構成レイヤーを定義するoh-my-zshのような巨大な汎用フレームワークを使用しないでください(ただし、実際には使用しません)。
  • サブプロセスの実行は避けてください。短い文字列の操作には、cutsedawkなどではなく、zshの組み込み構造を使用します。
  • 大きなものにはバイトコンパイルされたファイルを使用します。
  • 完了情報がキャッシュされていることを確認します。-dcompinitに渡します。
  • 物事を怠惰に、つまり最初の使用時にロードします。 autoloadを自由に使用してください。

非常に時間がかかっているものを見つけるには、.zshrcのプロファイルを作成します。

  • Zshプロファイラーからいくつかの測定値を取得できます。 zmodload zsh/zprofの先頭に.zshrcを追加し、zprofを実行します。
  • Zshが実行していることをトレースできます(トレース自体は速度を低下させますが、ほぼ均一な方法であることに注意してください)。 setopt Prompt_subst; zmodload zsh/datetime; PS4='+[$EPOCHREALTIME]%N:%i> '; set -xの先頭に.zshrcを追加します。