From 882ab357864842f7e61eaeb283611ed4b4470985 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Thu, 18 Dec 2014 15:52:09 +0100 Subject: [focus] Color inactive windows (vim >= 7.3 ..) --- vimrc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/vimrc b/vimrc index e6e3886..5853196 100644 --- a/vimrc +++ b/vimrc @@ -76,6 +76,35 @@ set autowrite " default error format "set efm=\"%f\"\\,\ line\ %l:\ error\ %m,\"%f\"\\,\ line\ %l:\ warning\ %m +" Dim inactive windows using 'colorcolumn' setting +" This tends to slow down redrawing, but is very useful. +" Based on https://groups.google.com/d/msg/vim_use/IJU-Vk-QLJE/xz4hjPjCRBUJ +" XXX: this will only work with lines containing text (i.e. not '~') +if v:version > 703 +function! s:DimInactiveWindows() + for i in range(1, tabpagewinnr(tabpagenr(), '$')) + let l:range = "" + if i != winnr() + if &wrap + " HACK: when wrapping lines is enabled, we use the maximum number + " of columns getting highlighted. This might get calculated by + " looking for the longest visible line and using a multiple of + " winwidth(). + let l:width=256 " max + else + let l:width=winwidth(i) + endif + let l:range = join(range(1, l:width), ',') + endif + call setwinvar(i, '&colorcolumn', l:range) + endfor +endfunction +augroup DimInactiveWindows + au! + au WinEnter * call s:DimInactiveWindows() +augroup END +endif + " remaps C-j & C-k to C-y and C-e (buffer up/down line-by-line) noremap noremap -- cgit v1.2.3