From 1decec7ec59183388d57d309b76a31b34dba840e Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Tue, 16 Jan 2018 23:28:47 +0800 Subject: [PATCH 1/2] Fix cursor pos --- autoload/SpaceVim/plugins/iedit.vim | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/autoload/SpaceVim/plugins/iedit.vim b/autoload/SpaceVim/plugins/iedit.vim index 611de6b69..1842976f6 100644 --- a/autoload/SpaceVim/plugins/iedit.vim +++ b/autoload/SpaceVim/plugins/iedit.vim @@ -53,17 +53,16 @@ function! SpaceVim#plugins#iedit#start(...) let s:mode = 'n' let w:spacevim_iedit_mode = s:mode let w:spacevim_statusline_mode = 'in' + let curpos = getcurpos() + let save_reg_k = @k if get(a:000, 0, 0) == 1 - let save_reg_k = @k normal! gv"ky - let symbol = split(@k, "\n")[0] - let @k = save_reg_k else - let save_reg_k = @k normal! viw"ky - let symbol = split(@k, "\n")[0] - let @k = save_reg_k endif + call setpos('.', curpos) + let symbol = split(@k, "\n")[0] + let @k = save_reg_k echomsg string(a:000) echom symbol let begin = get(a:000, 1, 1) From bef3aae0a9e69dae4cface9b4f84d2b127d1c13c Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Wed, 17 Jan 2018 00:04:41 +0800 Subject: [PATCH 2/2] Fix cursor --- autoload/SpaceVim/plugins/iedit.vim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autoload/SpaceVim/plugins/iedit.vim b/autoload/SpaceVim/plugins/iedit.vim index 1842976f6..cafe2a9d0 100644 --- a/autoload/SpaceVim/plugins/iedit.vim +++ b/autoload/SpaceVim/plugins/iedit.vim @@ -256,7 +256,7 @@ function! s:parse_symbol(begin, end, symbol) abort endif let s:symbol_cursor = line[ cursor[1] - 1 : cursor[1] - 1] if pos_c + 1 + len > cursor[1] - let s:symbol_end = line[ cursor[1] : pos_c + len] + let s:symbol_end = line[ cursor[1] : pos_c + len - 1] else let s:symbol_end = '' endif @@ -277,7 +277,7 @@ function! s:replace_symbol(symbol) abort if pos[1] == 1 let begin = '' else - let begin = line[:pos[1]] + let begin = line[:pos[1] - 2] endif let end = line[pos[1] + pos[2]:] let line = begin . lines[0] . end @@ -292,9 +292,9 @@ function! s:replace_symbol(symbol) abort if pos[1] == 1 let begin = '' else - let begin = line[:pos[1]] + let begin = line[:pos[1] - 2] endif - let end = line[pos[1] + pos[2]:] + let end = line[pos[1] + pos[2] - 1:] let line = begin . a:symbol . end call setline(pos[0], line) let s:stack[len-1-idx][2] = len(a:symbol)