What is the best way to deal with them on multiple machines? I saw something like git submodules. And there is pathogen. Some vim plugins even doesn't support pathogen. I work on multiple machines. Also in Arch-Linux you can find most plugins in the official repos. So is it good to install from there?
What is the best way?
You've already found and enumerated all the popular approaches; it's up to you to pick one that best matches your particular environment and style of work. Be thankful that Vim is so immensely configurable and integrates well with a variety of tools. Don't expect an authoritative answer that you can simply follow. Use your own intuition (and share your findings like others (e.g. in a blog post) once you're satisfied with your approach).
Personally, I've configured Vim to also use
~/.vim instead of
~/vimfiles on Windows:
" On Windows, also use ~/.vim instead of ~/vimfiles; this makes synchronization " across (heterogeneous) systems easier. if has('win32') || has('win64') set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/.vim/after endif
I mostly use the Unison File Synchronizer to distribute my dotfiles among about 10 different systems.