端末の物理バッファーが oh-my-zsh 構成に示されているものと一致しません。

端末の物理バッファーが oh-my-zsh 構成に示されているものと一致しません。

oh-my-zsh設定でカーソルがテキストと同期しないという異常な問題が発生しました。 (私は主に仕事でscreenこれを使いますkonsole

たとえば、新しいターミナルラインでは、プロンプトに何も入力されず、数秒後に何の理由もなくカーソルが前に移動します。まるでゴーストがそうであるように、キューの開始位置が前方に移動するのと同じです。

もう1つの機能は、最初のカーソル位置にバックスペースできず、その位置の文字でバックスペースできないことです。

私が見ると、カーソルの視覚的な位置と表示されたテキストが編集中のテキストの物理バッファ内の実際の位置と一致しないようです。

例えば。help端末に入力し、上矢印キーを使用して前のコマンドをインポートしたとしますhelp。何かが起こっているようで、結果としてバックスペースをすると、まだ表示されている場所にhelpのみバックスペースできます。実際、物理的にバッファの完全な単語が消去されます。そのため、再入力しようとすると画面が出ますが、Enterを押すとコマンドが実行されます。しないでしょう。ehhelphelphhelphelphhelp

ルートアカウントでのみ発生しますが、rootとエンドユーザーに同じ設定を使用していると確信しています。

最終的な結果は、abcde画面でバックスペースを使用するよりもバックスペースを押して滞在するc可能性が高いことです。bacdeabde

どんなアイデアがありますか?

修正する:

レビューに関する追加情報です。

私のヒントは、%{%f%b%k%}$(build_prompt)通常のアカウントとあなたのアカウントrootが同じであることです。ただし、問題はrootアカウントでのみ発生します。

答え1

私はoh-my-zshでこの問題に直面し、docker次の行で解決しましたDockerfile

RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
    locale-gen
ENV LANG en_US.UTF-8  
ENV LANGUAGE en_US:en  
ENV LC_ALL en_US.UTF-8 

ホストコンピュータで直接実行している場合は、その手順の手順を実行してRUN環境export変数のエクスポートを試してください。

変更を永久に適用するには~/.zshrc

これがうまくいくかどうかをテストするには:

print -l -- '+--+' '|\u26A1|' '+--+'

以下を表示する必要があります。

ここに画像の説明を入力してください。

関連情報