Terminalの折り返し挙動が怪しい件
OS X環境で何処かからコピペした.bashrcを使っていたら,PS1の環境変数の影響で折り返し挙動が怪しくなっていたので,修正したメモ。怪しい挙動っていうのは,具体的には長いコマンドを入力したときに改行されずにそのまま行頭から文字が上書きされてしまうという現象。
変更前のPS1の設定。エスケープシーケンスを「\[〜\]」で囲っていないのが直接の原因。
export PS1="[\e[1;32m\u\e[m@\h \W]\\$ "
変更後のPS1の設定。エスケープシーケンスがわかりづらいので変数に切り出すなどした。
PS1_COLOR_BEGIN="\[\e[1;32m\]" PS1_COLOR_END="\[\e[m\]" export PS1="[${PS1_COLOR_BEGIN}\u${PS1_COLOR_END}@\h \W]\\$ "
これでめでたし。ちなみに,ユーザー名にわざわざ色を付けるのは,(これは先輩からの受け売りだが)コマンドの実行結果の区切りを目視ですぐ把握できるようにするための工夫。