Dari perangkat lunak berbasis baris perintah lainnya, saya terbiasa dengan perilaku berikut: Panah atas / bawah menelusuri sejarah perintah, mencocokkan garis yang cocok dengan karakter yang diketik sejauh ini pada baris saat ini, dan Esc menghapus semua yang diketik sejauh ini. pada baris saat ini. Saya mencoba membuat bash (melalui readline) melakukan hal yang sama. Inilah yang saya masukkan ke .bashrc saya:
bind 'Escape: kill-whole-line'
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
Perilaku tidak seperti yang dimaksudkan, karena gangguan pemetaan Escape = "\ e" dengan pemetaan urutan escape "\ e [A" dan "\ e [B".
Pertanyaan saya: Apakah ada cara untuk membuat ini berhasil? Satu kemungkinan akan berbasis waktu, yaitu jika \ e diikuti dengan cepat oleh kunci lain itu diperlakukan sebagai bagian dari urutan, tetapi jika tidak ada lagi yang datang selama penundaan singkat itu diperlakukan sebagai kunci dengan sendirinya. Namun, membaca bash dan dokumentasi readline saya tidak dapat menemukan hal seperti itu.
Pertanyaan sampingan: Apakah ada terminal "emulator" modern yang tidak benar-benar mencoba untuk meniru perilaku berbelit-belit dari mesin historis, tetapi memberikan program yang berjalan di dalamnya dengan informasi yang jelas tentang tombol yang ditekan? Yang juga memungkinkan hal-hal seperti membedakan antara CTRL-A dan CTRL-SHIFT-A ... Saya menguji hal-hal ini di Konsole KDE, yang berperilaku seperti xterm, dan pada konsol Linux.
sumber