4 ms·
For one, they provide a way to stay immersed in all aspects of your project continually while switching around between tasks (seeing your files/class tree + cod
by BHSPitMonkey 15y ago
For one, they provide a way to stay immersed in all aspects of your project continually while switching around between tasks (seeing your files/class tree + code + warnings/errors + status simultaneously on one screen). Even if you're savvy enough to achieve some of this through a careful terminal splitting/tiling setup, you're just halfway-implementing a graphical interface.
Like most GUIs, you're also provided with organized menu-based access to tools and features you might otherwise have to spend time remembering or learning how to do from a terminal.
Finally, IDE-centric features like in-editor static analysis / error highlighting can come in handy from time to time (Oops! Forgot a paren. Glad I didn't have to waste 15 seconds attempting to build, reading/understanding the error output, and coming back to this file/line).
(I agree that a lot of IDEs I've tried such as MSVC and Eclipse can be burdensome to use. I like using Geany, since it's foremost an editor, with useful panes and functionality added in.)
- tikhonj 15y agoEmacs also lets you stay immersed in all aspects of your project at once. However, unlike a GUI, using different panes in Emacs is uniform: the commands you use to get around the file/tree view are the same commands you use to get around your code are the same commands you use to get around your compiler output. Emacs also provides some really nice technology for finding commands including ido-mode and C-h m (which lists commands for the current mode and is incredibly useful). However, here the real magic is that getting around a help buffer is again the same as navigating code--you can use the same command to search and the same commands to move around. Emacs also has a nice system for integrating arbitrary output from an external process into your code, letting you have error highlighting and static analysis for arbitrary languages. On top of this, it has several really nice modes like js-2 and SLIME that create an even more compelling experience for certain languages. On top of this, Emacs has a bunch of really nice features like TRAMP which lets you visit arbitrary remote files and even open remote shells trivially. On top of this, it is much easier to extend than any IDE or even any other editor I have ever seen. So really, Emacs can provide everything you want, it can provide it in a much more consistent UI and it is infinitely configurable.
- greyfade 15y agoWell, with the exception of a class tree (which I've had trouble using in the past), those are all the reasons I just use a text editor. So, I guess I still don't understand. You see, I have file/project trees, warning/error buffers, build status and shells (among other things) in Vim and Emacs with keyboard-driven access to all the tools I use, without having to hunt through a twisty passage of menus, all alike. Even static analysis and error highlighting is available (even for C++ with vim-clang-complete, for example). So I guess what I don't understand is why there is a need for all of this to be "integrated" in a WIMP-style GUI.