«前の日記(2004-04-23 (金)) 最新 次の日記(2004-04-25 (日))»  

まちゅダイアリー


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 と書いてもいいらしいけど、 うちの環境だと何故か無視されてしまう。

Tags: Gentoo

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クイズの解答編を見ると、みなさんスマートな答えを出されている。 さすがだなぁ。

Tags: memo