From 5fb25b5f16845602310acb447305bb6d632ad0f2 Mon Sep 17 00:00:00 2001 From: Mario Minners Date: Sun, 26 Aug 2012 10:46:04 +0200 Subject: [PATCH] Add cursor position history --- vimrcs/basic.vim | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/vimrcs/basic.vim b/vimrcs/basic.vim index cebedd39..d1adc000 100644 --- a/vimrcs/basic.vim +++ b/vimrcs/basic.vim @@ -406,3 +406,45 @@ function! BufcloseCloseIt() execute("bdelete! ".l:currentBufNum) endif endfunction + +"""""""""""""""""""""""""""""" +" => Position history +"""""""""""""""""""""""""""""" +"Remeber something on close +set viminfo='10,\"100,:20,%,n~/.vim_runtime/tmp_dirs/viminfo + +"Restore last position of the Document + +function! ResCur() + if line("'\"") <= line("$") + normal! g`" + return 1 + endif +endfunction + +if has("folding") + function! UnfoldCur() + if !&foldenable + return + endif + let cl = line(".") + if cl <= 1 + return + endif + let cf = foldlevel(cl) + let uf = foldlevel(cl - 1) + let min = (cf > uf ? uf : cf) + if min + execute "normal!" min . "zo" + return 1 + endif + endfunction +endif +augroup resCur + autocmd! + if has("folding") + autocmd BufWinEnter * if ResCur() | call UnfoldCur() | endif + else + autocmd BufWinEnter * call ResCur() + endif +augroup END