Having to switch from C sources to HTML code, passing through CSS, PHP, Lua and sometimes other programming languages, the use of specific tools for every single job would be really counterproductive. At the end they are all text files, so it is much better to use general purpose tools powerful enough to handle different cases.
VIM (or its more modern reincarnation, NeoVIM) as been chosen for text editing. With reference to conventional IDEs, it brings the following advantages:
- extremely powerful and customizable;
- backed up by a strong community with a high ratio of power users;
- an almost unlimited park of extensions from which pick up the preferred ones to customize your editing environment;
- multiplatform and ubiquitous: Vim or one of its stripped down versions is basically preinstalled on every GNU/Linux distro;
- front-end available in graphical or text versions, that is it can be used over SSH sessions.
Its hystorical alternative, GNU emacs, would be another viable choice.
The produced code is usually archived through git, a powerful and flexible source control management system. Git is a distributed system, that is you can have local repositories, you can have more than one repository for the same project and you can synchronize the content between them in arbitrary ways. git is strongly oriented to horizontal development, that is promotes branching and merging against linear development (still supported).
git, like every other revision control system, expects the code to be text based. This means images and binary files are not properly handled, stripping down the power of git to a back up utility. LabVIEW programs fall into this category: regardless of what National Instruments says, there is no decent integration with any revision control system, making branching and merging an exercise of pain.