SLP Advent Calender 2014 15日目

SLP ADvent Calender2014 15日目の記事です。

去年はなんちゃらprogressの問題をRubyで解いたという記事を書きました。

さて、今年のネタですが、当初はzsh,emacs,vimみたいな細かい設定ができるツールの設定ファイルを晒して どう使ってるかの説明をしよう…と…思ってたのですが、いざ説明つけるとなると結構面倒くさい とか 使ってない設定がかなり残ってる とか いろいろな理由から諦めて、便利だと思って、最近導入したツールの紹介をします。

direnv

https://github.com/zimbatm/direnv

環境変数の切り替えなどをディレクトリ毎に設定でき、cdしたら勝手に設定をロードしてくれる。 また、他のディレクトリへcdすると勝手に設定が削除される。 自分は基本的にrails書いてる時に使う。ディレクトリでdirenv edit . とすると、エディタが起動するので

layout ruby

を追加する。

  • BUNDLE_BIN=$PWD/.direnv/bin
  • GEM_HOME=$PWD/.direnv/ruby
  • PATH=$BUNDLE_BIN:$PATH

となって、インストールしたgemにPATHが通るので、毎回毎回bundle execを打つ必要がなくなる。 あと、bundle install --path hogehoge みたいにpath指定もしなくていい。

また、パスワードの設定などgitの管理から外すために環境変数を使ってる場合にも役立つ。 direnv edit . で開いたファイルの内容として、シェルスクリプトに書くようにexportすればいい。

peco

https://github.com/peco/peco

使ったことがなければgithubに素晴らしいデモがあるので見てみるのがおすすめ。 簡単に説目すると、emacsでいうanything,helmのように複数の候補から選択したものをどうこうするっていうことを シェル上で実現してくれるツール。 zawを使ってたけどpecoの方が機能が豊富で汎用的に使えるので徐々に移行中。

$ ls | peco

とかすると、カレントディレクトリ上のファイルやディレクトリが候補として表示され、 どれかを選んで確定すると、選ばれた候補が標準出力に表示される。 zshwidgetとして関数を定義してあげると色々便利に使える。

ghq

https://github.com/motemen/ghq

gitリポジトリの管理ができるツール。cloneするときにgit cloneの代わりにghq getすると、ghqの管理下にcloneしてくれる。 ghq listとかすると管理しているリポジトリの一覧が見れる。 pecoと合わせて使うと、gitリポジトリへの移動がすごく簡単になる。http://qiita.com/ysk_1031/items/8cde9ce8b4d0870a129d

おまけ 気になってるツール

tmsu

http://tmsu.org/

ファイルやディレクトリをタグ付けして管理するものらしい。 前々からプロジェクトごとにタグ付けとかできれば便利そうと思ってたので、使ってみたい。