私はiTerm2、zsh 5.7.1、およびoh-my-zsh(robbyrussellテーマ)でmacOS 10.15.2を使用しています。
プロンプト印刷はbashに比べて少し遅いことがわかりました。たとえば、を押すと、enterカーソルは最初に次の行の先頭に移動し、しばらくするとシェルプロンプトが表示され、カーソルが元の位置に移動します。たとえば、→ ~
ホームフォルダにあるときに表示されるプロンプトで、カーソルの[]
場合はEnterキーを押すと次のようになります。
0 - アイドル状態
→ ~ []
1 - 押した直後enter
[]
2 - アイドル状態に戻る
→ ~ []
これらの速度低下は、Enterキーを数回すばやく押すと特に顕著です。この場合、空白行がいくつか表示されます。これが私が見るものです
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~
→ ~ []
私はbashシェルから来ており、bashを使用するとそれほど遅くはありません。これがoh-my-zshの問題なのか自然な動作なのかよく分からない。この問題と最終的に解決する方法について詳しく知りたいです。ありがとうございます。
ポリスチレン: 問題は oh-my-zsh で発生します。すべてのプラグインを無効にしてもまだ存在します。
ポリフェニレンスルフィド:以前にSOにこの質問を投稿したことがあります。ありがとうユーザー 1934428彼の助けとこの質問をここに移そうと提案していただきありがとうございます。
答え1
oh-my-zshがデフォルトでプロンプトに何を入力するのかわかりません。おそらく非常に人気のあるプロンプトコンポーネントであり、時間がかかる可能性があるバージョン管理の状態を特定したいと思うかもしれません。
何が起こっているのかを確認するには、次のコマンドを使用してコマンドトレースをオンにします。set -x
。
→~ →~セット-x プロンプトを計算するために実行されるトレースコマンド →~ プロンプトを計算するために実行されるトレースコマンド →~セット+x +zsh:3>セット+x →~ →~
トレースが長すぎて画面からスクロールする場合は、ファイルにリダイレクトしてください。
exec 2>zsh.err
これにより、トレースだけでなくすべてのエラーメッセージがファイルに渡されます。端末でトレースとエラーを取得するには、次のようにします。
exec 2>/dev/tty
トレース形式をカスタマイズできます。PS4
。これは、次のものを含むことができるフォーマット文字列です。早く脱出。たとえば、正確なタイミング情報を追加するには、次のようにします。
PS4='%D{%s.%9.}+%N:%i> '
答え2
gitディレクトリが汚れていることを確認すると、遅延が発生しているようです。
シェルの応答速度を上げるには、端末で実行してディレクトリが汚れていることを確認する機能を無効にします。
git config --add oh-my-zsh.hide-dirty 1
すべてのシェルを再起動することを忘れないでください。
答え3
私も同じ問題に直面し、これがgit_prompt_info
シェルの速度が遅くなった理由でした。いくつかのoh-my-zshテーマは、プロンプトで一種の「ハードコードされた」gitプラグインを使用します。
したがって、このコマンドを使用して取得できるリストの1つを検討してください。
grep --files-without-match "git" ~/.oh-my-zsh/themes/*
答え4
私のラップトップでこの問題を解決し、~/.oh-my-zshフォルダに移動し、git pull
約1200のコミットが保留中でした。その後、iTermを閉じて再度開きます。 oh-my-zshが更新中であることを知らせます。