Saya tidak punya Mac yang berguna untuk menguji jawaban ini, tapi saya mengalami masalah ini di XTerm di Linux sangat sering dan (dengan asumsi iTerm2 menghormati kode kontrol yang sama) Anda mungkin menemukan perbaikan di bawah ini membantu.
Jalankan perintah shell berikut di dalam terminal tempat Anda melihat masalahnya:
printf "\e[?1004l"
(Perhatikan bahwa karakter terakhir ada 'ell' huruf kecil.)
Urutan kontrol ANSI ini seperti yang tercantum dalam jawaban Thomas Dickey, tetapi mematikan fitur (bukan pada). Ini harus menyelesaikan masalah Anda di semua aplikasi, bukan hanya Vim, dengan menghentikan karakter agar tidak terjadi sama sekali.
Di Linux saya dapat menunjukkan urutan kontrol ini bekerja dengan langkah-langkah berikut:
- Jalankan
xterm
dan aktifkan fitur dengan menjalankannya printf "\e[?1004h"
.
- Jalankan
xeyes
atau aplikasi GUI lain dari XTerm yang sama . (Untuk beberapa alasan, efek ini tidak terjadi pada saya sampai XTerm yang bersangkutan meluncurkan aplikasi. Ada yang tahu kenapa?)
- Berganti fokus berulang kali ke dan dari XTerm asli (mis. Dengan mengklik pada windows) dan melihat
^[[O
dan ^[[I
"diketik" ke dalam XTerm asli.
- Sekarang tutup Xeyes, kembali ke XTerm asli, dan jalankan
printf "\e[?1004l"
(untuk menonaktifkan fitur, seperti dijelaskan dalam perbaikan di atas).
- Ulangi langkah " jalankan
xeyes
, alihkan fokus " di atas, tetapi kali ini tidak ada karakter yang dimasukkan di terminal.
Saya pribadi hanya melihat masalah ini jika saya secara tidak sengaja membuang output biner ke terminal, tetapi jika Anda menjumpainya lebih teratur, Anda mungkin ingin menambahkannya printf
ke skrip startup interaktif shell Anda (misalnya ~/.bashrc
). Tampaknya tidak ada ruginya (di bawah XTerm setidaknya) untuk mengirim kode kontrol jika fitur sudah dinonaktifkan, jadi harus aman bahkan jika Anda hanya melihat masalah ini kadang-kadang.
Jika Anda khawatir tentang shell Anda selalu menghasilkan output itu, mungkin karena Anda kadang-kadang menggunakannya di tempat-tempat yang tidak menangani kode kontrol dengan baik, atau jika masalah kadang-kadang dipicu setelah shell dimulai, maka Anda mungkin lebih suka untuk mengatur sebuah alias (misalnya dengan alias focusfix='printf "\e[?1004l"'
) untuk membuatnya lebih nyaman untuk dijalankan secara manual.