2008-06-03
vim + git
vcscommand は使って無いので、git commit 時の EDITOR として vim がいい感じによしなにしてくれるのが個人的にうれしい。
の git.vim を ftplugin/git/git.vim に入れる(他の git の ftplugin を使うかもしれないので)。
~/.vimrc に以下を追加 ( http://d.hatena.ne.jp/cooldaemon/20080516/1210948783 より)
let git_diff_spawn_mode=1
autocmd BufNewFile,BufRead COMMIT_EDITMSG set filetype=git
最後に COMMIT_EDITMSG のハイライトのため motemen の
を syntax/git-status.vim に入れておくと
となる。
msysgit + ssh
pageant つかえたらなー。cygwin の ssh 経由だとめどーいしちょっとアレ(秘密鍵をコピるという意味で)
zipruby
バイナリの zip に対して、解凍処理したいだけなんだけど、zipruby は実ファイルが存在しないと処理が行えないぽいなぁ。
さっきの Tempfile#open_with_block と組み合わせて
Tempfile.open_with_block do |tmp|
tmp.puts zip_binary
tmp.close
Zip::Archive.open(tmp.path) do |archives|
#...
end
end
かな。うーん。
Ruby の tempfile
- new/open でブロック引数が取れない
- テンポラリファイル名の引数を明示的に指定しなくてはならない
あたりが Ruby ぽくないなぁ、というわけで書いてみた。
Tempfile.open_with_block do |tmp|
tmp.puts "foobar"
tmp.close # いったんファイルに書き込む
p tmp.read
end
みたいに使える。
require 'tempfile'
class Tempfile
def self.open_with_block(name = nil, dir = nil)
name ||= (0..8).map{rand(36).to_s(36)}.join
args = dir ? [name, dir] : [name]
tmp = Tempfile.open *args
begin
yield tmp
ensure
tmp.close true
end
end
end