Comment désinstaller set -o vi?


26

Je voulais essayer le mode vi en bash mais maintenant je voudrais le ramener à la normale.

Comment puis-je désarmer -o vi?

Réponses:


30

Les deux interfaces ligne en cours d' édition disponibles bashsont le vimode et le emacsmode, tout ce que vous devez faire est de définir le emacsmode nouveau.

set -o emacs

Il convient de noter que je lisais entre les lignes plutôt que de répondre directement à la question. emacsest le mode d'édition de ligne par défaut dans bash. Le réglage du emacsmode désactive le vimode comme effet secondaire, mais comme mentionné par jlliagre ci-dessous, vous pouvez réellement les désactiver tous les deux.
Chris Down du

25

Cela dépend de ce que vous définissez "normal". Si vous désactivez l'édition en ligne, la méthode documentée pour annuler la -o vidéfinition consiste à définir+o vi

$ set -o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              on
$ set +o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              off

Chris a déjà répondu si votre mode normal est emacs.


désactiver le (s) mode (s) supprime également la fonction d'historique du shell, maintenant je ne peux pas utiliser les touches fléchées haut / bas pour voir l'historique des commandes :(
rsjethani

2
Cela n'enlève pas la fonction d'historique du shell. Vous pouvez toujours afficher votre historique avec la historycommande et exécuter les commandes précédentes en préfixant leur numéro avec le !caractère.
jlliagre

oui 'historique' et les commandes de la famille fonctionnent toujours mais les touches fléchées haut / bas que j'utilise le plus souvent ne fonctionnent pas. Dès que j'active l'un des modes sur les touches commence à fonctionner ... Je ne comprends pas?
rsjethani

3
Les flèches haut / bas ne sont gérées par le shell que si l'édition de ligne est activée (c'est-à-dire que l'un des modes emacs ou vi est défini). Sinon, les touches fléchées envoient simplement leur séquence d'échappement non traitée.
jlliagre
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.