Mildly more readable statusline code.
authorIain Patterson <me@iain.cx>
Wed, 5 Feb 2014 10:50:09 +0000 (10:50 +0000)
committerIain Patterson <me@iain.cx>
Mon, 10 Feb 2014 17:07:09 +0000 (17:07 +0000)
Explain what the local variables are for and make it explicitly clear
when we are changing highlight group.

.vimrc

diff --git a/.vimrc b/.vimrc
index 4607a5e..bc459b3 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -894,8 +894,17 @@ fun! Show_StatusLine() "{{{2
     return
   endif
   call Iain_Vars()
-  let l:sl1='%2n\:\ %<%1*%f%0*\ [%{Show_Encoding()}%{Show_List()}%{Show_Bind()}%{Show_Case()}%{Show_Tabstop()}%{Show_Paste()}%{Show_VirtualEdit()}%{Show_Undo()}%Y%M%R%{Show_SearchForward()}]%{Show_Alt()}\ '
-  let l:sl3='%{Show_Marks()}L:%1*%4.6l%0*/%-4.6L\ C:%1*%3.6c%V%0*\ \|\ %P'
+
+  " User{N} highlights %{N}*.
+  " Named highlight groups %#group% aren't available until Vim 7.
+  let l:normal = '%0*'
+  let l:bold = '%1*'
+
+  " sl1 contains left-aligned stuff.
+  " sl2 contains stuff shown only when verbose mode is enabled.
+  " sl3 contains right-aligned stuff.
+  let l:sl1='%2n\:\ %<' . l:bold . '%f' . l:normal . '\ [%{Show_Encoding()}%{Show_List()}%{Show_Bind()}%{Show_Case()}%{Show_Tabstop()}%{Show_Paste()}%{Show_VirtualEdit()}%{Show_Undo()}%Y%M%R%{Show_SearchForward()}]%{Show_Alt()}\ '
+  let l:sl3='%{Show_Marks()}L:' . l:bold . '%4.6l' . l:normal . '/%-4.6L\ C:' . l:bold . '%3.6c%V' . l:normal . '\ \|\ %P'
   let l:hexformat='%b'
   if b:iainhex
     let l:hexformat='0\x%02B'