{"id":12696,"date":"2025-06-05T15:07:58","date_gmt":"2025-06-05T14:07:58","guid":{"rendered":"https:\/\/www.blopig.com\/blog\/?p=12696"},"modified":"2025-10-03T23:02:36","modified_gmt":"2025-10-03T22:02:36","slug":"on-the-joys-of-vim-like-browsing","status":"publish","type":"post","link":"https:\/\/www.blopig.com\/blog\/2025\/06\/on-the-joys-of-vim-like-browsing\/","title":{"rendered":"On the Joys of vim-like Browsing"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Reflections on Pointlessness<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 <em>triumph<\/em> 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.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">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&#8217;s not even procrastination; for many, it is simply a compulsion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 <em>one<\/em> with the machine. Once truly fathomed, the <a href=\"https:\/\/stackoverflow.com\/questions\/1218390\/what-is-your-most-productive-shortcut-with-vim\/1220118#1220118\">Zen of <code>vim<\/code><\/a>, it has been said, is no lesser Revelation<sup data-fn=\"8ecc5f97-4e44-413e-ad2b-ad511cedc3b0\" class=\"fn\"><a href=\"#8ecc5f97-4e44-413e-ad2b-ad511cedc3b0\" id=\"8ecc5f97-4e44-413e-ad2b-ad511cedc3b0-link\">1<\/a><\/sup> than any Holy Book of scripture yet written. Infinitely more than just an editor, it is a philosophy, a way of life\u2014so I am told.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>Now, ways of life have an unfortunate tendency towards universality. There\u2019s 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 <em>everything<\/em> can be done in <code>vim<\/code> (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 <code>vim<\/code> behind and venture onto the great wide Web and retrieve some information\u2014or worse, are invited to collaborate in Google Docs or Microsoft Word (\ud83d\ude31, a WYSIWYG-editor? for <em>shame!<\/em>) ?<\/p>\n<p>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\u2014unaccountably\u2014succumb 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 <code>vim<\/code> 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.<\/p>\n<p>The key to ennobling your surfing in this way is a <code>vim<\/code>-like browsing extension, as can be procured for every commercially relevant browser including <a href=\"https:\/\/chromewebstore.google.com\/detail\/vimium-c-all-by-keyboard\/hfjbmagddngcpeloejdejnfgbamkjaeg\">Chrome (and derivatives)<\/a>, <a href=\"https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/tridactyl-vim\/\">Firefox<\/a>, and <a href=\"https:\/\/github.com\/televator-apps\/vimari\">Safari<\/a>.\nThere is some degree of choice and they differ on the details, but they all provide fully mouse-less web navigation using <code>vim<\/code>-like keybindings (all the more efficient for their <code>vim<\/code>-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 <code>vim<\/code> for your as yet unconverted colleagues; use this information for your proselytising efforts as you see fit.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Using a vim Browser Extension<\/h2>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>I suppose it behooves me to guide the reader through an illustrative example. Here I am (in Chrome, using the <a href=\"https:\/\/chromewebstore.google.com\/detail\/vimium-c-all-by-keyboard\/hfjbmagddngcpeloejdejnfgbamkjaeg\">Vimium C<\/a> 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?<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"572\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=625%2C572&#038;ssl=1\" alt=\"\" class=\"wp-image-12706\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=1024%2C937&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=300%2C274&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=768%2C703&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=1536%2C1405&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=2048%2C1874&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?resize=624%2C571&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.28.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>Simply type <code>f<\/code> (short for find) or <code>F<\/code> (to open it in a new tab) and every clickable link is highlighted with an easily-typed (case-insensitive) label.<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"569\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=625%2C569&#038;ssl=1\" alt=\"\" class=\"wp-image-12707\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=1024%2C932&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=300%2C273&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=768%2C699&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=1536%2C1398&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=2048%2C1865&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?resize=624%2C568&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-18.51.36.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>In this case, type <code>sp<\/code> to proceed to the article. In true <code>vim<\/code> fashion we can now scroll up and down with <code>j<\/code> and <code>k<\/code>, and if the content allows left and right with <code>h<\/code> and <code>l<\/code> (though the arrow keys work as well). We can also page-up and page down with <code>u<\/code> and <code>d<\/code>, jump back to the top with <code>gg<\/code> and to the end with <code>G<\/code>. We can search for the word \u2018health\u2019 with <code>\/health<\/code> (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 <code>n<\/code> (next) and backwards using <code>N<\/code>.<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"654\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=625%2C654&#038;ssl=1\" alt=\"\" class=\"wp-image-12708\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=978%2C1024&amp;ssl=1 978w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=287%2C300&amp;ssl=1 287w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=768%2C804&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=1467%2C1536&amp;ssl=1 1467w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=1956%2C2048&amp;ssl=1 1956w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?resize=624%2C653&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-20.18.24.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>So far so standard, in terms of page navigation; nothing that could not be completed with the built-in (un<code>vim<\/code>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\u2019s landing page. We can certainly just go \u2018back\u2019 in the browsing history by hitting <code>Shift+H<\/code> (and forwards with <code>Shift+L<\/code>), but we can also just <code>gU<\/code> (<em>g<\/em>o <em>U<\/em>p) to the top-most level of the domain. In this case, the article we\u2019re on is at <code>https:\/\/www.nytimes.com\/...\/...\/...\/something.html<\/code> and <code>gU<\/code> lands us back at <code>https:\/\/www.nytimes.com\/<\/code>. We could also <code>gu<\/code> which chops off just the lowermost level of the domain hierarchy from the URL, or <code>2gu<\/code> for the last two (and so on), though that is only useful on the most hierarchically organised of websites.<\/p>\n<p>Back on the newspaper\u2019s homepage we hit refresh (<code>r<\/code>), but nothing new comes up. We decide that we will want to come back frequently to keep tabs (heh\u2026) on events, so we bookmark the page\u2014that is, leave a \u2018global mark\u2019 in <code>vim<\/code> parlance. We can pick any capital letter, so let\u2019s pick \u2018N\u2019 (for the NYT) and type <code>mN<\/code> to <em>m<\/em>ark <em>N<\/em>. From now on typing <code>`N<\/code> on any page on the internet jumps back to the NYT homepage. You can also set local marks that only work <em>within<\/em> a page by choosing a lower-case letter (e.g. <code>md<\/code> and <code> `d<\/code> 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\u2019s plenty.<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"472\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20.png?resize=625%2C472&#038;ssl=1\" alt=\"\" class=\"wp-image-12709\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=1024%2C774&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=300%2C227&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=768%2C581&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=1536%2C1162&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=2048%2C1549&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?resize=624%2C472&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.06.20-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>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 <code>o<\/code> (or capital <code>O<\/code> 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 <code>vim<\/code>-like characteristics), so you can type \u2018wikipedia.com\u2019, if you so choose, or \u2018NIH\u2019 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 <code>Ctrl\/Cmd+1\/2\/3...<\/code>. 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\u2019s settings). So, for example, you can search YouTube with <code>yt searchterm<\/code> or in our case Wikipedia with <code>w NIH<\/code> (and then <code>Enter<\/code>), which takes us to the desired page.<\/p>\n<p>Now Wikipedia in particular has a bad habit of inducing tab proliferation (each opened by capital <code>F<\/code>-ing on a link of interest). Opening a blank tab is naturally just <code>t<\/code>, to move between adjacent tabs use <code>gt<\/code> (<em>g<\/em>o <em>t<\/em>ab forwards) and <code>gT<\/code> (<em>g<\/em>o <em>t<\/em>ab backwards), and to jump to the 5th tab from the beginning try <code>g05<\/code> (for the 5th tab from the end it\u2019s <code>g$5<\/code>). If you\u2019re getting to the stage where you resort to commands like the last one you should consider closing some tabs with <code>x<\/code> for your own sanity. Want to copy (\u2018yank\u2019) the URL of the current page into the system clipboard in order to share it with a friend? Just hit <code>yy<\/code>. Were you just doing that in order to duplicate the current tab? No need, just hit <code>yt<\/code>. Oh, you actually wanted to duplicate the current tab <em>ten<\/em> times? Why that\u2019s just <code>10yt<\/code>\u2014what exactly are you up to?<\/p>\n<p>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 <code>f<\/code> on a YouTube video goes <em>f<\/em>ull-screen, for example; hitting <code>\/<\/code> 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 <code>vim<\/code> extension. Is this possible? Of course it is; the extension is based on a modal text editor after all! Just hit <code>i<\/code> first to enter <em>i<\/em>nsert mode, then interact with the website as normal (so that would be <code>if<\/code> on YouTube and <code>i\/<\/code> on Google). Hit <code>Esc<\/code> to get back to <code>vim<\/code> navigation. You can also always hit <code>Esc<\/code> 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 <code>f<\/code> bringing up link highlights when you meant <code>d<\/code> to go down).<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"652\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=625%2C652&#038;ssl=1\" alt=\"\" class=\"wp-image-12710\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=982%2C1024&amp;ssl=1 982w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=288%2C300&amp;ssl=1 288w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=768%2C801&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=1473%2C1536&amp;ssl=1 1473w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?resize=624%2C651&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?w=1930&amp;ssl=1 1930w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-04-at-21.56.57.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>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 <code>?<\/code> brings up a helpful overview for those curious (pictured above). Most importantly\u2014and unlike <code>vim<\/code> itself, whose learning curve is a step function\u2014there 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\u2019t 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.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">To Infinity, and Beyond<\/h2>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p>Speaking of those so inclined, they can of course go further still. There are <a href=\"https:\/\/qutebrowser.org\/\">whole browsers<\/a> written from the ground up with this mode of navigation in mind\u2014sparing space for web content that would otherwise be dedicated to navigation elements.\nFor macOS at least, an app called <a href=\"https:\/\/www.homerow.app\/\">Homerow<\/a> 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.<\/p>\n<p>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\u2014and <em>fly<\/em>!<\/p>\n<\/div>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"8ecc5f97-4e44-413e-ad2b-ad511cedc3b0\">My lawyer informs me this is a very dangerous joke to make in this day and age, and tactless besides. <a href=\"#8ecc5f97-4e44-413e-ad2b-ad511cedc3b0-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":125,"featured_media":12705,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","wikipediapreview_detectlinks":true,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"[{\"id\":\"8ecc5f97-4e44-413e-ad2b-ad511cedc3b0\",\"content\":\"My lawyer informs me this is a very dangerous joke to make in this day and age, and tactless besides.\"}]"},"categories":[296,14,46,586],"tags":[855,332,776,678],"ppma_author":[783],"class_list":["post-12696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hints-and-tips","category-howto","category-humour","category-os","tag-browsing","tag-humour","tag-software","tag-vim"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/06\/1538224B-E069-4D8F-A912-0E93E457D376.png?fit=1536%2C1024&ssl=1","jetpack_sharing_enabled":true,"authors":[{"term_id":783,"user_id":125,"is_guest":0,"slug":"ody","display_name":"Odysseas Vavourakis","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b74030bdaef5f39ec32be3ae7bb5af054cbcb0b431b1cc51ba1b41d723ecee48?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/users\/125"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/comments?post=12696"}],"version-history":[{"count":5,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12696\/revisions"}],"predecessor-version":[{"id":12720,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12696\/revisions\/12720"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/media\/12705"}],"wp:attachment":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/media?parent=12696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/categories?post=12696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/tags?post=12696"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=12696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}