まちゅダイアリー
2004-04-24 (土)
■ vimで自動インデント
vimでRubyスクリプトなんかを自動インデントさせるには、 .vimrcに以下のように書いておくといいみたい (参考: zt diary) 。
filetype on filetype indent on filetype plugin on
Emacsは覚えられそうにないので、vim users guideを読んで、もう少しvimの勉強をしてみようっと。
追記
Rubyスクリプトのタブサイズを設定する方法。 もっといい方法があるかもしれないけど。
au FileType ruby set ts=3 sw=3 expandtab
スクリプトの行末に # vim: ts=3 と書いてもいいらしいけど、 うちの環境だと何故か無視されてしまう。
■ Perlクイズ de Ruby
勉強を兼ねて、結城さんのPerlクイズにRubyで挑戦。 選んだのは、カッコの対応を調べる問題。 元の問題に加えて、複数のカッコの種類に対応できるようにした。
def balanced?(str)
lsym = "<[{("
rsym = ">]})"
stack = []
str.each_byte do |char|
char = char.chr
if lsym.include?(char)
stack.push(char)
elsif rsym.include?(char)
top = stack.pop
return 0 unless top
return 0 if rsym.index(char) != lsym.index(top)
end
end
stack.empty? ? 1 : 0
end
かなりストレートな解法になってしまった。 Perlクイズの解答編を見ると、みなさんスマートな答えを出されている。 さすがだなぁ。
[ツッコミを入れる]