For the majority of us, most of our time spent on a computer (when not surfing) involves entering data of some kind. If you’re one of those ‘graphics’ types, then this won’t affect you, but if you spend time (even a small amount) typing, then this affects you.
Text input isn’t hard, we either spend time learning how to touch-type, or we become very adept hunt-and-peck-ers. It’s managing the text once it’s *in* that it becomes difficult, sure, cut, copy, and paste are simple to do, but what about that bulleted list, where you need to indent a few lines again because you realise that they could have their own section? If you select the lines and hit the tab then all the text disappears and is replaced by a tab! Really helpful.
Vi (and family), the "man’s" editor
Until recently I found the best software for text manipulation was [vim](http://www.vim.org/). It’s a very small but extremely powerful program, and it’s text manipulation controls are brilliant, it’s one failing is the very steep learning curve. It doesn’t take long to learn some basics, but if you want to perform something you haven’t done before it takes quite a while to work out how from the documentation, sometimes it’s just quicker to re-type it as it should be, and that’s a waste of time.
When I moved to the Mac from Linux I still used vim, the built in text editor on the Mac isn’t much different to Windows Notepad, so, not very useful. I took a look at [BBEdit](http://www.barebones.com/products/bbedit/), which a lot of people swear by, it’s good, but not as good as [TextMate](http://macromates.com/), which I tried out at the same time. It didn’t take long to figure out which was the best for my needs.
TextMate: An editor the the "new man"
The more I use this software, the better it gets. Whether you’re typing text for a letter or report, or typing text to go into a web-page, or even coding, manipulating configuration files or blogging, TextMate has something for you. For letter and report writing it’s clean interface allows you to get on and get the content right, formatting can be done afterwards in a word processor instead of distracting you from the job in-hand – text input. For blogging it’s great! You can start an entry from the templates and it’ll do the upload for you when you’re done. Entries in my blog here are done exactly that way. For coders (professional and amateur – like myself) it’s essential that your editor looks after your indenting otherwise things can get very messy and confusing. TextMate does a wonderful job of this. It also looks after parentheses, you insert the opener, it automatically puts in the closer, you can select a section of code and have it wrap the entirety within parentheses. For [HTML](http://en.wikipedia.org/wiki/Html) work it’s a boon to just type, for example, h1 then hit Ctrl+Shift+< and have the code
inserted for you, it’ll also wrap a selection in tags too. It’s even better for things like HTML forms, using “tab completion”, you type “form” and hit the tab key, and the following appears in your document:
<form action="" method="get" accept-charset="utf-8">
<input type="submit" value="Continue →">
… and your cursor will be in between the quotes following the `action` attribute ready for you to start setting the parameters.
The functionality described above is implemented using ‘bundles’, and there are bunles for most types of code: AppleScript, C, CSS, Java, LaTex, Objective-C, PHP, Python and Ruby are just a few. And they are extensible. If you don’t like the way they work you can edit them to suit, or you can add your own.
I can’t recommend this software highly enough.
… oh, I forgot to add this link for a great tutorial it does drop you in at the deep-end though.