Vimperator is a free browser add-on for Firefox, which makes it look and behave like the Vim text editor. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. Also most functionality is available as commands, typing :back will go back within the current page history, just like hitting the back button in the toolbar.
But Vimperator is more than just a simple command interface to Firefox — it is a complete development environment as well. If you are a web developer, you can enjoy an interactive JavaScript shell — even with completion support. Or if you want to extend Vimperator, you can easily do that by just dropping a JavaScript file in its plugin directory.
Vimperator was initially written by Martin Stubenschrott but has found many other contributors in the meanwhile.
=== Features ===
* Vim-like keybindings (h, j, k, l, gg, G, 0, $, ZZ, , etc.)
* Ex commands (:quit, :open www.foo.com, ...)
* Tab completion available for all commands with support for 'longest' matching when set in 'wildmode'
* Extensions! Yes, you can extend Vimperator's functionality with scripts just like you can extend Firefox with extensions.
* Explore JavaScript objects with :echo window and even context-sensitive tab completion.
* Hit-a-hint like navigation of links (start with f to follow a link)
* Advanced completion of bookmark and history URLs (searching also in title, not only URL)
* Vim-like statusline with a wget-like progress bar
* Minimal GUI (easily hide useless menubar and toolbar with :set guioptions=)
* Ability to :source JavaScript files, and to use a ~/.vimperatorrc file
* Easy quick searches (:open foo will search for "foo" in google, :open ebay terminator will search for "terminator" on ebay) with support for Firefox keyword bookmarks and search engines
* Count supported for many commands (3 will go back 3 pages)
* Beep on errors
* Marks support (ma to set mark 'a' on a webpage, 'a to go there)
* QuickMarks support (quickly go to previously marked web pages with go{a-zA-Z0-9})
* :map and :command support (and feedkeys() for script writers)
* :time support for profiling
* Move the text cursor and select text with vim keys and a visual mode.
* External editor support
* Macros to replay key strokes
* AutoCommands to execute action on certain events
* A comprehensive :help, explaining all commands, mappings and options.
* Much more...