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.
-
That doesn't work: it turns vi mode off...jasonwryan– jasonwryan2011-12-01 08:41:46 +00:00Commented Dec 1, 2011 at 8:41
-
yeah I tried. Right. I can think of this -- using vim, change the cmap (reference :help mode-switching in vim) for
Esckey. Default equivalent mapping forEscisCtrl + ]Nikhil Mulley– Nikhil Mulley2011-12-01 08:55:14 +00:00Commented Dec 1, 2011 at 8:55