Wie set -o vi zu deaktivieren?

26

Ich wollte den vi-Modus in Bash ausprobieren, aber jetzt möchte ich ihn wieder normalisieren.

Wie kann ich die Einstellung aufheben -o vi?

Patryk
quelle

Antworten:

30

Die einzigen zwei verfügbaren Schnittstellen für die Zeilenbearbeitung bashsind viModus und emacsModus. Sie müssen den emacsModus also nur erneut einstellen .

set -o emacs
Chris Down
quelle
Es sollte beachtet werden, dass ich zwischen den Zeilen gelesen habe, anstatt die Frage direkt zu beantworten. emacsist der Standard-Zeilenbearbeitungsmodus in Bash. Im Einstellungsmodus wird der emacsModus vials Nebeneffekt deaktiviert , aber wie von jlliagre unten erwähnt, können Sie beide tatsächlich deaktivieren.
Chris Down
25

Das hängt davon ab, was Sie als "normal" definieren. Wenn die Zeilenbearbeitung deaktiviert ist, muss der dokumentierte Weg zum Deaktivieren -o vifestgelegt werden+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 hat bereits geantwortet, ob dein normaler Modus Emacs ist.

jlliagre
quelle
Durch Ausschalten der Modi wird auch die Shell-Verlaufsfunktion entfernt. Jetzt kann ich nicht mehr mit den Aufwärts- /
Abwärtspfeiltasten den
2
Die Shell-Verlaufsfunktion wird nicht entfernt. Sie können Ihren Verlauf weiterhin mit dem historyBefehl anzeigen und vorherige Befehle ausführen, indem Sie der Nummer das !Zeichen voranstellen .
Juli
yes 'history' n family Befehle funktionieren immer noch, aber die Pfeiltasten nach oben / unten, die ich häufiger benutze, funktionieren nicht. Sobald ich einen der Modi auf den Tasten einschalte, fange ich an zu funktionieren ... Ich verstehe nicht?
Rsjethani
3
Die Auf- / Ab-Pfeile werden von der Shell nur verwaltet, wenn die Zeilenbearbeitung aktiviert ist (dh einer der Modi Emacs oder Vi ist festgelegt). Andernfalls senden die Pfeiltasten ihre Escape-Sequenz nur unbearbeitet.
Juli