このテーマをインストール
婚活市場に残るのは男性への依存傾向が強い人たち。男性が求めているのは依存じゃなくて「承認されること」だから、悲しいミスマッチが起きる。
リーダーが言葉を語る際には、だから「ここは手を抜いていい」を明示的に、あるいは暗黙に語らないといけない。全部頑張る、頑張らざるをえない危機にあっては、「ここは手を抜く」というリーダーの決断が、そのまま問題対処の戦略になる。

今までdotfilesは会社で使ってるものがメインで、家やノートPCで使うものはそこからコピペしたりして使ってました。たまにDropboxで同期させてシンボリックリンクを作ったりもしていたけど、結局面倒であまりメンテしていませんでした。

そんな感じでなんとなくお茶を濁していたんですが、最近チームの開発環境がSubversionからgitに引っ越しました。大量の.gitconfigの設定とエイリアスができあがり、今も頻繁に更新しています。そうなると当然家のマシンでも同じコマンドを使いたくなり、そろそろ今の管理方法に限界を感じるようになりました。

そこで、いい加減やる気を出して、dotfilesをGitHubでうまいこと管理できないかと挑戦してみました。

前提条件

まずはzshの設定を見直し

今までは.zshrcにべたーっと設定を書いていて、会社と家の環境で微妙に追記したり削ったりして使ってました。この.zshrcがかなり長くなっていて手を焼いてたんですが、最近oh-my-zshの存在を知りました。

テーマ(PROMPT)は今使ってるのと結構変わるけど、必要な設定は普通に揃ってる感じ。oh-my-zshのプラグインの仕組みを使えば、今までの長い.zshrcを分割して管理できそう!というわけで、zshまわりはoh-my-zshに乗り換えることにしました。

homesick + GitHubでドットファイル管理

最近GitHub does dotfilesを見ていたら、homesickというよさげなプロジェクトが紹介されていることに気付きました。gemとして提供されていて、簡単にGitHubでドットファイルが管理できるらしいです。

さらっと紹介すると、

$ homesick clone リポジトリ

でGitHubのリポジトリをcloneして、

$ homesick symlink リポジトリ

リポジトリのhomeディレクトリ以下にあるドットファイルシンボリックリンクをローカルに作ってくれるものです。

更新するときはこれでいけます。

$ homesick pull リポジトリ

oh-my-zshとhomesickを使ったらよさそうだ!と思って、早速やってみました。

できあがったリポジトリ

ama-ch/dotfiles

インストール方法

README.mdに書いてあることそのまんまですが。事前にインストールしとくものを除けば、使い始めるまでの手順はこれだけです。

1. dotfilesをGitHubから取得してsymlinkを作成する

$ homesick clone ama-ch/dotfiles
$ homesick symlink ama-ch/dotfiles

2. oh-my-zshをインストールする

$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

以上で、dotfilesのインストールは完了です。

設定の書き方で注意したポイントも書いときます。

oh-my-zshの設定

oh-my-zshはホームディレクトリに.oh-my-zshというディレクトリを作成します。この中に各種プラグインやテーマを追加していきます。自分のカスタマイズ内容はデフォルトだと~/.oh-my-zsh/custom以下に追加します。

普通にリポジトリにカスタム内容である .oh-my-zsh/custom を追加すると、oh-my-zshのインストールが失敗するようになってしまいます。.oh-my-zsh以下を全部pushしてしまえばいいのかも知れないけど、お行儀が良くない。そこで、.zshrcの3行目に以下の行を追加しています。

ZSH_CUSTOM=$HOME/.oh-my-zsh-custom

ZSH_CUSTOMという変数をセットすると、~/.oh-my-zsh/customの代わりにその値が使われるようになります。これで、.oh-my-zsh自体のディレクトリとカスタム設定のディレクトリを分離できます。

環境依存設定の切り出し

Ubuntuでだけ使う設定はubuntuプラグインを作ってそこに切り出しました。Macだけの設定は今のところありません。

dotfilesを書き換えたい場合

普通に書き換えてOK。例えば~/.gitconfigを書き換えると、~/.homesick/repos/ama-ch/dotfiles/home/.gitconfigを書き換えることになります。ここは普通にcloneされたgitリポジトリなので、書き換えても問題ありません。

コンフリクトさえしなければ、

$ homesick pull ama-ch/dotfiles

で普通に更新できます。コンフリクトしてしまう場合でも、普通に解消するか別ブランチを切ったりして対応すれば問題ありません。

おわり

とりあえずこんな感じです。まだ.emacsとか整理するのが面倒でpushできてない設定もありますが、GitHubで管理すると紛失したりする心配がなくて嬉しいです。

ついでにMacPortsをやめてHomebrewにしたりして色々スッキリしました。作業環境を見直すと、人生を見直す良い機会になりますね。おしまい。

oh-my-zshとhomesickを使ってdotfilesをGitHubで管理するようにした http://bit.ly/10rgvsy (via redtower)
切羽詰るの「切羽」とは、日本刀の鍔(柄や鞘に接する部分)の両面に添える薄い楕円形の金物のことで、これが詰まると刀が抜けなくなる。
窮地に追い詰められた時に切羽が詰まると、逃げることも刀を抜くことも出来なくなるため、為す術が無くなる意味となった。
また、切羽の語源は、「狭鍔(せつば)」または「副鍔(そえつば)」の転といわれる。
Facebook で同級生の女の子が実験が失敗して困っていたので、かつてその分野を研究していた僕は「RNA の精製がまずい、プライマーの GC 含量がどうたら」と意見したのだけれど、イケメンが「失敗は成功のもとだよ」とコメントしていて、僕がモテないのはこういうことだと思った。