I work on several different kinds of projects, in several different programming languages, on several different platforms. You would think that I would at least standardize on one editor for all of them, but I haven't. If I were going to standardize on one editor, it would probably be SlickEdit, which works on all the different projects, languages, and platforms that I use. It is not cheap, but I alrea I work on several different kinds of projects, in several different programming languages, on several different platforms. You would think that I would at least standardize on one editor for all of them, but I haven’t.If I were going to standardize on one editor, it would probably be SlickEdit, which works on all the different projects, languages, and platforms that I use. It is not cheap, but I already have a license, and it does lots of nice things. Alternatively, I could use GNU Emacs or XEmacs for almost everything I do. I don’t particularly like Vi; if I did, I would probably use Vim. Most Linux distributions include versions of Emacs and Vi, or can add them easily; I often edit with Emacs when I’m working on Linux systems.When I’m writing unmanaged C++ for Windows, I usually work in Visual Studio, either Visual Studio 2005 or Visual Studio .NET 2003. The versions of Visual Studio that I use are fairly expensive, but the free Express versions are more than adequate for individual developers. Visual Studio makes it very easy to start projects, add classes, add methods and properties to classes, write correct code without spelling everything out, consult the documentation, and debug. I wouldn’t bother with the older version, except that a colleague who works on some projects with me hasn’t upgraded to Visual Studio 2005. It’s annoying that projects can’t easily be downgraded from Visual Studio 2005 to Visual Studio .NET 2003; if there is an easy way to do that, I haven’t found it. When I want to refactor more C++ code than I can be sure of doing correctly by hand, I check all my source files in and out of version control for safety, close Visual Studio, open the Visual Studio project with SlickEdit, and use SlickEdit’s automatic refactoring functions. When I’m done, I switch back to Visual Studio, recompile, run whatever unit and regression tests I have, and check everything in again. Then I continue in Visual Studio for the usual editing, building, debugging, and testing cycle.I wish Visual Studio could refactor C++ automatically, but it can’t. I rarely find myself doing massive refactoring, in any case: I have been doing C++ development long enough that my first class design is usually fairly close to the final design. When I’m initially wrong, however, it’s really nice to be able to refactor with SlickEdit. Software Development