Is it possible to configure bash vi mode so that initially it is in command mode instead on insert mode? I find that I have to press Esc far too much. It seems that there is possibility to specify this in zsh, but I have not found a way to do this in bash/readline.
4 Answers
I don't think it is possible using the standard GNU Readline Library.
However, you may be able to use xdotool for a simple hack to achieve the same effect. Appending a command to your .bashrc
that simulates an Escape keypress would ensure that your term opened in command mode:
xdotool key Escape
You might want to use a slight delay, with the --delay
switch, to prevent it from munging your prompt...
Note this is likely to introduce more frustration than you expect: terminals are designed to accept input; breaking that (albeit only slightly) may not prove such a good idea...
I take it back, this doesn't work with the cursor movement. It works, but with the funny behavior, if you take those out: PS1="$PS1 ^[
Change your PS1
prompt:
PS1="test $ \[^[[s^[^[[u\]"
Where ^[
is a literal escape (Ctrl+V Esc).
The escape on its own in the middle changes to command mode, the ^[[s
and ^[[u
escapes store and restore the cursor position; without that, I found there was some funny behavior.
try set +o vi
set -o vi
will take into editing mode again.
-
-
yeah I tried. Right. I can think of this -- using vim, change the cmap (reference :help mode-switching in vim) for
Esc
key. Default equivalent mapping forEsc
isCtrl + ]
Commented Dec 1, 2011 at 8:55