Saya menggunakan Vim di terminal, jadi menggulir dengan roda gulir menggunakan \e[A
dan \e[B
sintaks (di mana \e
melambangkan \x1b
, atau melarikan diri).
Namun, Vim menafsirkan ini dengan menggerakkan kursor ke atas atau ke bawah garis. Perilaku yang diinginkan adalah bahwa layar digerakkan ke atas atau ke bawah, suka <C-e>
dan <C-y>
lakukan.
Bagaimana saya bisa memberitahu Vim untuk memindahkan layar ketika saya menggunakan roda gulir saya, sambil menjaga kursor pada baris yang sama? Ini harus bekerja di semua mode umum (masukkan, normal, pilih visual).
Saya sudah mencoba, misalnya, :nnoremap <esc>[A <C-e>
(mengganti <esc>
dengan karakter escape literal dimasukkan dengan Ctrl+V Esc), tetapi ini terbukti sia-sia.
Saya menggunakan Vim 7.4.52 di Ubuntu 14.04 dengan GNOME.
Jawaban:
Seperti @Doorknob mengatakan dalam komentarnya,
:set mouse=a
memperbaiki masalahnya.sumber
mouse=a
? Saya tidak ingin klik tidak disengaja mengacaukan aliran pengeditan saya.a
dimouse=a
singkatanall
(tidak append). dari:help mouse
: "mouse dapat diaktifkan untuk mode yang berbeda ... Biasanya Anda akan mengaktifkan mouse di keempat mode dengan:: set mouse = a" setidaknya di vim saya ketika saya mengaktifkannya agar tidak mengacaukan dengan mode switching (hanya mengaktifkan pengguliran - dan "klik untuk pergi ke garis")set mouse=a
tanpa klik tidak sengaja mengacaukan aliran,:map <LeftMouse> <nop>
akan melakukan trik.Perilaku yang Anda inginkan adalah apa yang terjadi pada vim saya. Saya tidak dapat menemukan pengaturan yang menyalakan / mematikannya. Mungkin memeriksa : membantu menggulir ?
scrolloff
mungkin terlibat.Anda juga bisa mempertimbangkan menggunakan tanda sebagai solusi.
sumber
vim -u NONE
). Ini adalah Vim 7.4 di Ubuntu 14.04 dengan GNOME..vimrc
(hanyaset mouse=a
) saya.:help scrolling
mengatakan bahwa perilaku pengguliran adalah platform spesifik. Saya menggunakan vim di iterm2 di OSX.:set mouse=a
telah memperbaiki masalah untuk saya. Edit itu ke dalam jawaban Anda, dan saya akan menerimanya. Terima kasih!