So that being said, here is a breakdown of my current development setup.
I tend to bounce around between a lot of machines, running various Operating Systems. For example, my main laptop is a 17" Mac Book Pro running Snow Leopard. My main workstation at home is running Ubuntu 10.4. My netbook is also running Ubuntu 10.4 (Netbook Remix). My servers are Running Various versions of FreeBSD or Other *nixs. And I tend to hack on all of them, and wanted to have the same tools available on each.
Editors
I had been using Textmate on OSX, and did really enjoy using it, but when swapping over to one of the other boxes it wasn't available. So now my primary editor of choice is vim. Normally use the latest snapshot of MacVim when on the MBP, and the latest version of vim supported by either packages or ports. This gives me the same editor on any o the machines that I use, in both "gui" and "cli" versions. And if I find myself on a new *nix box, there is a pretty good chance vi will be there, so I will not be totally lost.
VCS
I like most geeks, started with RCS, then moved to CVS, then onto subversion, then onto git. I've since moved over to using Hg for most of my new development. Hard to say exactly why, but it just feels easier to use/grok to me. I spend most of my time in the cli, but Murky is a pretty nice Gui Client for OSX.
Shells
I've used bash for what seems like forever, mainly cause it was one of the first shells I was exposed to. But i've dabbled in both KSH and CSH. The one currently tickling my fancy for interactive use is zsh. Between the vcsinfo module, and it's completions (the ability to autocomplete across an ssh/scp connection totally rocks), make it ideal for me and my day to day use. For the majority shell scripting needs, I still tend to use just plain sh, so I can remain as cross platform as possible.
IRB Plugins
Hacking in ruby, I find myself spending a decent amount of time in IRB (or the rails console) Which is great for testing out ideas and the like. I've found a couple of plugins that help me out in this regards. The 2 that I am currently making use of are Awesome Print and bond. Ap provides some nice formatting on IRBS output that allows you to easily look into data structures, and bond is better code completion support.
Keeping it all together
Since I've been using HG for my development needs, I also keep all of my dotfiles in a repo. This allows me to keep a history of my changes, and also allows an easy way to keep them updated on each of my machines. If you are interested in what I am currently using there is read-only access to them at My Dotfiles. I like the fact that I can use ruby in the irbrc file to conditionally set options based on the presence of certain gems. I use a Rakefile to handle the install of the various files in their correct places. Feel free to steal^h borrow anything you like, as I've borrowed it from a bunch of way smarter people than myself. Or let me know if you have questions on how anything works..
