Zsh очень медленный внутри моего репозитория Git

Zsh очень медленный внутри моего репозитория Git

Мой Zsh очень медленный внутри определенного моего репозитория Git. Когда я гуглю "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, но ссылки на принятый ответ не работают.

Как сделать так, чтобы Zsh не тормозил внутри репозитория Git?

решение1

Вы можете выполнить следующую команду, чтобы полностью отключить функцию git status.

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после каждой команды, чтобы получить сводку. В моем случае причиной замедления был совершенно не связанный с ней плагин.

Связанный контент