Monday, June 09, 2008

TextMate Keyboard Shortcuts

Those who have been reading this blog know that I like IntelliJ and blogged about it a number of times in the past. But let's admit it: IntelliJ is a big guy. It is heavy. Starting IntelliJ takes minutes. Even alt-tabbing to IntelliJ after not using it for a while can take minutes. And all this on a fairly top-of-the-line laptop. This led me to experiment with other editors, in particular TextMate.

TextMate compares more to Emacs or SlickEdit. So it won't replace IntelliJ for everything, but I have been using it for a week and it worked quite well for simpler tasks. For those of you who would also be starting to use TextMate, I put below a list of the keyboard shortcuts I use the most. I hope you will find it useful, and if you have other suggestions please post them in the comments.

Bundles1
Subversion: ^⇧ A
Diff: ^⇧⌘ D
AckMate (powerful "search in project" using ACK): ⇧⌘ A
Git2: ^⇧ G
MissingDrawer (replaces the standard Project Drawer)
JavaScript Tools: ^⇧ V to run JavaScript Lint
Line/block operations
Select current word: ^W
Select current line: ⇧⌘L
Duplicate: ^⇧ D
Delete: ^⇧ K
Move: ^⌘ up/down
Re-indent: ⌥⌘ [
Indent left: ⌘ [
Indent right: ⌘ ]
Find
Find in project: ⇧⌘ F (but ack is better)
Copy to find buffer: ⌘ E
Go to file: ⌘ T
Go to symbol: ⇧⌘ T
Incremental search: ^s
Copy/paste
Paste previous: ⇧⌘ V
Paste stack: ^⌥⌘ V
Reveal and Project Drawer
In project: ^⌘ R
In Finder: ^⇧⌘ R
Move focus from editor to project drawer: ^⇥
Move focus from project drawer to editor: ⇧^⇥
Bookmarks
Create bookmark: ⌘ F2
Go to next bookmark: F2
XML
Type tag pair: <⇥ (then type tag name, then ⇥ again)
Insert closing tag: ⌥⌘ .
Misc
Completion: Esc
Show all the shortcuts that apply in the current context: ⌃⌘T
Disable/enable check spelling as you type: ⌘⌥ ;
For the sake of how it looks: the green moleskin icon3

1 To install a bundle, copy the MyBundle.tmbundle directory in your ~/Library/Application Support/TextMate/Bundles.
2 If you like me, your Git binaries are in /usr/local/git/bin, after installing the Git bundle, set TM_GIT to /usr/local/bin/git (in the TextMate preferences, Advanced, Shell Variables).
3 From the Green Moleskin package, I only use their gorgeous icon. Download the package, unzip it and you'll find the icon in Green_Moleskine/Etext Icon/moleskine_textmate.ico. First cp "Green_Moleskine/Etext Icon/moleskine_textmate.ico" /Applications/TextMate.app/Contents/Resources/TextMate.icns. Second, open the icon in Preview, select all, copy, go to the Finder, do Get Info on TextMate.app, click on the icon on the top left of the window, and paste.