vimの罠

たしかに vim の対応シンタックスは多い。SSHApache の設定ファイルをいじっているときにも Syntax Highlight が効いたりして、びっくりすることもある。
でも、設定に気をつけないと Ruby や、Python ではひどい目に合う。
例1、Ruby の場合。cindent sw=3

# before

def foo
   puts 'foo'
end

foo

def bar(x)
   if x
      puts 10
   else
      puts 5
   end
end

bar 1
# after

def foo
puts 'foo'
end

foo

def bar(x)
   if x
   puts 10
   else
   puts 5
   end
   end

   bar 1

例2、Python の場合(cindent sw=4)。

# before

def foo():
    print 'foo'

foo()

def bar(x):
    if x:
	print 10
    else:
	print 5

bar 1
# after

def foo():
    print 'foo'

    foo()

    def bar(x):
	if x:
	print 10
	else:
	print 5

	bar 1

まぁ、

filetype indent on

としておけば良いだけの話なんだけどね。
あと、vim のインデント設定には smartindent、autoindent、cindent があったりして。まぁ、cindent しか使ってないんだけど。しかも cindent の設定の cinoptions なんか完全に human unreadable な感じ。