X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.vimrc;h=6ee41142e5decfed2cca3e14064a60074237b202;hp=500794f8aa5f5aa1cf85c8ef24b2989d12dac788;hb=46bbc452f2992d7631eaf98c1c80f10cd883ce08;hpb=832c2a2fe8a769c0fe7d8d441148fbf82e762a4c diff --git a/.vimrc b/.vimrc index 500794f..6ee4114 100644 --- a/.vimrc +++ b/.vimrc @@ -456,6 +456,10 @@ endif if version >= "600" version 6.0 +if has("win32") + se encoding=utf-8 +endif + " Remember quickfix state. let g:quickfixing=0 @@ -641,9 +645,15 @@ fun! Cycle_Signs(resize) if g:marksigns " Signs to highlight marks. " Syntax won't work properly in Vim 6. - sign define MarkDash text=' texthl=MarkSign - sign define MarkDot text=* texthl=MarkDot - sign define MarkQuote text=" texthl=MarkSign + if Has_Unicode() + sign define MarkDash text=’ texthl=MarkSign + sign define MarkDot text=• texthl=MarkDot + sign define MarkQuote text=” texthl=MarkSign + else + sign define MarkDash text=' texthl=MarkSign + sign define MarkDot text=* texthl=MarkDot + sign define MarkQuote text=" texthl=MarkSign + endif sign define MarkCaret text=^ texthl=MarkDot sign define MarkLess text=< texthl=MarkSign sign define MarkGreater text=> texthl=MarkSign @@ -729,10 +739,30 @@ fun! Cycle_Signs(resize) endif endfun +fun! Has_Unicode() + if ! has('multi_byte') + return 0 + endif + + if version < "602" + return 0 + endif + + if &tenc =~? '^u\(tf\|cs\)' + return 1 + endif + + if ! strlen(&tenc) && &enc =~? '^u\(tf\|cs\)' + return 1 + endif + + return 0 +endfun + " Change list mode. fun! Cycle_List() " Pretty UTF-8 listchars. - if has('multi_byte') && (&tenc =~? '^u\(tf\|cs\)' || (! strlen(&tenc) && &enc =~? '^u\(tf\|cs\)')) && v:version >= "602" + if Has_Unicode() let basic='tab:»·,trail:…,extends:«,precedes:»' let eol='eol:¶' if version >= "700" @@ -748,6 +778,7 @@ fun! Cycle_List() call Iain_Vars() let b:iainlist = b:iainlist + 1 if b:iainlist > 2 + call Resize_Columns("-", 1) let b:iainlist = 0 endif if b:iainlist == 0 @@ -756,6 +787,7 @@ fun! Cycle_List() exec "set lcs=" . basic set list else + call Resize_Columns("+", 1) exec "set lcs=" . basic . "," . eol set list endif