gitを使うためにCygwin環境を整えた
「えー!マジーSubversion!? svnが許されるのは小学生までだよねー!(キャハハ」*1
とかいじめられるので、そろそろgitを使おうかなーとmsysgit入れてみたんだけどgit-svnとか文字エンコーディングとか色々はまったのでCygwin環境をこしらえてみた。
個人的には、コマンドが使いたいだけならmsysとかGnuWin32 Toolsでいいし、Linux環境が欲しいなら仮想マシンとか用意するし、中途半端な環境はいらんって考えなんだけど、なかなかそうもいかないってことで。
CygTermでターミナル経由にする
vimは大事だよねー、ってことで普段から使ってる.vimをコピったもののcmd.exeやckwではカラーを中心に残念な感じだったので、CygTermを使ってPuTTY経由で使えるようにしてみた。
本当はソース落としてきてCygwin上でコンパイルすべきなんだろうけど、丁度手元にTeraTermもあるので同梱されてるCygTermをコピって使うことにしたw
実はここで少しハマったんだけど、どうもcygterm.exeとcygterm.cnfはCygwin環境下の/binに置かないといけないっぽい?
最初別の場所に置いてたんだけど、SHELLをどう設定してもファイルが見つからないとか怒られちゃうんだよね。
cygterm.cnfの設定内容はこんな感じ。
TERM = C:\apps\PuTTY\putty.exe -load "cygterm" -telnet %s -P %d TERM_TYPE = xterm-256color PORT_START = 20000 PORT_RANGE = 40 SHELL = /bin/bash --login -i ENV_1 = MAKE_MODE=unix ENV_2 = HOME=/home/pasela
TERMはお好みのターミナルソフトに合わせて設定する。ENV_xもお好みで設定する。
設定内容はhttp://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/を見ればわかるかと。どういう仕組みで動くのかもわかるよ!
んで、上記ではPuTTYを使うので、今度はPuTTY側の設定で"cygterm"っていうセッションを作っておいてやる。名前は-loadで指定するものに合わせれば何でもいいんだと思う。たぶん。
こいつの設定内容としては、
ホスト | 127.0.0.1 |
接続タイプ | Telnet |
といった感じ。あとはお好み。自分はvimで256カラーを使いたかったので端末タイプをxterm-256colorにした。
あとググった感じだとローカルエコーを「強制的にオフ」にしないと表示がおかしくなるようなことが書かれてたりしたけど、「自動」のままで特に問題なかった。
こんな感じで環境設定してcygterm.exeを実行するとターミナルソフトが立ち上がってCygwinのシェルに繋がる。
あ、cygterm.exeはCygwinの/binに入れるけど実行は普通にWindowsから行って問題ない。ショートカットとか作っとくといい。
msysGitから設定をパクる
git自身の設定は好きにするとして、msysgitだとbashプロンプトにブランチの名前が表示されてて便利なのでそれをもらってくる。
msysgitの/etc/profileの最後の方にある
PS1='\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $ '
という箇所を自分の.bash_profileとかにコピーする。
で、この中で使われてる__git_ps1はどこかというと、msysgitではgit-completion.bashというbashの補完設定ファイルに入ってるんだけど、こいつはCygwin版のgitで既に提供されているので、bash-completionを有効にしてやるだけでよい。(thx! id:bleis-tift)
.bashrcの中に/etc/bash_completionを読み込むところがコメントアウトされてるので、そこを有効にすればよいかと。
.gitconfig
模索中