Sounds like you just need to have a well defined style guide rather than trying to micromanage developer habits.
From the answers:
Yes, it's a bit of a red flag that management considers itself a better judge
of which tools you would be more efficient with than you are.No 2 IDE can produce the same formatting, can store the dependencies and the running targets the same way, have the same shortcuts, etc. Therefore, you can't collaborate efficiently on the same machine.
Moreover, the only rule is that everybody uses the same, the majority can vote. Our last IDE change was initiated by a team member and multiplied the price per developer by 3
You can have different team members using different editors, but with the same style rules - and with a style checker that runs on commit/post-edit to verify the common rules are adhered to.
Enforcing which editors each team member must use to do his/her development is a form of management deciding it knows which tools each developer will be more efficient with than the developer does. It's pointless.
As far as I know different editors can't be made to produce the exact same code on automatic reformatting. And enforcing code style still doesn't help people switching keyboard, reading code or stuff like that. It's a team I'm building, not managing insulated people.
I enforce that everybody uses the same editor, if I find myself in a team where the majority votes for emacs, they'll just use emacs (and I guess I'll resign). Our last change was initiated by a team member.
"My company is mandating that everyone use vim and make"
And still see it as a valid request of an employer.
I think, however, it's a huge mistake to take the second route. Myself, for example, I could never be even remotely productive in an IDE. The moment I open one, it feels wrong, and my productivity as well as motivation drops significantly. I just prefer vim + $tools for the language I am working with, and it's highly unlikely that this will ever change. It's like trying to code in a noisy, public place when I could be coding at my desk listening to my favorite music.
Yes, this is partially an emotional reason. I hate programs that throw tons of information, menus and buttons at you, most of which are useless 98% of the time. Furthermore, I hate programs that try to be a God Object and do everything by themselves - I'm a stern advocate of modularity/interoperability and the UNIX philosophy of writing programs that do one thing, and do it well.
But, to conclude this, I would fiercely disapprove forcing anyone to do it my way as much as I would object to being forced into a different workflow myself. I know I could never work for someone that does either.
Now, vim being one of the top productive environments (only probably be contested by emacs), and the fact that we worked in C, so stags vim plugin provided as much IDE-ness you could get anywhere else at the time (2000), I think that was a very reasonable requirement. Eclipse? nah, not really, you can pry VIM from my dead hands, definitely would not work at this place.
While many programmers are religious about their tool chain there are very legitimate reasons for wanting a standardized dev environment especially with an IDE that does things like syntax homogenization for you. Without more details it's impossible to tell weather this specific individual case would really benefit from the mandate in spite of upsetting the comfort of their devs.