Tombol panah berhenti bekerja secara spontan di vim


25

Saya baru-baru ini ditingkatkan dari OS X 10.6 (saya pikir) ke 10.9. Sejak itu tampaknya, saat mengedit vim, tombol panah akan "secara spontan" berhenti bekerja.

Pada satu titik, dengan frustrasi saya "menumbuk" salah satu tombol panah dan akhirnya ditampilkan kesalahan "E388 Tidak dapat menemukan definisi". Di waktu lain saya pernah mengalaminya, anak panah, yang telah bekerja untuk sementara waktu, tiba-tiba mulai membentak saya!

Berhenti dan membuka kembali memecahkan masalah untuk sementara waktu . Tapi, saya ingin mencegahnya !

Adakah yang tahu apa ini? Dan bagaimana cara memperbaikinya?


Sepertinya standar saya vimrctelah dimodifikasi selama pembaruan. Jika ingatanku benar, itu adalah file yang cukup besar sebelumnya. Sekarang, itu hanya berisi ini:

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

Saya belum tahu apa yang dilakukan opsi ini. Saya akan memeriksanya - tapi, semoga seseorang di sini tahu lebih cepat daripada saya bisa google dan membaca ...


Saya juga baru menyadari ada forum Apple-centric di sini bahwa pertanyaan ini mungkin lebih cocok untuk. Jadi, jika ini lebih merupakan kondisi OS X daripada vim, mungkin mod bisa memigrasikannya untuk saya.
svidgen

2
Mengingatkan saya pada bekerja di mainframe "Prime" di perguruan tinggi. Profesor itu mengajarkan bahwa Anda tidak boleh menggunakan tombol panah vi. Selalu gunakan hjkl. Di situlah tombol "panah" digunakan pada perangkat keras kuno.
Red Cricket

OK ... Tapi, tombol panah harusnya berfungsi. Terlepas dari apakah profesor Anda berpikir saya harus menggunakannya. Dan saya menemukan mereka nyaman di kali. Jadi, menantikan untuk melihat solusinya.
svidgen

