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
使ったことがなければgithubに素晴らしいデモがあるので見てみるのがおすすめ。 簡単に説目すると、emacsでいうanything,helmのように複数の候補から選択したものをどうこうするっていうことを シェル上で実現してくれるツール。 zawを使ってたけどpecoの方が機能が豊富で汎用的に使えるので徐々に移行中。
$ ls | peco
とかすると、カレントディレクトリ上のファイルやディレクトリが候補として表示され、 どれかを選んで確定すると、選ばれた候補が標準出力に表示される。 zshのwidgetとして関数を定義してあげると色々便利に使える。
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
ファイルやディレクトリをタグ付けして管理するものらしい。 前々からプロジェクトごとにタグ付けとかできれば便利そうと思ってたので、使ってみたい。