Waldo is a port of TextMate's Find-in-Project feature, designed to work with MacVim.app
The original developer of this plugin has been inactive for a few years. Here's what I had to do to get this working (in addition to his original instructions below). Note: my latest update makes this plugin compatible with pathogen (but you must still install the Waldo app first as explained below).
1-Install Xcode
First, to build this, you'll be forced to use XCode 5.0.1 or older. (5.1 disallows garbage collection & this app uses it, so you can't use Xcode 5.1.X).
If you have the latest version of Xcode like me, you'll need instructions like this on how to install multiple versions of Xcode at once: http://iosdevelopertips.com/xcode/download-and-install-older-versions-of-xcode-xcode-previous-releases.html
Here's where apple has old versions of Xcode:
https://developer.apple.com/downloads/index.action
2-Build the project (open Waldo.xcodeproj in Xcode and hit the "play" button)
Most likely the app will be here: ~/Library/Developer/Xcode/DerivedData/Waldo-<hash>
My compiled Waldo.app
was in this directory: ~/Library/Developer/Xcode/DerivedData/Waldo-<hash>/Build/Products/Debug
3-If you get the "macruby.h file not found" error
add /Library/Frameworks
to “Framework Search Paths" in the project settings
Add a symbolic link to help Xcode find the MacRuby.framework
cd /Applications/Xcode.app/Contents/Developer/Library/Frameworks
sudo ln -s /Library/Frameworks/MacRuby.framework MacRuby.framework
Once you have a Waldo.app to install you can continue with the instructions below.
- Download Waldo.zip and put the .app in your Applications folder
- Launch Waldo.app to install the Vim plugin
- Open MacVim.app and trigger Waldo using the
<leader>f
mapping.
NOTE: <leader>
is a programmable prefix for commands. By default, it's '' (backslash), though you can change it in your .vimrc file.
NOTE: If you do not have your .vim/
folder in your home directory, you must manually place Waldo.vim (found inside the .app package) in your .vim/plugins
directory.
NOTE: Make sure you cd
into directory you want to search.
- Fix crashes introduced in 0.2
- Rename "literal match" to "regex"
- Rename "case sensitive" to "ignore case"
- Code Refactoring
- Opening Waldo without specifying a project path in the command line will present an "Open" dialog
- Launch as menu item only
- Thanks to alloy for helping!
- Rename project to Waldo (previously known as VimAck)
- Auto-install vim plugin on first launch (thanks zef)
- Add support for case-sensitive searches (thanks zef)
- Add support for regex searches (thanks zef)
- Launch Waldo as a menu item (thanks ashchan)
- Perform ack subprocess on a separate thread
- Support for Sparkle.framework to ship updates automatically
- Prevent multiple instances of Waldo to open when you trigger
<leader>f
- Add history to search field
- Add ignore-directories feature
- Keyboard navigation
I highly encourage you to fork my project and implement any of the features in the Roadmap. Just submit a pull request and be sure to give yourself credit here!
Copyright (C) 2011 by Majd Taby
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.