I use Vim a lot. I spend most of my (coding) day inside vim in one form or another. I use terminal Vim on Windows, Mac and Ubuntu depending on the project I am working on. In visual studio, I use the excellent VsVim plugin. While browsing the web, I use Chromium plugin in Chrome. I am writing this blog post in Vim on my Ubuntu VM.
Even after having used it for a couple of years, I didn’t have a standard vimrc configuration across all my platforms. I was using Janus in a couple of places, and spf13 in others. I also had random tweaks all over the place. This week I decided to rebuild my vimrc and share it on all 3 platforms using Dropbox. It turned out to be much more simpler than I thought it would be. I started with the spf13 vimrc, and took out the stuff I didn’t understand or need. It uses Vundle for plugin management and that works great for me. I tweaked around with the vimrc settings and the plugins according to my preferences and then put them in Dropbox. After that, all it took was creating symbolic links on all 3 platforms to the Dropbox location and I had a consistent Vim setup. Roughly, the steps I took were:
- Moved all old vim config files in a temporary backup folder.
- I started with my Mac setup. I put the vimrc and vimrc.bundles files in Dropbox (in my case, the path to these files was ~/Dropbox/dotfiles/). I also created an empty .vim folder in the same directory.
- Created symbolic link for .vimrc, .vimrc.bundles files and the .vim folder in my root folder that point to the Dropbox location.
ln -s ~/Dropbox/dotfiles/.vimrc ~/.vimrc ln -s ~/Dropbox/dotfiles/.vimrc.bundles ~/.vimrc.bundles ln -s ~/Dropbox/dotfiles/.vim ~/.vim
- Installed vundle
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- Installed the bundles configured in .vimrc.bundles by launching vim and running the :BundleInstall command. Verified that everything works as expected.
- Then on my Windows and Ubuntu VMs, I just had to create the symbolic links. On windows, the file name needs to be _vimrc, and the order of arguments is reversed for creating links.
- On Windows
mklink C:\Users\LatishSehgal\_vimrc C:\Dropbox\dotfiles\.vimrc mklink C:\Users\LatishSehgal\.vimrc.bundles C:\Dropbox\dotfiles\.vimrc.bundles mklink C:\Users\LatishSehgal\.vim C:\Dropbox\dotfiles\.vim
- On Ubuntu
ln -s ~/Dropbox/dotfiles/.vimrc ./\.vimrc ln -s ~/Dropbox/dotfiles/.vimrc.bundles ./\.vimrc.bundles ln -s ~/Dropbox/dotfiles/.vim ./\.vim
- On Windows
If you want to check out my vimrc for reference, it is on Github.