Reflections on Pointlessness
One of the great delights in this life is pointless optimisation. Point-ful optimisation has its place of course; it is right and proper and sensible, and, well, useful, and it also does, when first achieved, yield considerable satisfaction. But I have found I soon adjust to the newly more efficient (and equally drab) normality, and so the spell fades quickly.
Not so with pointless optimisation. Pointless optimisation, once attained, is a preternaturally persistent source of joy that keeps on giving indefinitely. Particularly if it involves acquiring a skill of some description; if the task optimised is frequent; and if the time so saved could not possibly compensate for the time and effort sunk into the optimisation process. Words cannot convey the triumph of completing a common task with hard-earned skill and effortless efficiency, knowing full-well it makes no difference whatsoever in the grand scheme of things.
The technologically-minded, it seems, are afflicted with this irrational mania more often than most. A fair number gleefully shovel hour after hour into such bottomless time-sinks as exotic keyboard layouts; lovingly tended personalised configs; and 200-wpm typing speeds zealously shown off. (Seriously, if you type at 80 wpm, when was the last time you can honestly claim that input speed was the bottleneck to your text or code output?) This is not efficiency; it’s not even procrastination; for many, it is simply a compulsion.
A time-honoured favourite in this category of ill-advised pastimes is the modal text editor. Not merely being able to use one, no, but peering into its abyssal soul. Grasping at the arcane wisdom veiled within, becoming one with the machine. Once truly fathomed, the Zen of vim
, it has been said, is no lesser Revelation1 than any Holy Book of scripture yet written. Infinitely more than just an editor, it is a philosophy, a way of life—so I am told.
Now, ways of life have an unfortunate tendency towards universality. There’s no such thing as a way of life applied to only part of it. It only causes cognitive dissonance, which our species is wont to avoid. Sadly, however, much as the priests of the Creed might want it to, not everything can be done in vim
(I feel the tickling of the pyre-flames already). So what is the aspiring disciple of the Faith to do when they are called upon to leave vim
behind and venture onto the great wide Web and retrieve some information—or worse, are invited to collaborate in Google Docs or Microsoft Word (😱, a WYSIWYG-editor? for shame!) ?
Fret ye not, help is at hand! Just because your colleagues have as yet failed to see the Light and subsist on such primitive GUIs and web interfaces as have been handed down from on high, just because you yourself occasionally—unaccountably—succumb to the urge to check a news website or even social media, this does not mean you must spend your life in glacial point-and-click squalor like a cave person. The technological marvels of the age have made it possible to impose the sunlit, Platonic perfection of vim
onto the shadowy cesspit of the internet; build order from chaos; leave mouse and trackpad behind entirely; tame the unruly seas of information and fly through the ether at lightning (keyboard) speed. We truly live in an age of wonders.
The key to ennobling your surfing in this way is a vim
-like browsing extension, as can be procured for every commercially relevant browser including Chrome (and derivatives), Firefox, and Safari.
There is some degree of choice and they differ on the details, but they all provide fully mouse-less web navigation using vim
-like keybindings (all the more efficient for their vim
-ness), alongside convenience features like integrated smart search and much besides. Note further that they also constitute a highly effective gateway drug into the Ways of vim
for your as yet unconverted colleagues; use this information for your proselytising efforts as you see fit.
Using a vim Browser Extension
I suppose it behooves me to guide the reader through an illustrative example. Here I am (in Chrome, using the Vimium C extension) on the front page of a common newspaper whose reporting I occasionally follow. I am interested in the article on medical research funding towards the bottom of the page. How to open it without resorting to the savage ways of the mouse?

Simply type f
(short for find) or F
(to open it in a new tab) and every clickable link is highlighted with an easily-typed (case-insensitive) label.

In this case, type sp
to proceed to the article. In true vim
fashion we can now scroll up and down with j
and k
, and if the content allows left and right with h
and l
(though the arrow keys work as well). We can also page-up and page down with u
and d
, jump back to the top with gg
and to the end with G
. We can search for the word ‘health’ with /health
(this is smartly case-sensitive) which jumps to the first match and informs us that this word appears 21 times on this page in total. After hitting enter, we can jump from match to match forwards using n
(next) and backwards using N
.

