zshのcdrを使ったワンライナー

 昨日の続き。
doroyamada.hatenablog.jp

 「チルダが展開されないならば置換すればいいじゃない」と思ってやってみた。引用符とか、環境変数中の/が置換の区切りとなってしまう問題とか、いろいろと試行錯誤した結論がこれ。

cd `cdr -l | awk '{ print $2 }'| sed -e "s|^~|$HOME|g" |peco`

 置換はできている。

 cdもできた(カレントディレクトリはコマンドプロンプトで表示されている)。

 zshのaliasに組み込んでみたけど、これまた引用符がいろいろややこしい。こういう時は関数にすればいいらしい。.zshrcに以下を記述。

function cdl(){
	cd `cdr -l | awk '{ print $2 }'| sed -e "s|^~|$HOME|g" |peco`
}

 コマンドラインからcdlで起動できた。