Readline tidak tahu apa-apa tentang pengubah yang dipanggil Shift, dan diam-diam mengabaikan nama pengubah yang tidak dikenal. Coba wibble-TAB.
Untuk mengikat tindakan ke Shift+ Tab, Anda perlu mencari tahu urutan escape apa yang dikirim terminal Anda. Di bash, jalankan catdan ketik Ctrl+ Vlalu Shift+ Tab. Ini akan menyisipkan urutan melarikan diri secara harfiah. Kemungkinan karakter pertama adalah karakter pelarian, ditampilkan sebagai ^[; terminal yang berbeda memiliki urutan escape yang berbeda, tetapi kemungkinan yang umum adalah ␛[Z(yaitu escape, bracket kiri, modal Z) dan ␛␉(yaitu escape, tab). Ikat kunci dengan tepat di ~/.inputrc( di mana \eberarti karakter melarikan diri).
Ah, ^[Zbekerja untuk saya (BASH); terima kasih atas jawaban terinci! :)
user541686
Apakah Anda menekan Enter sebelum atau setelah 'kucing'? Mengapa 'kucing' dibutuhkan? Saya sepertinya mendapatkan urutan pelarian yang sama tanpa 'kucing'.
dougkramer
@ douglas.kramer Running catmenghindari bash binding. Biasanya bash memiliki ikatan Ctrl + V yang sama untuk menyisipkan karakter berikutnya secara harfiah sehingga tidak ada bedanya.
Gilles 'SANGAT berhenti menjadi jahat'
Saya kesulitan mendapatkan Shift + Tab untuk mengikat 'shell-expand-command'. Saya mendapatkan: $ cat <Enter> <Shift+Tab>tampilan mana ^[[Z Apakah saya selalu menambahkan \esebelum urutan yang saya dapatkan Ctrl+V? Apakah ini diterjemahkan ke:"\e^[[Z": shell-expand-command
dougkramer
@Anda Ganti ^[dengan `\ e`
Gilles 'SO- stop being evil'
4
Pada Xubuntu 16.04, terminal: xfce4-terminal 0.6.3, shell: bash
Sedang ~/.bash_profiledigunakan: bind TAB:menu-completedan bind '"\e[Z": menu-complete-backward'(perhatikan penggunaan tanda kutip tunggal dan ganda!).
^[Z
bekerja untuk saya (BASH); terima kasih atas jawaban terinci! :)cat
menghindari bash binding. Biasanya bash memiliki ikatan Ctrl + V yang sama untuk menyisipkan karakter berikutnya secara harfiah sehingga tidak ada bedanya.$ cat <Enter> <Shift+Tab>
tampilan mana^[[Z
Apakah saya selalu menambahkan\e
sebelum urutan yang saya dapatkanCtrl+V
? Apakah ini diterjemahkan ke:"\e^[[Z": shell-expand-command
^[
dengan `\ e`Pada Xubuntu 16.04, terminal: xfce4-terminal 0.6.3, shell: bash
Agar Shift+ Tabberfungsi, saya harus menggunakan:
sumber
~/.bash_profile
digunakan:bind TAB:menu-complete
danbind '"\e[Z": menu-complete-backward'
(perhatikan penggunaan tanda kutip tunggal dan ganda!).