Don't jump to the TOC on C-o etc.
Before, the cursor would jump to the TOC a lot when pressing <C-o> etc., because it is changed every time the buffer is saved. Use :keepjumps to make it less intrusive. Sadly, the cursor still jumps to the TOC when you press u and C-r, but it seems there is no way around it.
This commit is contained in:
parent
bddd644fbb
commit
6f6023610c
@ -1017,7 +1017,7 @@ endfunction
|
|||||||
" will only be updated if it already exists
|
" will only be updated if it already exists
|
||||||
function! vimwiki#base#update_listing_in_buffer(strings, start_header,
|
function! vimwiki#base#update_listing_in_buffer(strings, start_header,
|
||||||
\ content_regex, default_lnum, create)
|
\ content_regex, default_lnum, create)
|
||||||
" apparently, Vim behaves strange when files change while in diff mode
|
" Vim behaves strangely when files change while in diff mode
|
||||||
if &diff || &readonly
|
if &diff || &readonly
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -1063,8 +1063,8 @@ function! vimwiki#base#update_listing_in_buffer(strings, start_header,
|
|||||||
" fold gets deleted. So we temporarily disable folds, and then reenable
|
" fold gets deleted. So we temporarily disable folds, and then reenable
|
||||||
" them right back.
|
" them right back.
|
||||||
let foldenable_save = &l:foldenable
|
let foldenable_save = &l:foldenable
|
||||||
setlo nofoldenable
|
setlocal nofoldenable
|
||||||
silent exe start_lnum.','.string(end_lnum - 1).'delete _'
|
silent exe 'keepjumps ' . start_lnum.','.string(end_lnum - 1).'delete _'
|
||||||
let &l:foldenable = foldenable_save
|
let &l:foldenable = foldenable_save
|
||||||
let lines_diff = 0 - (end_lnum - start_lnum)
|
let lines_diff = 0 - (end_lnum - start_lnum)
|
||||||
else
|
else
|
||||||
@ -1079,16 +1079,16 @@ function! vimwiki#base#update_listing_in_buffer(strings, start_header,
|
|||||||
let new_header = whitespaces_in_first_line
|
let new_header = whitespaces_in_first_line
|
||||||
\ . s:safesubstitute(vimwiki#vars#get_syntaxlocal('rxH1_Template'),
|
\ . s:safesubstitute(vimwiki#vars#get_syntaxlocal('rxH1_Template'),
|
||||||
\ '__Header__', a:start_header, '')
|
\ '__Header__', a:start_header, '')
|
||||||
call append(start_lnum - 1, new_header)
|
keepjumps call append(start_lnum - 1, new_header)
|
||||||
let start_lnum += 1
|
let start_lnum += 1
|
||||||
let lines_diff += 1 + len(a:strings)
|
let lines_diff += 1 + len(a:strings)
|
||||||
for string in a:strings
|
for string in a:strings
|
||||||
call append(start_lnum - 1, string)
|
keepjumps call append(start_lnum - 1, string)
|
||||||
let start_lnum += 1
|
let start_lnum += 1
|
||||||
endfor
|
endfor
|
||||||
" append an empty line if there is not one
|
" append an empty line if there is not one
|
||||||
if start_lnum <= line('$') && getline(start_lnum) !~# '\m^\s*$'
|
if start_lnum <= line('$') && getline(start_lnum) !~# '\m^\s*$'
|
||||||
call append(start_lnum - 1, '')
|
keepjumps call append(start_lnum - 1, '')
|
||||||
let lines_diff += 1
|
let lines_diff += 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user