From fd174b8f2fb09665d343c01918abe9fbe6790c5c Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Tue, 22 Oct 2013 13:22:36 +0200 Subject: [PATCH] Make cursor handling work with sections --- autoload/startify.vim | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/autoload/startify.vim b/autoload/startify.vim index 94c05bf..1123649 100644 --- a/autoload/startify.vim +++ b/autoload/startify.vim @@ -32,6 +32,7 @@ else \ ] endif +let s:secoff = type(s:lists[0]) == 3 ? len(s:lists[0]) : 0 let s:section_header_lines = [] " Init: autocmds {{{1 @@ -410,14 +411,20 @@ endfunction function! s:set_cursor() abort let s:oldline = exists('s:newline') ? s:newline : 5 let s:newline = line('.') - let headoff = s:headoff + 2 + let headoff = s:headoff + 2 + s:secoff " going down if s:newline > s:oldline + while index(s:section_header_lines, s:newline) != -1 + let s:newline += 1 + endwhile if empty(getline(s:newline)) | let s:newline += 1 | endif if s:newline > s:lastline | let s:newline = s:lastline | endif " going up elseif s:newline < s:oldline + while index(s:section_header_lines, s:newline) != -1 + let s:newline -= 1 + endwhile if empty(getline(s:newline)) | let s:newline -= 1 | endif if s:newline < headoff | let s:newline = headoff | endif endif