An interesting SMS project over in India is proving to be popular with farmers. Twitter is a presence command line, YubNub an internet command line and IM bot systems like IMIS are coming out into the open. I for one spend most of my day between the Mac OS X terminal and a text-editor (which interestingly can run terminal commands.) When I use Gmail or Google Reader I use the keyboard almost exclusively. I wish WordPress had better keyboard support. Even when I am in Photoshop or Fireworks I find learning the keyboard shortcuts to be invaluable though in those two cases it becomes an even faster system of mouse and keyboard movements. Mac OS X with Quicksilver or even Spotlight is a god-send for launching applications and finding files.
Even Windows Vista has made some improvements by putting a search/run/command text-box in the Start menu. Now if only Windows would have a good command line as default (PowerShell requires extra steps, make it the default Microsoft.)
All in all the command line and the keyboard are reclaiming some lost-ground that the mouse ate.
I use TextMate for most of my working day. The TextMate Basics Tutorial is a good place to start to increase your proficiency with it. Here are a few of the more useful keyboard-shortcuts:
Another rather hidden feature is the incremental search. ⌃S or ⌃⇧S incrementally searches forward/backward as you type (the status bar will turn into an input field in that case).
⌃G (Text → Convert → To Opposite Case) with no selection will toggle the case of the character next to the caret and advance the caret. with a selection it will toggle the case of all the characters in the selection (and leave the selection in place).
Subversion Support is provided via this Bundle. Just checkout a directory or file from a Subversion repository, open it in TextMate and you can use this Bundle. All Subversion Commands use the same shortcut ⌃⇧A
Bookmarks are marked places in your document. ⌥⌘B (View → Gutter → Bookmarks) will show them in the gutter (the gray panel to the left of the editable area, containing line numbers etc.) You can create a bookmark with ⌘F2 (Navigation → Add Bookmark). This will put a star (★) in the bookmark column of the gutter for that line. You can then always cycle through your bookmarks with F2 (Navigation → Next Bookmark) and ⇧F2 (Navigation → Previous Bookmark).
So, F1 View → Fold Current Block
There are many more but it is best to add a few every week to your knowledge so they become automatic.
I normally launch TextMate through a terminal window with “mate *” in the project directory. That brings up TextMate with the folder list showing all folders and files in the project directory. It works nicely but often there are directories in your project that you don’t need to edit but which are cluttering the view.
So just the other day I learnt that instead of “mate *” you can type “mate dir1 dir2 dir5″ and TextMate will load with just those folders shown. e.g. in a Ruby on Rails app you generally only need to edit the app, config and public folders, ignoring the log, vendor, test etc. folders until you need them later. So you can type “mate app public” for a Rails project.
TextMate updated for the second time in a week. The main change is logged as:
[REMOVED] TextMate no longer pays tribute to human sacrifices, rape, nor does it show a picture of the God of the deaths in your dock — ticket 945BEB5D
I can’t find the ticket but that is hilarious. I hope whoever posted the ticket had tongue firmly in cheek.
(And TextMate is working out well for me, a very good text editor. The halloween theme was great.)
This might seem a bit “me too” but it would seem all the Ruby on Rails developers on Mac who use TextMate actually have a clue. This is a really good text editor. Good enough that I just paid €39 for it. The “project” fly-out is simple and brilliant, no meta project files or strange directory structure requirements; it just shows everything under the directory you specify. The bundles work well too providing shortcuts and intelligent text handling for a variety of tasks e.g. HTML, CSS and Ruby on Rails.