Як зняти набір -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.