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 dirinya sendiri, sampai saya menyadari saya sedang menguji menggunakan hjkl bukan tombol panah yang sebenarnya.
Bagaimanapun, 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 screen -D -R
untuk memasang kembali. Ini akan membuat tombol panah Anda berfungsi lagi.
Jika Anda tidak di layar, tetapi hanya di Vim, maka Anda bisa CTRL+Z
dan mengetik 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
menjadi Esc
O
A
. Kode kontrol VT100 yang dipancarkan untuk melakukan ini adalah Esc
[
?
1
h
. 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
Anda dapat memperbaikinya dengan cepat dan mudah dengan
:!reset
sumber
Jika Anda menggunakan iTerm, Anda bisa mendapatkan kembali sesi vim Anda dengan menekan
command+d
dancommand+w
Mengapa?
command+d
akan membagi panel terminal, secara ajaib mengembalikan yang Anda berasal.command+w
sekarang akan menutup panel perpecahan yang baru saja Anda buka.sumber
Saya memetakan Command-r ke "Abaikan" di pemetaan kunci iTerm.
sumber