The post was created for the question How to share config between vim and Neovim.
In this solution, we try to symlink ~/.config/nvim to ~/.vim, and make the conf compatible with vim.
# nvim conf dir: ~/.config/nvim
# vim conf dir: ~/.vim
# link the 1st as the 2nd with relative links
# Prepare a vimrc file in ~/.config/nvim folder
ln -sf ./init.vim ~/.config/nvim/vimrc
# Link the whole ~/.config/nvim folder as ~/.vim foler
ln -sf ./.config/nvim ~/.vimAfter this setup, ~/.config/nvim/init.vim is the real file used as conf. ~/.vim/vimrc is just a link to it.
Now we need to make vim reuse nvim's plugin manager, plugins, by changing runtimepath and packpath. In fact, the plugin paths are reused automatically, the following fix is reusing the plugin manger.
let g:is_nvim = has('nvim')
let g:is_vim8 = v:version >= 800 ? 1 : 0
" Reuse nvim's runtimepath and packpath in vim
if !g:is_nvim && g:is_vim8
  set runtimepath-=~/.vim
    \ runtimepath^=~/.local/share/nvim/site runtimepath^=~/.vim 
    \ runtimepath-=~/.vim/after
    \ runtimepath+=~/.local/share/nvim/site/after runtimepath+=~/.vim/after
  let &packpath = &runtimepath
endif