view src/testdir/test61.in @ 7564:aee06f1762e0 v7.4.1082

commit https://github.com/vim/vim/commit/858b96f382eeb8f1eab5100639e7b09523a6a2a1 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 10 16:12:24 2016 +0100 patch 7.4.1082 Problem: The Tcl interface is always skipping memory free on exit. Solution: Only skip for dynamically loaded Tcl.
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Jan 2016 16:15:06 +0100
parents bc269cf15ccd
children
line wrap: on
line source

Tests for undo tree.
Since this script is sourced we need to explicitly break changes up in
undo-able pieces.  Do that by setting 'undolevels'.
Also tests :earlier and :later.

STARTTEST
:echo undotree().entries
ENDTEST

STARTTEST
:" Delete three characters and undo
Gx:set ul=100
x:set ul=100
x:.w! test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
:"
:/^111/w >>test.out
:" Delete three other characters and go back in time step by step
$x:set ul=100
x:set ul=100
x:.w >>test.out
:sleep 1
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
10g+:.w >>test.out
:"
:/^222/w >>test.out
:" Delay for three seconds and go some seconds forward and backward
:sleep 2
Aa:set ul=100
Ab:set ul=100
Ac:set ul=100
:.w >>test.out
:ear 1s
:.w >>test.out
:ear 3s
:.w >>test.out
:later 1s
:.w >>test.out
:later 1h
:.w >>test.out
:"
:" test undojoin
Goaaaa:set ul=100
obbbbu:.w >>test.out
obbbb:set ul=100
:undojoin
occccu:.w >>test.out
:e! Xtest
ione one one:set ul=100
:w!
otwo:set ul=100
otwo:set ul=100
:w
othree:earlier 1f
:" expect "one one one\ntwo\ntwo"
:%yank a
:earlier 1f
:" expect "one one one"
:%yank b
:earlier 1f
:" expect empty line
:%yank c
:later 1f
:" expect "one one one"
:%yank d
:later 1f
:" expect "one one one\ntwo\ntwo"
:%yank e
:later 1f
:" expect "one one one\ntwo\ntwo\nthree"
ggO---:0put e
ggO---:0put d
ggO---:0put c
ggO---:0put b
ggO---:0put a
ggO---:w >>test.out
:so small.vim
:set nocp viminfo+=nviminfo
:enew!
oa:
:set ul=100
ob:
:set ul=100
o1a2=setline('.','1234')

uu:"
oc:
:set ul=100
o1a2=setline('.','1234')

u:"
od:
:set ul=100
o1a2=string(123)
u:"
:%w >>test.out
:qa!
ENDTEST

1111 -----
2222 -----

123456789