set -o viの設定を解除する方法は?


26

bashでviモードを試してみたかったのですが、今は通常に戻したいと思います。

どうすれば設定を解除でき-o viますか?

回答:


30

現在使用可能な2つの行編集インターフェイスbashviモードとemacsモードのみであるため、emacsモードを再度設定するだけです。

set -o emacs

これは、質問に直接答えるのではなく、行間を読んでいることに注意してください。emacsbashのデフォルトの行編集モードです。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である場合、Chrisはすでに答えています。


モードをオフにすると、シェル履歴機能も無効になります。今では、上/下矢印キーを使用してコマンド履歴を表示できません:(
rsjethani

2
シェルの履歴機能は削除されません。historyコマンドを使用して履歴を表示し、番号に!文字をプレフィックスとして追加することにより、以前のコマンドを実行できます。
jlliagre

はい、「history」nファミリコマンドは引き続き機能しますが、頻繁に使用する上下矢印キーは機能しません。キーのモードのいずれかが機能し始めるとすぐに...わかりませんか?
rsjethani

3
上/下矢印は、行編集が有効になっている場合(つまり、emacsまたはviモードのいずれかが設定されている場合)のみ、シェルによって管理されます。それ以外の場合、矢印キーはエスケープシーケンスを未処理のまま送信します。
jlliagre
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.