summaryrefslogtreecommitdiffstats
path: root/vimrcs/codecmd.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vimrcs/codecmd.vim')
-rw-r--r--vimrcs/codecmd.vim21
1 files changed, 10 insertions, 11 deletions
diff --git a/vimrcs/codecmd.vim b/vimrcs/codecmd.vim
index 4add725..179e68e 100644
--- a/vimrcs/codecmd.vim
+++ b/vimrcs/codecmd.vim
@@ -21,16 +21,16 @@ autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
21autocmd FileType php set omnifunc=phpcomplete#CompletePHP 21autocmd FileType php set omnifunc=phpcomplete#CompletePHP
22autocmd FileType c set omnifunc=ccomplete#Complete 22autocmd FileType c set omnifunc=ccomplete#Complete
23 23
24" 要求格式化不要移动光标,并不要删除换行符和空行,保留原来的视图 24" gg=G
25autocmd BufReadPost,BufWritePre *.html,*.vim,*.sh,*.py normal! g1G=G`"z<CR> 25nnoremap gg=G :call PreserveCursorAndFormat()<CR>
26" 在保存时自动使用clang-format格式化代码 26function! PreserveCursorAndFormat()
27augroup FormatAutocmd 27 let l:save_pos = getpos(".")
28 autocmd! 28 let l:save_view = winsaveview()
29 autocmd BufWritePre *.c,*.cpp,*.h :let save_cursor = getpos(".") 29 normal! gg=G
30 autocmd BufWritePre *.c,*.cpp,*.h :normal! ggVG 30 call setpos('.', l:save_pos)
31 autocmd BufWritePre *.c,*.cpp,*.h :ClangFormat 31 call winrestview(l:save_view)
32 autocmd BufWritePost *.c,*.cpp,*.h :call setpos('.', save_cursor) 32endfunction
33augroup END 33
34 34
35command! -nargs=0 ClangFormat :call ClangFormat() 35command! -nargs=0 ClangFormat :call ClangFormat()
36autocmd FileType c,h,cpp,hpp,cc nnoremap <buffer> gg=G :ClangFormat<CR> 36autocmd FileType c,h,cpp,hpp,cc nnoremap <buffer> gg=G :ClangFormat<CR>
@@ -98,6 +98,5 @@ func SetTitle()
98 call append(line(".")+9, "") 98 call append(line(".")+9, "")
99 endif 99 endif
100 endif 100 endif
101 " 光标移动到文件末尾
102 normal G 101 normal G
103endfunc 102endfunc