Tombol Home, End, PageUp, PageDown semua ketik a ~
di sesi bash saya alih-alih memindahkan kursor / melihat sekitar. Mengapa ini terjadi dan pengaturan mana yang harus saya ubah?
GNU bash, version 4.0.28(1)-release (x86_64--netbsd)
PuTTY v0.60
Pertanyaan awalnya berbunyi:
Di Putty, mengapa menekan tombol "Home" pada shell (bash) mengetikkan "~"? Atau lebih tepatnya, bagaimana cara membuatnya memindahkan kursor ke awal perintah yang saya ketikkan?
(Saya pikir alasannya adalah ~ adalah direktori home , tetapi jawabannya mengatakan ini tidak benar.)
Terminal -> Keyboard
"Tombol fungsi dan tombol".Ini terjadi karena Anda tidak menetapkan jenis terminal Putty dengan benar, atau karena server Anda tidak memiliki definisi terminfo yang benar diinstal.
Pada sistem berbasis Debian, paket ncurses-term (versi 5.7 + 20081213-1) termasuk file definisi terminfo untuk jenis terminal dempul , dempul-256color dan dempul-vt100 . Jika Anda telah menginstal paket ini, Anda dapat mengatur "tipe terminal" menjadi "dempul" daripada "xterm" default dalam konfigurasi sesi Putty (Sambungan -> Data).
Stephen Irons juga menyebutkan "linux" sebagai jenis terminal lain yang berfungsi; Saya percaya ini benar dari pengalaman sebelumnya, tetapi belum mengujinya baru-baru ini.
Pada sistem saya, ini memungkinkan Home and End untuk bekerja dengan benar, meskipun PageUp / PageDown tidak menggulir jendela konsol. (Mereka berfungsi dengan baik di aplikasi ncurses seperti aptitude , dan Shift-PgUp / Shift-PgDn gulir jendela konsol.)
sumber
TERM=putty
atauTERM=putty-256color
paling bijaksana, meskipun sayangnya saat ini yang terakhir tampaknya tidak berfungsi dengan baik untuk warna 8-15 (yang seharusnya merupakan versi cerah dari 0-7). "Solusi" lain yang kemungkinan besar akan terkelupas terkadang membuat mereka mengabaikan perbedaan antara terminal yang terlibat.yum install ncurses-term
diurutkan untuk saya di CentOS 7 dengan dempul pada login berikutnya, terima kasih.putty
berfungsi tetapi memecah dukungan mouse seperti xterm (mis. untuk Midnight Commander)Jika Anda ingin memverifikasi kode mana yang dikirim oleh Putty ke terminal Anda ketika Anda menekan tombol atau kombinasi tombol, Anda hanya perlu mengeluarkan
Ctrl+V
dan kemudian tekan pada tombol yang diinginkan.Misalnya pada kotak saya, menekan tombol Home akan menghasilkan string berikut di terminal saya:
Itu berarti PuTTY mengirimkan karakter escape ^ [ diikuti oleh string [1 ~ .
Anda dapat membuat
~/.inputrc
file di$HOME
folder Anda , atau sebagai alternatif/etc/inputrc
file tergantung pada sistem Anda. Kemudian isi file ini dengan kode Putty dan tindakan Bash yang cocok yang ingin Anda picu oleh Bash.Catatan: Ganti setiap karakter ^ [ dengan string ekivalen \ e
Dalam contoh saya, saya akan menambahkan baris dengan kode kunci Beranda dan tindakan awal-baris (yang secara default terikat
Ctrl+A
di Bash):FYI, file inputrc saya memiliki konten berikut:
Dari @Cimbali: Perintah yang lebih mengikat (seperti riwayat sebelumnya: Gerakkan `naik 'melalui daftar riwayat) yang tersedia di halaman referensi ini .
sumber
TERM=linux
atauTERM=putty
merusak dukungan mouse seperti xterm. Terima kasih!Crtl + A membawa Anda ke awal baris
Berikut daftar pintasan keyboard Bash
sumber
Apa yang sebenarnya dikirim adalah
^[[1~
yang merupakan urutan pelarian terminal yang terdiri dari:Anda dapat melihatnya dengan menekan Ctrl+ Vlalu Home.
Anda mungkin dapat memperbaiki masalah Anda dengan mengubah pengaturan keyboard Putty untuk tombol Home dan End ke rxvt (yang membuat urutan escape
^[[H
atau dengan mengubah $ TERM yang Anda gunakan (atau dengan mengedit~/.inputrc
).Ngomong-ngomong, tidak ada hubungan antara tilde yang Anda dapatkan ketika Anda menekan Homedan tilde yang mewakili direktori home. Misalnya, dalam setup saya Page-Downmenghasilkan
^[[6~
yang juga akan mencetak tilde jika tidak sedang benar ditafsirkan.sumber
~
, dan tidak ada pengaturan Keyboard Putty membuat mereka berfungsi. Apakah bash saya kacau, atau ini "normal"?echo $TERM
?xterm
(Batas karakter 15 argh)"\eOw": end-of-line
(itu huruf kapital O) ke~/.inputrc
file Anda .Tidak ada opsi ini yang berfungsi untuk saya. Saya menjalankan sistem AIX lama. Saya harus menambahkan alias berikut ke profil saya
sumber
Saya tidak bisa membuatnya bekerja dengan metode lain. Namun saya membuat skrip AutoHotkey ini yang berfungsi, asalkan shell Anda adalah Bash:
Gunakan dengan hati-hati , karena tidak semua hotkey bash ini bekerja di program lain.
sumber
screen
yang dengan pengaturan default memecah Ctrl-A karena menggunakannya sebagai karakter pelarian ....