X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.vimrc;h=b601e41589ebed85bc7e8caa4ae2c2bd048add06;hp=cc97b1ea69b689750cac1bb79a62da4902f39cea;hb=b665fb11d26668118e05211aa22b2cf428e5358e;hpb=ab05dae25906f0be91b6baa49afbeb48cdb9e429 diff --git a/.vimrc b/.vimrc index cc97b1e..b601e41 100644 --- a/.vimrc +++ b/.vimrc @@ -386,6 +386,9 @@ endfun "}}}2 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. @@ -737,7 +740,7 @@ fun! Show_List() "{{{2 elseif Has_Unicode() if w:iainlist == 1 " Just tabs. - return "»" + return "⇥" else " Full list. return "¶" @@ -773,7 +776,15 @@ endfun "}}}2 " Helper for status line. " Show the size of the tabstop. fun! Show_Tabstop() "{{{2 - return &ts + if &et + return &ts + else + if Has_Unicode() + return &ts . "↹" + else + return &ts . "\\" + fi + endif endfun "}}}2 " Helper for status line. @@ -921,9 +932,9 @@ fun! Show_Space() "{{{2 let l:ret = GetSpaceMovement() if l:ret != "" if Has_Unicode() - let l:ret = "␠" . l:ret . Show_SearchForward() + let l:ret = "▭" . l:ret . Show_SearchForward() else - let l:ret "[" . l:ret . Show_SearchForward() . "]" + let l:ret = "[" . l:ret . Show_SearchForward() . "]" endif endif return l:ret @@ -1193,7 +1204,7 @@ endfun "}}}2 fun! Cycle_List() "{{{2 " Pretty UTF-8 listchars. if Has_Unicode() - let basic='tab:»·,trail:…,extends:«,precedes:»' + let basic='tab:⇥·,trail:…,extends:«,precedes:»' let eol='eol:¶' if version >= "700" let basic=basic . ',nbsp:•' @@ -1256,7 +1267,7 @@ fun! Cycle_Alt() "{{{2 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 @@ -1335,7 +1346,15 @@ endfun "}}}2 " Tab line. fun! Show_TabLine() "{{{2 - let l:s = "%#TabLineFill#Tabs:" + let l:colwidth = &numberwidth + if g:marksigns + let l:colwidth += 2 + endif + if &diff == 1 + let l:colwidth += 2 + endif + let l:fmt = printf("%%s%% %ds", l:colwidth) + let l:s = printf(l:fmt, "%#TabLineFill#", "Tabs ") let l:i = 0 while l:i < tabpagenr("$") @@ -1540,8 +1559,27 @@ call Mapping("u", ":call Cycle_Undo()") " Remove persistent undo file with \U. call Mapping("U", ":call Clear_Undo()") -" Toggle gundo window with \g. -call Mapping("g", ":call gundo#GundoToggle()") +" Toggle Undotree window with \g. +call Mapping("g", ":UndotreeToggle") +" Switch to Undotree window with \G. +call Mapping("g", ":UndotreeToggle") +" 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 k UndotreeGoNextState + nmap j UndotreeGoPreviousState + nmap K UndotreeGoNextSaved + nmap J UndotreeGoPreviousSaved + nmap UndotreeFocusTarget +endfun "}}}2 + " Use a persistent undo file if it exists. fun! Check_Undo() "{{{2