Проблемы с прокруткой, когда установлена ​​опция `wrap`

10

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

Что происходит, так это то, что при прокрутке буфера вверх и вниз с помощью jи k, обернутые строки текста (визуально формируя абзац) в дальнем верхнем и дальнем нижнем направлениях не прокручиваются плавно (т.е. по одному) за пределы экрана. Вместо этого целые абзацы исчезают и внезапно появляются в поле зрения, что создает дезориентирующий и раздражающий эффект.

Я думаю, что GIF лучше объяснит, что происходит. Здесь я просто нажимаю kнесколько раз, чтобы прокрутить вверх. Следите за параграфом внизу!

тьфу

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

Есть ли способ сказать Vim, чтобы прокручивать из экрана визуальные линии вместо физических?

PS: Да, я сопоставил мои jи kк gjи gk.

Зоол
источник
Это может вам помочь: vi.stackexchange.com/questions/11315/…
stackzebra

Ответы:

5

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

Кристиан Брабандт
источник
Можете ли вы предоставить ссылку, где обсуждалась эта проблема? Я хотел бы знать больше.
zool
1
здесь или здесь
Кристиан Брабандт
2

Я думаю, что вы ищете:

set display=lastline

См :help 'display'.

romainl
источник
Это вроде сработало, но я все еще не получаю плавную, построчную прокрутку, которую получаю, когда wrapне установлено. Поведение теперь выглядит фактически непоследовательным: более плавная (но все же не построчная) прокрутка при повышении и резкое появление абзаца при понижении (см. GIF ).
zool
Жаль, потому что читал страницу справки, которая действительно выглядела как мой вариант.
zool
2
По :help 'scrolljump'моему мнению, минимальный прыжок, который вы можете получить, составляет одну строку, когда курсор перемещается за пределы экрана. Но с wrapset, как в вашем случае, одна строка может занимать несколько строк экрана.
Витор