Mengapa cmd-r mengacaukan Vim di mac? Apa yang sebenarnya ia coba lakukan?

19

Berlari melintasi ini terus-menerus karena saya seorang pengembang web, 'cmd-r' memiliki efek samping mencegah tombol panah bekerja dalam mode apa pun, tapi saya tidak bisa membayangkan itulah tujuannya dan saya belum dapat menemukan dokumentasi apa yang seharusnya dilakukan.

Sunting: Rupanya ini sebenarnya adalah perintah terminal mac, 'Kirim Reset', jadi saya kira ini sekarang pertanyaan dari "Apa tujuan melayani melayani perintah reset?" Menjelaskan mengapa saya tidak dapat menemukannya di vim docs.

GlyphGryph
sumber

Jawaban:

16

Untuk menghindari gangguan ini, saya memetakan ulang Command-R untuk "Abaikan" dalam pemetaan kunci iTerm.

masukkan deskripsi gambar di sini

Christian Long
sumber
Terima kasih. Ini semakin menjengkelkan.
ThinkingInBits
10

Ini terjadi pada saya bahkan ketika tidak menggunakan layar dan saya telah menemukan saya dapat kembali normal dengan membersihkan terminal yang menjalankan vim (saya juga telah menguji ini dengan tmux tetapi tidak layar:

:!clear
mtjburton
sumber
6

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

Munen
sumber
Ya, menemukan bahwa setelah saya memposting, melihat "Perintah reset terminal yang dikirim oleh Command + R me-reset kunci kursor ke default.", Akan tetap bagus untuk tahu persis mengapa itu terjadi. Jujur saya sebagian besar menarik mengetahui apa maksud dari penggunaan perintah ini, yang tidak menjawab.
GlyphGryph