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.