oh-my-zsh プロンプトが非常に遅い。この問題を解決する方法

oh-my-zsh プロンプトが非常に遅い。この問題を解決する方法

私は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> '

おすすめ記事