Untuk memperjelas: Saya tidak bertanya bagaimana cara mengubah kursor saat menggunakan vim di dalam terminal . Saya ingin kursor berubah ketika beralih antara input dan mode perintah dalam mode-Bash:
set -o vi <CR> type some text <ESC> (the cursor changes shape/color)
i (cursor change back) etc...
Saya menemukan skrip yang membuat perubahan warna kursor pada mode perubahan mungkin dilakukan di zsh , tapi saya tidak ingin mengganti shell hanya untuk fitur yang satu ini.
Apakah ada cara untuk membuat kursor berubah bentuk, seperti di gvim, (atau bahkan hanya warna) saat beralih antara perintah dan memasukkan mode pada baris perintah Bash?
bash
vi
line-editor
joecan
sumber
sumber
Jawaban:
tambahkan dua baris ini ke ~ / .inputrc :
sumber
set show-mode-in-prompt on
di~/.inputrc
juga untuk membuat karya ini.Disalin dari sini - Gaya vim pengeditan baris perintah
Harus tersedia di
bash
4.3 - lihat changelog -bash
4.3 saat ini sedang dalamrc
tahap, Anda harus bisa mendapatkan paket untuk sebagian besar distro tanpa kompilasi dari sumber, meskipun tidak di repositori utama. Misalnya. Ubuntu (amd64) di sini dan Debian (repo eksperimental) di sini .sumber
Saya belum menemukan solusi nyata, tetapi mungkin ini dapat membantu Anda (atau orang lain) untuk menemukan solusi yang lebih baik.
Anda harus membuat skrip (misalnya kmtest.sh)
dan setelah menambahkannya ke PS1 Anda, sesuatu seperti:
tetapi seperti yang saya katakan, itu bukan apa yang Anda inginkan, karena itu mengubah warna kursor hanya setelah cr. Semoga berhasil
gb
sumber
Sepertinya mungkin ada cara untuk melakukannya melalui peretasan readline. Mungkin kita bisa mendorongnya untuk diarusutamakan?
Ini jawaban saya di SO https://stackoverflow.com/a/12201092/255961 yang akan saya perbarui jika saya mendapatkan info lebih lanjut.
sumber
Meskipun bukan apa yang Anda inginkan (mengubah kursor secara dinamis), bash 4.4 / readline 7.0 akan menambahkan dukungan untuk mengubah prompt secara dinamis . Anda akan dapat menentukan indikator mode khusus untuk mode sisipan / perintah (Ini berbeda dari
show-mode-in-prompt
opsi saat ini yang di-hardcod untuk digunakan+
dan:
).Sayangnya, versi ini saat ini masih dalam versi beta dan sepertinya belum semua bug diperbaiki. Mereka juga kehilangan kemampuan untuk menentukan di mana dalam prompt Anda ingin indikator mode muncul.
Untuk sementara saya telah menerbitkan versi patch bash 4.3 / readline 6.3 pada github dengan fungsi ini.
sumber
Saya menanyakan pertanyaan yang sama beberapa waktu lalu di AskUbuntu ketika saya beralih dari Gvim ke Console Vim.
Saya menerima satu jawaban tetapi itu melibatkan pengaturan terminal gnome, dan pengaturan ini berlaku di terminal. Dengan demikian, dimungkinkan untuk kursor terminal gnome terjebak dalam kondisi yang salah.
Saya masih tertarik pada apakah Anda mendapatkan solusi yang memuaskan, tetapi seiring waktu saya telah menyesuaikan dengan kurangnya informasi status mode dalam kursor. Mungkin saya lebih sering menekan escape (mis.,
esc
Untuk memastikan saya dalam mode perintah;esc i
untuk memastikan saya dalam mode insert); mungkin saya melihat keadaan yang ditampilkan di bagian bawah layar; mungkin saya baru saja menginternalisasi mode.sumber