Konfigurasi mode Bash vi ke default ke mode perintah

14

Apakah mungkin untuk mengkonfigurasi mode bash vi sehingga pada awalnya berada dalam mode perintah dan bukan pada mode insert ? Saya menemukan bahwa saya harus menekan Escterlalu banyak. Tampaknya ada kemungkinan untuk menentukan ini di zsh, tapi saya belum menemukan cara untuk melakukan ini di bash / readline.

Galisperis
sumber

Jawaban:

2

Saya tidak berpikir itu mungkin dengan menggunakan GNU Readline Library standar .

Namun, Anda mungkin dapat menggunakan xdotool untuk peretasan sederhana untuk mencapai efek yang sama. Menambahkan perintah ke Anda .bashrcyang mensimulasikan Escapepenekanan tombol akan memastikan bahwa istilah Anda dibuka dalam mode perintah:

xdotool key Escape

Anda mungkin ingin menggunakan sedikit penundaan, dengan --delaysakelar, untuk mencegahnya agar tidak muncul segera ...

Perhatikan bahwa ini cenderung menimbulkan lebih banyak frustrasi daripada yang Anda harapkan: terminal dirancang untuk menerima input; melanggar itu (meskipun hanya sedikit) mungkin tidak membuktikan ide yang bagus ...

jasonwryan
sumber
1

Saya ambil kembali, ini tidak berfungsi dengan gerakan kursor. Ini bekerja, tetapi dengan perilaku lucu, jika Anda mengeluarkannya:PS1="$PS1 ^[


Ubah PS1prompt Anda :

PS1="test $ \[^[[s^[^[[u\]"

Di mana ^[pelarian literal ( Ctrl+ V Esc).

Pelarian sendiri di tengah perubahan ke mode perintah, ^[[sdan ^[[ulolos menyimpan dan mengembalikan posisi kursor; tanpa itu, saya menemukan ada perilaku lucu.

Kevin
sumber
1

Jawabannya adalah tidak . File sumber bash yang relevan adalahbashline.c

Alexander
sumber
-1

mencoba set +o vi

set -o vi akan masuk ke mode edit lagi.

http://tldp.org/LDP/abs/html/options.html

Nikhil Mulley
sumber
Itu tidak berhasil: ini mematikan mode vi ...
jasonwryan
ya saya coba. Baik. Saya bisa memikirkan ini - menggunakan vim, ubah cmap (referensi: bantuan mode-switching in vim) untuk Esckunci. Pemetaan setara standar untuk EscadalahCtrl + ]
Nikhil Mulley
Juga tidak bekerja pada ksh88 saya.
rahmu