2010-10-12
最近の vim の plugin 管理
最近 ~/.vim/ 以下をいったん全部削除して入れ直した secondlife ですこんばんは。ついでに .vim の管理も svn から git に今更しました。
で、今までは plugin をふつーにどばーと入れていたんだけど、github で公開される vim plugin も増えてきたので Tim Pope 先生(rails.vim の作者)が作ってる pathogen.vim で管理することにした。これを使うと vim の plugin も ruby の bundler ぽく管理ができる。
使い方も簡単で
から落として、.vim/autoload に入れれば完了。あとは .vim/bundle/ なディレクトリにプラグインごとにディレクトリ掘って入れていけばおkという手軽さ。これが git の submodule と相性が良くて、github なプラグインは .vim/bundle に突っ込むだけ
git submodule add git://github.com/tpope/vim-haml.git .vim/bundle/vim-haml
わおお手軽。
こんな感じになります。git なのは submodule で、そうじゃないのは直接ぶち込めるので便利。
GET の URL の長さの問題
実装的な話です。IE の GET の長さ制限はほっておいて、各所でうまくできなかった…。GET で base64 な画像データを渡してやって保存できる API つけたら共用 gyazo ぽいのが簡単に作れて便利じゃない?*1と思ってちょっとやってみたらハマった記憶の物語です。
- Apache
- GET で長い文字列
- LimitRequestLine ディレクティブで制限。通常 4094 byte。変えられる
- http://httpd.apache.org/docs/current/mod/core.html#limitrequestline
- LimitRequestLine より長ければステータスコード 414 を返す
- Passenger
- ヘッダの読み取りでの制限に引っかかる
- AbstractRequestHeader の定数 MAX_HEADER_SIZE
- 基本的にコードの定数書き換えるしかない。dirty...。ちゃんとやるなら自分で RequestHandler を実装。面倒…。
- 読み取り制限に引っかかると 414 でなく 500 になる
- Apache
- "Your browser sent a request that this server could not understand." でエラーになる
- この辺で追っかけるのやめた。しらねーよ!
あとグリモンさんが URL ちょうながいだけでめちゃくちゃ重くなります。ふつーにIEで処理できる長さ、2000ちょいが現実的ですね…。
.gitkeep
空ディレクトリ作るために以前は空な .gitignore つくって置いておく感じだったんだけど、Rails 3 だと .gitkeep ファイルを作る。Rails 的作法なんかなー。
*1:たとえば fotolife につければ、はてなのユーザ名やパスワード知らなくても一つ確認画面挟めばそういう実装作れちゃう