1
apa yang terjadi ketika Anda memasukkan kunci literal ke dalam buffer? masuk ke mode insert, dan tekan Ctrl + v, lalu tombol panah. Vim di Mac saya menunjukkan tombol panah atas sebagai ^[OA, turun sebagai ^[OB, kanan ^[OC, dan kiri sebagai ^[OD. periksa sebelum dan sesudah masalah muncul dengan sendirinya
Nathan Wallace

@NathanWallace tidak yakin bagaimana saya mengabaikan pertanyaan Anda. Saya akan mencobanya ketika saya di Mac saya berikutnya.
svidgen

Jawaban:


24

Ditemukan di blog James Hodgkinson , perintah berikut ini berfungsi untuk saya. Perhatikan itu akan menyegarkan layar vim.

:!reset

Tidak yakin bagaimana saya mengabaikan jawaban ini, tetapi kelihatannya sangat menjanjikan!
svidgen

Bahkan ... Menekan Ctrl + R seperti yang dijelaskan dalam artikel mereproduksi masalah dalam konsistensi penuh dengan pemetaan tombol panah yang salah yang dicatat dalam tanggapan saya terhadap Nathan di atas. Dan perintah reset menyelesaikannya dalam kasus itu. Dan .. Saya tidak bisa dengan andal mereproduksi masalah dengan cara lain, jadi ini jelas jawaban yang paling berguna!
svidgen

11

Saya telah mengalami masalah ini beberapa kali juga. Saya kebetulan menjalankan layar GNU di komputer lain yang saya masuki melalui SSH. Untuk memperbaiki masalah, saya melepaskan layar saya ( Ctrl- a d), keluar dari mesin, masuk kembali, dan memasang kembali menggunakan screen -x. Ini dapat bekerja tanpa keluar dari mesin, hanya dengan melepas dan memasang kembali layar. Tapi saya tidak ingat.


Menutup sesi layar saya dan menyalakannya kembali untuk saya.
Eno

1
itu masalah bagiku. Entah bagaimana screenbisa dalam keadaan funk (melalui koneksi ssh). Menutup terminal itu, lalu ssh lagi, dan screen -rdlakukan triknya. Terima kasih!
Pierre D

@PierreD benar, saya sudah mengalami masalah ini beberapa kali - juga dalam satu screensesi, Detach & Reattach memecahkan masalah, terima kasih!
stdcerr

6

Di jalur /usr/share/vim/saya menemukan .vimrcfile ... Di sana saya menambahkan baris

set term=ansi 

Ini berhasil untuk saya. Sekarang tombol panah berfungsi dengan benar di Vim editor.


2
Ini memperbaikinya bagi saya juga, karena pembaruan Windows 10 WSL / Ubuntu terbaru memecahkannya.
Gray Fox

3

Ini terdengar sangat mirip dengan masalah Anda. Artikel itu berjudul: Tombol Kursor di Vim: You Mac'ing Me Crazy! .

kutipan

Vim berguna dalam banyak situasi, terutama untuk pengeditan cepat (terutama sebagai root), dan mengedit file di server jauh. Satu gangguan yang saya alami selama sembilan bulan saya dengan Mac Book Pro adalah tombol kursor di Vim membunyikan bel di kedua mode insert atau perintah alih-alih mengubah baris. Memutakhirkan ke versi 7 melalui MacPorts menghasilkan hasil yang sama. Tombol kursor berfungsi setelah mengalihkan TERM saya ke VT220 dari rxvt! Downside adalah sintaks yang berhenti bekerja.

Untungnya, menambahkan VT220 ke parameter pencarian Google saya menghasilkan referensi untuk vt100-kursor-kunci dalam dokumentasi Vim. Tambahkan kode berikut ke file .vimrc Anda untuk memperbaiki masalah:

    :set notimeout          " don't timeout on mappings
    :set ttimeout           " do timeout on terminal key codes
    :set timeoutlen=100     " timeout after 100 msec

Di artikel yang sama ada saran lain untuk mengatur Anda $TERMuntuk linuxbukan di OSX.

kutipan

Solusi yang lebih baik adalah mengubah nilai default untuk TERM ke linux atau dtterm karena nilai TERM akan diambil pada server jarak jauh. Di zaman sekarang ini, saya berani bertaruh sebagian besar server mendukung kedua jenis terminal ini.


Hmm ... Aku bahkan lebih bingung sekarang. Saya pikir saya punya .vimrcfile global / default . Apakah ini telah dipindahkan atau dihapus selama pembaruan OS X?
svidgen

@viden - Tidak, saya pikir itu tidak akan berubah, tapi masalah itu terdengar seperti bergantung pada Anda, dan perbaikannya cukup mudah untuk dicoba, jadi saya pikir saya akan membagikannya kepada Anda. Kebetulan $TERMbisa saja berubah pada Anda.
slm

Whelp, ini jelas jawaban yang paling relevan di sini. +1 untuk itu. Sayangnya tidak yakin apakah memperbaikinya, karena saya tidak dapat secara konsisten mereproduksi masalah.
svidgen

Setelah menerapkan perbaikan ini, masalah telah terjadi lagi. Masih jawaban yang relevan, meninggalkan +1. Tetapi, silakan lihat komentar saya di atas jika Anda tertarik untuk memberikan jawaban tambahan.
svidgen

0

Selamat atas pembaruan. Saya melakukan pembaruan sendiri selama akhir pekan dan telah berurusan dengan beberapa masalah keyboard aneh saya sendiri.

Berikut adalah beberapa hal yang perlu saya lakukan:

  • Hapus perangkat lunak gaming Logitech lama dan tingkatkan. Sebelum melakukan ini, saya mengalami masalah menggunakan kawat kurawal dan keriting. Kunci khusus sering mengirim urutan dalam konteks VIM sehingga ini mungkin relevan.
  • Pergilah ke Prefs Sistem: Keamanan dan Privasi: Privasi: Aksesibilitas dan aktifkan beberapa aplikasi (synergy_server dan perangkat lunak gaming Logitech). Sebelum perubahan ini, saya tidak dapat mengontrol komputer saya yang lain dengan sinergi atau menggunakan makro dengan G11 saya. Saya ragu ini adalah koneksi langsung untuk Anda tetapi opsi Aksesibilitas yang baru dan mungkin berlaku untuk beberapa aplikasi Anda yang lain.

0

Jika Anda bekerja dalam .sqlfile di vim(Anda tidak menyebutkan) ini bisa membantu Anda. Saya hanya berurusan dengan ini tempo hari.

Dalam file ~/.vimrc

let g:omni_sql_no_default_maps = 1

masalah khusus ini dibahas di sini

Jika Anda tidak mengalami masalah dengan .sqlfile di sini vimmaka saya minta maaf, satu-satunya pikiran saya adalah memverifikasi pemetaan vimketika masalah terjadi.

:map Ctrl V → saat Anda kehilangan kemampuan untuk menggunakan panah, lakukan perintah itu dan lihat apakah pemetaannya hilang. jika ya, ini memberi Anda tempat untuk mulai menggali.


0

Saya memiliki masalah ini dalam sesi SSH dan menyelesaikannya dengan keluar lalu kembali lagi:

exit
ssh ...

Terima kasih telah mempertimbangkan. Jawaban yang dipilih secara konsisten berhasil untuk saya. Sudahkah Anda mencobanya?
svidgen

Ya, solusi yang diterima tidak bekerja di Ubuntu 18. Saya bahkan menghapus dan menginstal ulang vim (dalam sesi ssh yang sama) dan tidak ada dadu. Hanya keluar kemudian kembali lagi fungsi panah dipulihkan.
duhaime

0

Saya mengalami masalah ini ketika saya menggunakan "variabel lingkungan sistem" di Windows, pengaturan TERMke xterm-256color. Masalahnya hilang (dan saya vimkembali normal) ketika saya menghapus variabel lagi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.