I have finally seen the Emacs light
Just got to say this to all you netbeaners, eclipsers etc out there.
Today i finally groked what makes Emacs so good. I havent groked Emacs itself yet but all the IDEs i have tried have disappointed, they are big, slow and ugly and hard to navigate easily and there is a lot fo unnecessary clutter which you sometimes can and sometimes cannot take away.
Emacs has a bit of a barrier of entry but as soon as you learn some keyboard-kung-fu it will make you very productive.
Jump between buffers, run an interpreter, search your code, etc.
So powerful and so elegant. Emacs captures the essence of good software.
78 comments
[ 13.4 ms ] story [ 385 ms ] threadAnd I did it all again a few years later when (no longer using terminals or other people's computers) I finally bothered to map the control key to the left of "A", meta to underneath the '/' (sadly not always consistent on PC keyboards), stopped using the non-alpha keys, and realized how nice the "weird" keybindings always were.
http://mark.nirv.net/post/6694167/guilty-pleasures
I use Emacs for everything (including this comment), but every so often I find myself craving a fix of hjkl;
I love emacs and the philosophy of emacs but IntelliJ just makes a lot more of the pain from Java go away. Ive tried but the emacs-equivalent tools like Semantic are just nowhere near as mature as the IntelliJ equivalents. As far as code generation and refactoring tools go, IntelliJ can't be beat.
Emacs is great for pretty much everything else though!
shell:
.emacs: need a class or function in emacs:The most notable thing is that emacs encourages you to live in it much more than vim. With vim, I would navigate around in the shell, open up a file in vim, edit, close, repeat. With emacs I'm finding that I spend more time just switching buffers instead of running back to the shell because emacs doesn't simply quit when I kill all my open files. There's always more buffers, so the app stays open and I tend to remain there.
I'm still in the process of getting up to speed with basic editing things, although I've found that the way it manages buffers and what it calls windows (what the rest of the world calls frames these days) is quite easy and quick to use, and I found myself able to navigate around in emacs fairly quickly. All in all, I'm not 100% sure I'll stick with it, but I'm happy so far and I know that I'm still getting over the hump to where I'll be truly productive with it.
I do that to. I open up an `eshell`, navigate around. Then I edit a file with `vi filename.py`. That works best if you have `alias vi find-file $1` in your eshell aliases.
But I later entered a new school with more coursework, and I found the emacs key combinations increasingly uncomfortable. A few of my classmates were using vim and recommended it to me. After several weeks of struggling with vim, I was eventually up to prior levels of productivity, with greater gains in the following months as I picked up more shortcuts.
I feel I perhaps didn't give emacs a fair shake, though, because I never used it as more than a glorified notepad. The feeling I get from the various emacs articles I read online is that you don't see big gains in emacs over, say, vim unless you use a lot of custom elisp... a point I have not yet reached.
With Emacs, I got the feeling that it's the kind of environment where time cultivates appreciation moreso than TM or Vim. I gave Emacs about 1.5 months, and stopped because I didn't want to learn elisp and because I was getting pinky syndrome (I think that's the accepted term).
The switch to TextMate was laughably trivial, and I would have switched out far earlier if it wasn't for some of the slightly more advanced bundles. Interestingly enough, while I learned the snippet system, I found myself using them very sparingly.
My Vim switch was cold turkey, and was reasonably straightforward. I've been seriously typing at a keyboard for a long, long time, but Vim taught me that I didn't know a keyboard as well as I thought. In the beginning, the Vim commands weren't as easy to get to (even if I knew them) as typing prose--I guess typing familiar words just become part of muscle memory. It's been several months now, and I'm both happy with the switch and fairly proficient in Vim.
Gun to my head, I'd take Vim over emacs, but only marginally so. It probably has to do with the fact that I didn't begin to customize my emacs environment. I don't know if that's what I wanted though--I love that I just take my .vimrc (it's quite short), drop it on my server, and the only thing that's different is the fact that my theme is different to what MacVim offers me. It just isn't that easy with emacs--at least, not as easy as carrying around a .vimrc on my thumbdrive and dropping it where I need.
I suppose it's because I've always been a tinkerer and I love the fact that the wall between editing with emacs and editing emacs is so small.
Anyways, this is all old news. Everybody already knows the arguments for both sides and they're both true. I still use vim when the job fits (configs or quick edits) and I use largely emacs for my development (even if though I work at a vim shop and everybody gives me dirty looks).
I just wrote this a few days back: http://news.ycombinator.com/item?id=230990
And although I wasn't sure at first, I'm pretty sure it's worth it. Though many of the things in Emacs are nowhere near perfect (like the in-buffer terminal, blech!), it feels like something that can go much farther than Vim in terms of I'm-going-to-turn-my-text-editor-into-a-full-fledged-IDE type stuff. I still don't know if I'm going to stay with it, but I've promised to myself that I'll use nothing else to edit text for a month. When that's done, I'll decide, though I suspect by then I won't want to switch.
Also, since it's only been mentioned once or twice in this thread: Try re-mapping CapsLock to left control.[1] Ctrl is used quite a bit in Emacs, and often held down while navigating (loosely comparable to toggling modes via Escape in vi). You could also use right-ctrl with the side of your hand when using keys on the left side. People complain about "Emacs Pinky" from bending it down to Ctrl all the time over the years), so if it feels awkward you may want to move Ctrl.
[1]: http://www.emacswiki.org/cgi-bin/wiki/MovingTheCtrlKey
For example, you can take the output of a command, transform the text directly using standard editing commands, fix the weird one-off cases manually, and then pass the results back to the command prompt. Or save the results to a file. Or interleave with code. (etc)
Turning the entire shell into a fully editable/scriptable/keyboard-macro-able scratchpad is a beautiful thing.
Just sayin.
Not super-saiyan.
In this case, vim allows tabs and split windows and the Tramp functionality is built in. I'm not sure about the python terminal, but then again, I've never felt the need.
Yes, that's it. A couple of times I've imagined a really cool feature that vim could have... and it turned out it already has it ... along with additional features and extensions to that idea that I hadn't begun to imagine... whoa... That's a rare and impressive experience (for me), and it gave vim a special place in my heart.
But I agree with you that the same thing would be true of emacs too.
Vim is a huge mess/mass of features, and if you don't already know about a feature, the help isn't very helpful (googling works better). Emacs scripting is probably more regular, being based on a full language.
Serious question.
Ha, I thought, Vim will eat this for breakfast. chug chug, task manager, end task. :(
Right, I'll break out the Emacs. chug chug, task manager, end task. :(
Hmm, what else do I have. Notepad. opened in seconds. :)
Promptly followed by search and replace can't insert newlines. :(
The point is you have to "get" it. There's a point of epiphany after you've been using it for a while where you realize that you're not just changing your tool, you're changing the way you work and think about problems. This is the moment where "usability" suddenly acquires an entirely new definition for you, and you're hooked.
But you need to junk TextMate first. You can't just try emacs, you have to live it, at least for a while. How's that for a zen answer? :)
I use TextMate rather than Emacs for the same reason I use Mac OS X rather than Linux. Emacs and Linux may be more powerful, but TextMate and Mac OS X enable me to get what I want done with less fuss, less time expenditure, and less random jaunts through strange configuration files to figure out why feature XYZ doesn't work. I use TM/OSX because they Just Work.
I'm well aware of the additional power that I could have with Emacs or Linux, but it's not worth the additional hassle.
Also, before comparing TextMate to a GUI editor or IDE, you might want to actually try it. Sounds like you haven't TextMate is a programmer's power editor on a similar standing to vi or Emacs. Maybe not quite as awesomely powerful as Emacs, but close enough to be suitable for most geeks.
Another analogy, this one for bike lovers out there: Emacs is like a Brooks saddle, because it's wildly uncomfortable to start with, but if you stick with it and work into it, it's the only saddle that conforms to your body. Once you break it in, you can never go back to another saddle for long rides, no matter how new and awesome it looks.
Re: Textmate vs. Emacs: It's like comparing Apples and Oranges. An orange juice producer will farm oranges, and an apple juice producer willf farm apples.
To the man using Textmate on OS X, you probably code Javascript an CSS, and might dabble in Rails or vice versa. The guy using Emacs might be doing this as well, but there is a good chance he's a hardcore AI Lisp hacker.
I am a web designer. I write CSS, XHTML, and JS. I deal with Django templates all day long, a web browser, and the remaining time is in the terminal. I'm more terminal oriented than most/all designers I know, but for the most part I am playing around in a GUI wonderland. I use Textmate. Textmate really truly is a powerful editor, I will not disagree. Textmate is hands down the best editor I have ever used, for all of the reasons you have suggested. But I won't deny that Emacs is probably also one of the best editors in the world.
My CTO/Partner/best friend uses Emacs. He's a python hacker. He writes python all day long. He's got a Thinkpad running Ubuntu and quite a few terminal windows. He's doing a totally different kind of work, interfacing with the back-end mostly while I deal with the front end. He swears by Emacs. I tend to think of Emacs more like an OS actually... you can play games in it, browse the web, use your term, check your mail, and edit all kinds of crap. It's extremely powerful. The sumo package contains a TON of extra stuff.
Anyway, no one can really say X editor is better than Y editor. Similar to the way a programmer will ultimately take on a certain language as his own, the same thing occurs with an editor. At some point learning or playing with a new editor is like learning a whole new language. Might as well get dropped smack dab in the middle of Spain, or throw out all of your Python/Ruby/insert-lang-here for Objective-C. It's the same kind of pain.
But I do agree that bloatware crap like Xcode and Eclipse are simply... crap.
Anyway hope some of that made sense. I might have gone off track a bit :/
For the record I am a huge fan of Textmate and use it religuiously. export EDITOR="mate -w" :)
Everything else is vim though, haha, sorry Emacs lovers.
"mate_wait" does not need a "-w"
I had a problem recently where crontab -e didn't like mate. mate_wait seems to work as an EDITOR value everywhere.
Spend a week in TextMate, and you will similarly “get it”, as many emacs power users already have.
And I'm a certified machead, so that was no object.
(I used both for several hours per day for Latex, C/C++ and Matlab)
Then, I started looking for Alternatives. I found MANY. But the one I really felt in love with is TextMate. Somehow, It just works for me... I love its design: This "Emacs the easy way" with beautiful text rendering and without icon-clutter. But that is probably just me. Everyone has to find his own solution.
Although your tone suggests you want to use this as a justification for sticking with TM, it sounds a point in favor of Emacs to me.
In other words, they are removed by default.
Also, emacs lets you redefine nearly any of the functionality on the fly without restarting (everything except the very core which is written in C). I'm not sure if TextMate can do that, as I try to use as little proprietary software as possible.
And it has exactly one (1) feature that the others don't: the bird-view of your code.
Stay away.
Even if this were true -- which it isn't -- the ability to write, distribute, and install open-source extensions to the editor is a hugely important feature. It is, after all, the central feature of emacs itself.
What does this even mean?
> even the Bundles don't add anything that can't already be found in an extension for Emacs
This is demonstrably false.
I am worried though if someone is using a directory structure they can't memorize. Isn't the point of a directory structure to keep things organized in a reasonable fashion?
In 95-97, I used emacs mostly to program in perl. Then I discovered vim, it seemed as powerful and I used it until 2002 when I disovered Jedit.
It was around 2005, that I started using Eclipse. I think I was the last kid in the block to use it and it is a big help, I love the refactoring functionality.