Як зняти набір -o vi?


26

Я хотів спробувати режим vi в bash, але тепер я хотів би повернути його до нормального.

Як я можу зняти налаштування -o vi?

Відповіді:


30

Єдині два інтерфейси редагування рядків, доступні в даний час, - bashце viрежим і emacsрежим, тому все, що вам потрібно зробити, - це emacsзнову встановити режим.

set -o emacs

Слід зазначити, що це я читав між рядків, а не відповідав на запитання безпосередньо. emacs- це режим редагування рядків за замовчуванням у bash. Встановлення emacsрежиму вимикає viрежим як побічний ефект, але як зазначено в jlliagre нижче, ви можете вимкнути їх обоє.
Кріс Даун

25

Це залежить від того, що ви визначаєте як "нормальне". Якщо це вимкнення редагування рядків, документально встановлений спосіб зняти -o viналаштування+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

Кріс уже відповів, чи ваш звичайний режим - emacs.


вимкнення режиму також віднімає функцію історії оболонок, тепер я не можу використовувати клавіші зі стрілками вгору / вниз для перегляду історії команд :(
rsjethani

2
Це не забирає функцію історії оболонок. Ви все ще можете переглядати свою історію за допомогою historyкоманди та запускати попередні команди, префіксуючи їх кількість !символом.
jlliagre

так, "сім'ї" історії "сім'ї" все ще працюють, але клавіші зі стрілками вгору / вниз, які я частіше використовую, не працюють. Як тільки я вмикаю будь-який з режимів на клавішах, я починаю працювати ... я не розумію?
rsjethani

3
Стрілками вгору / вниз оболонкою управляється лише в тому випадку, якщо ввімкнено редагування рядків (тобто встановлено режим emacs або vi). В іншому випадку клавіші зі стрілками просто надсилають свою послідовність втечі необробленою.
jlliagre
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.