При использовании колесика прокрутки прокрутите экран, а не курсор

18

Я использую Vim в терминале, так скроллинг колесо прокрутки использует \e[Aи \e[Bсинтаксис (где \eсимволизирует \x1b, или побег).

Однако Vim интерпретирует это, перемещая курсор вверх или вниз по строке. Желаемое поведение заключается в том, что экран перемещается вверх или вниз, как <C-e>и <C-y>делать.

Как я могу сказать Vim перемещать экран, когда я использую колесо прокрутки, удерживая курсор на той же строке? Это должно работать во всех распространенных режимах (вставка, нормальный, визуальный выбор).

Я уже пытался, например, :nnoremap <esc>[A <C-e>(заменить <esc>буквальный escape-символ, вставленный с Ctrl+V Esc), но это оказалось бесполезным.

Я использую Vim 7.4.52 в Ubuntu 14.04 с GNOME.

Дверная ручка
источник
Не могли бы вы ограничить вопрос операционной системой или оконной средой?
200_success
@ 200_success Хорошо, я отредактировал свою среду в вопросе.
дверная ручка
Я думаю, что этот вопрос тоже должен быть помечен как «терминал». Это недоступно для редактирования, потому что ответили?
bsmith89

Ответы:

12

Как сказал @Doorknob в своем комментарии, :set mouse=aпроблема решается .

bsmith89
источник
1
Есть ли способ сделать это без настройки mouse=a? Я не хочу, чтобы случайные клики мешали редактированию.
wchargin
aв mouse=aозначает all(не добавление). from :help mouse: "мышь может быть включена для различных режимов ... Обычно вы можете включить мышь во всех четырех режимах с помощью:: set mouse = a" по крайней мере в моем vim, когда я включил, чтобы она не мешала переключению режимов (только что включил прокрутку - и «нажми, чтобы перейти на линию»)
Fawix
2
Хотя эта ветка старая, для того, кто хочет set mouse=aбез случайных щелчков испортить поток, все :map <LeftMouse> <nop>получится.
Солнечный Пан
0

Поведение, которое вы хотите, это то, что происходит на моем Vim. Я не могу найти параметр, который включает / выключает его. Может быть, проверить : помощь прокрутки ? scrolloffможет быть вовлечен.

Вы также можете рассмотреть возможность использования меток в качестве обходного пути.

  1. ma (установите отметку «а»)
  2. прокрутите экран, как вы хотите
  3. `a (отправить курсор на отметку «а»)
bsmith89
источник
Я получаю это поведение даже без загрузки моего vimrc ( vim -u NONE). Это Vim 7.4 в Ubuntu 14.04 с GNOME.
дверная ручка
@ Doorknob И я получаю окно вместо курсора, перемещающегося без моего .vimrc(просто set mouse=a). :help scrollingговорит, что поведение прокрутки зависит от платформы. Я использую vim в iterm2 на OSX.
bsmith89
Ага! :set mouse=aисправил проблему для меня. Отредактируйте это в своем ответе, и я приму это. Благодарность!
Дверная ручка