From efc9d28cf2238ce214bce90bf77df385bd02954f Mon Sep 17 00:00:00 2001 From: Lin Kun Date: Sat, 23 Feb 2019 08:19:01 +0800 Subject: [PATCH] Fixed: fix a bug in markdown_insert_url. (#2620) * Fixed: fix a bug in markdown_insert_url. * Fix: fix a bug when the '< and '> in two different lines. --- autoload/SpaceVim/layers/lang/markdown.vim | 24 ++++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/autoload/SpaceVim/layers/lang/markdown.vim b/autoload/SpaceVim/layers/lang/markdown.vim index 5e3f0a202..9e20a193d 100644 --- a/autoload/SpaceVim/layers/lang/markdown.vim +++ b/autoload/SpaceVim/layers/lang/markdown.vim @@ -103,18 +103,24 @@ endfunction function! s:markdown_insert_url(visual) abort if !empty(@+) let l:save_register_unnamed = @" - if a:visual - normal! gvx - else - normal! diw + let l:save_edge_left = getpos("'<") + let l:save_edge_right = getpos("'>") + if !a:visual + execute "normal! viw\" endif + let l:paste = (col("'>") == col("$") - 1 ? 'p' : 'P') + normal! gvx let @" = '[' . @" . '](' . @+ . ')' - if col('.') == col('$') - 1 - normal! p - else - normal! P - endif + execute 'normal! ' . l:paste let @" = l:save_register_unnamed + if a:visual + let l:save_edge_left[2] += 1 + if l:save_edge_left[1] == l:save_edge_right[1] + let l:save_edge_right[2] += 1 + endif + endif + call setpos("'<", l:save_edge_left) + call setpos("'>", l:save_edge_right) endif endfunction