When it comes to going mouse-less on the computer, the best solution tends to be
several different solutions mixed up (for me at least). In text editors, I use
vim for quick edits of config files. I use Emacs for everything else, but with
viper-mode. The vi/m keys are just so much more efficient.
Conkeror
Browser-wise I've been using Firefox+Vimperator for a while. A really nice
combo, although it always felt somewhat slow. After a laptop crash and some updates,
Vimperator gave me some strange issues, so I decided to give Conkeror a try.
Conkeror is a stand-alone browser, giving the developers complete freedom to
shape it. This means more features than Vimperator, which is "only" an
extension - complete conversion, if you will - of Firefox. Most of the Firefox
extensions work with Conkeror, with a list of what works and what
doesn't here.
One of the nice things about Conkeror is hint classes. Vimperator has hints
too, but AFAIK only for links. In case you haven't used either, here's what
happens: you hit a key, and all the visible links get highlighted. Each link
has a little number next to it that you can type to follow the link, or you can even
type part of the link text.
Conkeror takes this one step further: you can do the same for example with
images and embedded media by default. You can also define new hint classes
with XPath selectors (and maybe even just regular expressions too, I haven't
tried yet).
There's a whole bunch of similar goodness, see a list
at the Conkeror wiki.
Vimperator-like keybindings
This is all fine as long as you have Emacs keybindings hard-wired into your
hands. I don't - my first experience in the world of *nix editors was with
Vim, and (maybe because of that) I like one keypress per command setups way
too much. So, without further ado, I give you Vimperator-like keybindings for
Conkeror. Just paste this into your ~/.conkerorrc
var maps = Array(
"j" , "cmd_scrollLineDown",
"k" , "cmd_scrollLineUp",
"h" , "cmd_scrollLeft",
"l" , "cmd_scrollRight",
"o" , "find-url",
"t" , "find-url-new-buffer",
"C-i" , "go-forward",
"C-o" , "go-back",
"C-n" , "buffer-next",
"C-p" , "buffer-previous",
"d" , "kill-current-buffer",
"/" , "isearch-forward",
"space", "eye-guide-scroll-down",
"back_space", "eye-guide-scroll-up",
"C-f" , "eye-guide-scroll-down",
"C-b" , "eye-guide-scroll-up"
);
for (var i = 0; i < maps.length; i += 1)
define_key(content_buffer_normal_keymap, maps[i], maps[i+1]);
The eye-guide mentioned in the snippet is one of the useful modules Conkeror
comes with. When scrolling with the eye-guide-scroll-* command, Conkeror
briefly highlights the portion of text that was visible before scrolling. This
helps a lot when reading multi-page documents. After spending a morning
customizing Conkeror, it seems preferable to Firefox.
Links
The Conkeror wiki: http://conkeror.org
A list of Conkeror modules: http://conkeror.org/Modules
My .conkerorrc at Github