When dealing with .vimrc configuration files in Linux and Windows (two systems I've been using so far) and trying to keep configurations cross-platform, I've found mainly two solutions:
Create a new folder for vim files in
/home/user, so both systems have the same vim dirname (instead of default.vimin linux andvimfilesin Windows), and useset runtimepathto get this new folder;set runtimepath=~/vim_local,$VIMRUNTIME source ~/vim_local/vimrc
Create a bunch of os conditions (like
has("32")) in.vimrcwhen needed, based on platform or capabilities, but keeping the original unix names and creating symlinks in Windows home folder to the original files (vimfilesto.vimsomewhere, maybe a.vimdir in Windows home, or even a dropbox folder). (I haven't tested this approach in older Windows versions like XP).
Which solution do you prefer, and why? What are the disadvantages from each solution? Which other solutions do you have? (You can post your own .vimrc here as well to discuss.)
If you use some source control in your .vimrc configuration files, do you version your plugin files as well (so when "deploying" your config across computers, you only do a checkout/clone from your repository)? A lot of people are using pathogen and keeping each plugin inside it's own folder (usually a git repo from github). Does it make sense to version control a plugin that is already a repository from elsewhere?