Pertanyaan ini telah dijawab di sini: saat menjalankan layar pada OSX, perintah + r mengacaukan tombol panah di vim di semua layar
Jawaban yang disalin:
Sebagai pembela Vim kecil yang baik, saya merasa terikat untuk memberitahu Anda untuk belajar menggunakan hjkl sebagai kunci kursor Anda. Setengah jalan menjelajahi masalah, saya pikir itu secara misterius memperbaiki sendiri, sampai saya menyadari saya sedang menguji menggunakan hjkl bukan tombol panah yang sebenarnya.
Lagi pula, sekarang untuk jawaban yang nyata.
Alih-alih mematikan semua layar dan memulai ulang, Anda dapat memanfaatkan kemampuan layar untuk berpindah antar terminal. Tekan CTRL + A CTRL + D untuk melepaskan layar dari terminal Anda, lalu jalankan layar -D -R untuk memasang kembali. Ini akan membuat tombol panah Anda berfungsi lagi.
Jika Anda tidak di layar, tetapi hanya di Vim, maka Anda dapat CTRL + Z dan ketik fg untuk efek yang sama.
Anda juga dapat mengatasi masalah kunci kursor di Vim, tetapi pengaturan ulang mungkin telah mengubah opsi terminal lainnya, jadi lebih aman untuk melakukan seperti yang dijelaskan di atas agar Anda tidak melihat masalah tampilan / keyboard acak lainnya. Jika Anda tetap menginginkan remapping, ini dia:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
Detail kotor:
Baik Vim dan layar menggunakan pustaka ncurses untuk mengelola terminal. Salah satu hal yang dilakukan ncurses ketika mengambil kendali terminal yang kompatibel dengan VT100 adalah mengalihkan tombol panah ke "mode aplikasi", yang mengubah kode yang dipancarkannya. Tombol panah atas, misalnya, berubah dari Esc [A ke Esc O A. Kode kontrol VT100 yang dipancarkan untuk melakukan ini adalah Esc [? 1 jam Perintah reset terminal yang dikirim oleh Command + R me-reset kunci kursor ke default.
Layar detaching dan reattaching menyebabkan ncurses untuk mengambil kembali kendali terminal, yang menerapkan kembali semua pengaturan yang disukainya, jadi itu mungkin cara yang paling portabel dan andal untuk mengembalikan keadaan menjadi normal.
Kode kontrol VT100: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm