Costumo achar que rolar uma página inteira é muito desorientador, meia página a mais, mas um quarto de página é o ideal. Atualmente, faço isso apenas pressionando as teclas de seta.
Como rolar 25% da página para baixo e para cima com facilidade?
cursor-movement
scrolling
Louis Hong
fonte
fonte
Respostas:
Talvez ctrlde ctrlupossa ser o que você está procurando. Por padrão, eles movem metade da tela.
De
:h CTRL-D
:O que significa que na primeira vez em que você deseja rolar em uma janela, você pode fazer XXctrldonde XX seja 25% do número de linhas na sua janela. Conforme definido
scroll
no valor XX, você pode usar ctrlde ctrlumover 25% da tela.Além disso, acho que isso
:h scrolling
pode ser interessante para você.Editar
E aqui está outra solução com uma função e alguns mapeamentos para adicionar ao seu
.vimrc
:A função obterá a altura da janela atual e, de acordo com seu parâmetro, rolará a tela para cima ou para baixo em um quarto da altura.
Os mapeamentos chamarão a função, o primeiro a subir e o segundo a descer.
Obviamente, você pode alterar
<up>
e<down>
para outras teclas se quiser manter o comportamento padrão das teclas de seta.fonte
ctrl-E
ectrl-Y
nos mapeamentos, porque a). você terá atalhos separados para rolagem de 1/2 e 1/4 de página. b) o comportamento dectrl-U
/ctrl-D
é consistente e não depende de você ter usado o mapeamento anteriormente.let key="^U"
a parte entre aspas duplas representa o código-chave dectrl+u
. Portanto, se você copiou a função no vim, coloque o cursor no primeiro hit de aspas duplasci"
para modificar o conteúdo das aspas e, em seguida, apertectrl+v
seguido peloctrl+u
mesmo na linhalet key="^D"
.let key="^Y"
vez delet key="^U"
. Ele criará o mesmo comportamento, mas sem afetar a'scroll'
configuração.Você pode usar ctrlee ctrlymover a página uma linha para cima e para baixo.
Então, se você deseja 20ctrlemover +/- 25%, pode usar e isso moverá você 20 linhas para baixo.
Aqui também está uma boa pergunta explicada, semelhante à sua: /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim
fonte
Eu variei a abordagem statox para que ela role mais consistente ao longo das linhas de linha. Se você deseja um quarto de passo, altere 0,618 para 0,25 ou o que for.
fonte
Se você deseja uma boa resposta geral e não exatamente 25%, você pode fatorar a contagem normal de linhas em uma página, dividir por 25 e definir alguns mapeamentos do sistema. Por exemplo, se você normalmente possui cerca de 100 linhas em uma tela de cada vez, então 25% delas são 25 linhas, para que você possa definir um mapeamento de teclas como algo como J e K maiúsculas para subir e descer rapidamente 25 linhas
Se você quiser pular para a marca de um quarto do arquivo inteiro, digite no modo normal:
fonte
noremap J 25j
codifica o valor25
assim, quando, por exemplo, você divide horizontalmente uma janela de 100 linhas, seu mapeamento realmente navegará em 50% das novas janelas. Sobre a sua segunda opção,:25%
eu não sabia que existia, mas pelos meus testes parece que ele coloca o cursor em uma posição com base na primeira linha: se eu tenho um buffer de 100 linhas e quero avançar 25%, a digitação:25%
me trará na linha 25, não importa onde estava meu cursor. Além disso, você poderia colocar o tópico de ajuda que descreve esse recurso que não consigo encontrar no documento?:h N%
:-)