unknownplace.org

# 2008-02-19

zsh の prompt に git のブランチ情報を表示

svk でやってたものの git 版。

git branch info in zsh prompt

ref: refs/heads/ という部分を消していいのか、ほかのものが入る場合があるのかよくわからなかったので全表示している。

まぁぱっと見で git とわかるからいいかということでとりあえず。

codereposにあげてあるよ。

あぁ、なんか ref: とかすらでずに sha-1 ハッシュ値だけのときもある。もう少し調べないとだめだ。

# 2008-02-04

branchでもtrunkでもないときはdepotpathそのまま表示するようにしてみた

show svk depot path in zsh prompt

これだけでもいいかもしんない。

.zshrc といっしょにcodereposにあげた。

http://coderepos.org/share/browser/dotfiles/zsh/typester

さっきのsvkpath.plの修正版

File::HomeDirPath::Class を使わずに愚直にかいてみたがあまり体感変わらず、ためしに YAMLYAML::Syck にしてみたら激早くなった。

#!/usr/bin/env perl

use strict;
use warnings;

use YAML::Syck;

my $path   = $ARGV[0] or die;
my $config = YAML::Syck::LoadFile( $ENV{HOME} . '/.svk/config' );

my $hash = $config->{checkout}{hash};
my @path = split '/', $path;

my $svkinfo;
do {
    $svkinfo = $hash->{ join '/', @path }
} while !$svkinfo and pop @path;

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

こんな感じ。

このくらいの体感速度なら割と普通に使えそう。

zsh の PROMPT に svk の trunk|branches/... を表示してみるテスト

毎回svk infoしてどこにいるか確かめるのが面倒になったので、

PROMPT='%(?..exit %?)
 %{%}%~%{%} %{%}`perl /home/typester/dev/scratch/svkpath.pl $(pwd)`%{%}
%{%}%(!.#.$)%{%}%{m%} '

PROMPTをこんなにして

#!/usr/bin/env perl

use strict;
use warnings;

use YAML;
use File::HomeDir;
use Path::Class qw/file dir/;

my $path   = $ARGV[0] or die;
my $config = YAML::LoadFile( file(File::HomeDir->my_home, '.svk', 'config') );

my $hash = $config->{checkout}{hash};
$path = dir($path);

my $svkinfo;
do {
    $svkinfo = $hash->{"$path"}
} while !$svkinfo and $path ne ($path = $path->parent);

exit unless $svkinfo;

if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
    print '(' . ($trunk || $branch) . ')';
}

とかしてみた。

これで

show svk info

こんな感じになるわけだけども、毎回perl呼んでるので重い。

軽くできないかなー。

perlでやるなら裏でデーモン化してそこ呼ぶようにするのがいいのか。でもそこまでがんばる必要があるのかどうか。

# 2007-11-07

適当なレンタルサーバー、redhat es4 でたぶんredhatデフォと思われるzshでやってもできるのを確認した。色分けはされなかった。

treeコマンド

tree コマンドが便利 - IT戦記

ほー。

僕はこんなことしてた。

ls *(/)

とか

ls **/

zsh。デフォのzshだと僕が思っているような挙動にならないかも。

あんまりつかわないけど。。

ll (-l) にするとちょっとtreeっぽくなる。

# 2006-10-05

dabbrev on zsh

技術メモ帳 - 直前に入力したコマンドの最後の引数を補完

Esc + ドット(.) と入力すると、

直前に入力したコマンドの最後の引数を補完してくれる。

複数回入力する事によって、

過去にどんどんさかのぼっていく。

naoyaさんのブックマーク経由。知らなかったわぁ。

んで、それ試しててなんとなくとなりの、M-, 押してみたらなんか補完された!

おお、これヒストリからの補完キーだ。ヤバスヤバス。これも便利だ。emacsとキーをあわせようかな。

# 2005-12-10

PERL5LIB

一時的に trunk 使いたいときとか

export PERL5LIB=`echo ~/workdir/Catalyst/**/lib(/) | sed -e 's/ /:/g'`

とかしてんですが、もっと簡単に書ける?>zsh

# 2005-12-05

cd -(tab)

gorou さん教えてもらう。知らなかった。

便利すぎ!!

# 2005-12-01

C-q == ESC-q

しらなかったよ。。bindkey -e のときだけかもしれない。

# 2005-11-24

ignore case

zsh とか emacs の補完で大文字小文字区別しないようにする設定よくみるからちょっとやってみたけど、うざくね?

たとえば OSX とかで /Users と /usr とか見に行こうとすると、もうっ!ってなる。

# 2005-11-21

svk depotpath 補完 #2

と思ったら公式サイトにあった。bash 用と zsh 用。すばらし!

svk depotpath 補完

誰か作ってないかなー。

# 2005-10-30

今日のzshrc

function viewlastlog () { find ~/tiarra/log/$1 | tail -1 | xargs lv }

追加。IRC指定のチャンネルの最後の日のログひらくの

Page 1 of 2: 1 2