LINUX.ORG.RU

Прокрутка в консольных редакторах

 , ,


0

2

Почему почти все консольных редакторы(vim, emacs, nano) при прокрутки вниз(PageDown) на новой странице оставляют 2 строчки предидущей страницы? Вот, например, kate пролистывает четко на кол-во строчек умещающихся на экране. Как сделать, например, в vim, чтобы прокрутка была ровно на кол-во строчек, умещающихся на экране?

Почему почти все консольных редакторы(vim, emacs, nano) при прокрутки вниз(PageDown) на новой странице оставляют 2 строчки предидущей страницы?

Потому что это правильно и удобно.

Siado ★★★★★
()

Потому что эргономично и правильно.

beastie ★★★★★
()
Ответ на: комментарий от Siado

Правильно и удобно, потому что возникает визуальная связь с предидущей страницей в виде показа 2 строчек с предидущей страницы?

plgrm44
() автор топика
Ответ на: комментарий от Niroday

функция ScrollQuarter в конфиге приводит к другим результатам: клавиша стрелка-вперед и стрелка-назад перемещают курсор либо в начало строки либо в конец.

plgrm44
() автор топика
Ответ на: комментарий от plgrm44

у меня опция so не меняет показ количество строчек старой страницы при прокрутки, а перемещает курсор на новой странице на количество строчек указанных в so.

plgrm44
() автор топика
Ответ на: комментарий от plgrm44

А ты все прочитал, до конца?

Important note On the lines let key=«^Y» and let key=«^E», you have to enter manually ^Y and ^E. To do so use the key combinations CTRL+vCTRL+y and CTRL+vCTRL+e. If you simply copy these lines vim will understand the command as the literal characters ^ followed by y whereas what we want is Vim to use the keycode ^Y which represent the code sent by the terminal when you press ctrly

Niroday
()
Ответ на: комментарий от plgrm44

Из моего конфига:

function! ScrollQuarter(move)
    let height=winheight(0)

    if a:move == 'up'
        let key="^Y"
    else
        let key="^E"
    endif

    execute 'normal! ' . height . key
endfunction

nnoremap <silent> <PageUp> :call ScrollQuarter('up')<CR>
nnoremap <silent> <PageDown> :call ScrollQuarter('down')<CR>
По PageUp, PageDown листаю полную страницу.

Niroday
()
Ответ на: комментарий от plgrm44

Я биндил height/3 для удобства. Скроллом полной страницы не пользуюсь.

Niroday
()

Раз уж тут собрались гуру написания конфигов вима, а расскажите ещё, пожалуйста, как отклюить хоткеи u и U в визуальном режиме, которые превращают выделенное в lower или upper case? И одновременно выполняют ф-ю undo если ничего не выделено. Очень трудно понять каким же нужно было быть кретином чтобы наделать такие хоткеи.

anonymous
()

Прокрутка ненужна! ed рулит!

saahriktu ★★★★★
()

почти все консольных редакторы
предидущей

Если не умеешь говорить и писать по-русски, то хоть старайся и проверяй что пишешь. Читать больно, особенно рассогласование падежей.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Очень трудно понять каким же нужно было быть кретином чтобы наделать такие хоткеи

Конечно, трудно понять что-то с заведомо ложными установками. Потому что кретин в этой ситуации именно ты.

anonymous
()

Как сделать, например, в vim, чтобы прокрутка была ровно на кол-во строчек, умещающихся на экране?

set scrolloff=0 " rows number to show while scrolling

Но я предпочитаю видеть 5 строк снизу и сверху.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Что

set scrolloff=0

не делает

Как сделать, например, в vim, чтобы прокрутка была ровно на кол-во строчек, умещающихся на экране

Niroday
()
Ответ на: комментарий от Niroday

set scrolloff=0

Делает ровно то, на что рассчитан.

Как сделать, например, в vim, чтобы прокрутка была ровно на кол-во строчек, умещающихся на экране

Спасибо. Еечь о c-b / c-f, которые скроллируют страницу несколько «иначе», с потерей контекста?

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Спасибо. Еечь о c-b / c-f, которые скроллируют страницу несколько «иначе», с потерей контекста?

Не только <C-b> и <C-f>, но и PageUp/Down скроллят не всю страницу по умолчанию, а (все_строки_умещающиеся_в_окне - 2).

Niroday
()

тоже не понимаю удобства такого поведения и удобства, в книгах тогда тоже нужно на страницах повторять что было на предыдущей ? )
а уж как libreoffice writer реагирует на PgDn это вообще за гранью логики, хотя он весь такой

x905 ★★★★★
()
Ответ на: комментарий от Niroday

но и PageUp/Down скроллят не всю страницу по умолчанию

Не использую ни pgup/pgdn, ни arrow keys, ни backspace/delete.

andreyu ★★★★★
()
Ответ на: комментарий от peregrine

Простите, дяденька, засранца! P.S: Вы это хотели услышать?

plgrm44
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.