Vimium was my introduction to software engineering :) I contributed a bunch of code to it back in 2011-2012. Glad to see it still being in use!
I'm quite proud of the little test I wrote to figure out which DOM APIs could be used to detect the visibility of different kinds of elements, in order that we could display link hints correctly: https://github.com/philc/vimium/blob/master/test_harnesses/v...
How fun! I'm also quite proud of another contribution, also related to detecting visibility, but this time with `document.elementFromPoint` to filter out elements completely covered by other ones :)
(I'm one of the authors) Love seeing this on HN today! It seems to get some front page attention every couple of years. Thank you everyone for the encouragement!
Hey, just wanted to say thanks for your work on Vimium. I have a lot of RSI issues from using a mouse and Vimium has been incredibly helpful in mitigating those.
I think it's fair to say that between Vimium and a windows manager on OSX I've cut my mouse actions by 90%.
Your work has had a profoundly positive impact on my life and I'm very grateful.
- Kinesis Freestyle split keyboard tented and then tented even more with slanted yoga blocks
- 4K monitor/tv to show multiple screens to reduce alt-tabbing
- Magic trackpad mounted on a cellphone stand on the left of my keyboard (I'm right handed). This lets me use my non-dominant hand and requires less arm movement.
Thank you for your excellent work! I have some RSI issues and try not to use the mouse as much as possible. Vimium helps me avoid wear and tear every single day. I love it and install it immediately on any new Chrome instance.
(I am about to use it to press the "reply" button to submit this comment. It's fantastic.)
I once used Vimium and some bug caused the extension to permanently close my hard-earned ~500 tab collection. So while I feel like I lost a lot, I've never felt so much at peace since either.
That used to be my solution for managing tabs in chrome. Every few months it would just crash, I'd lose all my tab, and I'd think "probably for the best". Now chrome is a lot more stable :/.
It's interesting, because i've asked many people who have massive tab counts this same question, and it seems the overwhelming answer is that bookmarks are harder to manage than tabs.
It takes more time to bookmark a link, than it is to open it in a new tab. The positioning of the tab is an indication of approx. when that tab had been opened, and the other tabs near it is likely similar in subject matter, or is related somehow.
It acts as a queue to be processed as well.
And for a lot of browsers, the auto-preloading means you can have the tab "saved" and you can view it, even if it took long time to load. It's a form of "offline" viewing.
If bookmarks can achieve _all_ of the above, without having the need for the user to do anything extra, it would actually replace tabs. But so far, i've not seen anyone switch.
Thank you for this, it's something I never understood.
I have to shut down everything at the end of the day and start from a clean reboot the next or I get overwhelmed. I think it's sort of my way of unloading work stuff from my brain at the end of the day and loading up again at the beginning of the next.
> The positioning of the tab is an indication of approx. when that tab had been opened, and the other tabs near it is likely similar in subject matter, or is related somehow.
Add in tree style tabs and you get this relationship on steroids - new tabs are automatically a child of the source tab, and you can expand/collapse the tree.
As someone guilty of same (I've got just over half that many tabs open now: 273), I might be able to explain.
Links rot. If I see something on the interwebs that I want to store or remember, I usually copy the pertinent information somewhere else. Be that Anki, or org-mode, or somewhere else. I leave the tab open until I get the free time to go back and copy the information somewhere.
Looking at my open-longest tabs, it seems I've got some Magento documentation open from last summer. I should go clean that up. )) If these were bookmarks, I would absolutely _never_ get around to filing the information away in a useful place.
it is. i am one of those who have atleast 100 tab on any workday, more on my personal system. i also use bookmark service like raindrop that have tagging, etc than simple folders.
Main reason for keeping tags are they are a constant reminder of topics to look into. Kinda like postits on your monitor. If I put them away using bookmarks I often forget about them and neder get to them. I have folders with hundreds of links I wanted to look a year back and still haven't.
I do clean out tabs occasionally when I am done with a topic but I mostly only bookmark when having to shutdown the system.
Isn't that just stressful? Are you ever going to look at more than 20% of the things on your backlog?
My approach is to bookmark things and then if I feel like it's time to read up on something or just a good time to work on the reading backlog, I'll just pick whatever seems suitable at a first glance.
No, why would it be? It's sort of my curated list of things to check out when I have a free moment, just like HN is. HN curates the Internet for potentially interesting things for hackers, and I further curate from that (and other sources) for things that interest me, and have them as open tabs. It's no more "stressful" than knowing the fact that there are thousands of interesting HN links on here. They're just options of potential things to look at, not tasks to get through.
I use bookmarks as a more persistent thing, for things I know will be of interest to me long term. Some of these tabs might go into my bookmarks, but many others are interesting enough to look at/read through once, but not worth adding a bookmark for.
Do you have a way of partitioning off what you're currently working on from the rest of the queue? I feel like I would constantly get distracted with hundreds of potentially interesting things sitting at the top of my screen.
Oh, TreeStyleTabs is a crucial element of this, I'd definitely go mad without it. The stuff I'm currently working on is generally at the bottom of that vertical sidebar, and I rarely venture beyond that area when I'm actively working.
The grouping of tabs into trees also helps with keeping them (pretty much self-)organized. Vimium's "search open tabs" shortcut is also very useful, if I need a specific tab right now.
Holy shit... 500 tabs? I thought I was bad about accumulating tabs but had no idea ~500 was even possible. I'm trying to even but I literally can't--You might say "I literally can't even".
I have 7-8000 on one machine, multiple thousands on at least two others. Session Buddy + either Auto Tab Discard or The Marvellous Suspender means I don't lose any even in crashes and it doesn't use too much RAM.
I thought Suspender had been taken down due to some change upstream that introduced trackers or something else shady. Great to see it got forked. I’ve been using Auto Tab Discard but it doesn’t feel as effective on diminishing RAM usage.
That was The Great Suspender. Marvellous is a fork that seems to work just like the original. I actually have trouble with it with more than ~2000 (3000?) tabs. It gets unstable and slow. Auto Tab Discard doesn't have that problem, but does occasionally disappear and stop suspending tabs until you reload it.
Zen. And MaxTabs. I limit myself to 5 tabs by force. Anything more, it means I'm becoming scatterbrained and need to revisit what I already have opened and think more linearly rather than in a spastic manner.
I tried saving tabs for reference material, but I prefer something simpler. I shutdown my PC at the end of the day. I have a dump.txt where every link that might get needed tomorrow gets pasted.
I don’t understand what’s so complicated about this. I’ve also never allowed myself to have more than 5-6 tabs at a time because it just seemed reasonable. I’m not sure what I could possibly be doing that requires more tabs. I have an organized bookmark folder structure for things I absolutely need to get back to/visit regularly. I’m using my browser for no more than a couple streams of thought at any given time.
That's a pretty aggressive and unhelpful response. While your brain might be tuned to perfect tab management, I've worked with very talented people who hang on to tons of tabs (amongst other idiosyncrasies). Some want to change (I deign to consider myself one of these people), others don't and still go on to be productive, awesome developers.
You seem to have mastered pure focus which is an amazing, coveted trait, but we don't all have it.
I'm not trying to come off as aggressive. It's that I don't understand what more than 15 tabs could realistically be used for. I don't think I could find a use for more than 15 tabs if I tried at any given time. At work as an engineer I usually have a tab with Bitbucket, at most 3-4 tabs for pages/documentation I'm reading, a tab with Jira. Maybe I have a tab or two on Youtube to put something on in the background. So as I'm reading comments about people claiming to have > 1000 tabs, I can't comprehend what's going on in that situation. The only way that could happen is if I simply never closed tabs when I was done with the task I was looking at it for. It would never make sense to not close it if I don't need it because after 15+ tabs being open it becomes too hard for me to find anything because the tabs are so small. I'm incentivized to close tabs when I don't need the information anymore because the browser becomes unusable quickly. I know how to get back to just about anything I was looking at and if it's important enough that I'm revisiting it often it gets bookmarked.
It's less aggression and more disbelief/shock because I don't understand how it would be possible to use a browser with more than 15 tabs open.
I'm not who asked, but I can explain my own and other's perspective: don't passively accumulate detritus. If you want to remember something , you must write it down or take a note, just like if you were in school. Don't just "throw another tab on the pile". That's like a .txt file full of links you're just pasting and pasting into. Are you really ever going to go and review those links?
Folks who successfully have huge numbers of tabs and who really love that, in my experience, are treating their tabs like a different kind of bookmark, or they just have a ton of bookmarks. They'll usually use a categorization feature of some kind in order to organize their tabs just like someone organizes a library. Whether you're using tabs, bookmarks, written notes, whatever, all these systems in general are just some form of active tracking.
If you're not actively organizing and tracking though, why not free yourself and merely close your tabs aggressively? It's pretty easy, just uncheck the "Re-open tabs on startup" or the equivalent in your browser settings, then just click the "close" button on your window with all your hundreds of tabs. Let them go, and free yourself of worrying about them!
Besides, if you REALLY need them, you've always got your browser history anyway ;)
Kudos. If I need to do something or return to something it becomes a card in Trello, not a tab which I always need to evaluate if I need it open or not, is it important or not, what did I want to do with this information last time I saw it etc.
And Trello card is an action item which will eventually get to the "DONE" column, will be decomposed into actionable items or will be deleted/archived during the next review event.
Yeah, I've tried the Trello board, and writing down notes, org-mode and other and I have a large graveyard of all of those that get lost. I think for me, tabs remain successful because they are ever-present and insert themselves into
I open tabs in groups in Sidebery. For stuff you plan to return to they are better than bookmarks because there’s no switching between bookmark and tab lists (you’ll always have tabs anyway) and clicking a tab switches to the tab and focuses it’s group of related tabs in the list rather than opening another tab.
I also don’t have to close them to return later or curate them — more time and thinking saved. Sidebery unloads tabs in collapsed groups so even though I have a few hundred open across two Firefox windows, probably less than 20 are consuming RAM and other resources.
I don’t really use bookmarks. I don’t think they solve any problem very well. Both tabs and notes/documents with links in are better.
This. I used to be one of those who opens a tab to read and address this queue later on. I realized it's not efficient (at least for me) because things keep adding up and I sometimes have weeks/months old tabs that I never got to. So I started using a simple task management stuff and it's made an amazing difference for me. Granted that it might be a bit more work, but overall I feel more productive and organized.
How do you find a specific tab out of those 1172 though? I assume some might be quite old and any tab-finder isn't going to search inside the tab itself?
One Feature of vimium is maybe T which pops open a box that searches title or url (though as you say I doubt it searches content).
I keep my tabs low and there's no way I'd find anything with that many tabs open but thought I'd call out the feature given the context of this discussion.
I think this may have been this issue[0], which was fixed in [1]. Seems like the limit has crept up from 3 to 25 at some point in the last decade-ish, but in theory it should be undoable with 25X (or by mashing X to undo as many x commands as required).
[0]: https://github.com/philc/vimium/issues/1126
[1]: https://github.com/philc/vimium/pull/1128
my solution to beat the tab accumulation problem is to have firefox simply close all tabs, clear browsing and download history, clear form and search history, and clear cache upon the user choosing to close the program. if the browser or computer crashes the tabs and everything else still exist. if a site meets your interests, bookmark it. note that cookies remain but are usually cleared periodically. also you can setup a folder of bookmarks, or a new tab page, that you can open up everyday and check the websites you want.
I used Vimium for a while, mainly for the feature of opening links with the keyboard. But I never stuck with it, forgot to use it, because I really don't like the mode-switching and having it default to taking over keyboard input.
Finally found Link Hints, which does only the link opening part, but better (IMO), and with normal keyboard shortcuts. Now I'm constantly using it.
Modeless Keyboard Navigation[0] is a fork of Vimium by an RSI sufferer that doesn't have the mode switching element (but does keep all the other actual features); instead you use Control/Alt + whatever key combinations. Basically it's like Link Hints but with more shortcuts.
I use caret mode, visual selection and P quite often to search for the text in visual selection in a new tab with the preferred search engine. I also like yf for yanking a link to clipboard.
This is the very thing I’ve been looking for since vimac became proprietary (homerow). I was using Shortcat, which is also a proprietary software and I was having a little bit of concern mainly about security, but this software seems to solve the problem. Thank you for sharing.
Is that really practical? In the video it looks not very useful to me as it does not seem to be very efficient. The mouse is so integrated into MacOS it looks hard to efficiently replace it. Are you or is anyone else actually using this regularly?
Also, I think the other mentioned alternatives look quite similar to that regard.
It certainly would be but looking at the options tells me that they're hooking into MacOS's widget libs and on Linux there's just so many. What I get by with to go mouseless is Tridactyl for Firefox, warpd for when I need a pointer, and when I absolutely, positively need a mouse, mouse emulation on QMK keyboards never fails me. I only need it these days for dealing with MacOS outside of my Linux VM. I also use keyd in order to remap keyboard shortcuts.
On linux, you can just install one of the DEs that are keyboard driven. Rat poison is one. I used that with Conkeror (a fully keyboard driven browser with emacs keys) for a long time.
This comes up every once in a while on HN. I've been using vimium for over 10 years now since I did an internship at the same company as the guys who created it. Can't imagine browsing the web without it. Works especially well with HN and those small link targets :)
There's also a free, open source vim style browser called Qutebrowser which you can control like Vim if that's your thing. It works well, also with complicated web sites.
I have been using qutebrowser for some time now and it's pretty nice if you can accept having a browser without UBlock Origin and other extensions ranging from nice-to-have to obligatory. The main advantage and the reason and I can't get myself to switch to Firefox is that it's vim-UX is just flawless. It works amazingly well and is just magnitudes better than any Firefox or Chrome extension that adds vim-UX on top since it's built into the browser natively in qutebrowser.
Maybe I'll switch away some time in the future, but for now the flawless vim-UX, its customizability and my many scripts and custom bindings I've written for it keep my locked in the qutebrowser garden, haha!
> pretty nice if you can accept having a browser without UBlock Origin
Just for potential readers who might not be aware: qutebrowser ships with its own inbuild adblocker though, so you're entirely left adrift in the ad-trashpile that is the Web today. Qutebrowser isn't my daily driver (mainly because I found it a pain to configure), but from my limited experience, the adblocking works pretty well.
Qutebrowser seem to have some built-in support for adblocking, have you used that? I'm curious how it works.
Tried it before, long long time ago, but found it to complex. But now after using Vimium for a while Qutebrowser actually seems very intuitive and not hard at all.
qutebrowser has support for host-based blocking, which is better than nothing but a far cry from element blocking like UBlock Origin does. For me, qutebrowser's ad-blocking is pretty hit-and-miss, which is why I'm longing for UBlock Origin haha.
Origin is hard to beat and unfortunately a must have nowadays.
Although I must admit for a longer while I've been ignoring sites that are annoying or unusable without a blocker and it made my day much calmer. I stopped even clicking links on most "news" sites that are just borderline clickbaits.
+1 my thoughts exactly. It would be so nice if Firefox allowed tridactyl full keyboard control. With qutebrowser, having a proper control mode and an insert mode that work everywhere makes it so much easier to navigate.
Mozilla said they were happy to do that five years ago if we wrote the API. We started work on it here [1] but lost interest because there have always been more urgent things to do (and for me, the ctrl+comma escape hatch that gets you back to Tridactyl from anywhere in the browser is good enough).
I think honestly most of the work in getting such an API merged would be political since most of the people who approved it are no longer at Mozilla.
If anyone wants to pick it up I would be delighted to help.
I love qutebrowser and use it daily (and donate to the compiler), mostly on Linux but also on Windows.
Here are some of my headaches that force me to use Chrome/Firefox anyway sometimes, if anyone has answers to these I am very interested to hear them.
* Can't save passwords / autofill (for accounts I don't particularly care about)
* UI scaling in Windows (for high-res screens) is bad. The web page contents do not scale automatically.
* Does not resolve Teams "secure links" (workaround is to right click teams links instead and copy them, then paste in qutebrowser)
* Twitter videos don't work
* On linux (somehow this works on windows), "accept all cookies" sometimes does not get rid of that prompt. Stack overflow is an example where this happens. Another example is redhat where the prompt does not load for a while [0]
* Clicking something that spawns a box where text can be inserted does not bring me into insert mode. Example [1] (the searchglass). This causes me to close the tab by mistake sometimes by typing 'd'.
One Vimium feature that I use a lot is the "Vomnibar". As a heavy bookmarks user, it lets me easily search for any existing duplicates before bookmarking a page by just pressing 'b'. If I start the search with "/<Space>", it will show the full path to the bookmark folder too!
Been using Vimium for years, and just learned about searching paths in bookmarks via `/` (hitting `b` or `B`, then `/`). - Thank you very much for sharing.
I switched from Tridactyl to Vimium a while ago. Tridactyl is powerful and feature rich but more complex. Vimium does everything you need for normal usage and is super simple to set up (the default config is a very good base and you'll probably only end up making minimal changes over time).
I've been using Vimium for quite some time now, and while I like it, there are two things which annoy the hell out of me.
Vimium disables the browser's backward-forward cache (by listening to the "unload" event), causing navigation to be much slower.
There is also no way for a website owner to warn a Vimium user of conflicting keybindings. I run a website which implements Vim keybindings and several of my users complain that it doesn't work. I have to remind them to disable Vimium. This issue has been open on their GitHub for more than 4 years with no end in sight.
At least in firefox, I'm not sure that's true. I go back pretty frequently (maybe you mean specifically with vimium back navigation) and get yesterday's cached HN front page, for example.
As the website author, you can see which extensions the client browser is running, no? Wouldn't that make it your responsibility to detect then disable your custom keybindings rather than the users's?
I wouldn't think so. There are infinite ways for people to customize their browsers; it's not reasonable to expect website developers to account for them all.
Plus in the case of your parent, their website implements vim keybindings, so basically all of them are going to conflict with this extension, and it's going to be pretty useless if they detect that situation and react by changing all of them to something non-standard.
> As the website author, you can see which extensions the client browser is running, no?
No, not really. Not unless it specifies certain `web_accessible_resources` which you try to load - but that's a bit of a hack, needs to be done on an extension-by-extension basis, and won't even work for all extensions.
I work at Superhuman. We used to have code to detect Vimium, though we evidently we removed it very recently, while working on something tangentially related. It was working but definitely finicky over the years.
The initial way we checked for it was looking for document.body.matches('*[_vimium-has-onclick-listener]') but apparently that stopped working in 2018. We then used a variation of this code: https://github.com/hackape/Detect-Vimium/blob/master/detect-... which seems to work still.
How long ago was this? There used to be a way to do this for earlier versions of Vimium but that doesn't work anymore. Very interested in knowing if it's still possible. Will check out superhuman.
I used to be a loving VimFX [0] user. It had intelligent link hints (essentially, links it thinks you are likely to want, e.g. because they're big, get single-key shortcuts). The scrolling was actually native, as in equivalent to hitting the arrow keys. I don't think any of the other Vim emulator plugins ever replicated that. Vimium doesn't, Tridactyl doesn't, and Vim Vixen was horribly broken.
Apparently VimFX still runs via some hacks on modern Firefox versions? The last release was even in 2022. Maybe I should give it a try again.
It's more about 'feeling' native than actually being native. I managed to reinstall VimFX and it doesn't quite scroll like the arrow keys, either. But its scrolling speed still feels more natural than either Vimium or Tridactyl, although it's a bit slow.
Tridactyl's huge jumps are annoying to me, as is Vimium's excess smoothness. In Vim, I hit j once to scroll one line, same as <down>.
This looks amazing, but installing the Firefox extension I am worried about all the permissions it asks. I am surprised how comfortable people are signing off on these permissions. How do people at HN put these security worries to rest?
This (your fear) is a result of bad policy by Firefox. This is why a lot of useful add-ons or plugins died, and, overall, Firefox became a shittier browser.
Neither Vimium nor SurfingKeys don't hold a candle to KeySnail because back in the days add-ons worked you could control the browser's chrome as well as a bunch of other non-HTML elements.
Today, you cannot even use browser extensions to close a browser window if the page didn't load in it.
These tools were intended for "power users", who could establish for themselves if the piece of code they want to use is doing something malicious or not. Also being an easy way to extend the browser without a need to recompile it and a need to understand a huge project with a ton of infrastructure... flushed down the drain.
This reminds me about how Alan Key said in one of his interviews that if a motorcycle was invented today, it would've been outlawed right away due to safety concerns.
Auditing each tool by ourselves would cost a lot of time. Not to mention that it would not be a one-time thing. At each update, another check would be required for "peace of mind".
Curious to discuss if there is a way to trust these extensions without establishing ourselves that the code is not harmful.
But you don't audit it entirely by yourself. Nor were you expected to before. It's the same idea as with other programs or add-ons you use. Don't you use some add-ons in the code editor you use not authored by the authors of the editor itself? And why would you believe the authors of the editor in the first place?
Of course you need to do some due diligence, but it isn't anywhere near as taxing as you seem to think.
Security is worthless if it prevents you from doing useful things. Given a choice between a chance of security breach and not being able to do the useful thing at all, in the circumstances like using a Web browser, I'd definitely choose to have the useful thing w/o security.
It seems it would depend on the persons risk tolerance.
And assessing risk of freely available open source software is still difficult, you either rely on all the authors being standup citizens, or on the bulk of the reviewers to be truthful and knowledgeable.
It's open-source, about 10K lines of good quality self-contained JS code with no obfuscation so it's not that hard to go through it yourself. It moves fairly slowly these days so once you have done this once it's easy to stay on top of the changes.
Been using vimium for years. I have gotten so used to scrolling pages at different speed by pressing keys that whenever I am using someone else's computer I have to fight muscle memory. I also use it for clicking links through keybinds, but really the custom up/down is the main usage.
The occasional website having its own keybinds never stops being annoying, but it's easy to disable the extension per site
100%. Scrolling with arrows/mouse instead of hitting j or k just feels uncomfortable.
Maybe there's something to be learned by browser designers. It's not just the fact it's on the home row and muscle memory for Vim users. The default speed for down/up arrow scrolling and lack of smoothing is just not the same.
Same but reading on the internet is not like scanning source code files. I tend to read much more linearly and the j/k scroll speed is fast enough. But obviously that's still an option.
I used Vimperator on Firefox about 10 years ago. Back then it was fantastic, but I think the add-on environment has changed in FF (WebExtensions) since then and add-ons aren't as powerful.
I've used Vimium on Chrome. Every few years I get excited, install it, feel 10x more productive, and then a few days later uninstall it.
As I recall, it doesn't work on the New Tab page. It doesn't work if the address bar is in focus. I believe you have to wait for the page to fully load before you can use it.
Most annoyingly, a lot of websites have custom keyboard shortcuts, so you have to blacklist them in the Vimium config. Eg Gmail, Miro. Then you need to remember you can't use Vimium on them.
None of this is their fault in any way, of course. But it does make Vimium a bit annoying to use for me anyway.
Thanks for this, this changes everything. Namely, I can re-enable most commands that I've globally disabled. Who woulda thought the path to enlightenment would be to simply RTFM.
Well, I never want the site's keybindings anyways. They are without a fault, always worse than the general-purpose navigation offered by the extension (I use Surfingkeys, but it's the same idea).
Unfortunately, the extension cannot always overpower site's key-bindings, and that's where it sucks.
However, there's one exception to that rule: every now and then I need to work with a VNC in the browser, and in that specific case Surfingkeys takes over and makes it unusable. Well... it's annoying, but, really all it takes is clicking the extension's icon next to the address bar, and then clicking it again once I'm done with the VNC.
And yes, not having access to browser's chrome (that the address bar and new tab etc.) is a disadvantage that's due to how browsers currently work is impossible to work around.
Extensions do offer a kind of substitute, but it can never be 100% (i.e. Surfingkeys have a way to input new URL or edit current URL w/o interacting with the address bar, or a way to select a tab w/o interacting with browser's chrome, but if you happen on a page like settings or something similar, the extension cannot work there).
There isn't any specific site to disable. It's just an IP that was allocated randomly to my cluster on the VPN I'm connected to. But, sometimes they also have domain names because I need that. Anyways, my point was: it's not that much of a burden really.
I see, just wanted to help if you weren't aware of the shortcut. It took me a while to discover it on Firefox because <Alt-s> is used to toggle fingerprint resistance. That's why I remapped it to '<Ctrl-.>' in my setup.
// privacy.resistFingerprinting breaks alt keybindings
api.map('<Ctrl-.>', '<Alt-s>');
api.unmap('<Alt-s>');
SurfingKeys remembers disabled websites so it can be a time-saver.
What I have noticed is that the bottleneck in editor vs. browser is different, which explains why I don't use Vimium anymore either.
In the editor speed matters: speed is a bottleneck. For example, if AI comes in writes a paragraph based on the function title, "bubble_sort_array", that's great, because now I've sliced 2 minutes off the 3 minutes that would ordinarily take.
But in the browser, time is cheap; in fact, that's largely why I used the browser, to luxuriate in the time it takes to, say, read an article, or write a long comment. I'm there to take it slow, to escape the tyranny of efficiency. So when I'm there to relax, shaving 4 seconds off a 10 minute reading time is irrelevant.
So I use shortcuts in my editor, but not my browser.
I have vimium configured to just use f, F, and alt+j and k to move between tabs. That's all I really need and it doesn't tend to conflict with the web sites I use.
Tried using this recently. Even though I use vim daily I haven't made good use of Vimium yet. In fact I found it more annoying because it naturally breaks sites that I do know keybindings for like YouTube.
Overall I don't want to come across as critical of of something that just needs a little effort to use, more of just setting expectations.
Normally this would be less of an issue but for me, I ran into this problem while on my rowing machine, and I didn't want to stop to fiddle with keybindings.
You might already know, but if you click on the extension icon, you can specify which pages to disable it for. I disable it in pages that have useful keyboard navigations. But it's great for things like HN, where I can use J/K to navigate, then hit F and open a link I want.
I've used this in the past, and I've found that it's not a 1:1 replacement but rather an add-on to my browsing habits. It's great when having lunch with greasy fingers, I can do most things with one pinky press!
It's very easy to add exceptions for individual sites, for example letting youtube have f for full-screen. You just click on the Vimium icon on toolbar and it pops up the dialog for that. You can do it in 5 seconds even while you are rowing.
The "f" mode in Vimium is just wonderful. I wish that I could have a system-wide keyboard just like that.
I seem to remember in Windows 7, there was some sort of voice assistant, that could similarly put a label on every visible clickable element. That was for voice command, but would be great for keyboard navigation, too.
I’ve been using Vimium for about a year now and really like it. I use it almost exclusively for fast keyboard-based scrolling, because I hate having to continuously rub my finger against a cold aluminium surface or spin a little plastic wheel to obliteration (maybe I’m weird). I know, arrow keys are a thing, but somehow I feel more at home with Vim keybindings.
Vimium has a lot of other great functions, but I don’t use them often enough to remember them, maybe I should.
However, I have to exclude it for a lot of webapps and websites where keybindings are used to trigger different events, which is sometimes annoying if you don’t know or forget about it.
I love being able to easily navigate between tabs (a/J and s/K for me), go back/forward (h and l), open the current tab in a new window, close the current tab, etc. though (of course) the killer feature is "link highlighting" or whatever it's called. You can also enable "link highlighting" where selecting a link copies the URL. I also find that occasionally useful!
I also found it useful to have a link bind that just focuses the link element, often that can open up hover menus or trigger other focus/hover CSS changes.
I used to use Vim-style key bindings in the browser in that past but haven’t for a while.
Back then the browser extensions for Vim key bindings kept breaking now and then, and that’s a big part of the reason why I stopped using these extensions. Probably the situation is a lot more stable today.
Another part of the reason that I stopped using these plugins I think is also because I do a lot of my browsing these days on my phone. And aside from that even when I am on the computer, I don’t really miss the feature in my browser. Maybe also because I use a laptop most of the time, and the trackpad of the Apple laptops are nice to use.
Anyway, I still use Vim key bindings where it matters the most to me and that is in my editor where I write code and other text.
One thing that I came to think of that maybe someone can answer. What happens if you try to run one of those Vim-in-the-browser sites, while at the same time you have Vim-style keyboard controls for the browser itself? For example this one: https://www.vimonlineeditor.com/
I've been using extensions like this since 2009[1], when I went on a deep dive on how to do everything from the keyboard -- eventually leading me to register tyrannyofthemouse.com.
Unfortunately, there's been a pretty clear shift in the web away from the interoperability that extensions like this need. I'm increasingly seeing elements that aren't detectable as clickable, or which do something different when you click via extension vs with the mouse.
Firefox has compounded the problem by making tabs not apply your extension's changes in a tab until a document has loaded there.
I used to be able to do most of what I needed from the keyboard and just occasionally supplement with the trackpad, but I finally relented a few years ago and got a mouse.
[1] Was using tridactyl but decided to come back and give vimium another try after seeing this.
I couldn't live without this extension. I'm kind of surprised to see it in the frontpage, as I assumed many other folks here would use it daily (as in: it wouldn't be news).
I know the authors are in the comments so let me say: thank you!
I used to use a Vimium-FF (a Firefox version). I love the better browsing ergonomics.
But, after some thought, I realise that allowing such extension simply requires trusting a third party app access to so much of my personal information. They (understandably) need the ability to read every page I browse. Vimium-FF even requires clipboard access.
I do believe the authors have the best intentions. But the amount of trust I need to have in order for a third party app to have so much access to some of my most confidential information (online banking, emails etc.) is very very high.
For those using firefox there is tridactyl available as others have commented as well. They've gone a step further introducing native messaging [1][2] which opens up an endless ways of interacting with the underlying OS which makes implementing all sorts of useful day-to-day functionality such as personal automation a joyful breeze.
For example, saving the current page in a local file can be as easy as:
tri.excmds.exclaim_quiet ('echo "' + document.location.href + '"' > $HOME/notes')
Sky is the limit given that you can interface with any page with JS and then pipe and process the output with any system utility or system context.
A simple example for demonstration would be copying the contents of the body tag, piping them to a readability[3] util and have the output saved to a local vault.
Or have a video played with mpv with a press of a button since you can invoke any of these functions be it custom or built-in targeting any element the same way you would follow a link by hinting.
Here are a few other, pretty interesting use cases as seen in examplar custom user configurations taken from their github wiki[4]
Edit: I assume native messaging has security implications you should probably consider if the browser is running directly with your system without any means of isolation like sandboxing with bubblewrap or better running under a virtual environment.
SurfingKeys has way more features. It supports Firefox and Chromium-based browsers so I can keep a single config file for both (.config/surfingkeys/config). Vimium and Vimium C are good if you need basic Vim navigation capabilities. Pentadactyl and Vimperator (both discontinued) are Firefox-only.
I've been using it for years. While I use it often, I resort to using the mouse, esp. because many interfaces require a lot of clicks and hidden and hover-based UIs.
Maybe one day, I'll be to master this extension for all things, but it's hard for me naturally remember to use it.
PS: I'm a moderate level user of Vim and use it for adhoc things.
Every time this comes up I wonder why no one mentions qute and nyxt browsers which natively support those bindings and have much more minimal UI.
I used to be a vimium user at first, then tridactyl but both fell short and felt hacky and for roughly a year now I’ve been using qutebrowser which is miles better.
Qutebrowser has a builtin adblocker and while the ecosystem is much, much smaller than Chrome’s or even FF’s or Safari’s, I haven’t found it lacking to the point of being unusable. Just frustrating a little bit at first, but userscripts from the qutebrowser repo cover pretty much everything for me.
I've been using Vimium for years and while I don't use every feature that it has I feel completely lost on a machine that doesn't have it installed. Just the ability to scroll pages without having to take my hands off the keyboard is worth it for me.
IIRC Vimium was the one that was pure hotkeys, no commands. Waaay back when Vimperator died with Firefox Quantum, I tried a bunch of different addons that still worked and Vimium was probably the least powerful of them.
Currently I use Vim Vixen[0]. It's still nowhere near as feature-full as Vimperator was, but nothing can be nowadays. My only real complaint about it is how link hints don't let you complete with the link text like Vimperator could - it's the one thing that as far as I can tell, no replacement supports even though it's a whole lot better.
Tridactyl does let filter links like that with `:set hintfiltermode vimperator` and `:set hintchars 1234567890`.
Vim Vixen unfortunately has been unmaintained since May [1]. If anyone knows ueokande personally, could they let him know that I would be happy to help get some releases out? I sent an email yesterday but I am not optimistic as it seems like quite a few people have tried over the last few months.
I used to use Vimium, but switched to Vim-Scroll which is much lighter and didn't conflict with other shortcuts as much. Really great for j/k scrolling.
this is perfect for my usecase in firefox and mainly text only browsing, vim is perfectly designed to use the limited keyboard options and even more limited cognitive load humans can handle [alt shift ;) you know what i am talking about]
Keyboard controls of Vim were one of the most atrocious things I had to endure as a sweng so it's sad to see a replication of this 70s tech derived from inflexible wooden keyboards making it to modern tech stack. Stockholm syndrome/addiction is strong...
I'm quite proud of the little test I wrote to figure out which DOM APIs could be used to detect the visibility of different kinds of elements, in order that we could display link hints correctly: https://github.com/philc/vimium/blob/master/test_harnesses/v...