Как перейти к середине буфера

17

При нажатии ggи Gвы можете перейти к обоим концам буфера.

42G прыгает на линию 42.

Есть ли быстрый gярлык для перехода к середине буфера. Что-то вроде грубо round(number of lines/2)G?

Delapouite
источник

Ответы:

33

Вы можете использовать, N%чтобы перейти к N-му проценту файла. Так, например, 50%прыгает примерно до середины буфера. Смотрите помощь на:h N%

Кристиан Брабандт
источник
3

Я использую эти сопоставления в своих собственных настройках:

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

Это довольно просто, оно просто оценивает выражение (line('$')/2).'G'перед запуском отображения. line('$')это номер последней строки в буфере, который мы делим на два. Затем .'G'просто добавляет 'G' к результирующей строке.

Если вам нравится использовать значение по умолчанию M(середина видимого экрана), вы можете сделать это сопоставлением лидеров, чтобы не перезаписывать его. Например:

nnoremap <expr> <leader>m (line('$')/2).'G'
xnoremap <expr> <leader>m (line('$')/2).'G'
onoremap <expr> <leader>m (line('$')/2).'G'
DJMcMayhem
источник
-1

Вы можете использовать, N%чтобы перейти к N-му проценту файла. Так, например, 50%прыгает примерно до середины буфера.

Смотрите помощь на :h N%

user10351
источник
Я отредактировал ответ, потому что он появился в очереди «первый пост», чтобы сделать его читабельным (форматирование было ужасным), но я не увидел, что это просто дубликат ответа Кристиана.
statox