[Vimium + i3 + vim + vscode/vmplugin] Means that I rarely have to reach for the mouse, have a tonne of desktop real estate that's easy to navigate and is way more comfortable.
Just having search, simple navigation and the 'f-feature' in vimium is enough for like 99% of my use cases.
It's such a pleasant and seamless experience to code in the editor, hop on over to the terminal to do w/e, skip on over to the browser to look something up, and go back to code. The muscle memory just takes over. Not to mention all the other benefits like having to track down small icons, sometimes changing window state (e.g. unmaximize, moving things around), and how much more effort using a mouse is over 2-3 keystrokes.
Just repeating my comment here https://news.ycombinator.com/item?id=24637140 although it was Tridactyl vs QuteBrowser, the same applies. Before tridactyl, I used vimium and vim-vixen, this is the best one hands down. In terms of integration with Firefox and links recognition. For the hints, it's mainly the fact that tridactyl highlights the elements hinted, for example with the Twitter web UI:
Now it's not that a big deal, but the advantages appears clearly on more saturated pages, off the top of my head, stackoverflow's triage:
With qutebrowser[0], if I want to close the modal, `gs` and `hd` are almost on the same place (it's only with experience that I noticed that hints are top left so `hd` is the hint I'm looking for) compare this to tridactyl[1] the `hy` fits very nicely with the highlight which doesn't let any place for ambiguity. I noticed your other answer about the addons, it's very much appreciated, and if I can help with the beta or whatever, let me know, keep up with the great work.
Thanks, I ask because currently I'm using Tridactyl on Firefox but Vimium on Chrome, and it's interesting to compare the two approaches to the same problems.
I use the exact same setup. Although I switched to only this year after spending time revisiting my workflow. Its indeed quite a bit faster for doing serious work although when I'm just browsing casually I do use the mouse just to give my fingers a rest.
You can search for text, then press `v` to go to visual mode, and then `y` to yank.
There’s also a caret mode you can get into with `vc` that then let’s you move a caret around the page with the motion keys, and you can use it to highlight and yank text like you would in vim.
Thanks for the tip! It seems to work well. When I go to 'visual mode' its easy to move the text selector forward, but what if I want to expand back in paragraph?
Too sad the switch to WebExtensions in Firefox totally screwed up these addons.
I was a religious VimFX user and I can tell you that i mourn having lost that. It's like an era of powerful browsing ended. I use the mentioned Vimium addon, but it's not even close to what we had with VimFX.
Does the keyboard shortcuts in Vimium work when the page is loading? No. How nice is it to have keyboard shortcuts that work sometimes? Extremely frustrating.
How about using "o" to get to the address bar (CMD/CTRL+L)? It opens some overlay on the page where I can't access my bookmarks.
I could go on. VimFX is still somewhat maintained, but you have to run an unsecure browser to use it (like WaterFox).
I was super happy that the old XUL extensions could hide UI elements. I used Vimperator and hid everything but the Vimperator status line, and it was awesome. Noticeably more screen real estate and less clutter.
For those looking for that more complete Vim experience, qutebrowser (https://qutebrowser.org/) is a good option, IMO.
The one thing holding me back from qutebrowser is the fact that its adblocking capabilities (particularly cosmetic ones) are nowhere near up to par with anything like uBlock Origin or even Adblock Plus on Firefox. I'm happy to see they're working on it, but uBlock-enabled web browsing has been a gamechanger for me, and it'd be hard to give that up to use a browser akin to Tridactyl++.
The second that qutebrowser (or any Webkit/Webengine vim-like browser) gets good adblock/cosmetic filtering support, I'll switch in a heartbeat.
So true. It's so easy to accidentally "escape" context in which Vimium works. I still use mouse and standard shortcuts like ctrl+l a lot after each such use one has to deliberately click inside a web page to return to proper context.
A lot of actions like tab switching can be done in vimium but sometimes it's a chore.
Bookmarks CAN be accessed via "o" in Vimium :)You can also use "b" to browse just the bookmarks.
In chrome if you create a custom search engine and and set the url to javascript: it will focus to the page. I set it to the letter j, so if I ever hit ctrl+l and change my mind, I just hit j then Enter to refocus the page.
I've been using Vim Vixen[0] since the WebExtension switch, and I haven't noticed any missing features. I'd be curious to see how you found it in comparison.
I use that too, but the specific points they mentioned (keyboard shortcuts while loading, focus the address bar when pressing `o`) do not work there either, and they cannot work with the WebExtension API.
I've been using vi-like shortcut plugins (vimperator, pentadactyl, vimium, vim vixen and many others, currently using tridactyl) for quite a few years now, and its never been quite the smooth experience I hoped for.
Not even talking about interfaces where you'd expect to need to use mouse (javascript components and others), but there is always the page in which the shortcuts will fail, or some input which will be blocked because the plugin is fighting the webpage for focus. Its pretty much what the article says at the conclusion, it helps reducing, but I still view it as a hassle.
Browsers developed with vi-like modes built-in (vimprobable, vimb, qutebrowser) fared better for me, but then there's other issues like incompatibility or lack of plugins which keeps me from fully using them.
> Browsers developed with vi-like modes built-in (vimprobable, vimb, qutebrowser) fared better for me, but then there's other issues like incompatibility or lack of plugins which keeps me from fully using them.
I've had this issue too with qutebrowser. I'm not very familiar with how these things work, but I wonder why plugins written for a given engine (say webkit) wouldn't work on all browsers using that engine. In the case of qutebrowser it uses chromium under the hood, so I would expect extensions that work on chromium to work on qutebrowser, just as most chromium limitations also apply to qutebrowser.
Extensions are tied to the browser pretty tightly (think UI, bookmarks, open tabs access, etc. etc.), while QtWebEngine (which qutebrowser uses) uses a more low-level part of Chromium which only shows a single tab (the so called "content API").
Either browsers have locked things down too tight, or for some other reasons these Vim like plugins are skeletons of their past. And websites are also keen to grab key strokes, e.g. "/" on Github.
I tried Vimium-FF (https://addons.mozilla.org/en-GB/firefox/addon/vimium-ff) and many other Vim like add-ons in last 2-3 months (after I decided to give Firefox another try after Pocket; and the possibility of ditching MacOS in my personal usage), but no, these plugins are nearly nowhere as useable as they used to be. Page reloads, redirects, weird behaviours at anything I try to do.
Maybe I can spend hours (over days) and have a perfect config file and maybe, just maybe, it will work as intended but then again it might break with next version or next browser update/upgrade.
My most used features were "/" followed by "n" and "shift+n", "t" -> open and "w" -> close tab, "f", "o" -> getting focus in address bar. I think I will rather give up.
Somehow I don't like to tinker anymore in the personal computer usage scenarios and maybe it's people like me who have caused/convinced companies like Apple to close things down and try to make apps and machines simpler (at which they have failed specularly).
Browsers need a plugin API to allow user interface modifications without allowing user data and network access - somehow. Could be useful for many cases, including accessibility, I imagine.
I'm glad this was posted. I really liked how they introduced only one feature; that was enough to push me to install and get past "I don't know vim, why would I like this". I can press 'f' and type letters to follow links. No vim-ness. Just a nice feature. (You can press "?" to see more features.)
(I used an XUL-based web browser with Emacs keybindings many years ago and loved it. But I had to switch to Chrome, and XUL went away, so I kind of gave up.)
> I can press 'f' and type letters to follow links.
You can get this with standard Firefox, no extension needed. For instance, on the HN main page, hit ' (single-quote) then "vi" then [enter] and you'll follow the link to this article.
I found Surfingkeys far more configurable than Vimium. I too looked at the alternatives and think its the best of the bunch. I'll have to try those mappings, seems like good tweaks.
Vimium is actually quiet a stable project since it's creation in 2009.
Side note: going back on the git history of the project is a great way to see the code evolve. [1] Originally it started with 2 files, but now has blossomed into a project with 100's of files
Pro tip: Set your hint characters to keys you can hit with your off-mouse hand. (e.g., being a right-handed qwerty user, mine are asdqwerzxcvtgb) Now you can keep one hand on the keyboard, the other on your mouse (or coffee, or whatever).
Without a plugin on firefox: hit ' to open a search field that only searches for links, then start typing and hit enter when the correct link is highlighted.
I love the idea of Vim shortcuts in the browser, but I'm becoming increasingly uncomfortable with the permissions these extensions require. I get why it's necessary for them to work, but giving access to all history/tabs/browser data feels a bit intense.
At least current browsers now show/ask for such permissions individually. You probably don't want to know how many permissions things like old XUL/XPCOM extensions would have required had they been forced to ask the user for them individually.
I showed this once to a non-techie friend, and they were excited to use it. My little demo covered the difference between F and Shift+F to show how it is case sensitive, and I navigated through multiple pages without using a mouse. I assured them that they don't need to learn all of its commands, and they can open a cheat sheet on any page just by typing a question mark.
This non-disruptive introduction into Vimium made me think about my old Firefox setup. Back in the XUL days, I was hoarding dozens of add-ons that altered the Firefox UI to the extent that others could not use my browser anymore. They would click on a link and wonder why it is not working while my browser would amass many new tabs at a customized, designated place. The browser worked as I intended, but the extent of my customizations made it unusable for regular Firefox users.
Therefore I think that these new, more limited extension APIs offer an overall better experience for end-users. Maintaining usability for "regular users" should be the upper bound for the amount of customization an extension API provides. If it goes beyond that, it seems to get out of control.
I don't agree. Regular users simply won't know to install those plugins in the first place. Leave the advanced APIs in for those that seek it. Security and maintenance concerns aside, of course.
I used vimium before switching to Surfingkeys for its editor. Turning any text input into a vim box is one of these features that you can't do without once you're used to their convenience.
Note that these extensions have access to all your data on the sites you visit, and while you may trust their developers, a dependency might go rogue without anyone noticing.
I love vimum, use it myself, but my biggest gripe with it (also half-addressed in the article) is that sites with good power-user focused keyboard shortcuts built-in are almost always going to beat a generic plugin like vimium. So you're left with choosing one of two compromise options:
1) Ignore the nice app-native keyboard shortcuts and just use vimium everywhere (Frustrating when single-key shortcuts in the app are multiple drop-down menu clicks with vimium)
2) Disable Vimium on shortcut-rich apps, but deal with the inconsistencies. (Eg clicking on the link in the body of an e-mail in gmail now needs a mouse again)
I really wish vimium had some kind of modifier for "send next key to website", so I could have my cake and eat it too.
Yes, exactly. It also allows you to specify keys that it should ignore per site (so that the webapp always receive them), or even completely disable vimium for a site (or just specific pages on a site). By default, it's not active on gmail for example.
I eventually switched away from these extensions because of conflicts with webapps that have their own keyboard shortcuts. The keyboard shortcuts that webapps give you are much more expressive and usable (i.e. in Gmail), but they're never quite able to save you completely from needing a mouse. So you keep switching between vim mode to app shortcuts and back and it's not clear enough which mode you're in.
Really makes me wish that it was easier for developers to choose native desktop development instead of webapp development. Web browsers are compromises all the way down.
Does anyone know of a way to do this OS-wide, so I don’t have to use my mouse to navigate at all? Either macOS or Ubuntu/pop_os. I know most OSes have built in keyboard shortcuts, but Linux distros are often inconsistent from app to app, and besides I’m looking for something that will let me “click” anywhere in an OS without a mouse
“Keep your hands on the keyboard and boost your productivity! Shortcat is a keyboard tool for Mac OS X that lets you "click" buttons and control your apps with a few keystrokes. Think of it as Spotlight for the user interface.”
If you mean specifically a utility to have the window manager or desktop environment send mouse events to applications based on keyboard input, then no I've never heard of such a thing. It certainly might exist, but I suspect that such an approach would be full of incompatibilities. Consider that Vimium works by (among other things) parsing the DOM and making changes to it in real time. What would that look like for a desktop application with a GUI backend that's effectively a black box?
For Linux, the obvious pragmatic answer is to use a tiling window manager (i3, awm, etc) combined with terminal based programs (since they are keyboard driven by default).
Alternatively, you might have some amount of luck configuring lots of keyboard shortcuts in your window manager. You'd have to pick your programs very carefully though since most GUIs just aren't that compatible with being driven by a keyboard.
I've tried Tridactyl, Vimium, Saka Keys, Vimium C, and Vim Vixen. Of these, I found Vimium C to work the best and have the least overhead. Tridactyl added a consistent overhead of around 100 milliseconds when loading page, while Vimium and Vimum C added only about 20 ms of overhead.
In terms of features, I think Tridactyl is the most feature complete, but I found Vimium C to be more enjoyable to use. For example, Vimium C seems to produce better hints (e.g. fewer cases of hints for something you can't click on), when compared to Tridactyl. I also prefer Vimium C's "Vomnibar" over the Tridactyl interface, especially with a bit of tweaking to the theme.
FWIW - mostly for other interested readers - in Tridactyl we made hints which might be useless grey recently. They correspond to JavaScript events and are sometimes the only way to click a button.
If you want Vimium-style behaviour where these elements are not hinted you can just do `:bind f hint -J`.
We also have a Vimium-style theme which you can access with `:colours shydactyl`. The theme could do with some polishing if anyone's interested.
I’m curious about your first paragraph but I don’t understand it, can you rephrase?
DOM elements which trigger JS event on click which are not identified by shortcut tools has always annoyed me, us much that I even tried to fix it myself so I’m very interested if tridactyl has
This runs at page load - https://github.com/tridactyl/tridactyl/blob/5e8f94ff06bd5f14.... If you keep pulling that thread you'll find we use it to populate an array of elements with interesting event listeners on them. We can then put hints on those elements. We simply fire fake mouse events on those elements if they are chosen.
The code could definitely be improved - a major annoyance to me is that the JavaScript hints ignore CSS selectors.
If it is anything like Pentadactyl was, the difference is mainly that Vimium changes very little in Firefox. You, your spouse or your co-worker can still open Firefox and use it, as used to. Yet with pentadactyl, everything is gone: the addressbar, back-button, menu's etc. This might be what you are looking for, though.
That was one reason for me to ditch Pentadactyl (and also vimperator), and use vimium instead. It allows you to keep using Firefox as normal, gradually sliding into the habit of using the keys.
Along the same vein, I made a vi-like editor for editing webpages - not to minimize mouse usage, but to increase productivity with tons of shortcut keys and commands. https://vivpage.com/
Vimium is great! From a usability stand-point, hints are a very useful way to navigate web-pages without requiring a lot of dexterity to select small elements. Once skilled at typing the hint labels, it's almost like having eye-tracking.
One practical limitation is that it requires two hands to browse, so not great when eating, writing in a notebook, holding a drink, etc. Also if you float your hands above the keyboard instead of using a wrist rest, it's not very practical for extended casual browsing. In that scenario I find having a nice ergonomic mouse hard to beat.
Tip to open links on Firefox without the mouse. There's a setting that allow you to start search when you type text.
For instance on this page if you type "look ma" it searches the text, and selects the first occurence, which is the link. You can then press enter and it will open the link. Or ctrl+enter to open in a new tab.
I use it everyday, it's easy and convenient, you don't need to think much ; you simply start typing the some letters of the link you want to open.
Does anyone know of a program for mac which allows you to type using Vim input?
Of course it's probably too hard to make it compatible with all the different types of text boxes, so I'm envisioning a shortcut that you can press, which brings up a small editing window, where you can use vim commands, and then you can copy and paste into whatever text field you want.
I'm in love. I was able to navigate to hacker news, use F to click into the comments. Use J to read a bit, then jumped back to the top of the page and used F to highlight the text box to start typing this comment. Pair Programming is about to get a whole lot more interesting.
I love the Vimium extension on Firefox. My main frustration comes from the Omnibar. It works well but I would just prefer to use the native bar. I know the Vimium devs can't do anything about it, it's in Firefox's hands but still frustrating though.
I am a big advocate for Vimium. For me, moving to the mouse is almost a context switch and I just find them cumbersome. I have played mouse based games my whole life so dexterity is no issue. It's mouse focused UIs are just inefficient in my opinion.
I use a lot of shortcuts when browsing and when I have to switch from MacOS to Linux is always a pain in the ass because they change and is not easy to remap all of them.
Maybe trying something like this would alleviate this issue for me.
Thanks for the tip. The 'f' tip is quite nice--much nicer than I have previously experienced with Vimperator and the like. For you Firefox users out there, there is a Vimium fork for Firefox called Vimium-FF.
My main problem is the high cost of repeatedly switching between mouse and keyboard. Type a sentence, move to your mouse, click a link, move back to keyboard, type another sentence, move to your mouse again... It gets repetitive and tiring after a while.
I guess I don't find my typing and my mousing alternate all that much in practice? I'll try to pay more attention and see if I can better articulate this.
I do tend to use Tab to move between text entry fields...
It’s the best extension I’ve installed. I only wish it would permit single hand navigation as a setting (e.g. left hand only with right on mouse all the time)
How does one get vimium working on GSuite tools? I think this is a huge limitation. If anybody has figured it out I would love to hear how they did it. Thx
Unusable because the vi-mode keybindings aren't available until the page finishes loading.
Qutebrowser is far superior.
Mozilla STILL refuse to produce a "libfirefox" like Chromium does with the CEF (Chromium Embedded Framework). This is incredibly selfish of Mozilla, they insist on being the only ones who can produce a browser using their browser engine, forcing Tor Browser to devote massive resources to maintaining a long-lived fork instead of just building on libfirefox.
I'm fairly sure Mozilla wished they had a libfirefox (e.g. their mobile browsers suffer from not having that), but Firefox is badly designed to make one and they didn't want to invest the resources needed to do such a deep refactoring. Maybe one can be made from the new Android FF, which as far as I understand is a more separated out code base.
This is a good reminder that even engineers who think they are analytical and evidence based are subject to dogma. There has never been any study showing that not using your mouse improves coding speed. Use Vim if you want, I do, but don't state it's more efficient at writing code.
[Vimium + i3 + vim + vscode/vmplugin] Means that I rarely have to reach for the mouse, have a tonne of desktop real estate that's easy to navigate and is way more comfortable.
Just having search, simple navigation and the 'f-feature' in vimium is enough for like 99% of my use cases.
It's such a pleasant and seamless experience to code in the editor, hop on over to the terminal to do w/e, skip on over to the browser to look something up, and go back to code. The muscle memory just takes over. Not to mention all the other benefits like having to track down small icons, sometimes changing window state (e.g. unmaximize, moving things around), and how much more effort using a mouse is over 2-3 keystrokes.