zshで右プロンプトを自動的に消す
普段のコンソール環境では、bashの代わりにzshを使っている。その大きな理由はRPROMPTを使ってプロンプトの右側にカレントディレクトリを表示できること。ディレクトリの階層が深くなっても入力の邪魔にならないのでなかなか便利。
でも、1つ不満があった。それは、コマンドの実行結果をコピペするときに、右プロンプトが邪魔なこと。普通にコピペするとこうなる。
[machu@macbookpro.local] $ cd work [~]
[machu@macbookpro.local] $ ls -l [~/work]
total 8
drwxr-xr-x 4 machu staff 136 1 3 14:44 coffee/
drwxr-xr-x 22 machu staff 748 1 3 14:44 gisty/
drwxr-xr-x 18 machu staff 612 1 3 14:44 github/
[machu@macbookpro.local] $ [~/work]
これって自動的に消せないのかなと思って調べたら、やっぱり設定があった。 transient_rprompt
を設定すると、コマンドの実行直後に右プロンプトが消える。つまり、常に最後の行のみ右プロンプトが残ることになる。
[machu@macbookpro.local] $ cd work
[machu@macbookpro.local] $ ls -l
total 8
drwxr-xr-x 4 machu staff 136 1 3 14:44 coffee/
drwxr-xr-x 22 machu staff 748 1 3 14:44 gisty/
drwxr-xr-x 18 machu staff 612 1 3 14:44 github/
[machu@macbookpro.local] $ [~/work]
というわけでさっそく設定。.zshrcはこうなった。
PROMPT=$BLUE'[${USER}@${HOST}] %(!.#.$) '$WHITE
RPROMPT=$GREEN'[%~]'$WHITE
setopt transient_rprompt