Menggunakan tombol panah ctrl dengan Putty dan layar

33

Saya mencari dan tidak dapat menemukan solusi untuk ini di mana pun. Saya menggunakan Putty dari Windows untuk terhubung ke berbagai server tempat saya menjalankan bash dan layar. Tampaknya bash berfungsi dengan baik dengan tombol panah ctrl untuk melompat kata-ke-kata pada baris perintah tetapi dalam layar itu tidak berfungsi. Tidak di layar, ctrl-kiri mengirim "^ [OC dan ctrl-kanan adalah" ^ [OD ". Dalam layar saya malah mendapatkan" ^ [[C "dan" ^ [[D ", yang tampaknya merupakan kode untuk hanya tombol panah kiri / kanan. Apakah ada cara untuk mendapatkan layar untuk mengenali tombol ctrl-panah saat menggunakan Putty? (FYI, saya tidak ingat memiliki masalah ini ketika menggunakan terminal gnu di linux bukannya Putty).

PEMBARUAN: Tampaknya Putty adalah masalah karena tidak mengirim kode pelarian yang diperlukan agar ini berfungsi. Saya menyerah untuk saat ini dan menggunakan Cygwin + mintty.

kbosak
sumber
Wow, mintty hebat - telah mencari terminal emulator yang layak untuk Windows untuk beberapa waktu sekarang. Terima kasih untuk itu.
blueyed
Namun, saya mendapatkan ^[[1;5ACtrl-Up, yang tampaknya lebih benar, menurut code.google.com/p/mintty/wiki/Keycodes#Cursor_keys
blueyed

Jawaban:

13

Edit:

Inilah yang bekerja untuk saya:

  • Saya ~/.bashrcset TERM=xterm(saya kebetulan TERM=xterm-256colors) override layar iniTERM=screen
  • Saya mengatur Putty> Terminal> Fitur> Nonaktifkan mode kunci kursor Aplikasi untuk dicentang
  • Saya masuk tput smkxdi Bash prompt
  • Sekarang tombol Ctrl-Panah melompat kata demi kata

  • Untuk tujuan informasi, jika saya melakukannya:
    tput smkx | hexdump -c
    Saya mendapatkan
    0000000 033 [ ? 1 h 033 =
    dan
    tput rmkx | hexdump -c
    memberi saya
    0000000 033 [ ? 1 l 033 >

Saya pikir ada cara untuk mengolahnya menjadi sesuatu yang sedikit lebih baik, tapi itulah yang saya dapatkan sejauh ini dan sepertinya berhasil.

Jawaban asli:

Dari info screen:

Setiap jendela dalam sesi `layar 'mengemulasi terminal VT100, dengan beberapa fungsi tambahan ditambahkan. Emulator VT100 adalah kode-keras, tidak ada tipe terminal lain yang dapat ditiru.

Dan VT100s tidak memiliki kode kunci Ctrl-Arrow.

Dijeda sampai pemberitahuan lebih lanjut.
sumber
set -o vi(jika Anda tipe orang seperti itu :)
MikeyB
1
@ MikeyB: Bagaimana itu membantu (tidak, omong-omong)?
Dijeda sampai pemberitahuan lebih lanjut.
Terima kasih. Bukan jawaban yang saya harapkan tetapi sekarang saya bisa melanjutkan dan hidup dengan keterbatasan ini atau menggunakan pengikatan kunci lainnya.
kbosak
1
@ Dennis: Yah, itu memberi Anda cara lain untuk menangani maju / mundur jika Anda adalah orang yang salah ketik yang dapat membungkus kepala mereka di sekitarnya. set -o vimengaktifkan mode baris perintah vi sehingga Anda dapat menekan ESCdan menggunakan tombol vi untuk bergerak dan mengedit baris perintah Anda.
MikeyB
1
@ kbosak: Saya juga tidak senang dengan jawaban itu. Itu sebabnya saya memperbaikinya . :-)
Dijeda hingga pemberitahuan lebih lanjut.
23

Seperti disebutkan di sini , Anda dapat memasukkan ~ / .inputrc:

"\eOD": backward-word
"\eOC": forward-word

Itu berhasil untuk saya.

Fayer Michael
sumber
5
Ini bekerja untuk saya dan jauh lebih mudah daripada jawaban yang diterima.
Petrus Theron
Ini juga berhasil bagi saya, sementara jawaban yang diterima tidak
Schiavini
+1 Jawaban singkat yang hanya berfungsi.
Adam Caviness
3
Pastikan ada $include /etc/inputrcdi bagian atas .inputrcfile Anda , jika tidak readline tidak akan membaca binding seluruh sistem, dan kunci seperti Home and End akan pecah.
James
1
Ini harus menjadi jawaban yang diterima!
Shailen
4

Saya agak terkejut bahwa Anda punya Putty untuk mengirim ctrl-panahkeys dengan benar bahkan tanpa menggunakan layar, karena itu tidak pernah bekerja untuk saya. Solusi saya adalah beralih menggunakan alt-panahkeys (meta-arrowkeys), yang saya yakini memiliki kata forward / backward-word yang sama dengan bash secara default, meskipun saya harus mengeluarkan beberapa perintah tambahan untuk zsh untuk mengenalinya:

bindkey "^ [^ [[C" kata depan # Meta-RightArrow
bindkey "^ [^ [[D" mundur-kata # Meta-LeftArrow
Zed
sumber
Saya mungkin pergi rute ini juga. Tombol ctrl kiri jauh lebih mudah untuk dipukul daripada meta atau tombol alt (setidaknya di keyboard saya). Baiklah.
kbosak
4

Jika orang lain menemukan pertanyaan lama ini seperti yang saya lakukan, solusi yang lebih baru:

Ctrl dan tombol panah tidak berfungsi di dempul! Apa yang saya lakukan?

Putty membalikkan pengertian mode tombol kursor pada ctrl, yang agak sulit untuk mendeteksi tmux dengan benar. Untuk mendapatkan kunci ctrl yang benar, ubah pengaturan terminfo sehingga kUP5 (Ctrl-Up dll) adalah versi yang disesuaikan, dan nonaktifkan smkx / rmkx sehingga tmux tidak mengubah mode. Misalnya dengan baris ini di .tmux.conf (dengan anggapan Anda memiliki TERM yang disetel ke xterm):

set -g terminal-override "xterm *: kLFT5 = \ eOD: kRIT5 = \ eOC: kUP5 = \ eOA: kDN5 = \ eOB: smkx @: rmkx @"

Perhatikan bahwa ini hanya akan bekerja di tmux 1.2 dan di atas.

http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ

Collin Grady
sumber
0

Anda harus melihat dokumentasi terminfo, ncurses, layar dan dempul jika Anda ingin men-debug / mengkonfigurasi dengan benar. Pintasan bash juga dapat dikonfigurasi dengan inputrc. Lihatlah halaman manual bash dan cari inputrc.

Mircea Vutcovici
sumber
Saya tidak berpikir masalahnya adalah apa yang ada di inputrc. Saya sudah mencoba beberapa kemungkinan solusi yang melibatkan memasukkan entri ke dalam inputrc tanpa hasil. Sekali lagi, tampaknya kode yang salah sedang dikirim ke layar untuk tombol panah ctrl. Saya juga tidak ingin menghabiskan lebih banyak waktu untuk hal ini daripada yang sudah saya miliki karena ini benar-benar hanya ketidaknyamanan kecil.
kbosak
0

Apakah Anda memiliki pengodean karakter yang benar di Putty? Jika Anda terhubung ke server di UTF-8 dan dempul Anda dalam charset standar, di vim, tombol panah ditulis. Jika Putty berada di UTF-8, Anda dapat memindahkan kursor Anda. Mungkin itu sama dalam kasus Anda ...

Dom
sumber
Ini bukan masalah vi / vim sama sekali dan saya hanya melihat satu opsi di Putty untuk set karakter, yang tidak membantu.
kbosak
Coba berbagai opsi di Terminal-> Keyboard-> Tombol fungsi dan keypad. BTW, bagi saya Ctrl-Arrow juga tidak bekerja di bash, itu sama dengan tanpa menekan Ctrl.
Prof. Moriarty
Ya, saya sudah mencoba banyak opsi dan kombinasi opsi tanpa hasil. FYI, ada beberapa entri yang bisa Anda masukkan ke inputrc untuk membantu dengan tombol panah ctrl di bash, tetapi mereka tidak membantu saat menggunakan layar.
kbosak
0

Dalam konfigurasi dempul Anda di bawah Terminal -> Fitur, ada beberapa kotak centang "nonaktifkan". Anda mungkin ingin mencoba menonaktifkan tombol kursor aplikasi atau mode papan tombol aplikasi - terkadang dempul mencoba menjadi "terlalu pintar" dan mengirim karakter kontrol yang tidak kompatibel dengan server.

tylerl
sumber
0

Saya menggunakan Terminal> Keyboard> Tombol Fungsi> Xterm R6 Itu membantu dengan tombol fungsi htop (pencarian f4 dll) bekerja seperti yang diharapkan.

Apa yang saya temukan adalah bahwa alih-alih menggunakan panah CTRL +, panah ALT + malah melompat kata.

Dan
sumber