Używam Vima w terminalu, więc przewijanie za pomocą kółka przewijania używa składni \e[A
i \e[B
(gdzie \e
symbolizuje \x1b
lub 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.
Odpowiedzi:
Jak powiedział @Doorknob w swoim komentarzu,
:set mouse=a
rozwiązuje problem.źródło
mouse=a
? Nie chcę, aby przypadkowe kliknięcia popsuły proces edycji.a
wmouse=a
skrótall
(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”)set mouse=a
bez przypadkowych kliknięć zakłócić przepływ,:map <LeftMouse> <nop>
załatwi sprawę.Zachowanie, którego chcesz, dzieje się w moim vimie. Nie mogę znaleźć ustawienia, które włącza / wyłącza. Może sprawdź : przewijanie pomocy ?
scrolloff
może być zaangażowany.Możesz również rozważyć użycie znaków jako obejścia.
źródło
vim -u NONE
). To jest Vim 7.4 na Ubuntu 14.04 z GNOME..vimrc
(tylkoset mouse=a
).:help scrolling
mówi, że przewijanie zależy od platformy. Używam vim w iterm2 na OSX.:set mouse=a
naprawił problem dla mnie. Edytuj to w swojej odpowiedzi, a ja to zaakceptuję. Dzięki!