top | item 34964572

Vimium – A browser extension that provides Vim-style keyboard controls

441 points| kevmo314 | 3 years ago |vimium.github.io | reply

209 comments

order
[+] int3|3 years ago|reply
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...

[+] philc|3 years ago|reply
You crushed it Jez! I wish we could work on more projects together.
[+] mijoharas|3 years ago|reply
I think vimium was one of my first open source contributions too!

I built the custom search engines feature (which I ironically don't use much anymore).

[+] edanm|3 years ago|reply
Oh really? I've been using it for years and love it, so thanks for that!
[+] tambourine_man|3 years ago|reply
Very clean code, extremely readable. If you can understand everything at first pass, that's gold.
[+] philc|3 years ago|reply
(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!

Related: last week I published a very similar extension, but for Google Sheets. https://github.com/philc/sheetkeys

[+] michaelbuckbee|3 years ago|reply
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.

[+] apozem|3 years ago|reply
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.)

[+] osense|3 years ago|reply
This is cool!

Do you have any plans for a Google Docs extension as well? Or do you mostly get by with Vimium there?

[+] sva_|3 years ago|reply
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.
[+] johnhenry|3 years ago|reply
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 :/.
[+] epigramx|3 years ago|reply
is this some kind of modern-day hoarding? how would you even find that useful? why don't you use bookmarks for the earliest ones?
[+] sodapopcan|3 years ago|reply
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".
[+] magios|3 years ago|reply
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.
[+] reportgunner|3 years ago|reply
If you can't remember all of those 500 tabs, did you really need them ?
[+] audunw|3 years ago|reply
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.

https://addons.mozilla.org/en-US/firefox/addon/linkhints/

[+] caspar|3 years ago|reply
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.

0: https://handsfreecoding.org/2017/11/22/extensions-now-availa...

[+] aliencat|3 years ago|reply
I also recommended vimium-c (https://github.com/gdh1995/vimium-c). It's like vimium on steroid: with a bunch of additional useful features.
[+] devsda|3 years ago|reply
Nice feature set especially the Contextual keymapping. Can think of some interesting use cases it enables.

Offtopic:

The section "Declaration for Applicable Regions" from ReadMe, this is the first time I've come across it.

Should it be read as a disclaimer or an opinion?

[+] N3cr0ph4g1st|3 years ago|reply
Any specific things you do with vimium-c that are must have features to switch over?
[+] mplanchard|3 years ago|reply
Came here to make the same recommendation, so just making this comment to second yours.
[+] ashton314|3 years ago|reply
What does it add?
[+] m0rtalis|3 years ago|reply
Yeah sorry I'm getting anxiety when I see that many Chinese characters in a README.
[+] ernestipark|3 years ago|reply
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 :)
[+] airtag|3 years ago|reply
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.

https://qutebrowser.org/

[+] kataklasm|3 years ago|reply
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!

[+] rax0m|3 years ago|reply
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'.

[0]: https://access.redhat.com/documentation/en-us/red_hat_enterp... [1]: https://www.atlassian.com/software/jira/templates/web-design...

[+] rsapkf|3 years ago|reply
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!
[+] qolop|3 years ago|reply
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.

[+] ColonelPhantom|3 years ago|reply
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.

[0] https://github.com/akhodakivskiy/VimFx

[+] noname120|3 years ago|reply
I'd suggest to create an issue on the Vimium repo if the big button heuristic isn't implement / didn't get suggested yet.
[+] bovine3dom|3 years ago|reply
What do you miss about native scrolling?

IMO the scrolling in Tridactyl is better than native as it can work even when the page has put focus somewhere daft (like a pop-up).

[+] hajola|3 years ago|reply
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?
[+] belinder|3 years ago|reply
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

[+] devsda|3 years ago|reply
The home page doesnt make it obvious but there's a port for Firefox too.

It does not compare directly with the old vimperator addon but it works great for regular browser navigation.

The only occasional glitch I saw was in UI for adding site exceptions.

[+] tastysandwich|3 years ago|reply
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.

[+] prettyStandard|3 years ago|reply
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.

[+] powersnail|3 years ago|reply
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.