インデント

力技

nnoremap <silent> <leader>e :call <SID>MyIndent()<cr>
function! s:MyIndent()
  let line = getline('.')
  if match(line, '{') == 0
    execute ":normal V%="
  elseif match(line, '{') != -1 
    execute ":normal f{V%="
  elseif match(line, '}') == 0 
    execute ":normal V%="
  elseif match(line, '}') != -1
    execute ":normal f}V%="
  endif
endfunction
追記

vim神に、細かいとこは目をつむってもらった!

nnoremap <silent> <Leader>e  :<C-u>call <SID>MyIndent()<Return>
function! s:MyIndent()
  let cursor_pos = getpos('.')
  let cursor_line = cursor_pos[1]

  normal! 0
  if (search('^[^{]*{', 'ce', cursor_line) == 0
  \   && search('^[^}]*}', 'ce', cursor_line) == 0)
    call setpos('.', cursor_pos)
    return
  endif

  normal! =aB
endfunction