diff --git a/autoload/emmet.vim b/autoload/emmet.vim index 9ff6be3..d8035ed 100644 --- a/autoload/emmet.vim +++ b/autoload/emmet.vim @@ -517,10 +517,17 @@ function! emmet#expandAbbr(mode, abbr) range let str = '' if visualmode() ==# 'V' let line = getline(a:firstline) + let lspaces = matchstr(line, '^\s*', '', '') let part = substitute(line, '^\s*', '', '') for n in range(a:firstline, a:lastline) if len(leader) > 0 - let str .= getline(n) . "\n" + let line = getline(a:firstline) + let spaces = matchstr(line, '^\s*', '', '') + if len(spaces) >= len(lspaces) + let str .= indent . getline(n)[len(lspaces):] . "\n" + else + let str .= getline(n) . "\n" + endif else let lpart = substitute(getline(n), '^\s*', '', '') let str .= lpart . "\n" diff --git a/unittest.vim b/unittest.vim index 9274b05..e421893 100644 --- a/unittest.vim +++ b/unittest.vim @@ -514,8 +514,8 @@ finish 'result': "item 1\nitem 2\n", }, { - 'query': "
\n nav link\n
$$$$\\ggVG\\,div\\$$$$", - 'result': "
\n
\n nav link\n
\n
", + 'query': "\t
\n\t\tnav link\n\t
$$$$\\ggVG\\,div\\$$$$", + 'result': "\t
\n\t\t
\n\t\t\tnav link\n\t\t
\n\t
", }, ], },