Configuration du mode Bash vi par défaut en mode commande

14

Est-il possible de configurer le mode bash vi de sorte qu'il soit initialement en mode commande plutôt qu'en mode insertion ? Je trouve que je dois appuyer Escbeaucoup trop. Il semble qu'il soit possible de le spécifier dans zsh, mais je n'ai pas trouvé de moyen de le faire dans bash / readline.

Galisperis
la source

Réponses:

2

Je ne pense pas que ce soit possible en utilisant la bibliothèque GNU Readline standard .

Cependant, vous pourrez peut-être utiliser xdotool pour un simple hack pour obtenir le même effet. L'ajout d'une commande .bashrcsimulant une Escapepression sur une touche garantirait que votre terme s'ouvre en mode commande:

xdotool key Escape

Vous voudrez peut-être utiliser un léger retard, avec le --delaycommutateur, pour l'empêcher de munging votre invite ...

Notez que cela risque d'introduire plus de frustration que prévu: les terminaux sont conçus pour accepter des entrées; briser cela (bien que légèrement) peut ne pas prouver une si bonne idée ...

jasonwryan
la source
1

Je le reprends, cela ne fonctionne pas avec le mouvement du curseur. Cela fonctionne, mais avec le comportement drôle, si vous les retirez:PS1="$PS1 ^[


Modifiez votre PS1invite:

PS1="test $ \[^[[s^[^[[u\]"

^[est une fuite littérale ( Ctrl+ V Esc).

L'échappement seul au milieu passe en mode commande, ^[[set les ^[[uéchappements stockent et restaurent la position du curseur; sans cela, j'ai trouvé qu'il y avait un comportement drôle.

Kevin
la source
1

La réponse est non . Le fichier source bash correspondant estbashline.c

Alexandre
la source
-1

essayer set +o vi

set -o vi repassera en mode édition.

http://tldp.org/LDP/abs/html/options.html

Nikhil Mulley
la source
Cela ne fonctionne pas: il désactive le mode vi ...
jasonwryan
ouais j'ai essayé. Droite. Je peux y penser - en utilisant vim, changez le cmap (référence: changement de mode d'aide dans vim) pour la Escclé. Mappage équivalent par défaut pour EscisCtrl + ]
Nikhil Mulley
Ne fonctionne pas non plus sur mon ksh88.
rahmu