
One of the smartest people I’ve ever digitally met, Ryan Paul, taught me this awesome tip for doing a project wide search in vim. I needed to look for all occurrences of the patter _Models_ in a PHP project I was working on and you can do it right inside of vim – the best text editor ever invented.
- Open vim and make sure you are in the top level folder of your project by typing :pwd
- Then type :vimgrep YourPattern **/*.php
- To open your search results in their own buffer type :copen
The **/ recursively searches through all your directories for you pattern. :copen opens the search results in their own buffer. You can use the arrow keys to move up and down through the list and hit enter to have it open that result in the main buffer. You can also use :cnext and :cprev to move to the next and previous items in the list. Perhaps you might bind those to keyboard shortcuts so you can move through the search results quickly.
I like using Safari and I’m a web developer. Sometimes I’ll be developing a website and then decide to rename a page. The problem is Safari will cache the old pages’ URL and then auto-fill the old URL as I’m typing. Then I hit enter and shucks, I’m getting a File Not Found error. In FireFox you can just press Shift-Delete to get rid of the outdated URL. In Safari, to delete one, several, or even all of your cached urls used by the auto-fill feature, just delete the offending URLs from your history.
To do this you can go to Bookmarks –> Show All Bookmarks. Then in the upper right corner of your window you can search for the URL you want to delete. I’m frequently typing the domain of our development server so I can delete all of the development URLs they may be outdated. Once you see the URLs you want to delete, highlight them and press Delete. This is a little more cumbersome than Firefox’s Shift-Delete but at least it can be done.
Note: Both History and Bookmarks are used for the auto-fill feature. So even if you delete all of your history, the URLs from your Bookmarks will still be used for auto-fill. Of course, if you have bookmarked a page that is no longer available you probably want to delete that too.
I Want Mulitple Gmail Signatures
I love using Gmail and I have several different email address for the various companies I work for. Gmail only lets me have one signature which is a bit of a problem because, depending on which from address I am using, I use different email signatures. There are a couple of Firefox add-ons that help with the problem but sometime I enjoy using other browsers like Safari. I have finally found the solution using QuickSilver and it’s Shelf feature.
QuickSilver And The Shelf
I’ve know about the Shelf on QuickSilver for a while now. It’s like a persistent clipboard. You can save snippets of text and then use that text later – like copying things to the clipboard but it stays there forever. So this was a good solution for my multiple email signature problem except that it took quite a few key stokes to get the text off the shelf and into my email. I set up triggers to do this but QuickSilver’s trigger display doesn’t handle the multi-line signature trigger very well. The name of the trigger spans multiple lines and overlaps the names of my other triggers. I hate that so I avoided using that as a solution. Also, it’s hard to think of enough unique keyboard shortcuts of each one of my five different signatures that don’t interfere with other shortcuts. So I created a trigger that just opened the shelf. Once the shelf is open I right-click the signature I want, then select paste from the actions menu. This was a fair solution, but the right-clicking and then hunting for paste in the pop-up actions menu was still a bit cumbersome.
Command Chains Can Be Stored On The Shelf
What I didn’t realize until today, was that you can store more than just text on the shelf. You can store chains of actions. So now my workflow is really nice. I have a keyboard shortcut that pulls up the Shelf then I just double-click on the signature I want and Blamo! my signature is in my email. Since this is a QuickSilver thing, I can use the signature for Mail.app, or Gmail and I can use any browser I want. It’s very nice. The one last tweak I wish I could figure out is how to get rich text in my signature because it seem that only plain text can be stored in QuickSilver’s shelf.
How To Store Command Chains On The Shelf
The huge realization I had today was that you can type Control-Enter rather than just Enter to make a chain of actions in QuickSilver. So I create the text (type . in the subject panel) for my email signature. Then tab to the action window and type paste the type Control-Enter and type Put on Shelf then click Execute. Now you can open your shelf, double-click your signature and it is pasted into whatever text area you were just in.
If anybody knows how to get rich text into the signature I would LOVE to know. I know that you can copy from Pages or Word or whatever and the bold, italics, links, etc come with you when you paste into Gmail. So I’ve thought about writing an AppleScript to open up a Pages document with my signature, copy the content to the clipboard, quitting Pages, then paste the clipboard. But the launching and quitting of pages takes too long and is more trouble than it’s worth.
Video Tutorial
Here is a quick video tutorial showing how to set all this up.
UPDATED 6/10/2009: The checker works again.
I like the option to check Google PageRank easily no matter what browser I am using so I wrote this quick little script to grab the PageRank of whatever page you are looking at and then pop open a little window to display the rank. All you need to do is drag the link below to your bookmarks bar on your browser.
Check PR
I’ve been asked a few times how to make a signature with a link in Mac Mail. I’m using Leopard and I agree that it’s not very obvious how to pull this off. The steps are fairly simple as long as you know what to do.
- Open a new mail message
- Create a link in your mail message
- Copy your link into your signature
Here is a quick screencast to show you how to pull this off. Not only does this work with links, but it also works with any other types of formatting in your mail message – bold, italics, fonts, etc.
Read the rest of this entry »
I constantly forget how to tar a directory. I think the ln command and the tar command have their parameters in different orders and I can never seem to remember which parameter is the dir you are archiving and which one is the name for the archive. So here it is:
tar -czf archive.tgz dirName

I have been using vim for a couple years and every week it seems I learn some new feature or trick you can do. Recently I learned how to convert a selection to either all uppercase or all lowercase letters.
Convert a visual selection to all uppercase letters.
gU
Convert to lowercase letters
gu
My scanner (Canoscan N676U) suddenly stopped responding when I upgraded to Ubuntu Feisty. I first noticed the problem when I was unable to import a scan through Gimp. Well it took a couple hours to figure this one out, but the sollution turned out to be easy to implement. From what I understand, the problem comes from the USB suspend functions built into the new kernel. I also understand that this isn’t just an Ubuntu problem. So if you are on another distro, this tip may work for you also.
Read the rest of this entry »
As we all know, Firefox will save the values you type in a form. Then, Firefox will provide a drop down list of previously entered values for form fields that you have completed and submitted in the past. Today, I mistyped my username in a form causing Firefox to store an incorrect value in my form history. So every time I go to enter my username, the wrong username shows up in my drop down list. After much searching, I have finally discovered how to delete individual values from the saved form history in firefox. No extension or anything is required.
Read the rest of this entry »