From 9c2a2f6297f5f2b8001f5eec05a5f32d1720471b Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Thu, 25 Apr 2013 15:42:06 +0200 Subject: [PATCH] make cursor skip blank lines --- plugin/startify.vim | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugin/startify.vim b/plugin/startify.vim index a6d888b..de777cf 100644 --- a/plugin/startify.vim +++ b/plugin/startify.vim @@ -89,10 +89,27 @@ function! s:start() abort nnoremap :normal autocmd! startify * - autocmd startify CursorMoved call cursor(line('.') < 4 ? 4 : 0, 5) + autocmd startify CursorMoved call s:set_cursor() autocmd startify BufLeave autocmd! startify * call cursor(6, 5) endfunction +" Function: s:set_cursor {{{1 +function! s:set_cursor() abort + let s:line_old = exists('s:line_new') ? s:line_new : 5 + let s:line_new = line('.') + if empty(getline('.')) + if s:line_new > s:line_old + call cursor(s:line_new + 1, 5) " going down + let s:line_new += 1 + else + call cursor((s:line_new < 4 ? 4 : s:line_new - 1), 5) " going up + let s:line_new -= 1 + endif + else + call cursor((s:line_new < 4 ? 4 : 0), 5) " hold cursor in column + endif +endfunction + " vim: et sw=2 sts=2