Eclipse to Textmate: An IDEological Change
particletree.com
particletree.com
So I find myself wanting to use TM, because as a pure editor it is very nice - but for example find that the Ruby specific features in Netbeans* are such huge timesavers that it is impossible to justify sticking with TM. I found the same to be true with Objective-C and Xcode as well.
(*I have been no fan of NB in the past, and there are many things about it that suck, but they have done an amazing job with Ruby, nothing else I've seen comes close.)
That said, whatever you do, do NOT tie your development/build process to an IDE. You need to allow every developer to use the tools they prefer, and you want the freedom to be able to switch these tools quickly.
On the topic of vim, I highly recommend it for those who haven't tried it out. Sit me in front of vim and a unix terminal and I can quickly do any refactoring task that needs done. I have used vim macros to turn an HTML table into a C array in a few seconds. Seriously, once you get a powerful editor, it is so flexible and applicable that you will never want to be without it. Navigating text in an editor without vim's movement commands (W, w, B, b, {, }, *, #, and so many more) is simply painful.
Of course, I know enough people who are super quick in Eclipse.
Some less-commonly-used-but-awesome features:
C-X C-F in insert mode: complete file names
C-X C-L in insert mode: complete entire lines of code
C-N, C-P in insert mode: complete word forward, previous
v (V) in edit mode: entire visual mode (visual line)
gq in visual mode: rewrap selection
>> in edit/visual mode: indent current line/selection
gg=G in edit mode: reformat indentation of entire file
@@ in edit mode: repeat last keyboard macro
There's a lot I've left out (obviously), but that's a little teaser. One paradigm I use a lot is when I need to change a variable name... this is very easy. While on the variable itself, press * to search forward for it. Then type cw to erase the word and type in the replacement, followed by ESCAPE (of course). From then on, you can use n to find the next occurrence and then type . to change the name, because . repeats the last command.Oh, and one last thing. Remap ESCAPE to CAPS LOCK, or get used to using C-[. Both are more convenient than reaching for the top corner; CAPS LOCK is superior in my experience, but it will kill you when you're on a non-mapped system.
From time to time I look for alternatives, and sometimes find myself back in Notepad++. I guess that's the punishment I get for liking my ThinkPad hardware.
Very detailed, and the thread owner has a T61p.
What you'll find is that the modern GUI mechanisms for interacting with code are just terribly awkward. You'll start using keystrokes for other stuff too (like Alt-Tabbing to your command line), and everything will fall into place. Eventually, you'll start writing rants like this one trying to convince all the young'uns about how wrong they are about what they want in their tools.
I agree that if you just want to code something yesterday, you probably won't reach for these most powerful tools. I'd say that if you're committed to programming over the long-term, though, you'd be hamstringing yourself by not starting on them now.
Long story short, I started Emacs a few months ago and I'm never going back.
"Eventually, you'll start writing rants like this one trying to convince all the young'uns about how wrong they are about what they want in their tools."
I do; I'm just a little more subtle about it.
It supposedly supports textmate bundles so that should help a lot.
Its not free, but you get what you pay for.