Saya menggunakan keybindings vi di shell tcsh saya.
Sekarang, saya tidak tahu di mana mode vi saya ( insert
mode atau command
mode), yang menyebabkan banyak frustrasi.
Apakah ada yang tahu cara untuk menunjukkan mode vi saat ini di shell? (dengan memasukkan prompt atau sesuatu)
command-line
shell
vi
prompt
sundar - mengembalikan Monica
sumber
sumber
Saya sudah melihat-lihat dokumentasi, dan saya harus mengatakan saya tidak dapat menemukan cara untuk mendeteksi dan menampilkan mode-vi saat ini. Saya harap Anda memiliki kejutan yang menyenangkan dan seseorang datang dengan solusi, tetapi saya jelas tidak bisa melihat cara untuk melakukan apa yang Anda minta.
Saya pikir ada cara untuk melakukan ini, tetapi itu adalah kerja keras yang sangat besar untuk gangguan kecil, dan saya tidak berpikir itu yang ada dalam pikiran Anda ketika Anda mengajukan pertanyaan ini. Jika ini benar, berhentilah membaca sekarang dan nikmati hidup Anda.
OTOH, jika ini benar-benar hewan peliharaan Anda, dan itu membuat Anda gila, dan Anda benar-benar ingin sekali memecahkan masalah ini, inilah ide saya tentang bagaimana cara mengatasinya:
Singkatnya, Unix mengimplementasikan terminal I / O sebagai aliran I / O dupleks penuh antara driver perangkat dan proses pengguna, ke mana modul dapat dimasukkan. Ini diatur sebagai tumpukan, sehingga Anda dapat melapis aliran sebanyak yang Anda inginkan. Jumlah aliran yang disuntikkan menciptakan perilaku I / O terminal Anda.
Ketika sebuah karakter dimasukkan, modul pertama akan memeriksanya dan meneruskannya (jika mau). Ketika respons tiba di arah yang berlawanan, itu sekali lagi mendapat kesempatan untuk memeriksa dan meneruskannya. Ini adalah cara Ctrl-C ditangani pada tingkat yang lebih tinggi ke kunci karakter normal.
Anda dapat membuat biner yang mengimplementasikan modul stream, yang ketika dijalankan dijalankan secara diam-diam di latar depan, memeriksa dan meneruskan semua penekanan tombol, melakukan tindakan yang Anda sukai pada penekanan tombol yang Anda pedulikan. Untuk semua maksud dan tujuan, itu akan tampak seolah-olah Anda sedang mengerjakan shell. Oooh. Anda dapat memanggil biner ini pada baris terakhir (atau pertama, atau apa saja) dari .tcshrc Anda dan Anda bahkan tidak akan tahu itu ada.
Ada primer yang bagus di sini , tetapi saya tidak dapat menemukan banyak tentang topik ini, mungkin karena sudah melewati masa jayanya.
sumber
Halaman ini memiliki skrip yang cukup terperinci yang mengatur apa yang Anda inginkan (dan lebih banyak lagi) di zsh . Mungkin bisa diadaptasi untuk bekerja dengan tcsh (saya tidak terlalu terbiasa dengan shell itu).
sumber
Untuk siapa pun yang memiliki masalah ini (seperti saya): Saya menemukan solusi di stackoverflow . Rupanya ada dukungan asli untuk ini di readline, jadi Anda bisa menambahkan yang berikut ini ke
~/.inputrc
:Dan untuk menyesuaikan penggunaan karakter yang sebenarnya:
sumber
Pengeditan Baris Perintah dengan tcsh
Lebih banyak catatan pada halaman
tcsh
penyesuaian yang sudah ditautkan di atas.sumber
Saya memiliki masalah yang persis sama dan secara tidak sengaja menemukan solusinya. Meskipun utas ini sudah tua, saya tidak dapat menemukan situs web lain yang menawarkan solusi, jadi saya menganggap memposting di utas ini tidak apa-apa.
Setel ulang pengaturan program terminal atau shell Anda. Saat ini saya menggunakan Putty, dan saya baru saja menghapus pengaturan saya yang disimpan untuk koneksi saya yang disimpan, dan menciptakan kembali sesi yang disimpan. Bekerja seperti pesona.
Semoga ini membantu!
sumber
Silakan lihat jawaban saya di SO . Bash 4.4 / Readline 7.0 akan menambahkan dukungan untuk fungsi ini, dan untuk sementara saya telah menerbitkan versi patch dari Bash 4.3 / Readline 6.3 ke github .
sumber