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...
- 71,734
- 34
- 193
- 226
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.
- 40,087
- 16
- 88
- 112
try set +o vi
set -o vi will take into editing mode again.
- 8,145
- 32
- 49
-
That doesn't work: it turns vi mode off... – jasonwryan Dec 01 '11 at 08:41
-
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 for `Esc` is `Ctrl + ]` – Nikhil Mulley Dec 01 '11 at 08:55