Nice Find: An asynchronous find in project plugin for TextMate
github.com
github.com
http://github.com/protocool/ack-tmbundle
edit: jinx!
No beachballs, and you get the crazy awesome speed of ack.
It's not the developer's fault, they did a great job. It is limitations of being a tmbundle. If you look on AIP's lighthouse page you will see that they can't resolve these problems. That's what drove me to write a plugin instead.
Also Ack (a perl script) is slower than grep -r and git-grep ignores all the irrelevant files. But feel free to fork it to use Ack.
I've one unrelated question for emacs users, since I'm trying to wean myself off of TextMate: How do you accomplish this same type of "find-in-multiple-files" in emacs?
1. Start with M-x rgrep, it may do everything you need.
2. If not, M-x find-grep lets you run arbitrary grep commands. You may wish to customize grep-find-command to some reasonable default, e.g., mine:
(setq grep-find-command
(concatenate
'string
"find . \\( -path '*.svn' -o -path '*.git' -o -path '*.hg' \\)"
" "
"-prune -o -type f -print0 | xargs -0 grep -I -i -n -e "))
3. If you want to just search open buffers, you may find M-x multi-occur-in-matching-buffers useful. I use this simple wrapper, which you invoke using M-x search-all-buffers: (defun search-all-buffers (regexp)
(interactive "sRegexp: ")
(multi-occur-in-matching-buffers "." regexp t))
4. You may find filtering files and query-based search replace useful, in which case you should try dired-mode. It does a lot, so try marking files (look in the Mark menu for various options), then operate on them (Operate menu). For example, hit "% m" to mark files by name regex, type "\.[c|h]" to mark all C and header files, then press "Q" to start interactive search-and-replace through all marked files.5. I don't know of a direct equivalent to Nice Find, e.g., basing a search on "git grep" output, but if you look through the various Git modes, you may find something useful.
http://www.emacswiki.org/cgi-bin/wiki/igrep.el
A lot of people have attacked the grep problem in emacs.
That's one option. There's also find-dired. I also believe there are a bunch of different extensions that can do this as well (find-in-project, etc.).
I think it requires a plugin, but I'm baffled why it isn't there out-of-the-box. (Unless it is there, and I haven't found it yet.)
??
~/Library/Application\ Support/TextMate/Plugins/NiceFind.tmplugin
However... god damn, is Textmate ever the saddest project I've ever seen. Why the fuck are we still using this abandoned app? Seriously...
Q: Will TM2 be a free upgrade?
Yes. Except for users who got TM1 as part of the MacHeist package. The MacHeist TM1 license will require an upgrade fee in order to upgrade to TM2.
When I read this, years ago, I saw it as a sign that the author of TM might not stay in business for very long. I can't imagine a paid TM user who would balk at a $39 upgrade, let alone a $29 or $19 upgrade -- we're talking about the kind of software that you use for 8 hours per day -- and yet the guy has left that money on the table. In advance. (Once you've announced a free product, you'll have a hell of a time charging money for it later.) I can't help but wonder whether the endlessly delayed TM2 ship date results from the author's having surgically removed all of his own incentives.
(Actually, it's odder than that: Even if TM2 doesn't collect upgrade dollars, its release would drive the marketing of new licenses, so delaying it is costing the author money no matter what. Perhaps money doesn't matter to the author. In which case the project is even more likely to be doomed.)
If you're going to be in the paid, closed-source development tools business, be in the paid, closed-source development tools business. The business is "we give you money to work on the software, and the software gets better." It is not "we don't give you money and the software sits frozen in time." That niche is already thoroughly occupied by emacs and vi. ;) [1]
---
[1] Though, joking aside, the universe of emacs tools has been steadily improving, especially now that TM has helped to increase its userbase by teaching people the power of a decent text editor. (vi may be improving too, but I wouldn't know, since I don't really use it.)
Here's the reply I got:
Right now we are working hard on getting 2.0 out the door, we haven't really been thinking of much other than that. ;)
translation: <shrug>
It's not about the low price. It's not because the people who make closed-source software aren't talented, or generous, or that their software isn't worth the money.
It's that closed-source software is under the exclusive control of one person or one corporation. You are at the mercy of the whims, incentives, and fortunes of a tiny group of people. And the odds that their desires will remain aligned with yours are poor indeed.
And it's not as if this is an iPhone Twitter app, where you can switch from one to another in a few minutes. Or even Mac OS X, which is Unix -- though I love my Mac OS toolset, I reserve the ability and the right to install Ubuntu and come back up to speed in a few days. No, this is your text editor. It can take weeks or months to thoroughly learn a new one, and it's the centerpiece of your professional life.