Saya ingin dapat menyalin dan menempelkan teks pada baris perintah di Bash menggunakan binding keyboard yang sama dengan yang digunakan Emacs secara default (yaitu menggunakan C-spaceuntuk set-mark, M-wuntuk menyalin teks C-y,, M-yuntuk menempelkannya, dll.).
The dokumentasi GNU Bash mengatakan bahwa Bash datang dengan beberapa binding kunci ini diatur secara default.
Misalnya, menarik ( C-y) berfungsi secara default di terminal saya. Namun, saya tidak bisa mendapatkan set-markdan copyperintah untuk bekerja, dan mereka tampaknya tidak terikat dengan kunci apa pun secara default.
Biasanya, cara pengguna dapat mendefinisikan binding kuncinya sendiri adalah dengan menambahkannya .inputrc. Jadi saya mencari dan menemukan fungsi bash berikut dalam dokumentasi yang saya anggap dapat membantu saya mendefinisikan perilaku seperti Emacs yang saya inginkan (yaitu set-markdengan C-spacedan copydengan M-w).
copy-region-as-kill ()
Salin teks di wilayah ke buffer kill, sehingga dapat disentak segera. Secara default, perintah ini tidak terikat.
dan
set-mark (C-@)
Tetapkan tanda ke titik. Jika argumen numerik diberikan, tanda diatur ke posisi itu.
Jika saya mengerti dengan benar, di atas berarti bahwa copy-region-as-killtidak terikat ke urutan keyboard apa pun secara default, sementara set-markterikat C-@secara default.
Saya mencoba C-@di terminal saya, tetapi saya pikir itu tidak berjalan set-markkarena saya tidak melihat teks yang disorot ketika saya memindahkan kursor saya. Bagaimanapun, saya mencoba menambahkan binding keyboard ( M-wdan C-) ke fungsi copy-region-as-killdan set-markdi atas di saya .inputrcdan kemudian memuat kembali dengan C-x C-r, tetapi ini tidak berhasil. Saya tahu bahwa entri saya yang lain sedang .inputrcbekerja karena saya memiliki keybindings lain yang ditentukan pengguna.
Adakah yang saya lakukan salah? Apakah saya kehilangan sesuatu?
bashapa dan program terminal apa yang Anda gunakan?