Aku bertanya-tanya mengapa Shift+ Arrow Keyhasil di salah satu A, B, Catau Dhuruf.
Kenapa bukan surat lain? Kenapa ada surat?
Shift + Arrow Keystidak melakukan apa-apa.
Aku bertanya-tanya mengapa Shift+ Arrow Keyhasil di salah satu A, B, Catau Dhuruf.
Kenapa bukan surat lain? Kenapa ada surat?
Shift + Arrow Keystidak melakukan apa-apa.
Jawaban:
Terminal emulator seperti gnome-terminal("Terminal" di Ubuntu) tetapi juga xtermdan urxvtdinamai "emulator" karena mereka mereproduksi perilaku terminal lama yang merupakan satu-satunya tampilan komputer. Terminal semacam itu berkomunikasi dengan komputer dengan protokol berbasis teks dan pada awalnya dirancang untuk hanya menerima teks. Dengan cepat, lebih banyak kontrol diperlukan: bagaimana cara menghapus garis? Gunakan warna? Atau ubah posisi kursor?
Sumber: Seni Kegunaan Unix - Antarmuka Baris Perintah
Escape sequence dirancang untuk setiap terminal untuk melakukan hal-hal seperti itu. Mereka diberi nama melarikan diri karena mereka mulai dengan kode escape ASCII: 33. Tidak ada cara untuk mencetak karakter seperti itu secara langsung, yang membuatnya cocok untuk urutan seperti itu. Ketika kami masih ingin menampilkan karakter ini, ^[[sudah digunakan, dan inilah yang akan saya gunakan dalam penjelasan saya.
Ketika terminal diterima ^[[A, itu tidak berarti "print ^ [[A", tetapi "pengguna menekan tombol panah atas". "A" di sini benar-benar arbitrer: kebetulan huruf yang disetujui semua orang, karena itulah yang DEC VT-52 dan penggantinya terminal VT-100 yang populer digunakan.

Sumber: DEC VT-52 Manual Pemeliharaan 1976
Ini masih merupakan cara kerja emulator terminal hari ini: tergantung pada $TERMvariabelnya, database bernama terminfobertanggung jawab untuk mengatakan kode apa yang harus dikirim ke shell (bash, sh, zsh ...), yang kemudian bertanggung jawab untuk memahami mereka dan bereaksi ke mereka.
Sekarang, kode untuk Shift+ upadalah ^[[1;2A: terminal emulator mengirimkan kode ini ke shell, yang mencoba menafsirkan ^[[1;2tetapi tidak menampilkan apa-apa karena tidak tahu tentang urutan pelarian itu. Tetapi Adibiarkan dan ditampilkan.
^[[Amasuk akal ketika saya mengklik tombol panah saat proses sedang berjalan di terminal.
cat >/dev/nulllalu mengetik, dan tekan Ctrl + C (atau Enter lalu Ctrl + D) setelah selesai.