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


17

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

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

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

Ответы:


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'

-1

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

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


Я отредактировал ответ, потому что он появился в очереди «первый пост», чтобы сделать его читабельным (форматирование было ужасным), но я не увидел, что это просто дубликат ответа Кристиана.
statox
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.