まず、このターミナルセッションは、Windows PuTTYからLinux OpenSSHへのsshを介して行われます。これが重要なのかよくわかりませんが、とにかく言わなければならないと思いました。
現在の端末に複数の行を書き込むと、テキストは新しい行ではなく同じ行から始まり、プロンプトが次のように表示されます。
trevor@SEARS-SERVER:~$
これについては次のとおりです(もちろんサンプルテキスト)。
ne lineSEARS-SERVER:~$ this is the text line that is too long to fit on o
現在、私のPS1は.bashrcに次のように設定されています。
export PS1="\n[$(date +%r)] \e]0;\e[0;32m\u\e[m@\e[38;5;52m\h\e[m:\e[38;5;240m\w\e[m\e[97m$\e[m"
また、ウィンドウが特定の幅より小さい場合は、次のことが発生します。
m$ :32:40 PM] trevor@SEARS-SERVER:~
これが私のPS1構成またはPuTTYと関連があることを知っていますが、どちらが、なぜ/方法かはわかりません。助けが必要ですか?
ベストアンサー1
質問はあなたのプロンプトです。
export PS1="\n[$(date +%r)] \e]0;\e[0;32m\u\e[m@\e[38;5;52m\h\e[m:\e[38;5;240m\w\e[m\e[97m$\e[m"
Bashにエスケープシーケンス(非印刷)を無視させるには、その\[
シーケンスをとで囲む必要があります\]
。
それ以外の場合、bashはこれを画面プロンプトの長さの一部として計算し、端末が自動的に次の行に進む時点を混同します。
次のことが役に立ちます。
export PS1="\n[$(date +%r)] \[\e]0;\e[0;32m\]\u\[\e[m\]@\[\e[38;5;52m\]\h\[\e[m\]:\[\e[38;5;240m\]\w\[\e[m\e[97m\]$\[\e[m\]"