Sunday, August 19, 2007

On TextExtras

I'm back from a lengthy workshop. There has been quite a delay since my last post, due to the workshop and all the associated tasks needed both before and after. Almost a month, in fact. Let's rectify that now with a quick, easy post to get things started again.

In an earlier post, I wrote that I was unable to download TextExtras. Not too long after that, I was able to reach the site again, and have been using TextExtras since.

TextExtras is, in short, a wonderful extension to every text field in Cocoa applications. There are an almost overwhelming number of options you can set by enabling key bindings. However, I've enabled just one key binding so far, since I don't really want to relearn a big list of keyboard shortcuts and don't really need lots of editing power in every application. All that I did was to bind esc to TextExtras' completion option. This calls the normal Cocoa autocompletion, including whatever extensions are provided by an application (like in SubEthaEdit), but with a different interface. The Cocoa autocompletion system completes the word for a single match and shows a list of possibilities with multiple possibilities. TextExtras' completions insert the first match and cycles through additional matches with additional strokes of the appropriate key. I find this is often more convenient when programming, because you often get the match on the first try with variable names. In this case, the Cocoa approach selects the newly inserted text, requiring you to use the arrow key or some other method to move on. In constrast, TextExtras just puts the cursor at the end of the word, and you can just keep typing. If Cocoa completions always showed the list of possibilities, even in the case of a single match, it would be a lot nicer to use, since you could, e.g., just press the space bar to choose the only match and keep typing. Of course, I still have the usual Cocoa completions using option-esc.

More significant is the "Execute Pipe..." action. This pipes text through a Unix shell command. SubEthaEdit has an AppleScript to do that, but it's pretty limited. TextExtras gives you something more like the pipe action in TextMate. This is great to have when editing, and comes in handy for all sorts of situations. Shell pipelines everywhere!

There are many, many other possibilities with TextExtras. Try it!

No comments: