class Utils::Editor

def vim

def vim
  vim_in_path = [`which gvim`, `which vim`].map(&:chomp).find(&:full?)
  @vim ||=
    case `uname -s`
    when /\Adarwin/i
      if File.directory?(path = File.expand_path('~/Applications/MacVim.app')) or
        File.directory?(path = File.expand_path('/Applications/MacVim.app'))
      then
        File.join(path, 'Contents/MacOS/Vim')
      else
        vim_in_path
      end
    else
      vim_in_path
    end
end