The text editor. The programmer's most important tool and the center of an ongoing debate that will occupy programmers for years.

I'm not going to debate on the best editor as that would be stupid. Everyone has their own preferences and needs. Vim does offer some nice advantages for those familiar with all the necessary keystrokes, but for my needs I just want a nice, extensible text editor that I am comfortable with. I chose Sublime Text 2 a couple of years ago and more recently I have started using Sublime Text 3 for my day to day coding needs.

The Essentials

Okay they're not really essentials, but if you can't even look at your text editor then you're already hitting your first hurdle. Not only does Sublime Text allow you to change the colour scheme and fonts for the different languages you code in, but it also allows you to change the theme of the editor. A nice touch I think you'll agree.

Theme

I settled on the Flatland theme a few months ago. Its non-gradient look might be a bit bare for some, but I do like this theme. It's very dark and I prefer the dark background in my sidebar and tabs.

It also allows you to customise the height of the folders and files in your sidebar. By default Sublime does have a fair margin around these, but Flatland allows you to specify a smaller size, so that you can fit more into your sidebar.

Colour Scheme

Long before I started using Sublime Text 2, I was already using the Solarized colour scheme. I've stuck with it ever since and even use it as the colour scheme for my terminal. I prefer the dark version as the light version does have too much of a stark contrast with the Flatland theme.

Font

I've tried lots of fonts for programming with, but I find that Monaco, a font shipped with OS X, is best suited to my needs. It looks nice on my MacBook Pro and on my external monitor with just a small difference between the two screens.

Installed Packages

I do have a fair number of packages installed for specific things like Cucumber, RSpec, Rails and other language and framework specific needs so I'm going to list those packages that are independent of language and therefore get used on a frequent basis.

AllAutoComplete

Sublime Text 2 just came with autocomplete listings for the file you had currently open, so this plugin is a welcome addition as it includes all currently open files for your autocomplete listing.

SublimeGit

This package is a great package with plenty of integration with Git. It's also the first paid package that I have used with Sublime Text 3. As I use Git all the time, this plugin been worth every penny.

GitGutter

GitGutter allows you to see which lines have been inserted, deleted and modified. It's basically a diff for your editor. Little symbols appear in your editors margin to signify where code has been changed. At a glance it's nice to see where I have modified a single file.

Origami

You can't use Vim and not be impressed with being able to split panes with just a few keystrokes. It was one of the few things I have managed to remember from my many sojourns to the land of Vim. Sublime Text does have the same ability to split panes, but the keystrokes for this are difficult to remember.

Origami makes splitting panes much easier by providing easier to remember keystrokes for manipulating and navigating through panes as well as having the same commands available in the command palette.

MarkdownEditing

I handle a lot of files in Markdown. It's the default markup for the majority of files that I create and use. Brett Terpstra's MarkdownEditing package provides some sensible defaults for editing Markdown files. It also provides some handy keyboard shortcuts for manipulating Markdown files such as inserting headings, pasting links and adding footnotes.

CTags

Although Sublime Text has built in support for finding symbols in the current file, having ctags support just makes navigating between methods a lot easier. Rather than switching to a file and searching for the symbol, I can simply use ctags to pull up all symbols for the project navigate straight to the method I need.

So there we go, a quick run down of my Sublime Text 3 setup. If you're looking for preferences files then I must do an update of these on Github, but I'll provide a link here when that's done in the next couple of days, so be sure to check back.