長すぎる場合は改行プロンプトを追加してください

長すぎる場合は改行プロンプトを追加してください

bashプロンプトで他の情報(gitなど)と一緒に作業ディレクトリ全体を表示することは時々非常に長くなります。

次の行にコマンドを入力できるように、プロンプトの末尾に改行文字を追加したいのですが、プロンプトが非常に長い場合にのみたとえば、50文字を超えています。

| ~ $ Typing a command here is nice                                              |
| ~/foo/longDirectoryName/longsubirectory/src/package (master +*) $ Typing here s|
| ucks. I want to just start on a new line                                       |

私が望むなら明らかにいつも次の行にコマンドを入力すると、改行文字を追加できますPS1この投稿)。ただし、PS1これはフォーマット文字列にすぎず、条件付きでこれを行う方法が見つかりませんでした。


PS 私は実際にZSHを使用してAgnosterテーマをカスタマイズしようとしていますが、通常bash関連のソリューションが役に立つと思います。

ベストアンサー1

ではzshこれが%<number>(l:<yes>:<no>)迅速な拡張のためのものです。数値が負の場合、たとえば-30画面の右端に30文字以上が残っている場合はyesテキストを出力し、そうでない場合はno次のようにします。

PS1=$'%~%-30(l::\n)$ '

"$ "行に使用できる文字が28文字未満の場合(30 - )、改行文字が挿入されます。

あなたはあなたのことができます50以上そして:

PS1=$'%~%50(l:\n:)$ '

しかし、私の考えでは、利用できない最大スペースを確保するよりも、最小限の空きスペースを確保する方が便利です。

バラより手動もっと学ぶ。長いプロンプトを切り取り、省略記号に置き換える方法の他のガイドラインもあります。これらのガイドラインも役に立ちます。

zshプロンプトはbash実際には解決策に近いtcshため、解決策がbash役に立つ可能性は低くなりますzshが、一般的にその逆はより正確です。

おすすめ記事