diff --git a/my_plugins/vim-vue-syntastic/README.md b/my_plugins/vim-vue-syntastic/README.md
new file mode 100644
index 00000000..8f3f4618
--- /dev/null
+++ b/my_plugins/vim-vue-syntastic/README.md
@@ -0,0 +1,61 @@
+# vim-vue-syntastic
+
+### 1\. What?
+
+Support for vue components linting with syntastic and eslint
+
+### 2\. Dependencies
+
+- [Syntastic](https://github.com/scrooloose/syntastic)
+- [ESlint](http://eslint.org/)
+- [vim-vue](https://github.com/posva/vim-vue)
+
+### 2.1\. Installing vim-vue-syntastic with Pathogen
+
+If you already have [Pathogen][1] working then skip [Step 1](#step1) and go to
+[Step 2](#step2).
+
+
+
+#### 2.1.1\. Step 1: Install pathogen.vim
+
+First I'll show you how to install Tim Pope's [Pathogen][1] so that it's easy to
+install syntastic. Do this in your terminal so that you get the `pathogen.vim`
+file and the directories it needs:
+```sh
+mkdir -p ~/.vim/autoload ~/.vim/bundle && \
+curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
+```
+Next you *need* to add this to your `~/.vimrc`:
+```vim
+execute pathogen#infect()
+```
+
+
+#### 2.1.3\. Step 2: Install vim-vue-syntastic as a Pathogen bundle and friends
+
+You now have pathogen installed and can put syntastic into `~/.vim/bundle` like
+this:
+
+```sh
+cd ~/.vim/bundle && \
+git clone https://github.com/sekel/vim-vue-syntastic.git
+```
+... and the same song and dance for the dependencies
+
+#### 2.1.3\. Step 3: Optional configuration to make it work with local project eslint
+
+Stick this in your `~/.vimrc`:
+
+```vim
+let g:syntastic_javascript_checkers = ['eslint']
+let g:syntastic_vue_checkers = ['eslint']
+let local_eslint = finddir('node_modules', '.;') . '/.bin/eslint'
+if matchstr(local_eslint, "^\/\\w") == ''
+ let local_eslint = getcwd() . "/" . local_eslint
+endif
+if executable(local_eslint)
+ let g:syntastic_javascript_eslint_exec = local_eslint
+ let g:syntastic_vue_eslint_exec = local_eslint
+endif
+```
diff --git a/my_plugins/vim-vue-syntastic/syntax_checkers/vue/eslint.vim b/my_plugins/vim-vue-syntastic/syntax_checkers/vue/eslint.vim
new file mode 100644
index 00000000..c225a9ce
--- /dev/null
+++ b/my_plugins/vim-vue-syntastic/syntax_checkers/vue/eslint.vim
@@ -0,0 +1,78 @@
+"============================================================================
+"File: eslint.vim
+"Description: Vue syntax checker - using eslint.
+"Maintainer: Sebastian Kellgren sebastian at thriver dot io
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+if exists('g:loaded_syntastic_vue_eslint_checker')
+ finish
+endif
+let g:loaded_syntastic_vue_eslint_checker = 1
+
+if !exists('g:syntastic_vue_eslint_sort')
+ let g:syntastic_vue_eslint_sort = 1
+endif
+
+if !exists('g:syntastic_vue_eslint_generic')
+ let g:syntastic_vue_eslint_generic = 0
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_vue_eslint_IsAvailable() dict
+ if g:syntastic_vue_eslint_generic
+ call self.log('generic eslint, exec =', self.getExec())
+ endif
+
+ if !executable(self.getExec())
+ return 0
+ endif
+ return g:syntastic_vue_eslint_generic || syntastic#util#versionIsAtLeast(self.getVersion(), [0, 1])
+endfunction
+
+function! SyntaxCheckers_vue_eslint_GetLocList() dict
+ if !g:syntastic_vue_eslint_generic
+ call syntastic#log#deprecationWarn('vue_eslint_conf', 'vue_eslint_args',
+ \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_before': (g:syntastic_vue_eslint_generic ? '' : '-f compact') })
+
+ let errorformat =
+ \ '%E%f: line %l\, col %c\, Error - %m,' .
+ \ '%W%f: line %l\, col %c\, Warning - %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'] })
+
+ if !g:syntastic_vue_eslint_generic
+ if !exists('s:eslint_new')
+ let s:eslint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1])
+ endif
+
+ if !s:eslint_new
+ for e in loclist
+ let e['col'] += 1
+ endfor
+ endif
+ endif
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'vue',
+ \ 'name': 'eslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set sw=4 sts=4 et fdm=marker: