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-space
untuk set-mark
, M-w
untuk menyalin teks C-y
,, M-y
untuk 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-mark
dan copy
perintah 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-mark
dengan C-space
dan copy
dengan 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-kill
tidak terikat ke urutan keyboard apa pun secara default, sementara set-mark
terikat C-@
secara default.
Saya mencoba C-@
di terminal saya, tetapi saya pikir itu tidak berjalan set-mark
karena saya tidak melihat teks yang disorot ketika saya memindahkan kursor saya. Bagaimanapun, saya mencoba menambahkan binding keyboard ( M-w
dan C-
) ke fungsi copy-region-as-kill
dan set-mark
di atas di saya .inputrc
dan kemudian memuat kembali dengan C-x C-r
, tetapi ini tidak berhasil. Saya tahu bahwa entri saya yang lain sedang .inputrc
bekerja karena saya memiliki keybindings lain yang ditentukan pengguna.
Adakah yang saya lakukan salah? Apakah saya kehilangan sesuatu?
bash
apa dan program terminal apa yang Anda gunakan?