3 ms·
I use Emacs because it does everything, most of it well, and is absurdly easy to extend. I've found myself missing features several times; each time, it took ma
by tikhonj 15y ago
I use Emacs because it does everything, most of it well, and is absurdly easy to extend. I've found myself missing features several times; each time, it took maybe three or four lines of code and maybe ten minutes to add. Even adding basic support for a new language turned out to be easy, so Emacs is now the only editor that supports my own language at all :).
Additionally, Emacs has the best UX of any program I've ever used. It is, by far, the most unified and consistent program I've seen--the same commands I use for getting around a code buffer are used to get around directory listings, documentation, compiler output, shell output and so on. Since everything, including the UI, is basically text,I don't have to treat the content much differently from the editor. This makes doing all sorts of sometimes complicated tasks easy.
On top of this is has some incredibly awesome features.
I am literally addicted to TRAMP--if I want to open a remote file, I just enter the remote path as if it was a normal file path and it just works. I can also open remote shell buffers just as easily. This makes working on several different servers at a time just as easy as working on local files exclusively; people watching me often don't even realize that some of the stuff I'm doing is remote.
Org-mode is really great. For a simple, easy to learn outline editor it's extremely flexible. Using the same tool for notes, todos and even presentations is great.
I also use Emacs to manage many shells, the way others use GNU Screen. This integrates managing a bunch of potentially remote shells into my workflow really well.
It also has some really brilliant language-specific modes like AucTeX and JS-2. The normal Haskell (with some potential additions like Scion and ghc-mod, although I still haven't tried these) is also great.
I even use it for Jabber and IRC. This makes it easier to code and chat at the same time and gives me access to a lot of Emacs's great features. A very practical example is the TeX input mode. If I want to use random unicode symbols, I can enable an input mode that automatically translates \lambda to λ and so on. This is also really useful for making some of my Haskell programs prettier :).
So really, the old saw about Emacs being an operating system is basically true--it can even view images and PDFs! Really, the main thing I do outside of Emacs is browse the internet, and I could even do that in there. However, the rest of the saying (that it just needs a decent text editor) is less true; while the default bindings are perhaps less powerful than Vi's, they're still extremely good and make for a much better editor than any I've used, including those that attempt to emulate Emacs bindings, which inevitably miss a good portion of the movement and editing commands I use regularly.
So yeah, Emacs is like magic.
EDIT: Oh yeah, with Emacs server and a relatively nice laptop, opening a new Emacs window literally takes a fraction of a second. In fact the minimal fade-in animation I have takes longer than actually launching it.
- hassy 15y agoWhat do you use for browsing code in a bunch of files in different directories (if anything)? I use Emacs 99% of the time, but when I need to look through a codebase I'm not familiar with I use TextMate for its project panel.
- leif 15y agoI use ido-mode for file browsing, and semantic for code browsing. etags will get you quite far, semantic-symref gets you the rest of the way (though you can use cscope instead, through xcscope.el). ECB can be helpful but I don't find I need it much anymore, and it's pretty out of date.
- hassy 15y agoI use ido and imenu to jump around, but this is for when you already know what's where and how it all fits together. What about when you download some library from Github and want to quickly get an idea of how it all works?
- daleharvey 15y agoI use github, and mostly the t browser shortcut (yo hassy)
- johngunderman 15y agoThis may not be exactly what you're looking for, but I generally resort back to good old 'git grep / grep' when looking through unfamiliar github projects. running grep from emacs links all the matches to their corresponding files, so you can navigate the results and easily follow the code execution by jumping to each result.
- troels 15y agoThere is speedbar, which can be tailored to look a lot like TextMate's panel. Personally, I use the command lines + vim if I'm mainly reading/browsing through code. I even use vim for minor edits, even though I use Emacs as my main editing environment.