Vim / MacVim: когда я прокручиваю мышью, текстовый курсор тоже движется! - PullRequest
10 голосов
/ 16 ноября 2010

Я привык к Vim / MacVim за последние несколько недель. Одна из основных проблем, с которыми я сталкиваюсь, заключается в том, что при прокрутке с помощью мыши (особенно когда я пытаюсь выделить большие части текста) курсор вставки текста тоже перемещается и не остается там, где он был (как в пример). Это означает, что я выделил большой фрагмент текста, когда я прокручиваю назад вверх, чтобы просмотреть свой выбор, курсор переместится, что не соответствует выбранному мною выделению.

Я понимаю, что должен привыкнуть к выделению текста в визуальном режиме, и я один раз в этом, но иногда это лучший инструмент для работы с мышью.

Есть ли способ исправить это поведение?

Ответы [ 2 ]

4 голосов
/ 16 ноября 2010

:help scrolling говорит вам:

Эти команды перемещают содержимое окна.Если позиция курсора перемещается за пределы окна, курсор перемещается на окно (с окружающими его линиями экрана «scrolloff»).

Так что в принципе я бы сказал, что невозможно выйтикурсор, где он был при прокрутке.Курсор всегда виден в вашем окне, и поэтому ваш визуальный выбор будет расширяться.

Возможно, вы хотели бы xnoremap <ScrollWheelUp> <esc><ScrollWheelUp> и то же самое для ScrollWheelDown.Затем используйте gv для восстановления вашего выбора.

3 голосов
/ 17 ноября 2010

Я сделал скринкаст о Списке изменений Vim и списке переходов , который решает проблему постоянного присутствия курсора Vim на экране.Список изменений содержит список всех мест в вашем документе, где вы произвели редактирование.Вы можете перемещаться по списку вперед и назад с помощью команд g; и g, соответственно.Или, если вы хотите вернуть курсор на последнее место, где вы произвели редактирование, и перейти в режим вставки, просто нажмите gi.

Как указала Алоис Кочард, клавиша o очень полезнакогда вы находитесь в визуальном режиме.Он перемещает курсор между началом и началом вашего выбора.Поэтому, если ваш выбор больше вашего экрана, он переместит вас с одного конца на другой.

...