Mercurial > vim
view src/testdir/test_scroll_opt.vim @ 30610:6c6ac189a05f v9.0.0640
patch 9.0.0640: cannot scroll by screen line if a line wraps
Commit: https://github.com/vim/vim/commit/f6196f424474e2a9c160f2a995fc2691f82b58f9
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Oct 2 21:29:55 2022 +0100
patch 9.0.0640: cannot scroll by screen line if a line wraps
Problem: Cannot scroll by screen line if a line wraps.
Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y
so far.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 02 Oct 2022 22:30:15 +0200 |
parents | 08940efa6b4e |
children | 70d6345a2976 |
line wrap: on
line source
" Test for reset 'scroll' and 'smoothscroll' source check.vim source screendump.vim func Test_reset_scroll() let scr = &l:scroll setlocal scroll=1 setlocal scroll& call assert_equal(scr, &l:scroll) setlocal scroll=1 setlocal scroll=0 call assert_equal(scr, &l:scroll) try execute 'setlocal scroll=' . (winheight(0) + 1) " not reached call assert_false(1) catch call assert_exception('E49:') endtry split let scr = &l:scroll setlocal scroll=1 setlocal scroll& call assert_equal(scr, &l:scroll) setlocal scroll=1 setlocal scroll=0 call assert_equal(scr, &l:scroll) quit! endfunc func Test_smoothscroll_CtrlE_CtrlY() CheckScreendump let lines =<< trim END vim9script setline(1, [ 'line one', 'word '->repeat(20), 'line three', 'long word '->repeat(7), 'line', 'line', 'line', ]) set smoothscroll :5 END call writefile(lines, 'XSmoothScroll', 'D') let buf = RunVimInTerminal('-S XSmoothScroll', #{rows: 12, cols: 40}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_2', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_3', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_4', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_5', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_6', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_7', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_8', {}) call StopVimInTerminal(buf) endfunc " vim: shiftwidth=2 sts=2 expandtab