Problemas de rolagem quando a opção `wrap` está definida

10

Encontro-me lidando com esse problema toda vez que a wrapopção está ativa (no meu caso particular, sempre que estou trabalhando com arquivos de remarcação).

O que acontece é que, ao rolar para cima e para baixo no buffer com je k, as linhas de texto agrupadas (formando um parágrafo visualmente) na parte superior e inferior inferior não rolam suavemente (ou seja, uma por uma) fora da tela. Em vez disso, parágrafos inteiros desaparecem e reaparecem abruptamente de dentro e à vista, criando um efeito desorientador e irritante.

Eu acho que um GIF vai explicar melhor o que acontece. Aqui, estou apenas pressionando krepetidamente para rolar para cima. Fique de olho no parágrafo próximo ao fundo!

ugh

Acostumei-me a esse comportamento porque não achei que fosse corrigível, mas percebi que isso não acontece com linhas físicas e sem wrapdefinição.

Existe uma maneira de dizer ao Vim para rolar para fora da tela por linhas visuais em vez de linhas físicas?

ps: Sim, eu mapeei meu je kpara gje gk.

zool
fonte
Isso pode ajudá-lo: vi.stackexchange.com/questions/11315/…
stackzebra

Respostas:

5

Esse é um problema que muitas vezes foi solicitado, mas nunca foi implementado. Portanto, não, não há possibilidade de uma rolagem melhor e mais suave, uma vez que as linhas são quebradas.

Christian Brabandt
fonte
Você é capaz de fornecer um link para onde esse problema está sendo discutido? Eu gostaria de saber mais
Zool
1
aqui ou aqui
Christian Brabandt
2

Eu acho que você está procurando:

set display=lastline

Veja :help 'display'.

romainl
fonte
Isso meio que funcionou, mas ainda não recebo a rolagem suave linha por linha que recebo quando wrapestá desabilitada. O comportamento agora parece realmente inconsistente: rolagem mais gradual (mas ainda não linha por linha) ao subir e aparência abrupta do parágrafo ao descer (consulte GIF ).
Zool
Que pena, porque ler a página de ajuda que realmente parecia minha opção.
Zool
2
De acordo com :help 'scrolljump'eu acho que o salto mínimo que você pode obter é uma linha quando o cursor se move para fora da tela. Mas wrap, como definido no seu caso, uma linha pode ocupar várias linhas da tela.
Vitor