at posts/single.html

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

関連する日記