プロンプト中で改行と右端に表示
http://journal.mycom.co.jp/column/zsh/002/index.htmlを見たときは、右プロンプトにcwdを表示していた。
http://www.jmuk.org/diary/index.php/2007/02/23/2/を見てから、やめた。
右にパスが表示されたところで
- 始点が変わるから見づらい
- 常に定位置からパスを書き始めて欲しい
- 入力中のコマンドが右のパスにぶつかりそうになったときに消えたところであんまり嬉しくない
- むしろcwdが分からなくなる
- cdするたびにclearしているから
- むしろcwdが分からなくなる
俺のしたいことは
- cdする度にclearしたい
- cdする度にls -lもしたい
- ファイル数がけた違いのdirにcdしたときは残念な気分になるが滅多に無いのでいいや
- 常に定位置かつ始点を変えずにcwdを表示したい
- 右端に何か表示したい
で、zshなら簡単に
chpwd() { clear;echo \[`pwd`\];ls -l --color=tty } PROMPT="[%B%~${default}%b] %E %b%# " RPROMPT='[%n@%m]'
で実現出来る。
普段はzshしか使わないのだけど、bashしか無い環境ではbashを使うしかない。bashで↑を実現しようと思ったが
全然分からなかったのでhttp://d.hatena.ne.jp/mrkn/20090121/the_prompt_of_bashをパクって
L1='\[\e[$[COLUMNS-$(echo -n " [\u@\h]" | wc -c)]C\e[m[\u@\h]\e[\e[$[COLUMNS]D\]' PS1="${L1}[\w]\n$ " function cd () { clear builtin cd $1 echo [`pwd`] ll }
として俺に平穏が訪れた。
本当は(R)PROMPT/PS1をcdの後に描画したいのだけど分からないので挫折。pwdで妥協。