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