Recs.
Updated
SpecsUpdate
Pros
Pro Functionality can be easily extended
Sublime Text uses TextMate's syntax declaration files to support new languages, has all its menus and keybindings generated from JSON files, and can be scripted to add new features using Python.
If Sublime Text doesn't support a desired language or feature, it's usually not long before someone implements it themselves - examples include the plugin package manager and the 'open in browser' command.
Pro Multi-line select and editing
Multiple cursors & column selection allow versatile ways of editing.
ctrl + d
will select the current word and each time the command is repeated add the next occurence of the word to the selection.
ctrl + click
or middle-mouse click
will place another cursor in the place that's clicked. Cursors can then be controlled together. This also allows selecting vertically.
ctrl + shift + l
will place a cursor on every highlighted line.
Pro IDE features without the cruft
Sublime Text, while being lighter-weight than an IDE, still supports many IDE features.
- Text from the current file is used to provide autocomplete
- Project Support (folder browsing, scoped history, build-system declarations)
- Refactoring support is emulated through multi-select, project-wide find & replace, and regular expression search
- Syntax-aware selection and GoTo for quickly jumping to locations in the project
- Snippets & Macros
- A Python console for everything else
Cons
Con Very simple and poor Intellisense-like code completion/introspection
There's no contextual reference for autocomplete and autosuggest; the IDE offers little intelligence on classes, return types and other language cues.
There's a few packages that add a little to code completion, such as SublimeCodeIntel (adds Jump to Symbol Definition, Import/Package autocomplete and function signature tooltip). But none so far take context and visibility into consideration. Works great for small projects, but can be hellish to work when you have hundreds of classes.