Jak rozbroić set -o vi?


26

Chciałem wypróbować tryb vi w bashu, ale teraz chciałbym go zmienić z powrotem na normalny.

Jak mogę rozbroić -o vi?

Odpowiedzi:


30

Jedynymi dostępnymi obecnie dwoma interfejsami do edycji linii bashvitryb i emacstryb, więc wystarczy emacsponownie ustawić tryb.

set -o emacs

Należy zauważyć, że to ja czytałem między wierszami, a nie odpowiadałem bezpośrednio na pytanie. emacsjest domyślnym trybem edycji linii w bash. Ustawienie emacstrybu wyłącza vitryb jako efekt uboczny, ale jak wspomniano poniżej w jlliagre, można je wyłączyć.
Chris Down,

25

To zależy od tego, co zdefiniujesz jako „normalny”. Jeśli to wyłącza edycję linii, udokumentowanym sposobem na rozbrojenie -o vijest ustawienie+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 już odpowiedział, czy twój normalny tryb to emacs.


wyłączenie trybu (ów) również zabiera funkcję historii powłoki, teraz nie mogę używać klawiszy strzałek w górę / w dół, aby wyświetlić historię poleceń :(
rsjethani 24.12.12

2
Nie usuwa funkcji historii powłoki. Nadal możesz przeglądać swoją historię za pomocą historypolecenia i uruchamiać poprzednie polecenia, poprzedzając ich numer !znakiem.
jlliagre

tak Komendy rodzinne i historia nadal działają, ale klawisze strzałek w górę / w dół, których używam częściej, nie działają. Jak tylko włączę którykolwiek z trybów na klawiszach zacznie działać ... Nie rozumiem?
rsjethani,

3
Strzałkami w górę / w dół zarządza powłoka tylko wtedy, gdy włączona jest edycja linii (tj. Ustawiony jest tryb emacs lub vi). W przeciwnym razie klawisze strzałek wysyłają nieprzetworzone sekwencje specjalne.
jlliagre,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.