Я часто нахожу прокрутку полной страницы слишком дезориентирующей, полстраницы слишком большой, но четверть страницы - это как раз то, что нужно. В настоящее время я делаю это, просто удерживая клавиши со стрелками.
Как мне легко прокрутить 25% страницы вниз и вверх?
cursor-movement
scrolling
Луи Хонг
источник
источник
Ответы:
Может быть ctrldи ctrluможет быть то, что вы ищете. По умолчанию они перемещают половину экрана.
От
:h CTRL-D
:Это означает, что в первый раз, когда вы хотите прокрутить окно, вы можете сделать, XXctrldгде XX - это 25% от числа строк в вашем окне. Когда он устанавливает
scroll
значение XX, вы можете использовать ctrldи ctrluдля перемещения 25% экрана.Кроме того, я думаю, что это
:h scrolling
может быть интересно для вас.редактировать
А вот еще одно решение с функцией и некоторыми сопоставлениями, которые нужно добавить к вашему
.vimrc
:Функция получит высоту текущего окна и соответственно ее параметру прокрутит экран вверх или вниз на четверть высоты.
Сопоставления вызовут функцию: первый поднимется, а второй снизится.
Конечно, вы можете изменить
<up>
и<down>
некоторые другие клавиши, если хотите сохранить поведение клавиш со стрелками по умолчанию.источник
ctrl-E
иctrl-Y
в отображениях, потому что а). тогда у вас есть отдельные сочетания клавиш для прокрутки на 1/2 страницы и 1/4 страницы. б). поведениеctrl-U
/ctrl-D
согласованно и не зависит от того, использовали ли вы ранее отображение.let key="^U"
в которой часть между двойными кавычками должна представлять код клавишиctrl+u
. Поэтому, если вы скопировали функцию в vim, наведите курсор на первую двойную кавычку,ci"
чтобы изменить содержимое кавычек, а затем нажмите,ctrl+v
а затемctrl+u
на ту же строкуlet key="^D"
.let key="^Y"
вместоlet key="^U"
. Это создаст то же поведение, но не влияет на'scroll'
настройку.Вы можете использовать ctrleи ctrlyдля перемещения страницы на одну строку вверх и вниз.
Затем, если вы хотите, чтобы +/- 25% было перемещено, вы можете использовать его, 20ctrleи это сместит вас на 20 строк вниз.
Вот также хороший объясненный вопрос, который похож на ваш: /programming/3458689/how-to-move-screen-without-moving-cursor-in-vim
источник
Я неизмененном statox подход так прокручивает более последовательно над linewraps. Если вы хотите четверть шага, измените 0,618 обратно на 0,25 или что-то еще.
источник
Если вы хотите получить хороший общий ответ, а не точные 25%, вы можете рассчитать нормальное число строк на странице, поделив его на 25 и установив некоторые системные сопоставления. Например, если у вас обычно около 100 строк на экране за раз, тогда 25% от этого - 25 строк, так что вы можете установить отображение клавиш на что-то вроде вашей заглавной буквы J и K для быстрого перемещения вверх и вниз на 25 строк
Если вы хотите просто перейти на четвертую отметку всего файла, то в обычном режиме просто наберите:
источник
noremap J 25j
жестко кодировать значение,25
поэтому, когда, например, вы горизонтально разбиваете окно на 100 строк, ваше отображение фактически перемещается в 50% новых окон. Что касается вашего второго варианта,:25%
я не знал, что он существует, но из моих тестов кажется, что он помещает курсор в позицию, основанную на первой строке: если у меня есть буфер на 100 строк, и я хочу переместиться на 25%, ввод текста:25%
приведет меня в строке 25 независимо от того, где был мой курсор. Также не могли бы вы поместить раздел справки, описывающий эту функцию, которую я не могу найти в документе?:h N%
:-)