Vimperator: a Vim-like Firefox
vimperator.org
vimperator.org
[1] https://addons.mozilla.org/en-US/firefox/addon/hit-a-hint/ [2] https://addons.mozilla.org/en-US/firefox/addon/vimfx/?src=se...
I went through a phase where I became obsessed with doing everything from the keyboard rather than mouse[1] and that led me to pentadactyl (and then to vim[2]), an add-on I fell in love with.
When the FF upgrades made it stop working I read the docs for how to compile pentadactyl, and I fixed version compatibility. That became an ongoing thing. (One time I also had to fix a bug in the build script.)
Sadly, about six months ago, Firefox banned unsigned addons, so I couldn't use pentadactyl even if I allowed them in the config, leading me to write this Hitler parody (and move to vimperator/vimfx):
https://youtube.com/watch?v=taGARf8K5J8
[1] even registered tyrannyofthemouse.com
[2] I would have have heard about vim sooner but for not having much contact with programmers
If you use other Firefox editions besides the standard one then you still can use unsigned addons, based on what I've read. [0] The other editions include ESR, nightlies, Developer, and Unbranded.
Of course, these editions are not intended for most end-users.
You don't need an extension to do that in Firefox. Press the <'> key and start typing, you'll get an incremental search like </> gives you, but limited to hyperlink text. Once it's highlighted any bit of the link you want, press <CR> to follow it. Works in Seamonkey, too.
Too bad that Vimperator will most likely stop working once Mozilla deprecate XUL addons in Firefox 57[2].
[1]: https://files.grid.in.th/0EEhIG.png
[2]: https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/
I still wish I could have the command line back though. Annoyingly Firefox actually includes some sort of command line thing when I press :, but it seems to be only for web developers. I'd be happy if Mozilla provided a way to extend that so that it could be used for actual browsing...
https://developer.mozilla.org/en-US/docs/Tools/GCLI/Writing_...
I added a command to toggle a preference in about:config that I switch often. It is kind of a pain to write and debug commands for the GCLI though (compared to writing javascript mapping in Pentadactyl).
I used to be a Vimperator user, but lately I've found it too buggy to use. Even the help pages do not function properly.
One of the coolest things about pentadactyl is that I can make any combination of the UI into keyboard shortcuts (or a modular key chord) to toggle visibility when needed.
It looks like Vimperator is likely not going to be updated to work with newer versions of Firefox, which is a real shame, because it works far better than any alternative I've found for either Firefox or Chrome. I even made my own with the new Firefox API to see if I could replicate the experience, but it's tough[1]. The WebExtension interface doesn't give the same level of control that XUL did, and without which it's hard to give the same feel of Vimperator.
[0] https://github.com/vimperator/vimperator-labs/issues/211
https://bugzilla.mozilla.org/show_bug.cgi?id=1215061 https://github.com/lydell/webextension-keyboard
[1]: https://chrome.google.com/webstore/detail/cvim/ihlenndgcmojh...
That said, Vimperator is far from perfect and sometimes buggy and I don't need all the features (like macros).
I've known about Vimperator and Pentadactyl since the research I did that led to me starting to use Vimium, but since FF isn't my primary browser I've never tried either. Very interesting to see my sister commenters saying that Vimium doesn't even come close to their functionality. I might have to check Vimperator out.
One nitpick about Vimium - I don't like that "f" is included in the default possible characters for link hints, given that "f" is the shortcut to display hints. I always have to go to the settings and take it out, so I know that I can always hit "f" again (instead of Esc) to remove the hints without fear of accidentally leaving the page if I decide I don't want navigate away yet.
But at least the option is there! For which I am thankful.
You can press Ctrl+L to select the location bar, Ctrl+K to select the search bar. You can set browser.search.openintab if you want searches from the search bar to open in a new tab and keyword.enabled to false if you don't want the location bar to be used for searches.
You can press / and type text to select any text with the Quick Find bar,[1] or press ' to select only links. You can use Ctrl+G or F3 in the Quick Find bar to go to the next occurrence of your search and Shift+Ctrl+G or Shift+F3 to go to the previous occurrence.
You can use smart bookmarks to go quickly to any website or make searches on any website by putting %s in a bookmark URL and adding a keyword which can be used from the address bar.[2] You can even add keywords that will do POST requests with the 'Add a Keyword for this Search...' context menu item for search fields.[3]
There are also many keyboard shortcuts for editing and selecting text in text fields, which have the benefit of being the same in most applications on all platforms. There's a list on Wikipedia.[4]
There are keyboard shortcuts even for the more obscure features, like Ctrl+Alt+R to enable reader mode and Ctrl+M to mute or unmute the current tab.
Your web browser already has good keyboard shortcuts, you just need to learn them.
[1]: https://support.mozilla.org/en-US/kb/search-contents-current...
[2]: http://kb.mozillazine.org/Bookmark_Keywords
[3]: https://support.mozilla.org/en-US/kb/how-search-from-address...
[4]: https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts#Te...
As for websites engineered for WebKit/Blink I haven't seen that yet, but I was afraid it might happen eventually - new IE6 (or was it IE5?) will happen again :(.
In 2008, back when I used Firefox, Mozilla tried an experimental interface called Ubiquity[0]. It was awesome! I don't know if the plugin still works, but I think text interfaces are really the way of the future for power users (everything old is new again)? Has anyone found anything quite like Ubiquity for Chrome or something like Vivaldi?
Other examples that come to mind: ChatOps[1] (seemingly popularized lately by Slack), Alfred[2], and even OS X's own Spotlight[3].
Nowadays, though, I just rely on the default keybindings of Chrome for most things. One of my favorites is Cmd+L, which highlights the contents of the address bar.
[0]: https://wiki.mozilla.org/Labs/Ubiquity
[1]: http://blogs.atlassian.com/2016/01/what-is-chatops-adoption-...
Maybe something like Vimium would work for you?
Also, is there a solid Chrome version of any of the above?
'^https?://(mail|groups)\.google\.com':raNxujkopnczIU/#vl?<UP><DOWN>,gi,gt,gd,gl,
</shameless-plug>
So far I've set up some resizing the window and accessing various dev tools: http://anhari.io/2017/01/10/vimming-around-in-firefox.html
What is the killer feature here?
nmap s :emenu View.Page Style.No Style<CR>
nmap <S-s> :emenu View.Page Style.Basic Page Style<CR>
You could assign the 'b' character to the :back command, or use the default shift-H. If you want to go back 4 pages, you can simply type "4 o", just like in vim.The killer feature is being able to navigate around the web without using a mouse. Some people don't like switching between the keyboard and the mouse and would rather use their keyboard most/all of the time. That's who Vimperator is for.
With the examples you gave there's already good keyboard shortcuts for those actions, but in most browsers there aren't decent keyboard shortcuts for selecting links. You can use the tab key to cycle between links, and some websites have extra support for keyboards (for example, Google allows you to navigate through search results using arrow keys), but tools like Vimperator allow you to select any visible link with a small number of keypresses.
Here's a simple example, showing one way to navigate to a link posted on HN:
':back' is mapped to 'H' -- in correspondence to the usual Vi/Vim paradigm to move the cursor with the home-row keys, hjkl. ':open' is naturally mapped to 'o' and drops you into a tab-completable shell. ':tabopen' -> 't' and so on.
The key part, as in Vim, are /not/ the mnemonic, highly effective shortcuts. Rather, it's the modal workflow that Vim and it's spritual descendants bring to the table. I'll leave it at that (sounding like a damn preacher already).
[0] Now that I've looked at it, it becomes clear that they're selling rather directly to Vim-acolytes. Pity, perhaps.
Example use case (which I use daily): press "o w<tab>" which is short for ":open wikipedia" and then type in your Wikipedia search, and you get smart autocompletion from Wikipedia. Much faster and better than doing a Google search and clicking the first link (while looking at a few ads).
1. Vi(m)-like keybindings
2. Portable configuration (dotfile)
Like Vi(m), there are standard keybindings mapped to common commands, plus the ability to create your own. My fingers never have to leave the keyboard to navigate the Web, unless I have to interact with certain plugins.Vimperator reads its configuration from a ~/.vimperatorrc file when it launches. I keep this in version control like the rest of my dotfiles, so I can deploy it to any machine for a reproducible environment. It supports setting Firefox preferences (about:config settings), bookmarks, search engines, etc. I have mine set to remove all the browser chrome, so Firefox has looked almost exactly the same to me since 2009.
For example, I have a bookmark defined for Hacker News in ~/.vimperatorrc:
bmark -keyword=h -title="Hacker News" https://news.ycombinator.com/
Now I can open Hacker News by typing 'oh' ('th' if I want it to open in a new tab), then 'f<n>' to follow a link where <n> is the number highlighted over the link (which decreases if you start typing some letters found in the link text).I can create searches, as well:
bmark -keyword=g -title="Github" https://github.com/search?q=%s
Now I can type 'ogvimperatorrc' to find interesting configurations on GitHub.The tab completion is great, so don't feel you have to limit keywords to a single letter.
I'll be really sad if/when Vimperator becomes incompatible with Firefox. At least there are other extensions or browsers that provide some of the same functionality.
1) Create a bookmark to Hacker News
2) In the bookmark's properties, in the keyword field,
type: h
3) In Firefox's main UI, type ALT+D to move focus to
the URL field, then type: h
To search Github (I'm assuming the URL in the parent is correct): 1) Create a new bookmark
2) In the address field, type:
https://github.com/search?q=%s
(in case it's not obvious, you can use the
%s variable in any URL)
3) In the keyword field, type: g
Then you want to search Github:
4) In Firefox's main UI, type ALT+D to move focus to
the URL field
5) In the URL field, type: g foobar
You'll soon see a Github search for foobarAdditionaly you can't search for links that are graphics
It allows you to open links without using the mouse, so saying it is not exactly the same thing would be more accurate than saying it is "not even remotely the same thing."
A much bigger problem is that Firefox is moving (has moved?) away from XUL and XPCOM, a move which permanently breaks extensions like Pentadactyl (and Vimperator too).
Already Pentadactyl is broken for me on the latest versions of Firefox and Pale Moon (though I can't say for sure that it's because of XPCOM and XUL or for some other reason).
In addition, the Pentadactyl nightly builds aren't signed, so if I want Firefox to allow them to be installed I have to run the Firefox Developer build and make a global preference change to allow all unsigned extensions to be installed.
This breaking of my favorite extensions on Firefox has made me move to Pale Moon, where Pentadactyl was working until recently. Now that Pentadcatyl doesn't even work on Pale Moon anymore, I'm not sure what to do.
It works for me on Firefox 50.1.0
But the move away from XUL is indeed worrisome for plugins like these... I kinda hope someone will just build it into the servo project and make that into a usable minimal browser.
I'm a little wary of installing addons from some random github repo.
FWIW, I use willsALMANJ's releases with no problems, he was/is quite active on the pentadactyl issue tracker.
imap jj <ESC>
How users can live with Vim's default behavior (Escape, Ctrl-C, Ctrl-[) is mysterious to me (I do not like hitting Ctrl). :) noremap <C-p> 2k
noremap <C-n> 2j
To do the same in VimFx, see [1].Also, Conkeror [2] to Emacs is as qutebrowser is to Vim.
[0]: https://gist.github.com/avendael/7028513
[1]: https://www.reddit.com/r/emacs/comments/561b03/emacs_keybind...
[2]: http://conkeror.org/