So far so standard, in terms of page navigation; nothing that could not be completed with the built-in (unvim
like) keybindings (though following specific links would be cumbersome). But there is more. Having now reached the end of the article and being sufficiently horrified about its contents, we wish to return to the newspaper’s landing page. We can certainly just go ‘back’ in the browsing history by hitting Shift+H
(and forwards with Shift+L
), but we can also just gU
(go Up) to the top-most level of the domain. In this case, the article we’re on is at https://www.nytimes.com/.../.../.../something.html
and gU
lands us back at https://www.nytimes.com/
. We could also gu
which chops off just the lowermost level of the domain hierarchy from the URL, or 2gu
for the last two (and so on), though that is only useful on the most hierarchically organised of websites.
Back on the newspaper’s homepage we hit refresh (r
), but nothing new comes up. We decide that we will want to come back frequently to keep tabs (heh…) on events, so we bookmark the page—that is, leave a ‘global mark’ in vim
parlance. We can pick any capital letter, so let’s pick ‘N’ (for the NYT) and type mN
to mark N. From now on typing `N
on any page on the internet jumps back to the NYT homepage. You can also set local marks that only work within a page by choosing a lower-case letter (e.g. md
and `d
respectively), for example to jump back to an important definition in a long technical blogpost. Marks are overwritten whenever you re-assign a letter in the same context, so you get 26 global marks in total and 26 local marks within any given webpage. That’s plenty.

Leaving aside the NYT we decide we want to look up more information about the NIH, which appeared in the article we just read, on Wikipedia. Type o
(or capital O
to do everything in a new tab) to summon the Vomnibar (pictured above). As the name suggests this is a combined URL and search bar (with questionably vim
-like characteristics), so you can type ‘wikipedia.com’, if you so choose, or ‘NIH’ to be directed to your search engine of choice. The Vomnibar also brings up smart suggestions from your recent history and bookmarks below the bar itself, which you can action with Ctrl/Cmd+1/2/3...
. Most imporantly there are pre-configured options which allow you to search common sites directly without needing to go though a search engine (and you can of course configure your own in the extension’s settings). So, for example, you can search YouTube with yt searchterm
or in our case Wikipedia with w NIH
(and then Enter
), which takes us to the desired page.
Now Wikipedia in particular has a bad habit of inducing tab proliferation (each opened by capital F
-ing on a link of interest). Opening a blank tab is naturally just t
, to move between adjacent tabs use gt
(go tab forwards) and gT
(go tab backwards), and to jump to the 5th tab from the beginning try g05
(for the 5th tab from the end it’s g$5
). If you’re getting to the stage where you resort to commands like the last one you should consider closing some tabs with x
for your own sanity. Want to copy (‘yank’) the URL of the current page into the system clipboard in order to share it with a friend? Just hit yy
. Were you just doing that in order to duplicate the current tab? No need, just hit yt
. Oh, you actually wanted to duplicate the current tab ten times? Why that’s just 10yt
—what exactly are you up to?
Every once in a while a website will expect input from your keyboard directly. If you want to use an on-site searchbar, for example, are filling out a form, or are using site-specific keyboard shortcuts (hitting f
on a YouTube video goes full-screen, for example; hitting /
on any Google Search results page focuses the searchbar). In these cases we want our keystrokes to be interpreted by the website, not by the vim
extension. Is this possible? Of course it is; the extension is based on a modal text editor after all! Just hit i
first to enter insert mode, then interact with the website as normal (so that would be if
on YouTube and i/
on Google). Hit Esc
to get back to vim
navigation. You can also always hit Esc
to exit out of a mode you triggered when you did not mean to (e.g. to cancel out of the Vomnibar, or when you hit f
bringing up link highlights when you meant d
to go down).

Naturally, as is the way of these things, I have barely scratched the surface of what is possible, and will not go into further detail here. Hitting ?
brings up a helpful overview for those curious (pictured above). Most importantly—and unlike vim
itself, whose learning curve is a step function—there is no getting stuck. The extension does not interfere at all with the pre-existing browser keybindings, which you may already be used to and can continue to use if you wish, and if push comes to shove you can always use the mouse (gasp!) if you don’t know what to do. This is perhaps the only example I have found where pointless optimisation is as close to costless as possible, and therefore all the more worthy for those so inclined.
To Infinity, and Beyond
Speaking of those so inclined, they can of course go further still. There are whole browsers written from the ground up with this mode of navigation in mind—sparing space for web content that would otherwise be dedicated to navigation elements. For macOS at least, an app called Homerow will produce similar behaviour across the entire operating system, and there will be equivalent applications for Linux and Windows, as well. I leave the exploration of such advanced topics as an exercise for the reader, though whether this is a sensible thing to pursue is another matter.
In closing, then, let me note only this: No more must you tediously click yourself through system menus! No more must you lift your fingers so much as one inch to reach for the mouse! Cast off the scroll-wheel yoke, comrades, discard the cursor-madness! Let your hearts be free—and fly!
- My lawyer informs me this is a very dangerous joke to make in this day and age, and tactless besides. ↩︎