A while back — months, maybe a year or so — I tried installing the Vimperator extension for Firefox. I played around with it for maybe three minutes or so, then decided I should get back to work and turned off the extension rather than slow down my work by trying to learn how to use Vimperator.

The problem is that Vimperator completely changes the way the browser works, making it an entirely keyboard-driven application. Yes, you can still use the mouse if you really want to, but a lot of stuff becomes much more difficult to accomplish (if not nearly impossible) with a mouse instead of the keyboard. As such, the learning curve seems steep at first, and it felt a bit much for me at that exact moment. I figured I’d get back to it later.

I never did get back to it. Time passed. I moved to a new laptop, where it wasn’t even installed in the first place, and had long since basically forgotten about Vimperator. Then, last week, I felt inspired to give it another try.

I’ve started using Vimperator for real this time. To my surprise, it took me all of about five minutes to get comfortable enough with it to use it for my everyday browsing tasks without feeling like I was substantially hampered. By the time I had spent ten minutes with it, while some things still didn’t come as easily for me with Vimperator as without it, other things were easier, so that instead of being more difficult to use effectively than Firefox without the extension it was just a trade-off. By the time I had spent half an hour using it, Vimperator was turning out to give me a slight boost to the efficiency and “naturalness” of the browsing experience for me, in the same way that — once one gets past the initial learning curve hump — vi/Vim enhances one’s productivity when editing text files.

Part of the key to quick familiarization and comfort with Vimperator was, I’m sure, my familiarity and comfort with Vim. Another part is the help page that Vimperator opens the first time the browser is restarted after the Vimperator extension is installed. That help page is just a Web page (actually a handful of Web pages that link to each other) stored on the local system, “installed” there along with Vimperator itself. Don’t worry about closing it and losing track of it; Vimperator allows you to open it up again simply by way of the :help command. Nothing to it.

I’ve added the NumExt extension for Firefox after getting used to Vimperator. It does nothing but add simple text numbers to all open tabs and add some (ignorable) keybindings to allow switching between tabs. The keybindings are incredibly limited, but I don’t much care about that. The reason I wanted numbered tabs was simply to allow me to type 60gt (for instance) to immediately go to tab number 60. Vimperator allows me to do this by default of course, but if I don’t know the numbers of the tabs it makes it somewhat more difficult to magically pluck the number for the desired tab out of thin air. Since I tend to browse with a lot of tabs open (sometimes more than 150; currently 74 of them), this — Vimperator + NumExt — is a very useful combination. I don’t have to count to know that the tab to which I want to switch is six to the left of the current tab before typing 6gT any longer (or, worse, just hit gT over and over again). Instead, I type 60gt and go directly there (for instance, again).

(NOTE: An anonymous commenter below mentioned that a simple configuration option would add numbers to tabs, so I don’t need the NumExt extension. It works well. Setting it within the current Vimperator browsing sessions can be accomplished by using the :set go+=n command, which adds the n option to whatever other options you already have set. To save options to the configuration file, use the :mkv command.)

I got rid of the View Source With extension, which I used to let me open a text area on a Web form in an external editor (Vim in a terminal emulator window, naturally), when I realized that when the cursor is in a Web form text area I can just hit <Ctrl>+<I> to open an instance of a Vim-like editor to edit the contents of the text area, thus making View Source With redundant for me.

When using :open or :tabopen (depending on whether I want to open something in the current tab or a new tab, respectively), it’s probably worth knowing you can use tab completion to get the same effects as using the address bar’s suggestions. Start typing something like :open sob.apo then hit the Tab key, and you should get a bunch of suggestions for how to finish that URL just as you’d get suggestions for how to finish it if typed in the normal Firefox address bar. Cycle through them with the Tab key, just as you would if you were using tab completion at a Unix shell, and hit the Enter key when you’ve selected the correct URL. As long as you aren’t in Insert mode, you can use either the O key or the T key, respectively, to get :open or :tabopen started. Following that, just type in the beginning of the URL you want, and hit <Tab> to get your tab completion.

To copy the URL of the current tab into the clipboard, just type y (again, when not in Insert mode). It’s much easier than having to move my hand to the mouse and highlight the URL in the address bar.

Anyway . . . the point is that, after using it for a a month or so, I think Vimperator is great. Your mileage may vary, I suppose.