Przewijaj ekran, a nie kursor, gdy używasz kółka do przewijania

18

Używam Vima w terminalu, więc przewijanie za pomocą kółka przewijania używa składni \e[Ai \e[B(gdzie \esymbolizuje \x1blub ucieczka).

Jednak Vim interpretuje to, przesuwając kursor w górę lub w dół linii. Pożądanym zachowaniem jest przesuwanie ekranu w górę lub w dół, tak jak <C-e>i <C-y>robisz.

Jak mogę powiedzieć Vimowi, aby przesunął ekran, gdy używałem kółka przewijania, trzymając kursor w tej samej linii? Powinno to działać we wszystkich popularnych trybach (wstawianie, normalny, wybór wizualny).

Próbowałem już na przykład :nnoremap <esc>[A <C-e>(zastępując <esc>dosłownie wstawionym znakiem ucieczki Ctrl+V Esc), ale okazało się to daremne.

Używam Vima 7.4.52 na Ubuntu 14.04 z GNOME.

Klamka
źródło
Czy możesz ograniczyć pytanie do systemu operacyjnego lub środowiska okienkowego?
200_success
@ 200_success W porządku, edytowałem swoje środowisko do pytania.
Klamka
Myślę, że to pytanie powinno być również oznaczone jako „terminal”. Czy nie można go edytować, ponieważ otrzymał odpowiedź?
bsmith89

Odpowiedzi:

12

Jak powiedział @Doorknob w swoim komentarzu, :set mouse=arozwiązuje problem.

bsmith89
źródło
1
Czy można to zrobić bez ustawiania mouse=a? Nie chcę, aby przypadkowe kliknięcia popsuły proces edycji.
wchargin 24.04.15
aw mouse=askrót all(nie append). from :help mouse: "mysz może być włączona dla różnych trybów ... Normalnie można by włączyć mysz we wszystkich czterech trybach za pomocą:: set mouse = a" przynajmniej w moim vimie, kiedy włączyłem, że nie zadziałało przy przełączaniu trybów (właśnie włączone przewijanie - i „kliknij, aby przejść do linii”)
Fawix
2
Chociaż ten wątek jest stary, dla kogoś, kto chce set mouse=abez przypadkowych kliknięć zakłócić przepływ, :map <LeftMouse> <nop>załatwi sprawę.
Sunny Pun
0

Zachowanie, którego chcesz, dzieje się w moim vimie. Nie mogę znaleźć ustawienia, które włącza / wyłącza. Może sprawdź : przewijanie pomocy ? scrolloffmoże być zaangażowany.

Możesz również rozważyć użycie znaków jako obejścia.

  1. ma (ustaw znak „a”)
  2. przewiń ekran, jak chcesz
  3. `a (wyślij kursor, aby zaznaczyć „a”)
bsmith89
źródło
Otrzymuję to zachowanie nawet bez ładowania mojej vimrc ( vim -u NONE). To jest Vim 7.4 na Ubuntu 14.04 z GNOME.
Klamka
@ Dooobnob I okno zamiast kursora przesuwa się bez mojego .vimrc(tylko set mouse=a). :help scrollingmówi, że przewijanie zależy od platformy. Używam vim w iterm2 na OSX.
bsmith89,
Aha! :set mouse=anaprawił problem dla mnie. Edytuj to w swojej odpowiedzi, a ja to zaakceptuję. Dzięki!
Klamka