Gulir layar, bukan kursor, saat menggunakan scrollwheel

18

Saya menggunakan Vim di terminal, jadi menggulir dengan roda gulir menggunakan \e[Adan \e[Bsintaks (di mana \emelambangkan \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.

Gagang pintu
sumber
Bisakah Anda membatasi pertanyaan ke sistem operasi atau lingkungan windowing?
200_sukses
@ 200_success Baiklah, saya telah mengedit lingkungan saya menjadi pertanyaan.
Gagang pintu
Saya pikir pertanyaan ini harus ditandai 'terminal' juga. Apakah itu tidak dapat diedit karena dijawab?
bsmith89

Jawaban:

12

Seperti @Doorknob mengatakan dalam komentarnya, :set mouse=amemperbaiki masalahnya.

bsmith89
sumber
1
Apakah ada cara untuk melakukan ini tanpa pengaturan mouse=a? Saya tidak ingin klik tidak disengaja mengacaukan aliran pengeditan saya.
wchargin
yang adi mouse=asingkatan all(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")
Fawix
2
Meskipun utas ini sudah tua, bagi seseorang yang ingin set mouse=atanpa klik tidak sengaja mengacaukan aliran, :map <LeftMouse> <nop>akan melakukan trik.
Sunny Pun
0

Perilaku yang Anda inginkan adalah apa yang terjadi pada vim saya. Saya tidak dapat menemukan pengaturan yang menyalakan / mematikannya. Mungkin memeriksa : membantu menggulir ? scrolloffmungkin terlibat.

Anda juga bisa mempertimbangkan menggunakan tanda sebagai solusi.

  1. ma (setel tanda 'a')
  2. gulir layar sesuka Anda
  3. `a (kirim kursor untuk menandai 'a')
bsmith89
sumber
Saya mendapatkan perilaku ini bahkan tanpa memuat vimrc saya ( vim -u NONE). Ini adalah Vim 7.4 di Ubuntu 14.04 dengan GNOME.
Gagang pintu
@ Doorknob Dan saya mendapatkan jendela bukannya kursor bergerak tanpa .vimrc(hanya set mouse=a) saya. :help scrollingmengatakan bahwa perilaku pengguliran adalah platform spesifik. Saya menggunakan vim di iterm2 di OSX.
bsmith89
Aha! :set mouse=atelah memperbaiki masalah untuk saya. Edit itu ke dalam jawaban Anda, dan saya akan menerimanya. Terima kasih!
Gagang pintu