Git リポジトリ内での Zsh の速度が非常に遅い

Git リポジトリ内での Zsh の速度が非常に遅い

私の Zsh は、ある Git リポジトリ内では超遅いです。Google で「zsh git slow」と検索すると、Git に関する結果がたくさん出てきます。自動補完遅いですが、自動補完は必ずしも私の問題ではありません。すべて

すべてのプラグインを削除してみましたが、不思議なことに、新しいシェルを開いても何も起こりませんでした。Zsh は引き続き Git リポジトリ内で Git の処理を​​実行していました。

このスニペットを見つけたのはこのページ:

function git_prompt_info() {
  ref=$(git symbolic-ref HEAD 2> /dev/null) || return
  echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}

これにより、すべてが再び高速化されましたが、次のようなプロンプトも表示されました。

➜  snip git:(master

右括弧がないことに注意してください。これはちょっと残念です。さらに、このすべては、私が行う必要のないハックのように思えます。

有望そうな SU の質問もありますが、受け入れられた回答のリンクは無効です。

Git リポジトリ内で Zsh が遅くならないようにするにはどうすればよいですか?

答え1

git ステータス機能を完全に無効にするには、次のコマンドを実行します。

git config --global oh-my-zsh.hide-status 1

または、次の行を に追加します~/.zshrc

DISABLE_UNTRACKED_FILES_DIRTY="true"

答え2

遅いときに呼び出されるシェル コマンドをトレースするには、次を実行するset -xか、起動ファイルに次を追加します。自動補完を実行するコマンドを含むすべてのコマンドが表示されます。

git一部のコマンドが遅いと思われる場合は、次のような追加の変数を定義できます。

exports GIT_TRACE=1

その他の例については、以下を参照してください。git/git-shell 関連の問題をデバッグするにはどうすればいいですか?

答え3

プラグインとして削除したらzsh-autosuggestions、速度が上がりました。私の場合は、 とは何の関係もありませんでしたgit

答え4

で速度低下の原因を確認することができます。これを(または同等のもの)zprofに追加します。~/.zshrc

zmodload zsh/zprof

次に、zprof各コマンドの後に実行して概要を取得します。私の場合、速度低下の原因はまったく関係のないプラグインでした。

関連情報