Cygwin 1.7 でscreenとかvimで:shell起動したときのシェルでaliasが設定されなくて、地味に不便だった。原因は起動されるシェルがbashじゃなくてshだったから。環境変数$BASHの値を確認すると alias 設定されない場合 /bin/sh とか /usr/bin/sh になってた。man screenを見てみると $SHELL で指定されているシェルを起動するようなこと書いてあるんだけどそれも効いてないような気がする。地味に不便だったのをしばらくほったらかしにしてたんだけど、いいかげん我慢できなくなってきた。そこで、screen だけ ~/.screenrc に以下を追記することで回避してみた。
shell /bin/bash
~/.vimrc には以下を
:set shell=/bin/bash
最初なんでaliasだけ設定されないかわからなった。~/.bashrc とか ~/.bash_profile がちゃんと読み込まれてないんじゃないかとか、その記述にエラーあるんじゃないかとか調べたけどおかしそうなところはなかった。また、環境変数はちゃんと~/.bashrcで指定したものが設定されていた。原因わかってみればなんのことはない親プロセスの環境変数を引き継いでいただけだろうけれど。Cygwinじゃない環境で screen 起動してみたらちゃんとシェルは$SHELL の bash になってたし、alias も設定されていた。恐らく alias 設定されないの Cygwin だけじゃないかと思う