Wow, this was fast! I never thought writing again about Emacs just a day after my first post about it.
So far (the short version) I am doing better than I thought for just about a couple of days being serious about this. There are a few things that still bother me a lot though, aside from the fact that I am not proficient using it yet, of course.
My [mostly borrowed] customizations
I’ve heavily customized Emacs to suit my needs better than it could do with its awkward defaults. Emacs key shortcuts (or is it key bindings?) are soooo unpleasant, unintuitive, lengthy and annoying that I refuse to use them at all. Happily one of Emacs’ most powerful strengths, its ability to be customized, comes to the rescue. Actually this feature is what makes Emacs still relevant after 30+ years.

My Emacs after being customized
Without going too much into details, I based my Emacs customizations mostly on Ryan McGeary’s, mostly because his setup is aimed at Ruby on Rails development and Git, which is what I want Emacs for in the first place. Overall, it’s ri-emacs, rinari, rhtml-mode, magit, yasnippets, and several other non-language-specific customizations (ido, recentf, etc.)
On top of this setup, and after pruning stuff that I don’t need, at least for the moment (like erlang, markdown, haml, svn, carbon-emacs, etc.) I added support for some other stuff, namely rspec, cua-mode (see Common User Access), and other minor goodies from other sources.
Aside from McGeary’s setup as a base, I have to give credit to snippets of code I borrowed from elsewhere to further customize my environment. I should particularly mention Devcraft’s advises to customize Emacs for Rails development, Dahoiv’s .emacs file, the Emacs blog (where Ryan McGeary also writes) and the emacs-flu blog.
Pros and Cons
On the good side, I have played for a while with the ruby on rails mode and it is good. The yasnippet extensions take a lot of credit on this, but overall it tastes very good on its own. I have yet to deal enough with the magit extension to fully evaluate my environment. I cannot afford buying a Mac+TextMate for Ruby development, and Emacs can hopefully come to the rescue for my productivity and joy while coding.
Also, having been able to get rid of most of the many painful key bindings in such a short time was amazing. I wonder why Emacs does not update its defaults to comply with the CUA standards. The cua-mode is not enough.
On the bad side (taking aside my own inexperience and lack of abilities) not everything is doing fine. Many of my key-bindings customizations break on “weird” modes, like C-w for closing the current buffer, which is not working when the current buffer is in dired mode.
Also, I feel disappointed with the embedded shell (M-x eshell). I actually expected a bash session inside an Emacs window, but aliases and tab-completion are not working as they should, which makes me suspect it is not bash but an Emacs shell program (surprise!!!). As it is right now, I prefer to Alt-Tab to my terminal emulator with a real bash session in it. Something similar happens with the Rails console (available via C-c ; c), which I really didn’t test a lot after I realized that pressing the up and down arrow keys didn’t navigate through my history of previous commands
.
So, what is it then?
In spite of all this, I still believe I can give Emacs a chance. Most shortcomings I’ve faced are not directly related to its function as a coding environment, but to tasks around coding, like going to the console to type rails-related commands, manipulating the file system, etc. I was doing these stuff outside my previous code editors anyway so I guess this can stay as is for some time.
Hopefully I’ll be able to fix some of this issues over time and always use more and more features of this wonderful editor. I could even live without using git from within it, but I have yet to test that. Meanwhile, I’ll take some time to get better at coding with what is currently working for me. It seems to me that Emacs will stay for a while on my desktop.
try ansi-term or multi-term in place of eshell you will not be disapointed
Use shell for a normal bash shell. eshell is good because it is implemented in emacs lisp so it works on systems without bash. I use shell when I can though.
Why kill buffers. I use midnight-mode to clean up buffers I haven’t used in a while, other than that I mostly just leave them since they don’t get in the way. Sometimes I do close all buffers after finished a project for example, ido-mode comes to the rescue, you can kill buffers from it with just C-k.
Get out of the habit of using the up-arrow etc. use the main section of the keyboard only, it’s much faster. The default in emacs for previous is M-p.
As you use emacs more, you love it more.
Thanks Francois and Borbus for your comments and suggestions. However, I am forcefully not using emacs for the time being, because I got involved in a project related to iPhone development, which kind of forces me to use xcode (not even textmate). But the mere fact that I finally acquired a Mac+TextMate makes it difficult that I ever go back to emacs. I do have Aquamacs installed right now, just in case, but as I said, I haven’t had the time, not even to use TextMate.
Thanks anyway for your tips, they could come handy in the future.