I've been using TextMate for years and I'm productive and happy with it. However, I like to try other editors from time to time to see if I'm missing anything. Recently I spent some time learning Vim and I discovered a few things that I particularly liked.
1) Split windows -- not the kind of split windows you normally get in Mac applications, but the Vim style ones. In Vim you can easily navigate from the keyboard to your different splits and choose what files to display in each. Additionally, you don't have to reach for your mouse to create a split. When you split, Vim divides the space up for you which is what you want most of the time. I found that it is very handy when needing to view more than 1 file at a time, which in my case is most of the time. Closing splits is about as easy as they are to create -- all from the keyboard. Multiple windows isn't really the same thing because they are slow to setup and tear down.
2) Selective multifile grep -- in Vim you can use a regular expression to open a set of files, and then just grep across the open files.
3) Don't need arrow keys -- after years of editing with the mouse; I find it painful to reach for it. It hurts my right shoulder and shoulder blade. It even hurts to have to move my hand down to the arrow keys. However, in Vim it is easy to keep your hands resting on your keyboard with your shoulders relaxed. No reaching for the mouse or arrow keys.
TextMate 1 or 2, is there a way to auto-highlight all occurrences of
I was from Windows using EditPlus, when I double-click or Ctrl+W to select
a word, EditPlus is able to automatically highlight all occurrences in a
different background colour, very nice and useful feature.
With TextMate I have to additionally hit Opt+Cmd+F, and highlighting colour
is same as selected word, not eye-catching. I use 'soft' and light
background for selection background but I prefer bright background (eg
yellow) for highlighted words.
Ctr-S not really meets what I need.
Sent from my mobile. Ignore the typos unless they're funny.
I've used Whitesmith bracing style for *decades*, and had it kinda-sorta working in TM 1.5.x, though not perfectly. Now I've lost those old settings and for the life of me can't figure out how to get it even close in 2.0. There's clearly something fundamental that I'm missing, but I've spent hours on this off and on over the past few months, and I'm guessing that someone who really understands the rules (and regex) better than I, could get me on the right path in short order. I'd definitely appreciate it.
For those (unfortunate souls) who are not familiar with Whitesmith:
Also, just as a general suggestion, it seems like it would be really helpful to have just a handful of "packaged" example indentation rules for the small handful of common bracing styles, i.e. Allman, K&R, Whitesmith, maybe Gnu. Of course it wouldn't be perfect for everyone, but it could be really helpful as a starting point. If you know of such a set of examples, please point me to them (yes, I've looked). Thanks!
I absolutely love the feature introduced in TM 2 with Lion: being able
to reopen all the windows  after any expected or unexpected events
(rebooting, upgrading, crashes, ...).
What I miss in TextMate though is reopening the windows in the same
desktop where they were before closing the app.
I often have up to 100 files opened at the same time, spread across a
number of desktops and I only reboot the OS about once in a month. But
after every reboot or TM upgrade, I need to sort the windows manually
again which is a bit annoying.
Terminal windows open in exactly the same desktop where they were
closed, the web browser (Chrome) sadly doesn't respect that, about
other software I don't care. I would really love it if TextMate would
remember in which desktop the windows were last opened and reproduce
the exact state after relaunch. I don't know how difficult it would be
to implement that change though.
What do others think about it? Should I enter the feature request in
I have two displays. If I have two TextMate projects open, one in each
display. When opening a file from the Terminal using the "mate" command
in the project located in the secondary display TextMate will correctly
open that file but set the focus on the project in the first display.
I'm not sure if this is a problem with TextMate or the OS X window
management but it can be quite annoying.
I tried to open a folder in TextMate today (one I open often) and it
crashed. (It was already running, as always.) Ever since, I’ve been
unable to get it to launch.
It detects the crash and asks about restoring open documents. It crashes
no matter what I choose there.
I haven’t changed any preferences or bundles or installed any updates
* `defaults delete com.macromates.TextMate.preview.LSSharedFileList`
* `defaults delete com.macromates.TextMate.preview`
* `mv ~/.tm_properties ~/foo`
* trashed `~/Library/Saved Application
* trashed `~/Library/Caches/com.macromates.TextMate.preview`
* restored `~/Library/Applicaiton Support/Avian` and `TextMate` from
a backup taken this morning
* downloaded the app again from the web site
* tried an older version (beta 7.3)
* rebooting, like a poor beleaguered Windows user
The only thing that *did* work was launching it as a different user, so
it’s something with my account, but what’s left?
I haven’t tried deleting all my bundles, but from the dates, I don’t
think any have changed since March.
From the crash log:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_platform.dylib 0x00007fff94e40331
_platform_memmove$VARIANT$Ivybridge + 49
1 com.macromates.TextMate.OakTextView 0x000000010f92dfe1
oak::callbacks_t<ng::callback_t, false>::remove(ng::callback_t*) + 105
2 com.macromates.TextMate.OakTextView 0x000000010f8feeea
-[OakTextView setDocument:] + 437
3 com.macromates.TextMate.OakTextView 0x000000010f8f0584
-[OakDocumentView setDocument:] + 643
4 com.macromates.TextMate.OakTextView 0x000000010f8f01f4
-[OakDocumentView dealloc] + 457
5 libobjc.A.dylib 0x00007fff9676389c
objc_object::sidetable_release(bool) + 236
6 libobjc.A.dylib 0x00007fff96749e8f (anonymous
namespace)::AutoreleasePoolPage::pop(void*) + 575
7 com.apple.CoreFoundation 0x00007fff93a6b6f2
_CFAutoreleasePoolPop + 50
8 com.apple.Foundation 0x00007fff89f13762
-[NSAutoreleasePool drain] + 153
9 com.apple.Foundation 0x00007fff89f2d5cc
_NSAppleEventManagerGenericHandler + 121
10 com.apple.AE 0x00007fff8d45934c
aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned
char*) + 531
11 com.apple.AE 0x00007fff8d4590c9
dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 31
12 com.apple.AE 0x00007fff8d458fd3
aeProcessAppleEvent + 295
13 com.apple.HIToolbox 0x00007fff90935c6e
AEProcessAppleEvent + 56
14 com.apple.AppKit 0x00007fff8e357da2 _DPSNextEvent
15 com.apple.AppKit 0x00007fff8e356e58
-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
16 com.apple.AppKit 0x00007fff8e34caf3
-[NSApplication run] + 594
17 com.apple.AppKit 0x00007fff8e2c9244
NSApplicationMain + 1832
18 com.macromates.TextMate.preview 0x000000010f533f19 main + 840
19 com.macromates.TextMate.preview 0x000000010f51e914 start + 52