1

RPROMPTzsh 構成でgit 情報を設定しようとしています。

# precmd hook
function precmd {
  vcs_info 'prompt'

  if [ -z "$vcs_info_msg_0_" ]; then
    RPROMPT=''
  else
    RPROMPT=$POWERLINE_COLOR_FG_WHITE$'\u2b82'"%f$POWERLINE_COLOR_BG_WHITE $POWERLINE_COLOR_FG_GRAY"$'$(git_prompt_info)'""$'$(git_prompt_ahead)'" $POWERLINE_COLOR_FG_GRAY"$'\u2b82'"%f%k$POWERLINE_COLOR_BG_GRAY$POWERLINE_COLOR_FG_WHITE "$'$(git_prompt_short_sha) '"%f%k"
  fi;
}

これは私にとってはうまく機能しますが、git リポジトリにいるときはいつでも、プロンプトがかなり遅くなり、無責任になります。多くの人がオンラインで zsh 構成で git プロンプトを使用しているのを目にするのに、なぜそうなのかは不明です。私は何か間違ったことをしていますか?

これがPROMPT全体です。

4

2 に答える 2

0

precmdフックで git リポジトリのステータスを確認するため、プロンプトが遅くなります。

git 情報が変更されたとき、つまりディレクトリを変更したとき (chpwdフック) やコマンドを実行したときにのみ git 情報を更新することで、プロンプトを大幅に高速化できますgit

これは簡単な作業ではありませんが、かなりうまく機能するzsh プラグインzsh-git-promptがあります。Python が必要であることに注意してください。

于 2013-02-20T06:09:52.873 に答える
0

git リポジトリの大きvcs_infoさと、プロンプト データを生成するためにプラグインによって実行されるさまざまなコマンドの数によっては、プロンプトに表示するための情報のフェッチが非常に遅くなる可能性があります。oh-my-zsh私はシェルプロンプトでプラグインを使用していませんvcs_info.git情報を取得すると、現在のブランチ、ステージングされた変更、ダーティな変更を取得するのに約1秒かかります。

于 2013-01-21T20:09:56.637 に答える