diff --git a/indent/vue.vim b/indent/vue.vim
index f66bd3d..32a60ac 100644
--- a/indent/vue.vim
+++ b/indent/vue.vim
@@ -19,7 +19,10 @@ function! s:Init()
" To adjust HTML
let s:empty_tagname = '(area|base|br|col|embed|hr|input|img|'
\.'keygen|link|meta|param|source|track|wbr)'
- let s:empty_tag = '\v\<'.s:empty_tagname.'.*(/)@'
+ " Empty tag ending with '>' but not '/>'. '>' in quotes like
+ " @input="(e) => update(e)" doesn't end the tag
+ let s:empty_tag = '\v\<'.s:empty_tagname
+ \ .'>("[^"]*"|''[^'']*''|[^\>"''/]|/(\>)@!)*\>'
let s:empty_tag_start = '\v\<'.s:empty_tagname.'[^>]*$'
let s:empty_tag_end = '\v^\s*[^<>/]*\/?\>\s*'
let s:tag_start = '\v^\s*\<\w*' " <
diff --git a/test/cases/shared-empty-tag.vim b/test/cases/shared-empty-tag.vim
new file mode 100644
index 0000000..b378874
--- /dev/null
+++ b/test/cases/shared-empty-tag.vim
@@ -0,0 +1,7 @@
+" Empty tags like with or without '/>', and '>' in attribute
+" expressions
+let g:test_flatten = 1
+
+function! Check()
+ call ExpectIndentEachLine()
+endfunction
diff --git a/test/cases/shared-empty-tag.vue b/test/cases/shared-empty-tag.vue
new file mode 100644
index 0000000..2c7108c
--- /dev/null
+++ b/test/cases/shared-empty-tag.vue
@@ -0,0 +1,12 @@
+
+