インデント
力技
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