Saya menggunakan dempul pada win7 sebagai klien, untuk masuk ke ssh di server debian. Tapi saya pernah bertemu masalah aneh tentang perilaku keyboard di konsol dempul.
Saya perhatikan bahwa ini tentang konfigurasi keyboard di dempul. Setelah membaca manual dempul , Saya berhasil membuatnya backspace
kunci untuk bekerja, tetapi masih memiliki masalah ESC
, panah, home
dan end
, dan F1
- F12
kunci.
Di sini saya daftar perilaku mereka di bawah ini. Tampaknya ketidaksesuaian ESC
adalah penyebab utama.
ESC
= & gt; ^ [up
= & gt; ^ [OAdown
= & gt; ^ [OBright
= & gt; ^ [OCleft
= & gt; ^ [ODhome
= & gt; ^ [[1 ~end
= & gt; ^ [[4 ~F1
= & gt; ^ [[11 ~F12
= & gt; ^ [[24 ~
==============================================
Di sini saya akan menunjukkan mengapa saya pikir esc tidak cocok:
Ketika di konsol ssh yang berfungsi dengan baik, saya menekan esc
, seharusnya tidak menunjukkan apa pun.
(before)
root@somemachine:
(after)
root@somemachine:
Tapi di konsol ssh yang tidak berfungsi ini, saya menekan esc
, itu menunjukkan ^[
.
(before)
root@somemachine:
(after)
root@somemachine: ^[
Saya menjalankan od -c di kedua ssh console, dan menekan esc
, mereka memberikan hasil yang sama.
(normal one)
root@opengg:~# od -c
^[
(malfunctioning one)
$ od -c
^[
Jawaban:
Masalahnya adalah nilai variabel lingkungan TERM tidak sesuai dengan karakteristik terminal yang dikonfigurasikan - khususnya pengaturan "Tombol Awal dan Akhir" dan "Tombol fungsi dan tombol".
Ini bisa sulit untuk diperbaiki.
Apa yang diharapkan oleh server Debian.
Mengetik
infocmp -I
untuk melihat apa yang komputer Anda harapkan.khome=\E[H
berarti bahwa server mengharapkan untuk menerima tiga karakterESC [ H
ketika Anda menekan Rumah .Anda dapat melihat apa yang diharapkan untuk nilai TERM lainnya
Di sini Anda bisa melihat itu, jika
TERM
diatur kexterm
, server ini akan menerimaESC [ 1 ~
kapan Rumah ditekan (khome
)Jika hal di atas terlalu samar, coba
infocmp -L
Anda juga dapat melakukan hal-hal seperti
tput khome | hexdump -C
jika Anda tahu nama kemampuan terminfo untuk kunci yang Anda minati.atau, bisa dibilang lebih terbaca
atau untuk melihat apa arti pengaturan JANGKA lain
jika output kosong, server berpikir bahwa tipe terminal (TERM) tidak memiliki kunci itu.
Apa yang sebenarnya dikirim oleh Putty.
Untuk melihat apa Rumah sebenarnya mengirim, lari
vi
, tekan saya (untuk mode penyisipan) tekan Ctrl + V lalu tekan Rumah dan tekan ESC untuk keluar dari mode penyisipan.Larutan
Sesuaikan konfigurasi Dempul (atau JANGKA) sampai apa yang dikirim sesuai dengan yang diharapkan pihak lain.
Misalnya.
Lakukan seperti yang ditentukan dalam https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/terminfo.html lalu di Putty, Configuration, Connection, Data, string tipe terminal = Putty dan simpan itu. Mungkin.
sumber
ESC
untuk bekerja, apalagihome
. Sepertinya saya harus menyelesaikannyaESC
pertama, benar?^[
sebagai output, ini berfungsi seperti yang dirancang.Tidak ada ketidakcocokan dari ESC key - ^ [berarti Control-LeftSquareBracket yang merupakan ASCII 27 yang merupakan ESC
Jika Anda mencurigai kunci memberikan urutan yang salah, periksa dengan od -c dan membandingkannya dengan infocmp keluaran:
Output mungkin (
033
aku s ESC ):Bandingkan dengan output infocmp (di sini
\E
cara ESC ):Pengantar singkat untuk keluaran infocmp:
kbs
= Backspacekcub1
,kcud1
,kcuf1
,kcuu1
= Tombol Kursorkf
* = Tombol fungsikpp
/knp
= Halaman atas / bawahkhome
/kend
= Tombol Home / Endkich1
/kdch1
= Masukkan / Hapus kunciDengan menggunakan Informasi ini, Anda harus mudah mengonfigurasi dempul untuk sistem Anda dengan benar.
sumber
Dalam pengalaman saya itu karena bash tidak berjalan, jalankan saja / bin / bash untuk menikmati warna, sejarah, dan lainnya. Dan gangguan-gangguan itu hilang juga, membuat keyboard berfungsi seperti yang diharapkan.
Anda mungkin harus menjalankan perintah ini setiap kali Anda terhubung atau mengubah pengguna, tetapi itu tidak sulit untuk diingat.
sumber
Sampai Anda menemukan solusi lengkap, coba gunakan tombol vi-style alih-alih panah.
H = & gt; kiri
J = & gt; turun
dll.
sumber
Tentu ada "resep", tetapi pengembang Putty memilih untuk tidak berpartisipasi dalam proses. Resep ini disebut sebagai deskripsi terminal . Sudah ada yang cocok di ncurses sejak itu 2001 (lihat tautan misalnya ke basis data terminal ).
Deskripsi terminal ditentukan untuk sebagian besar aplikasi sebagai
TERM
variabel lingkungan.Daripada menggunakan "resep" itu, Putty secara default
TERM
untukxterm
, yang seperti telah Anda perhatikan, tidak cocok dengan tombol khusus (fungsi, kursor). Itu disebutkan dalam FAQ ncurses Mengapa tidak menggunakan TERM set ke "xterm"?Putty juga disebutkan (karena masalah dengan
TERM
) dalam xterm FAQ , meskipun tidak ada bagian yang dikhususkan untuk itu, karena sebenarnya bukan "xterm".sumber