Anda dapat menentukan urutan karakter yang dikeluarkan oleh sebuah tombol dengan menekan Ctrl- vpada baris perintah, lalu menekan tombol yang Anda minati. Di sistem saya untuk F12, saya mengerti ^[[24~
. The ^[
mewakili Esc. Jenis terminal atau emulator terminal yang berbeda dapat mengeluarkan kode yang berbeda untuk kunci yang sama.
Pada prompt Bash Anda dapat memasukkan perintah seperti ini untuk mengaktifkan makro kunci sehingga Anda dapat mencobanya.
bind '"\e[24~":"foobar"'
Sekarang, saat Anda menekan F12, Anda akan mendapatkan "foobar" pada baris perintah yang siap untuk pengeditan lebih lanjut. Jika Anda ingin menekan tombol untuk segera memasukkan perintah, Anda dapat menambahkan baris baru:
bind '"\e[24~":"pwd\n"'
Sekarang ketika Anda menekan F12, Anda akan mendapatkan direktori saat ini ditampilkan tanpa harus menekan Enter. Bagaimana jika Anda sudah mengetik sesuatu di baris dan Anda menggunakan ini yang secara otomatis dijalankan? Itu bisa jadi berantakan. Namun, Anda dapat menghapus garis sebagai bagian dari makro Anda:
bind '"\e[24~":"\C-k \C-upwd\n"'
Spasi tersebut memastikan bahwa Ctrl- umemiliki sesuatu untuk dihapus agar bel tidak berbunyi.
Setelah Anda membuat makro berfungsi seperti yang Anda inginkan, Anda dapat membuatnya tetap dengan menambahkannya ke ~/.inputrc
file Anda . Tidak perlu bind
perintah atau kumpulan tanda kutip tunggal terluar:
"\e[24~":"\C-k \C-upwd\n"
Edit:
Anda juga dapat membuat pengikatan kunci yang akan mengeksekusi sesuatu tanpa mengganggu baris perintah saat ini.
bind -x '"\eW":"who"'
Kemudian saat Anda mengetik perintah yang membutuhkan nama pengguna, misalnya, dan Anda perlu mengetahui nama pengguna yang masuk, Anda dapat menekan Alt- Shift- Wdan output dari who
akan ditampilkan dan prompt akan dikeluarkan kembali dengan perintah parsial Anda utuh dan kursor berada pada posisi yang sama di baris.
Sayangnya, ini tidak berfungsi dengan baik untuk kunci seperti F12yang menghasilkan lebih dari dua karakter. Dalam beberapa kasus, hal ini dapat diatasi.
Perintah ( who
dalam hal ini) dapat berupa apa saja yang dapat dieksekusi - program, skrip, atau fungsi.