Como pular para o meio do buffer

17

Pressionando gge Gvocê pode pular para as duas extremidades de um buffer.

42G pula para a linha 42.

Existe algum gatalho rápido para pular para o meio do buffer. Algo como aproximadamente round(number of lines/2)G?

Delapouite
fonte

Respostas:

33

Você pode usar N%para pular para a enésima porcentagem do arquivo. Por exemplo, 50%pula aproximadamente para o meio do buffer. Veja a ajuda em:h N%

Christian Brabandt
fonte
3

Eu uso esses mapeamentos em minhas próprias configurações:

nnoremap <expr> M (line('$')/2).'G'
xnoremap <expr> M (line('$')/2).'G'
onoremap <expr> M (line('$')/2).'G'

É bem simples, ele simplesmente avalia a expressão (line('$')/2).'G'antes de executar o mapeamento. line('$')é o número da última linha no buffer, que dividimos por dois. Em seguida, .'G'apenas adiciona 'G' à string resultante.

Se você gosta de usar o padrão M(meio da tela visível), pode fazer deste um mapeamento de líder para não substituí-lo. Por exemplo:

nnoremap <expr> <leader>m (line('$')/2).'G'
xnoremap <expr> <leader>m (line('$')/2).'G'
onoremap <expr> <leader>m (line('$')/2).'G'
DJMcMayhem
fonte
-1

Você pode usar N%para pular para a enésima porcentagem do arquivo. Por exemplo, 50%pula aproximadamente para o meio do buffer.

Veja a ajuda em :h N%

user10351
fonte
Editei a resposta porque ela apareceu na fila do "primeiro post" para torná-la legível (a formatação foi terrível), mas não vi que fosse apenas uma duplicata da resposta de Christian.
statox