Я часто вважаю, що прокрутка повної сторінки занадто дезорієнтує, половину сторінки занадто багато, але чверть сторінки - це правильно. Я зараз це роблю, просто утримуючи клавіші зі стрілками.
Як я легко прокручую 25% сторінки вниз і вгору?
Я часто вважаю, що прокрутка повної сторінки занадто дезорієнтує, половину сторінки занадто багато, але чверть сторінки - це правильно. Я зараз це роблю, просто утримуючи клавіші зі стрілками.
Як я легко прокручую 25% сторінки вниз і вгору?
Відповіді:
Можливо, ctrldі ctrluможе бути тим, що ви шукаєте. За замовчуванням вони переміщують половину екрана.
Від :h CTRL-D
:
Прокрутіть вікно вниз у буфері. Кількість рядків походить від параметра "прокручування" (за замовчуванням: половина екрана).
Якщо [count] задано, спочатку встановіть опцію 'scroll' на [count].
Це означає, що перший раз, коли ви хочете прокручувати вікно, ви можете робити XXctrldтам, де XX - це 25% від кількості рядків у вашому вікні. Після встановлення scroll
значення XX ви можете використовувати ctrldта ctrluпереміщувати 25% екрана.
Також я думаю, що :h scrolling
може бути цікавим для вас.
Редагувати
Ось ще одне рішення з функцією та деякими відображеннями, які слід додати до вашого .vimrc
:
function! ScrollQuarter(move)
let height=winheight(0)
if a:move == 'up'
let key="\<C-Y>"
else
let key="\<C-E>"
endif
execute 'normal! ' . height/4 . key
endfunction
nnoremap <silent> <up> :call ScrollQuarter('up')<CR>
nnoremap <silent> <down> :call ScrollQuarter('down')<CR>
Функція отримає висоту поточного вікна, і відповідно до його параметра буде прокручуватися екран вгору або вниз на чверть висоти.
Відображення буде викликати функцію, перша - вгору, а друга - вниз.
Звичайно, ви можете змінити <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
Я варіював підхід статистики, так що він прокручується більш послідовно по рядках. Якщо потрібно четвертий крок, змініть 0,618 назад на 0,25 або що завгодно.
function! ScrollGolden(move)
let height=winheight(0)
if a:move == 'up'
let prep='L'
" let key="^Y"
let key='gk'
let post='zb'
elseif a:move == 'down'
let prep='H'
" let key="^E"
let key='gj'
let post='zt'
endif
execute 'normal! ' . prep . float2nr(round(height*0.618)) . key . post
endfunction
nnoremap <silent> <BS> :call ScrollGolden('up')<CR>
nnoremap <silent> <Space> :call ScrollGolden('down')<CR>
Якщо ви хочете отримати хорошу загальну відповідь, а не точну 25%, ви можете підрахувати нормальну кількість рядків на сторінці поділити на 25 і встановити деякі системні відображення. Наприклад, якщо у вас на екрані одночасно близько 100 рядків, то 25% - це 25 рядків, щоб ви могли встановити відображення клавіш на щось на зразок капіталу J і K для швидкого переміщення вгору і вниз на 25 рядків
noremap J 25j
noremap K 25k
Якщо ви хочете просто перейти до чверті позначки всього файлу, тоді в звичайному режимі просто введіть:
25%
noremap J 25j
жорсткі коди значення, 25
таким чином, якщо, наприклад, ви горизонтально розділили вікно на 100 рядків, ваше відображення фактично переміститься до 50% нових вікон. З приводу вашого другого варіанту :25%
я не знав, що він існує, але з моїх тестів видно, що він виставляє курсор на позицію, засновану на першому рядку: якщо у мене буфер 100 рядків і я хочу рухатись на 25% введення, введіть :25%
мене по лінії 25 незалежно від того, де був мій курсор. Також можете, будь ласка, помістити тему довідки, що описує цю функцію, я не можу її знайти в документі?