
You can use vi mode editing in any program that uses readline - dorfsmay
With any program that uses readline, including psql, python and ipython, you can switch between vi and emacs editing by typing:<p>ctrl - alt - j<p>( C-M-j  in emacs lingo)
======
amitutk
To automatically enable this for all term applications, create a file .inputrc
in $HOME and put this:

set editing-mode vi

$if mode=vi

set keymap vi-command

"gg": beginning-of-history

"G": end-of-history

set keymap vi-insert

"jj": vi-movement-mode

"\C-p": history-search-backward C-L: clear-screen

~~~
Pwnguinz
What happens if you don't set keymap "gg", "G", etc? Would they not work,
or...? (Currently not on a *nix machine to be able to test it out, or else I
wouldn't ask such a simple question :P)

~~~
madsravn
My guess is, that you redefine them to mean the semantically same in a new
domain. What I mean is that gg and G lets you go to the top of the file and to
the bottom of the file, right? But on the command-line, what is the top of
your file? And what is the bottom?

~~~
pmr_
I can only speak for the Emacs capabilities of readline: all commands which
would usually change the line (previous/next-line, beginning/end-of-buffer)
will use the history as the buffer. All of them preserve the line you are
currently typing, which will be the end of the buffer.

------
z1mm32m4n
This will also work for any interactive process you run as

rlwrap <command>

For example, when working with SML/NJ, which has an interactive REPL but no
history support or command-line niceties, you can run

rlwrap sml

And get all the benefits of Vi, history files, etc.

~~~
dorfsmay
Ha! Even better... I always use rlwrap when I have to use sqlplus.

------
ltrls42
As a vim user for everything, I once tried to use the vi mode in bash and zsh,
but quickly got back to emacs style cause I couldn't do what I was used to
(mostly Ctrl+P/N,A/E,R,W/U). Is there someone here who would tell me how he
uses the vi mode in a shell/readline program so I could try again?

~~~
dorfsmay
Hit "<esc> k", then it's like vi, k/j to go up down the history buffer, l/h to
move right and left (and of course, w, b, fx etc...), cx/dx/ etc... to
change/delete (x if a movement command) etc...

"<esc> /pattern" to search back in the history buffer

The only tricky one for bash is "<esc> =" for file completion.

------
smhenderson
I'm probably not telling a lot of vi fans here anything new but just in case;
add vi behaviour to Firefox with this add-on.

[https://addons.mozilla.org/en-
US/firefox/addon/vimperator/](https://addons.mozilla.org/en-
US/firefox/addon/vimperator/)

~~~
darkr
See also:

[http://5digits.org/pentadactyl/](http://5digits.org/pentadactyl/)

"Pentadactyl was once called Vimperator, initially written by Martin
Stubenschrott, then developed and maintained by Doug Kearns, Kris Maglione,
and several other invaluable contributors. Doug and Kris, the primary
Vimperator developers for several years, have left the Vimperator project and
now develop and maintain Pentadactyl in its stead."

~~~
Daminvar
Unfortunately, Pentadactyl is not very active at this point. There haven't
been new nightly builds in months, and there hasn't been a proper release in
nearly a year.

------
mtimjones
This also works on Twitter (try j, k, r, t, u, etc.).

