It works amazingly well. Vagrant helps a lot setting everything up. I even used several VM instances at the same time trying to mimic microservices running in different servers. I edited all the files in my fave IDE running in Windows, a file change would trigger an automatic server restart on the affected service/VM. Debug worked just fine as did mobile debug using Vagrant Share. It's my workflow for web stuff.
I sound like a Vagrant fanboy or shareholder but I'm just a very happy dev since I started using this setup.