cygwin のこと

ssh で毎回パスフレーズを聞かれるのが面倒です。eval `ssh-agent` && ssh-add を使えば一回で済むのだけど、シェルを立ち上げなおすたびに実行するのが面倒です。.bashrc なりなんなりに ssh-agent とか書けばいいのだけど、ssh するつもりないときまでパスフレーズを聞かれるのが面倒です。ずっと悩んでいたのですが、以下を .bashrc に書いておけば解決することにこないだやっと気がつきました。

ssh () {
	if [ "$SSH_AGENT_PID" = "" ]; then
		eval `ssh-agent`
		ssh-add
	fi
	cocot -p utf-8 ssh $1
}

cocot は無視していいです。screen を使えばいいのかもしれないけど、デフォルトのメタキーが Ctrl+A というセンスのなさに納得いかないので screen は使えません。デフォルト重要。


あとついでに、xyzzy を /cygdrive/c/Program\ Files/xyzzy/xyzzycli.exe とかに alias していたのだけど、xyzzy /tmp/foo.txt とかできないのがいらいらするので下のようなのも書いてみました。

XYZZYCLI=/cygdrive/c/Program\ Files/xyzzy/xyzzycli.exe
xyzzy () {
	for i in "$@"; do echo \"`cygpath -m $i`\"; done | xargs "$XYZZYCLI"
}

完全に自分向けメモでした。