diff --git a/plugin/easy_align.vim b/plugin/easy_align.vim index 9c498da..78d2766 100644 --- a/plugin/easy_align.vim +++ b/plugin/easy_align.vim @@ -80,25 +80,20 @@ function! s:generic_easy_align_op(type, vmode, live) if a:vmode let vmode = a:type + let [l1, l2] = ["'<", "'>"] call s:remember_visual(vmode) else - let tail = "\" - if a:type == 'line' - silent execute "normal! '[V']".tail - elseif a:type == 'block' - silent execute "normal! `[\`]".tail - else - silent execute "normal! `[v`]".tail - endif let vmode = '' + let [l1, l2] = [line("'["), line("']")] unlet! s:last_visual endif try + let range = l1.','.l2 if get(g:, 'easy_align_need_repeat', 0) - execute "'<,'>". g:easy_align_last_command + execute range . g:easy_align_last_command else - '<,'>call easy_align#align('' == '!', a:live, vmode, '') + execute range . "call easy_align#align('' == '!', a:live, vmode, '')" end call s:set_repeat() finally diff --git a/test/fixed.vader b/test/fixed.vader index 538bf2b..6b45a34 100644 --- a/test/fixed.vader +++ b/test/fixed.vader @@ -139,4 +139,26 @@ Expect: ## n2gv = {} # n2vt = {} +Given (Some text): + a,b,c + + d,e,f + +Do (Select 1st line, align 3rd line): +- First line + V\ +- Last line + G +- Align + \Aip*, +- Previous selection + gv +- Upcase + U + +Expect: + A,B,C + + d, e, f + Include: include/teardown.vader