fun! Number(resize) "{{{2
call Iain_Vars()
let &number = ! &number
+ if version >= 703
+ let &relativenumber = &number
+ endif
" Ensure we keep track of any extra columns even if we aren't resizing.
" This prevents confusion when number is set at startup.
call Iain_Vars()
let b:iainalt = ! b:iainalt
call Show_StatusLine()
-endfun "{{{2
+endfun "}}}2
" To be overridden later if applicable.
fun! Extra_Whitespace_Match() "{{{2
" Remove persistent undo file with \U.
call Mapping("U", ":call <SID>Clear_Undo()<CR>")
-" Toggle gundo window with \g.
-call Mapping("g", ":call gundo#GundoToggle()<CR>")
+" Toggle Undotree window with \g.
+call Mapping("g", ":UndotreeToggle<CR>")
+" Switch to Undotree window with \G.
+call Mapping("g", ":UndotreeToggle<CR>")
+" Undotree gets focus.
+let g:undotree_SetFocusWhenToggle=1
+" Undotree uses context diff.
+let g:undotree_DiffCommand="diff -u"
+" Undotree bullet.
+if Has_Unicode()
+ let g:undotree_TreeNodeShape="•"
+endif
+" Undotree bindings emulate Gundo.
+fun! g:Undotree_CustomMap() "{{{2
+ nmap <buffer> k <plug>UndotreeGoNextState
+ nmap <buffer> j <plug>UndotreeGoPreviousState
+ nmap <buffer> K <plug>UndotreeGoNextSaved
+ nmap <buffer> J <plug>UndotreeGoPreviousSaved
+ nmap <buffer> <CR> <plug>UndotreeFocusTarget
+endfun "}}}2
+
" Use a persistent undo file if it exists.
fun! <SID>Check_Undo() "{{{2