Bagaimana cara mengeset set -o vi?


26

Saya ingin mencoba mode vi dalam bash tetapi sekarang saya ingin mengubahnya kembali ke normal.

Bagaimana saya bisa tidak disetel -o vi?

Jawaban:


30

Hanya dua antarmuka pengeditan yang tersedia saat ini bashadalah vimode dan emacsmode, jadi yang perlu Anda lakukan adalah mengatur emacsmode lagi.

set -o emacs

Perlu dicatat bahwa ini adalah saya membaca yang tersirat daripada menjawab pertanyaan secara langsung. emacsadalah mode pengeditan baris default di bash. emacsMode pengaturan menonaktifkan vimode sebagai efek samping, tetapi seperti yang disebutkan oleh jlliagre di bawah, Anda sebenarnya dapat menonaktifkan keduanya.
Chris Down

25

Itu tergantung pada apa yang Anda definisikan "normal". Jika itu mematikan pengeditan baris, cara terdokumentasi untuk tidak disetel -o viadalah mengatur+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 sudah menjawab jika mode normal Anda adalah emacs.


mematikan mode juga menghilangkan fitur histori shell, sekarang saya tidak bisa menggunakan tombol panah atas / bawah untuk melihat histori perintah :(
rsjethani

2
Itu tidak menghilangkan fitur histori shell. Anda masih dapat melihat riwayat Anda dengan historyperintah dan menjalankan perintah sebelumnya dengan mengawali nomor mereka dengan !karakter.
jlliagre

ya 'histori' n perintah keluarga masih berfungsi tetapi tombol panah atas / bawah yang saya gunakan lebih sering tidak berfungsi. Segera setelah saya mengaktifkan salah satu mode pada tombol mulai bekerja ... Saya tidak mengerti?
rsjethani

3
Panah atas / bawah hanya dikelola oleh shell jika pengeditan baris diaktifkan (mis. Salah satu dari emacs atau mode vi diatur). Kalau tidak, tombol panah hanya mengirim urutan pelarian mereka tidak diproses.
jlliagre
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.