fishっぽいpwd: /usr/loacl/binが/u/l/binになるやつ
30分プログラム、その439。fishにあるprompt_pwd関数をPerlで再現してみる。
このprompt_pwdはわりと素敵で、/usr/local/binを/u/l/binみたいに最後のディレクトリ名以外を一文字に省略してくれる。これをscreenのステータスラインに表示するようにすると、かなり幸せになれる。
というわけで、これをPerlで作っちゃおう!
使い方
$ echo '/foo/bar/baz' | perl fish-line-pwd.pl /f/b/baz
実際はワンライナーにして、~/.zshrcに組み込んでやる。
function chpwd(){ emulate -L zsh local dir dir=$(pwd | perl -ne 's#$ENV{"HOME"}#\~#g; ($x,@xs) = reverse split "/"; print map {substr($_,0,1) . "/" } reverse @xs;print $x;') screen -X title "$dir" } **ソースコード >|perl| #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; while(<>){ s!$ENV{'HOME'}!\~!g; my ($x,@xs) = reverse split('/',$_); print map {substr($_,0,1) . '/' } reverse @xs; print $x;