2

Как отключить этот vim, позволяющий мне прокручивать конец файла?

4 ответа4

4

На самом деле Vim не позволяет вам прокручивать конец файла (например, перемещать курсор за последнюю существующую строку), но показывает несколько строк за последней, потому что он должен что-то показывать.

Это не может быть отключено, извините. Нет, если вы не хотите загружать исходные тексты Vim (в конце концов, это открытый исходный код) и возиться с ним. Он изначально вставляет ~ в несуществующие строки, потому что, ну, он должен что-то показывать. Все редакторы делают это.

Как кто-то предположил, есть обходные пути вокруг этого ... но это все, что они есть - обходные пути. И ни один из них не работает действительно красиво. Я бы не рекомендовал ни одного из них.

2

Как только вы дойдете до конца файла, вы можете использовать zz или zt чтобы переместить текущую строку в середину или верхнюю часть окна соответственно. Вы можете сделать это когда угодно, независимо от расположения в файле. Параметр scrolloff заставит курсор остаться, например, на 5 строк в верхней или нижней части окна, если он установлен на 5 (set scrolloff=5). Однако это не работает, когда вы попадаете в верхнюю или нижнюю часть файла.

0

Без довольно уродливого хака, который, вероятно, будет выглядеть визуально беспокоящим и замедлять Vim, вы не сможете делать то, что хотите. В основном вам нужно было бы настроить что-то вроде autocmd для событий CursorMoved/CursorMovedI, которые пытались определить, отображается ли нижняя часть файла, и, если это так, выполнить некоторые команды нормального режима, чтобы принудительно установить позицию прокрутки.

Стоит отметить (и, как говорят люди по ссылке, которую Джонни указал в своем комментарии), Vim - не единственное приложение, которое ведет себя так, и вы не можете прокрутить конец файла в Vim - последнюю строку всегда должен быть виден

0

Если вы не возражаете, что он перемещает курсор, это работает:

noremap <ScrollWheelUp> H5k
noremap <ScrollWheelDown> L5j

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .