問題があります。 bashに非常に長いコマンドを入力すると、端末は私が入力した内容を正しくレンダリングしません。次のようなコマンドがあればいいです。
username@someserver ~/somepath $ ssh -i /path/to/private/key
[email protected]
コマンドは2行にレンダリングする必要があります。代わりに、通常、次のようにプロンプトの上部に書き込みを開始します。
[email protected] -i /path/to/private/key
戻っていくつかのパラメータを変更することにした場合、カーソルがどこに表示されるのかわかりません。時にはプロンプトの途中に表示されますが、通常は行に表示されます。以上私がこれを入力しているところ。
前のコマンドを実行すると、Upもっと面白いことが起こります。私はgnome-terminalとterminatorだけでなくi3とCinnamonでもこれを試しました。誰かがこれが私のヒントであることを提案し、ここにあります。
\[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\]
Ctrll, reset
, ,clear
やろうとするが,再び命令を入力してもUp同じ現象が発生します。
確認してみるとcheckwinsize
bashで有効になっています。これは80x24やその他のウィンドウサイズで発生します。
これが私が一緒に暮らす方法を学んだのでしょうか?私が知る必要がある魔法はありますか?非常に短いプロンプトだけを使用することにしましたが、問題は解決しません。
ベストアンサー1
印刷できないシーケンスは次のようにする必要があります。に含まれてい\[
ます\]
。あなたを見ているPS1その後には閉じていないシーケンスがあります\W
。ただし、2番目の項目は重複しており、前の文を繰り返します。「1;34」。
\[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\]
|_____________| |_|
| |
+--- Let this apply to this as well.
したがって、予想される色が必要です。
\[\033[1;32m\]\u:\[\033[1;34m\] \W \$\[\033[0m\]
|_____|
|
+---- Bold blue.
維持する「オリジナル」これはまた働きます:
\[\033[1;32m\]\u:\[\033[1;34m\] \W\[\033[1;34m\] \$\[\033[0m\]
|_| |_|
| |
+-----------+-- Enclose in \[ \]
編集する:
この問題は、bash
プロンプトが実際より長いと信じているために発生します。簡単な例を挙げると、次のようになります。
PS1="\033[0;34m$"
1 2345678
プロンプトは1文字ではなく8文字と見なされます。したがって、ターミナルウィンドウに20個の列がある場合、12文字を入力した後は20文字と見なされ、ラップされます。バックスペースやCtrl+u。 9列で停止します。
ただし、最後の列以外の新しい行は開始されないため、最初の行は上書きされます。
入力し続けると、その行は32文字後に次の行に進みます。