4

bash プロンプトとライン ラッピングの動作に問題があります。静的プロンプトを使用する場合

export PS1="test$ ";   ### Works perfectly

プロンプトに長い行を入力すると、うまく折り返されます。履歴の上下スクロールも正常に機能します。次のような動的プロンプトを使用する場合:

export PS1="\u@\h(\W)$ ";    ### Long lines don't wrap at all

長い列がスクランブルされました。長い行が正しく折り返される修正が見つかりました。(http://hintsforums.macworld.com/showthread.php?t=17068)。

export PS1="\[\u@\h(\W)$ \]";  ### Long  lines wrap while typing, but not while scrolling up/down through previous commands

ただし、プロンプト履歴を上下に移動すると、行が折り返されません。動作を言葉で説明する方法はわかりませんが、試してみます-上に移動すると(上矢印キー)、最後のコマンドの半分が消費され、カーソルは行が折り返された場所の間のどこかに行き着きます。

これに対する解決策は何ですか?

多くの Linux ディストリビューションでは、動的プロンプトがすぐに正しく機能することを覚えています (これは私の職場にあります)。

よろしく、

JP

4

1 に答える 1

1

この問題はおそらくプロンプト自体に関するものではなく、ターミナル エミュレータの動作が適切である可能性が高いです。

私はこのbashプロンプトを使用します:

export PS1="\[\e[1;34m\]\u@\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]"

これは、実際には次のように 2 行にわたって表示されます。

aks@anywhere:sh 01:43:27 (1) <1017>
$ env | grep PS
PS1=\[\e[1;34m\]\u@\h:\W \t (\j) <\!>\n\$\[\e[0;00m\]

また、CTRL-N、CTRL-P、または矢印キーのいずれかを使用して、履歴をスクロールしても問題なく動作します。

Terminal.app (MacBookPro 上) で xterm-color を使用しています。

于 2011-01-11T09:45:48.280 に答える