From f7c35d77ef11450a1d61a8ad659d676771c8beb9 Mon Sep 17 00:00:00 2001 From: Akelge Date: Thu, 11 Apr 2013 15:36:38 +0000 Subject: [PATCH] Updated plugins Added solarize colorscheme --- vim/.VimballRecord | 2 +- vim/GetLatest/GetLatestVimScripts.dat | 2 +- vim/autoload/Align.vim | 68 +- vim/autoload/AlignMaps.vim | 86 +-- vim/colors/solarized.vim | 969 ++++++++++++++++++++++++++ vim/doc/Align.txt | 396 +++++------ vim/doc/tags | 2 + vim/gvimrc | 2 +- vim/plugin/AlignMapsPlugin.vim | 234 ++++--- vim/plugin/AlignPlugin.vim | 6 +- vim/plugin/cecutil.vim | 260 ++++--- vim/vimrc | 20 +- 12 files changed, 1554 insertions(+), 493 deletions(-) create mode 100644 vim/colors/solarized.vim diff --git a/vim/.VimballRecord b/vim/.VimballRecord index 078df91..810d46b 100644 --- a/vim/.VimballRecord +++ b/vim/.VimballRecord @@ -1,7 +1,7 @@ conque_2.0.vba: call delete('/Users/andre/.vim/doc/conque_term.txt')|call delete('/Users/andre/.vim/syntax/conque_term.vim')|call delete('/Users/andre/.vim/autoload/conque_term/conque_screen.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_win32_util.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_shared_memory.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_wrapper.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_communicator.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_globals.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term.vim')|call delete('/Users/andre/.vim/plugin/conque_term.vim') conqueterm_2.2.vmb: call delete('/Users/andre/.vim/autoload/conque_term.vim')|call delete('/Users/andre/.vim/autoload/conque_term/conque_globals.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_screen.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_communicator.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_shared_memory.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_sole_wrapper.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_subprocess.py')|call delete('/Users/andre/.vim/autoload/conque_term/conque_win32_util.py')|call delete('/Users/andre/.vim/doc/conque_term.txt')|call delete('/Users/andre/.vim/plugin/conque_term.vim')|call delete('/Users/andre/.vim/syntax/conque_term.vim') -Align.vba: call delete('/Users/andre/.vim/plugin/AlignPlugin.vim')|call delete('/Users/andre/.vim/plugin/AlignMapsPlugin.vim')|call delete('/Users/andre/.vim/plugin/cecutil.vim')|call delete('/Users/andre/.vim/doc/Align.txt')|call delete('/Users/andre/.vim/autoload/Align.vim')|call delete('/Users/andre/.vim/autoload/AlignMaps.vim') cecutil.vba: call delete('/Users/andre/.vim/plugin/cecutil.vim')|call delete('/Users/andre/.vim/doc/cecutil.txt') getscript.vba: call delete('/Users/andre/.vim/plugin/getscriptPlugin.vim')|call delete('/Users/andre/.vim/autoload/getscript.vim')|call delete('/Users/andre/.vim/GetLatest/GetLatestVimScripts.dist')|call delete('/Users/andre/.vim/doc/pi_getscript.txt') textformat.vba: call delete('/Users/andre/.vim/autoload/textformat.vim')|call delete('/Users/andre/.vim/doc/textformat.txt')|call delete('/Users/andre/.vim/plugin/textformat.vim') open_terminal.vba: call delete('/Users/andre/.vim/plugin/open_terminal.vim')|call delete('/Users/andre/.vim/doc/open_terminal.txt') +Align.vba: call delete('/Users/andre/.vim/plugin/AlignPlugin.vim')|call delete('/Users/andre/.vim/plugin/AlignMapsPlugin.vim')|call delete('/Users/andre/.vim/plugin/cecutil.vim')|call delete('/Users/andre/.vim/doc/Align.txt')|call delete('/Users/andre/.vim/autoload/Align.vim')|call delete('/Users/andre/.vim/autoload/AlignMaps.vim') diff --git a/vim/GetLatest/GetLatestVimScripts.dat b/vim/GetLatest/GetLatestVimScripts.dat index 2972490..eb15428 100644 --- a/vim/GetLatest/GetLatestVimScripts.dat +++ b/vim/GetLatest/GetLatestVimScripts.dat @@ -2,7 +2,7 @@ ScriptID SourceID Filename -------------------------- 910 18164 :AutoInstall: pydoc.vim 2771 16279 :AutoInstall: conque_term.vim -294 18148 :AutoInstall: Align.vim +294 19633 :AutoInstall: Align.vim 1066 7618 :AutoInstall: cecutil.vim 642 15781 :AutoInstall: getscript.vim 2324 9247 :AutoInstall: TextFormat diff --git a/vim/autoload/Align.vim b/vim/autoload/Align.vim index e393584..714421e 100644 --- a/vim/autoload/Align.vim +++ b/vim/autoload/Align.vim @@ -1,10 +1,10 @@ " Align: tool to align multiple fields based on one or more separators -" Author: Charles E. Campbell, Jr. -" Date: Jun 18, 2012 -" Version: 36 +" Author: Charles E. Campbell +" Date: Mar 12, 2013 +" Version: 37 " GetLatestVimScripts: 294 1 :AutoInstall: Align.vim " GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim -" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1 +" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright " notice is copied with it. Like anything else that's free, @@ -25,7 +25,7 @@ if exists("g:loaded_Align") || &cp finish endif -let g:loaded_Align = "v36" +let g:loaded_Align = "v37" if v:version < 700 echohl WarningMsg echo "***warning*** this version of Align needs vim 7.0" @@ -43,7 +43,11 @@ set cpo&vim " --------------------------------------------------------------------- " Options: {{{1 if !exists("g:Align_xstrlen") - if &enc == "latin1" || $LANG == "en_US.UTF-8" || !has("multi_byte") + if exists("g:drawit_xstrlen") + let g:Align_xstrlen= g:drawit_xstrlen + elseif exists("g:netrw_xstrlen") + let g:Align_xstrlen= g:netrw_xstrlen + elseif &enc == "latin1" || !has("multi_byte") let g:Align_xstrlen= 0 else let g:Align_xstrlen= 1 @@ -529,19 +533,19 @@ fun! Align#Align(hasctrl,...) range " call Decho(" ") " call Decho("---- Pass ".pass.": ----") - let line= begline - while line <= endline + let curline= begline + while curline <= endline " Process each line - let txt = getline(line) + let txt = getline(curline) " call Decho(" ") -" call Decho("Pass".pass.": Line ".line." <".txt.">") +" call Decho("Pass".pass.": Line ".curline." <".txt.">") " AlignGPat support: allows a selector pattern (akin to g/selector/cmd ) if exists("s:AlignGPat") " call Decho("Pass".pass.": AlignGPat<".s:AlignGPat.">") if match(txt,s:AlignGPat) == -1 " call Decho("Pass".pass.": skipping") - let line= line + 1 + let curline= curline + 1 continue endif endif @@ -551,7 +555,7 @@ fun! Align#Align(hasctrl,...) range " call Decho("Pass".pass.": AlignVPat<".s:AlignVPat.">") if match(txt,s:AlignVPat) != -1 " call Decho("Pass".pass.": skipping") - let line= line + 1 + let curline= curline + 1 continue endif endif @@ -559,12 +563,12 @@ fun! Align#Align(hasctrl,...) range " Always skip blank lines if match(txt,'^\s*$') != -1 " call Decho("Pass".pass.": skipping") - let line= line + 1 + let curline= curline + 1 continue endif " Extract visual-block selected text (init bgntxt, endtxt) - let txtlen= s:Strlen(txt) + let txtlen= s:Strlen(txt) if begcol > 0 " Record text to left of selected area let bgntxt= strpart(txt,0,begcol) @@ -655,7 +659,7 @@ fun! Align#Align(hasctrl,...) range if alignop == '*' && exists("g:AlignSkip") && type(g:AlignSkip) == 2 " call Decho("Pass".pass.": endfield=match(txt<".txt.">,seppat<".seppat.">,bgnfield=".bgnfield.")=".endfield." alignop=".alignop) " a '*' acts like a '-' while the g:AlignSkip function reference is true except that alignop doesn't advance - while g:AlignSkip(line,endfield) && endfield != -1 + while g:AlignSkip(curline,endfield) && endfield != -1 let endfield = match(txt,seppat,skipfield) let sepfield = matchend(txt,seppat,skipfield) let skipfield = sepfield @@ -688,22 +692,20 @@ fun! Align#Align(hasctrl,...) range let field = bgntxt.field let bgntxt= "" endif - let fieldlen = s:Strlen(field) - let sFieldSize = "FieldSize_".ifield - if !exists(sFieldSize) + let fieldlen= s:Strlen(field) + if !exists("FieldSize_{ifield}") let FieldSize_{ifield}= fieldlen -" call Decho("Pass".pass.": set FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field.">") +" call Decho("Pass".pass.": set FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field."> (init)") elseif fieldlen > FieldSize_{ifield} let FieldSize_{ifield}= fieldlen -" call Decho("Pass".pass.": oset FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field.">") +" call Decho("Pass".pass.": set FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field."> (fieldlen>FieldSize_".ifield.")") endif - let sSepSize= "SepSize_".ifield - if !exists(sSepSize) + if !exists("SepSize_{ifield}") let SepSize_{ifield}= seplen -" call Decho(" set SepSize_{".ifield."}=".SepSize_{ifield}." <".field.">") +" call Decho("Pass".pass.": set SepSize_{".ifield."}=".SepSize_{ifield}." <".field."> (init)") elseif seplen > SepSize_{ifield} let SepSize_{ifield}= seplen -" call Decho("Pass".pass.": oset SepSize_{".ifield."}=".SepSize_{ifield}." <".field.">") +" call Decho("Pass".pass.": set SepSize_{".ifield."}=".SepSize_{ifield}." <".field."> (seplen>SepSize_".ifield.")") endif else @@ -714,6 +716,8 @@ fun! Align#Align(hasctrl,...) range let alignprepad = strpart(alignprepad,1).strpart(alignprepad,0,1) let alignpostpad = strpart(alignpostpad,1).strpart(alignpostpad,0,1) let field = substitute(strpart(txt,bgnfield,endfield-bgnfield),'^\s*\(.\{-}\)\s*$','\1','') +" call Decho("Pass".pass.": alignprepad <".alignprepad."> prepad =".prepad) +" call Decho("Pass".pass.": alignpostpad<".alignpostpad."> postpad=".postpad) if s:AlignLeadKeep == 'W' let field = bgntxt.field let bgntxt= "" @@ -724,21 +728,26 @@ fun! Align#Align(hasctrl,...) range endif let fieldlen = s:Strlen(field) let sep = s:MakeSpace(prepad).strpart(txt,endfield,sepfield-endfield).s:MakeSpace(postpad) +" call Decho("Pass".pass.": sep<".sep."> (after prepad, sepfield-endfield,postpad)") if seplen < SepSize_{ifield} if alignsepop == "<" " left-justify separators let sep = sep.s:MakeSpace(SepSize_{ifield}-seplen) +" call Decho("Pass".pass.": sep<".sep."> (left-justified)") elseif alignsepop == ">" " right-justify separators let sep = s:MakeSpace(SepSize_{ifield}-seplen).sep +" call Decho("Pass".pass.": sep<".sep."> (right-justified)") else " center-justify separators let sepleft = (SepSize_{ifield} - seplen)/2 let sepright = SepSize_{ifield} - seplen - sepleft let sep = s:MakeSpace(sepleft).sep.s:MakeSpace(sepright) +" call Decho("Pass".pass.": sep<".sep."> (center-justified)") endif endif let spaces = FieldSize_{ifield} - fieldlen +" call Decho("Pass".pass.": spaces=[FieldSize_".ifield."=".FieldSize_{ifield}."] - [fieldlen=".fieldlen."]=".spaces) " call Decho("Pass".pass.": Field #".ifield."<".field."> spaces=".spaces." be[".bgnfield.",".endfield."] pad=".prepad.','.postpad." FS_".ifield."<".FieldSize_{ifield}."> sep<".sep."> ragged=".ragged." doend=".doend." alignop<".alignop.">") " Perform alignment according to alignment style justification @@ -786,18 +795,20 @@ fun! Align#Align(hasctrl,...) range if pass == 2 " Write altered line to buffer -" call Decho("Pass".pass.": bgntxt<".bgntxt."> line=".line) +" call Decho("Pass".pass.": bgntxt<".bgntxt."> curline=".curline) " call Decho("Pass".pass.": newtxt<".newtxt.">") " call Decho("Pass".pass.": endtxt<".endtxt.">") - keepj call setline(line,bgntxt.newtxt.endtxt) + keepj call setline(curline,bgntxt.newtxt.endtxt) endif +" call Decho("Pass".pass.": line#".curline."<".getline(".")."> (end-of-while)") - let line = line + 1 - endwhile " line loop + let curline = curline + 1 + endwhile " curline loop let pass= pass + 1 endwhile " pass loop " call Decho("end of two pass loop") +" call Decho("ENDWHILE: cursor at (".line(".").",".col(".").") curline#".curline) " restore original leading whitespace if s:AlignLeadKeep == 'W' @@ -1059,6 +1070,7 @@ fun! s:Strlen(x) call setline(line("."),a:x) let ret= virtcol("$") - 1 d + keepj norm! k let &l:mod= modkeep else diff --git a/vim/autoload/AlignMaps.vim b/vim/autoload/AlignMaps.vim index 9b0f3bc..9d20513 100644 --- a/vim/autoload/AlignMaps.vim +++ b/vim/autoload/AlignMaps.vim @@ -1,8 +1,8 @@ " AlignMaps.vim : support functions for AlignMaps -" Author: Charles E. Campbell, Jr. -" Date: Jun 18, 2012 -" Version: 42 -" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1 +" Author: Charles E. Campbell +" Date: Mar 12, 2013 +" Version: 43 +" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright " notice is copied with it. Like anything else that's free, @@ -16,7 +16,7 @@ if &cp || exists("g:loaded_AlignMaps") finish endif -let g:loaded_AlignMaps= "v42" +let g:loaded_AlignMaps= "v43" let s:keepcpo = &cpo set cpo&vim "DechoTabOn @@ -111,6 +111,20 @@ fun! AlignMaps#WrapperEnd() range " call Dret("AlignMaps#WrapperEnd : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z")) endfun +" --------------------------------------------------------------------- +" AlignMaps#MakeMap: make both a normal-mode and a visual mode map for mapname {{{2 +fun! AlignMaps#MakeMap(mapname) + if exists("g:maplocalleader") + let maplead= g:maplocalleader + elseif exists("g:mapleader") + let maplead= g:mapleader + else + let maplead= '\' + endif + exe "nmap ".maplead.a:mapname." AM_".a:mapname + exe "vmap ".maplead.a:mapname.' :call AlignMaps#Vis("'.a:mapname.'")'."" +endfun + " --------------------------------------------------------------------- " AlignMaps#StdAlign: some semi-standard align calls {{{2 fun! AlignMaps#StdAlign(mode) range @@ -169,15 +183,15 @@ endfun " AlignMaps#Equals: supports \t= and \T= {{{2 fun! AlignMaps#Equals() range " call Dfunc("AlignMaps#Equals()") - keepj 'a,'zs/\s\+\([*/+\-%|&\~^]\==\)/ \1/e - keepj 'a,'zs@ \+\([*/+\-%|&\~^]\)=@\1=@ge + keepj 'a,'zs/\s\+\([.*/+\-%|&\~^]\==\)/ \1/e + keepj 'a,'zs@ \+\([.*/+\-%|&\~^]\)=@\1=@ge keepj 'a,'zs/==/\="\\"/ge keepj 'a,'zs/\([!<>:]\)=/\=submatch(1)."\"/ge keepj norm g'zk AlignCtrl mIp1P1=l = AlignCtrl g = keepj 'a,'z-1Align - keepj 'a,'z-1s@\([*/%|&\~^!=]\)\( \+\)=@\2\1=@ge + keepj 'a,'z-1s@\([.*/%|&\~^!=]\)\( \+\)=@\2\1=@ge keepj 'a,'z-1s@[^+\-]\zs\([+\-]\)\( \+\)=@\2\1=@ge keepj 'a,'z-1s/\( \+\);/;\1/ge if &ft == "c" || &ft == "cpp" @@ -323,37 +337,6 @@ fun! AlignMaps#FixMultiDec() let curline = getline(".") " call Decho("curline<".curline.">") -" " Attempt to ignore function calls (ie. double x=pow(2.,3.),... -" let leader= substitute(curline,'^\s*\([a-zA-Z_ \t][a-zA-Z0-9<>_ \t]*\)\s\+.*$','\1','') -" let i = strlen(leader) -" let paren = 0 -" let fmd = strpart(curline,i) -" let ifmd = i -" call Decho("fmd<".fmd."> ifmd=".ifmd) -" while i < strlen(curline) -" if strpart(curline,i,1) == '(' -" let paren= paren+1 -" elseif strpart(curline,i,1) == ')' && paren > 0 -" let paren= paren-1 -" elseif strpart(curline,i,1) == '=' -" let eq= 1 -" elseif strpart(curline,i,1) == ';' -" let paren = 0 -" let eq = 0 -" let fmd = fmd.strpart(fmd,ifmd,i-ifmd).";\" -" let ifmd = i + 2 -" let i = i + 1 -" let leader= substitute(curline,'^\s*\([a-zA-Z_ \t][a-zA-Z0-9<>_ \t]*\)\s\+.*$','\1','') -" elseif strpart(curline,i,1) == ',' -" if paren == 0 -" let fmd = fmd.strpart(fmd,ifmd,i-ifmd).";\" -" let ifmd = i + 2 -" let i = i + 1 -" endif -" endif -" let i= i + 1 -" endwhile - " Get the type. I'm assuming one type per line (ie. int x; double y; on one line will not be handled properly) let @x=substitute(curline,'^\(\s*[a-zA-Z_ \t][a-zA-Z0-9<>_ \t]*\)\s\+[(*]*\h.*$','\1','') " call Decho("@x<".@x.">") @@ -386,6 +369,31 @@ fun! AlignMaps#AlignMapsClean() " call Dret("AlignMaps#AlignMapsClean") endfun +" --------------------------------------------------------------------- +" AlignMaps#Vis: interfaces with visual maps {{{2 +fun! AlignMaps#Vis(plugmap) range +" call Dfunc("AlignMaps#VisCall(plugmap<".a:plugmap.">) ".a:firstline.",".a:lastline) + + let amark= SaveMark("a") + exe a:firstline + ka + exe a:lastline + + if exists("g:maplocalleader") + let maplead= g:maplocalleader + elseif exists("g:mapleader") + let maplead= g:mapleader + else + let maplead= '\' + endif + +" call Decho("exe norm ".maplead.a:plugmap) + exe " norm ".maplead.a:plugmap + + call RestoreMark(amark) +" call Dret("AlignMaps#VisCall") +endfun + " --------------------------------------------------------------------- " Restore: {{{1 let &cpo= s:keepcpo diff --git a/vim/colors/solarized.vim b/vim/colors/solarized.vim new file mode 100644 index 0000000..ee46b17 --- /dev/null +++ b/vim/colors/solarized.vim @@ -0,0 +1,969 @@ +" Name: Solarized vim colorscheme +" Author: Ethan Schoonover +" URL: http://ethanschoonover.com/solarized +" (see this url for latest release & screenshots) +" License: OSI approved MIT license (see end of this file) +" Created: In the middle of the night +" Modified: 2011 Apr 14 +" +" Usage "{{{ +" +" --------------------------------------------------------------------- +" ABOUT: +" --------------------------------------------------------------------- +" Solarized is a carefully designed selective contrast colorscheme with dual +" light and dark modes that runs in both GUI, 256 and 16 color modes. +" +" See the homepage above for screenshots and details. +" +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- +" +" Two options for installation: manual or pathogen +" +" MANUAL INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Put the files in the right place! +" 2. Move `solarized.vim` to your `.vim/colors` directory. +" +" RECOMMENDED PATHOGEN INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download and install Tim Pope's Pathogen from: +" https://github.com/tpope/vim-pathogen +" +" 2. Next, move or clone the `vim-colors-solarized` directory so that it is +" a subdirectory of the `.vim/bundle` directory. +" +" a. **clone with git:** +" +" $ cd ~/.vim/bundle +" $ git clone git://github.com/altercation/vim-colors-solarized.git +" +" b. **or move manually into the pathogen bundle directory:** +" In the parent directory of vim-colors-solarized: +" +" $ mv vim-colors-solarized ~/.vim/bundle/ +" +" MODIFY VIMRC: +" +" After either Option 1 or Option 2 above, put the following two lines in your +" .vimrc: +" +" syntax enable +" set background=dark +" colorscheme solarized +" +" or, for the light background mode of Solarized: +" +" syntax enable +" set background=light +" colorscheme solarized +" +" I like to have a different background in GUI and terminal modes, so I can use +" the following if-then. However, I find vim's background autodetection to be +" pretty good and, at least with MacVim, I can leave this background value +" assignment out entirely and get the same results. +" +" if has('gui_running') +" set background=light +" else +" set background=dark +" endif +" +" See the Solarized homepage at http://ethanschoonover.com/solarized for +" screenshots which will help you select either the light or dark background. +" +" Other options are detailed below. +" +" IMPORTANT NOTE FOR TERMINAL USERS: +" +" If you are going to use Solarized in Terminal mode (i.e. not in a GUI version +" like gvim or macvim), **please please please** consider setting your terminal +" emulator's colorscheme to used the Solarized palette. I've included palettes +" for some popular terminal emulator as well as Xdefaults in the official +" Solarized download available from [Solarized homepage]. If you use +" Solarized *without* these colors, Solarized will need to be told to degrade +" its colorscheme to a set compatible with the limited 256 terminal palette +" (whereas by using the terminal's 16 ansi color values, you can set the +" correct, specific values for the Solarized palette). +" +" If you do use the custom terminal colors, solarized.vim should work out of +" the box for you. If you are using a terminal emulator that supports 256 +" colors and don't want to use the custom Solarized terminal colors, you will +" need to use the degraded 256 colorscheme. To do so, simply add the following +" line *before* the `colorschem solarized` line: +" +" let g:solarized_termcolors=256 +" +" Again, I recommend just changing your terminal colors to Solarized values +" either manually or via one of the many terminal schemes available for import. +" +" --------------------------------------------------------------------- +" TOGGLE BACKGROUND FUNCTION: +" --------------------------------------------------------------------- +" +" Solarized comes with a Toggle Background plugin that by default will map to +" if that mapping is available. If it is not available you will need to +" either map the function manually or change your current mapping to +" something else. If you wish to map the function manually, enter the following +" lines in your .vimrc: +" +" nmap ToggleBackground +" imap ToggleBackground +" vmap ToggleBackground +" +" Note that it is important to *not* use the noremap map variants. The plugin +" uses noremap internally. You may run `:help togglebg` for more information. +" +" --------------------------------------------------------------------- +" OPTIONS +" --------------------------------------------------------------------- +" +" Set these in your vimrc file prior to calling the colorscheme. +" +" option name default optional +" ------------------------------------------------ +" g:solarized_termcolors= 16 | 256 +" g:solarized_termtrans = 0 | 1 +" g:solarized_degrade = 0 | 1 +" g:solarized_bold = 1 | 0 +" g:solarized_underline = 1 | 0 +" g:solarized_italic = 1 | 0 +" g:solarized_contrast = "normal"| "high" or "low" +" g:solarized_visibility= "normal"| "high" or "low" +" ------------------------------------------------ +" +" OPTION DETAILS +" +" ------------------------------------------------ +" g:solarized_termcolors= 256 | 16 +" ------------------------------------------------ +" The most important option if you are using vim in terminal (non gui) mode! +" This tells Solarized to use the 256 degraded color mode if running in a 256 +" color capable terminal. Otherwise, if set to `16` it will use the terminal +" emulators colorscheme (best option as long as you've set the emulators colors +" to the Solarized palette). +" +" If you are going to use Solarized in Terminal mode (i.e. not in a GUI +" version like gvim or macvim), **please please please** consider setting your +" terminal emulator's colorscheme to used the Solarized palette. I've included +" palettes for some popular terminal emulator as well as Xdefaults in the +" official Solarized download available from: +" http://ethanschoonover.com/solarized . If you use Solarized without these +" colors, Solarized will by default use an approximate set of 256 colors. It +" isn't bad looking and has been extensively tweaked, but it's still not quite +" the real thing. +" +" ------------------------------------------------ +" g:solarized_termtrans = 0 | 1 +" ------------------------------------------------ +" If you use a terminal emulator with a transparent background and Solarized +" isn't displaying the background color transparently, set this to 1 and +" Solarized will use the default (transparent) background of the terminal +" emulator. *urxvt* required this in my testing; iTerm2 did not. +" +" Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by +" default as this is almost always the best option. The only exception to this +" is if the working terminfo file supports 256 colors (xterm-256color). +" +" ------------------------------------------------ +" g:solarized_degrade = 0 | 1 +" ------------------------------------------------ +" For test purposes only; forces Solarized to use the 256 degraded color mode +" to test the approximate color values for accuracy. +" +" ------------------------------------------------ +" g:solarized_bold = 1 | 0 +" ------------------------------------------------ +" ------------------------------------------------ +" g:solarized_underline = 1 | 0 +" ------------------------------------------------ +" ------------------------------------------------ +" g:solarized_italic = 1 | 0 +" ------------------------------------------------ +" If you wish to stop Solarized from displaying bold, underlined or +" italicized typefaces, simply assign a zero value to the appropriate +" variable, for example: `let g:solarized_italic=0` +" +" ------------------------------------------------ +" g:solarized_contrast = "normal"| "high" or "low" +" ------------------------------------------------ +" Stick with normal! It's been carefully tested. Setting this option to high +" or low does use the same Solarized palette but simply shifts some values up +" or down in order to expand or compress the tonal range displayed. +" +" ------------------------------------------------ +" g:solarized_visibility = "normal"| "high" or "low" +" ------------------------------------------------ +" Special characters such as trailing whitespace, tabs, newlines, when +" displayed using ":set list" can be set to one of three levels depending on +" your needs. +" +" --------------------------------------------------------------------- +" COLOR VALUES +" --------------------------------------------------------------------- +" Download palettes and files from: http://ethanschoonover.com/solarized +" +" L\*a\*b values are canonical (White D65, Reference D50), other values are +" matched in sRGB space. +" +" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB +" --------- ------- ---- ------- ----------- ---------- ----------- ----------- +" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 +" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 +" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 +" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 +" +" --------------------------------------------------------------------- +" COLORSCHEME HACKING +" --------------------------------------------------------------------- +" +" Useful commands for testing colorschemes: +" :source $VIMRUNTIME/syntax/hitest.vim +" :help highlight-groups +" :help cterm-colors +" :help group-name +" +" Useful links for developing colorschemes: +" http://www.vim.org/scripts/script.php?script_id=2937 +" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ +" http://www.frexx.de/xterm-256-notes/" +" +" +" }}} +" Default option values"{{{ +" --------------------------------------------------------------------- +if !exists("g:solarized_termtrans") + if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let g:solarized_termtrans = 1 + else + let g:solarized_termtrans = 0 + endif +endif +if !exists("g:solarized_degrade") + let g:solarized_degrade = 0 +endif +if !exists("g:solarized_bold") + let g:solarized_bold = 1 +endif +if !exists("g:solarized_underline") + let g:solarized_underline = 1 +endif +if !exists("g:solarized_italic") + let g:solarized_italic = 1 +endif +if !exists("g:solarized_termcolors") + let g:solarized_termcolors = 16 +endif +if !exists("g:solarized_contrast") + let g:solarized_contrast = "normal" +endif +if !exists("g:solarized_visibility") + let g:solarized_visibility = "normal" +endif +"}}} +" Colorscheme initialization "{{{ +" --------------------------------------------------------------------- +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "solarized" + +"}}} +" GUI & CSApprox hexadecimal palettes"{{{ +" --------------------------------------------------------------------- +" +" Set both gui and terminal color values in separate conditional statements +" Due to possibility that CSApprox is running (though I suppose we could just +" leave the hex values out entirely in that case and include only cterm colors) +" We also check to see if user has set solarized (force use of the +" neutral gray monotone palette component) +if (has("gui_running") && g:solarized_degrade == 0) + let s:vmode = "gui" + let s:base03 = "#002b36" + let s:base02 = "#073642" + let s:base01 = "#586e75" + let s:base00 = "#657b83" + let s:base0 = "#839496" + let s:base1 = "#93a1a1" + let s:base2 = "#eee8d5" + let s:base3 = "#fdf6e3" + let s:yellow = "#b58900" + let s:orange = "#cb4b16" + let s:red = "#dc322f" + let s:magenta = "#d33682" + let s:violet = "#6c71c4" + let s:blue = "#268bd2" + let s:cyan = "#2aa198" + let s:green = "#859900" +elseif (has("gui_running") && g:solarized_degrade == 1) + " These colors are identical to the 256 color mode. They may be viewed + " while in gui mode via "let g:solarized_degrade=1", though this is not + " recommened and is for testing only. + let s:vmode = "gui" + let s:base03 = "#1c1c1c" + let s:base02 = "#262626" + let s:base01 = "#4e4e4e" + let s:base00 = "#585858" + let s:base0 = "#808080" + let s:base1 = "#8a8a8a" + let s:base2 = "#d7d7af" + let s:base3 = "#ffffd7" + let s:yellow = "#af8700" + let s:orange = "#d75f00" + let s:red = "#af0000" + let s:magenta = "#af005f" + let s:violet = "#5f5faf" + let s:blue = "#0087ff" + let s:cyan = "#00afaf" + let s:green = "#5f8700" +elseif g:solarized_termcolors != 256 && &t_Co >= 16 + let s:vmode = "cterm" + let s:base03 = "8" + let s:base02 = "0" + let s:base01 = "10" + let s:base00 = "11" + let s:base0 = "12" + let s:base1 = "14" + let s:base2 = "7" + let s:base3 = "15" + let s:yellow = "3" + let s:orange = "9" + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +elseif g:solarized_termcolors == 256 + let s:vmode = "cterm" + let s:base03 = "234" + let s:base02 = "235" + let s:base01 = "239" + let s:base00 = "240" + let s:base0 = "244" + let s:base1 = "245" + let s:base2 = "187" + let s:base3 = "230" + let s:yellow = "136" + let s:orange = "166" + let s:red = "124" + let s:magenta = "125" + let s:violet = "61" + let s:blue = "33" + let s:cyan = "37" + let s:green = "64" +else + let s:vmode = "cterm" + let s:bright = "* term=bold cterm=bold" + let s:base03 = "0".s:bright + let s:base02 = "0" + let s:base01 = "2".s:bright + let s:base00 = "3".s:bright + let s:base0 = "4".s:bright + let s:base1 = "6".s:bright + let s:base2 = "7" + let s:base3 = "7".s:bright + let s:yellow = "3" + let s:orange = "1".s:bright + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +endif +"}}} +" Formatting options and null values for passthrough effect "{{{ +" --------------------------------------------------------------------- + let s:none = "NONE" + let s:none = "NONE" + let s:t_none = "NONE" + let s:n = "NONE" + let s:c = ",undercurl" + let s:r = ",reverse" + let s:s = ",standout" + let s:ou = "" + let s:ob = "" +"}}} +" Background value based on termtrans setting "{{{ +" --------------------------------------------------------------------- +if (has("gui_running") || g:solarized_termtrans == 0) + let s:back = s:base03 +else + let s:back = "NONE" +endif +"}}} +" Alternate light scheme "{{{ +" --------------------------------------------------------------------- +if &background == "light" + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 + if (s:back != "NONE") + let s:back = s:base03 + endif +endif +"}}} +" Optional contrast schemes "{{{ +" --------------------------------------------------------------------- +if g:solarized_contrast == "high" + let s:base01 = s:base00 + let s:base00 = s:base0 + let s:base0 = s:base1 + let s:base1 = s:base2 + let s:base2 = s:base3 + let s:back = s:back +endif +if g:solarized_contrast == "low" + let s:back = s:base02 + let s:ou = ",underline" +endif +"}}} +" Overrides dependent on user specified values"{{{ +" --------------------------------------------------------------------- +if g:solarized_bold == 1 + let s:b = ",bold" +else + let s:b = "" +endif + +if g:solarized_underline == 1 + let s:u = ",underline" +else + let s:u = "" +endif + +if g:solarized_italic == 1 + let s:i = ",italic" +else + let s:i = "" +endif +"}}} +" Highlighting primitives"{{{ +" --------------------------------------------------------------------- + +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" +exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" +exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" +exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" +exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" +exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" +exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" +exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" +exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" +exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" +exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" +exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" +exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" +exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" +exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" +exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" +exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" +exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" +exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" + +exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" +exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" +exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" +exe "let s:fmt_ital = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_back = ' guisp=".s:back ."'" + exe "let s:sp_base03 = ' guisp=".s:base03 ."'" + exe "let s:sp_base02 = ' guisp=".s:base02 ."'" + exe "let s:sp_base01 = ' guisp=".s:base01 ."'" + exe "let s:sp_base00 = ' guisp=".s:base00 ."'" + exe "let s:sp_base0 = ' guisp=".s:base0 ."'" + exe "let s:sp_base1 = ' guisp=".s:base1 ."'" + exe "let s:sp_base2 = ' guisp=".s:base2 ."'" + exe "let s:sp_base3 = ' guisp=".s:base3 ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_magenta = ' guisp=".s:magenta."'" + exe "let s:sp_violet = ' guisp=".s:violet ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_cyan = ' guisp=".s:cyan ."'" +else + let s:sp_none = "" + let s:sp_back = "" + let s:sp_base03 = "" + let s:sp_base02 = "" + let s:sp_base01 = "" + let s:sp_base00 = "" + let s:sp_base0 = "" + let s:sp_base1 = "" + let s:sp_base2 = "" + let s:sp_base3 = "" + let s:sp_green = "" + let s:sp_yellow = "" + let s:sp_orange = "" + let s:sp_red = "" + let s:sp_magenta = "" + let s:sp_violet = "" + let s:sp_blue = "" + let s:sp_cyan = "" +endif + +"}}} +" Basic highlighting"{{{ +" --------------------------------------------------------------------- +" note that link syntax to avoid duplicate configuration doesn't work with the +" exe compiled formats + +exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back + +exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none +" *Comment any comment + +exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none +" *Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 + +exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none +" *Identifier any variable name +" Function function name (also: methods for classes) +" +exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none +" *Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw + +exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none +" *PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. + +exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none +" *Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef + +exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none +" *Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements + +exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none +" *Underlined text that stands out, HTML links + +exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none +" *Ignore left blank, hidden |hl-Ignore| + +exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none +" *Error any erroneous construct + +exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none +" *Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" +"}}} +" Extended highlighting "{{{ +" --------------------------------------------------------------------- +if (g:solarized_visibility=="high") + exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base1 .s:bg_none +elseif (g:solarized_visibility=="low") + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none +else + exe "hi! SpecialKey" .s:fmt_bold .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base01 .s:bg_none +endif +if (has("gui_running")) || &t_Co > 8 + exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base1 + exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base00 + "exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02 + exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01 +else + exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base2 + exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base2 + exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2 +endif +exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none +exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 +exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! VertSplit" .s:fmt_bold .s:fg_base00 .s:bg_base00 +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_bold .s:fg_base0 .s:bg_base02 +exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none +exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red +exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet +exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan +exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow +exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 +exe "hi! PmenuSel" .s:fmt_none .s:fg_base2 .s:bg_base01 +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base0 .s:bg_base2 +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base03 .s:bg_base0 +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base2 .s:bg_base01 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 +exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 +hi! link lCursor Cursor +exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 + +"}}} +" vim syntax highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! vimCommentString".s:fg_violet .s:bg_none .s:fmt_none +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +exe "hi! vimCommand" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! vimCmdSep" . s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! helpExample" . s:fg_base1 .s:bg_none .s:fmt_none +hi! link helpSpecial Special +exe "hi! helpOption" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! helpNote" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! helpVim" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! helpHyperTextJump" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none +exe "hi! vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none +exe "hi! vimSynMtchOpt" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb +"}}} +" html highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! htmlTag" . s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! htmlEndTag" . s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! htmlTagN" . s:fg_base1 .s:bg_none .s:fmt_bold +exe "hi! htmlTagName" . s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! htmlSpecialTagName". s:fg_blue .s:bg_none .s:fmt_ital +exe "hi! htmlArg" . s:fg_base00 .s:bg_none .s:fmt_none +exe "hi! javaScript" . s:fg_yellow .s:bg_none .s:fmt_none +"}}} +" perl highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none +exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none + +"}}} +" tex highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none +"}}} +" ruby highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold +"rubyInclude +"rubySharpBang +"rubyAccess +"rubyPredefinedVariable +"rubyBoolean +"rubyClassVariable +"rubyBeginEnd +"rubyRepeatModifier +"hi! link rubyArrayDelimiter Special " [ , , ] +"rubyCurlyBlock { , , } + +"hi! link rubyClass Keyword +"hi! link rubyModule Keyword +"hi! link rubyKeyword Keyword +"hi! link rubyOperator Operator +"hi! link rubyIdentifier Identifier +"hi! link rubyInstanceVariable Identifier +"hi! link rubyGlobalVariable Identifier +"hi! link rubyClassVariable Identifier +"hi! link rubyConstant Type +"}}} +" haskell syntax highlighting"{{{ +" --------------------------------------------------------------------- +" For use with syntax/haskell.vim : Haskell Syntax File +" http://www.vim.org/scripts/script.php?script_id=3034 +" See also Steffen Siering's github repository: +" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim +" --------------------------------------------------------------------- +" +" Treat True and False specially, see the plugin referenced above +let hs_highlight_boolean=1 +" highlight delims, see the plugin referenced above +let hs_highlight_delimiters=1 + +exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none + +exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none + +exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none +exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none +exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr +exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none +hi! link hsImportParams Delimiter +hi! link hsDelimTypeExport Delimiter +hi! link hsModuleStartLabel hsStructure +hi! link hsModuleWhereLabel hsModuleStartLabel + +" following is for the haskell-conceal plugin +" the first two items don't have an impact, but better safe +exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none + +"}}} +" pandoc markdown syntax highlighting "{{{ +" --------------------------------------------------------------------- + +"PandocHiLink pandocNormalBlock +exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none +hi! link pandocVerbatimBlockDeep pandocVerbatimBlock +hi! link pandocCodeBlock pandocVerbatimBlock +hi! link pandocCodeBlockDelim pandocVerbatimBlock +exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr + +" Definitions +" --------------------------------------------------------------------- +let s:fg_pdef = s:fg_violet +exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd +exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none + +" Tables +" --------------------------------------------------------------------- +let s:fg_ptable = s:fg_blue +exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none +hi! link pandocTableStructureTop pandocTableStructre +hi! link pandocTableStructureEnd pandocTableStructre +exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none +exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none +exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none + +" Headings +" --------------------------------------------------------------------- +let s:fg_phead = s:fg_orange +exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold +exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr +exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold + +" Links +" --------------------------------------------------------------------- +exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb +exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr +exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi +exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 +exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 +exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb +exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr +exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold +exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb +exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none + +" Main Styles +" --------------------------------------------------------------------- +exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none +exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none + +exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr +hi! link pandocEscapedCharacter pandocEscapePair +hi! link pandocLineBreak pandocEscapePair + +" Embedded Code +" --------------------------------------------------------------------- +exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold +hi! link pandocMetadataTitle pandocMetadata + +"}}} +" Utility autocommand "{{{ +" --------------------------------------------------------------------- +" In cases where Solarized is initialized inside a terminal vim session and +" then transferred to a gui session via the command `:gui`, the gui vim process +" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` +" related code that sets gui specific values isn't executed. +" +" Currently, Solarized sets only the cterm or gui values for the colorscheme +" depending on gui or terminal mode. It's possible that, if the following +" autocommand method is deemed excessively poor form, that approach will be +" used again and the autocommand below will be dropped. +" +" However it seems relatively benign in this case to include the autocommand +" here. It fires only in cases where vim is transferring from terminal to gui +" mode (detected with the script scope s:vmode variable). It also allows for +" other potential terminal customizations that might make gui mode suboptimal. +" +autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif +"}}} +" License "{{{ +" --------------------------------------------------------------------- +" +" Copyright (c) 2011 Ethan Schoonover +" +" Permission is hereby granted, free of charge, to any person obtaining a copy +" of this software and associated documentation files (the "Software"), to deal +" in the Software without restriction, including without limitation the rights +" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +" copies of the Software, and to permit persons to whom the Software is +" furnished to do so, subject to the following conditions: +" +" The above copyright notice and this permission notice shall be included in +" all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. +" +" vim:foldmethod=marker:foldlevel=0 +"}}} diff --git a/vim/doc/Align.txt b/vim/doc/Align.txt index b08eca3..8c8c716 100644 --- a/vim/doc/Align.txt +++ b/vim/doc/Align.txt @@ -1,4 +1,4 @@ -*align.txt* The Alignment Tool Jun 18, 2012 +*align.txt* The Alignment Tool Jan 07, 2013 Author: Charles E. Campbell (remove NOSPAM from Campbell's email first) @@ -78,9 +78,9 @@ Copyright: (c) 2004-2012 by Charles E. Campbell *Align-copyright* || | | || || | +-------------------------------------------------------++ || 1st arg | = | = all separator patterns are equivalent and are || -|| | | simultaneously active. Patterns are |regexp|. || +|| | | simultaneously active. Patterns are |regexp|. || || | | C cycle through separator patterns. Patterns are || -|| | | |regexp| and are active sequentially. || +|| | | |regexp| and are active sequentially. || || | | || || | < | < left justify separator Separators are justified, || || | | > right justify separator too. Separator styles || @@ -144,7 +144,7 @@ Copyright: (c) 2004-2012 by Charles E. Campbell *Align-copyright* 3. Alignment Usage *alignusage* *align-usage* *align-userguide* {{{1 -ALIGNMENT CONCEPTS *align-concept* *align-concepts* {{{2 +ALIGNMENT CONCEPTS *align-concept* *align-concepts* *alignctrl* {{{1 The typical text to be aligned is considered to be: @@ -315,7 +315,7 @@ ALIGNMENT OPTIONS *align-option* *align-options* *align-xstrlen* {{{2 the most accurate. (thanks to Tony Mechelynck for these) -ALIGNMENT CONTROL *alignctrl* *align-control* {{{2 +ALIGNMENT CONTROL *:AlignCtrl* *align-control* {{{2 This command doesn't do the alignment operation itself; instead, it controls subsequent alignment operation(s). @@ -756,7 +756,7 @@ ALIGNMENT CONTROL INITIALIZATION *alignctrl-init* *alignctrl-initialization* {{{ and :AlignCtrl will then be defined. -ALIGNMENT *align-align* {{{2 +ALIGNMENT *:Align* *align-align* {{{2 Once the alignment control has been determined, the user specifies a range of lines for the Align command/function to do its thing. @@ -852,7 +852,7 @@ ALIGNMENT *align-align* {{{2 \adcom: useful for aligning comments in declarations |alignmap-adcom| \anum : useful for aligning numbers |alignmap-anum| NOTE: For the visual-mode use of \anum, is needed! - See http://mysite.verizon.net/astronaut/vim/index.html#VIS + See http://www.drchip.org/astronaut/vim/index.html#VIS \aenum: align a European-style number |alignmap-anum| \aunum: align a USA-style number |alignmap-anum| \adec : useful for aligning declarations |alignmap-adec| @@ -916,7 +916,7 @@ ALIGNMENT *align-align* {{{2 an AlignMap with the vis.vim plugin, available at either stable: http://vim.sourceforge.net/scripts/script.php?script_id=1195 - devel : http://mysite.verizon.net/astronaut/vim/index.html#VIS + devel : http://www.drchip.org/astronaut/vim/index.html#VIS Use it with commands such as > @@ -1400,194 +1400,202 @@ ALIGNMENT *align-align* {{{2 4. Alignment Tools' History *align-history* {{{1 ALIGN HISTORY {{{2 - 36 : May 20, 2009 * Previously, the "W" AlignCtrl setting, intended - to retain initial white space, did so by convert- - ing any leading tabs into an equivalent quantity - of blanks (using the current tabstop setting). - Align will now retain leading tabs. - Nov 24, 2009 * QArgSplitter() used split(), intending to split - on white space only. However, the \tab map - uses ctrl-o as a separator instead of tabs; the - split() function treated the ctrl-o as a whitespace - character, too. Solution: give split() an explicit - pattern matching blanks and tabs, only. \tab now - works again! - Jun 29, 2010 * included |g:AlignSkip| and |alignctrl-star| support - May 10, 2011 * if the range is only one line, then Align will - automatically grow the range to accommodate all - lines containing the first separator pattern - surrounding the current line. - Aug 05, 2011 * g:Align_xstrlen usage extended to permit users to - specify a function by name which computes string - length. - Oct 27, 2011 * (reported by Fco Javier) reported a problem with - the default s:Strlen() result; there was a missing - "let". Fixed. - Nov 10, 2011 * (Lewis Thompson) Align was doing "set noet" when - it should've been doing "setlocal noet". - Dec 22, 2011 * modifed s:Strlen() to use |strdisplaywidth()| when - g:Align_xstrlen is zero. - 35 : Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading - installed - Nov 19, 2008 * new sanity check for an AlignStyle of just ":" - Jan 08, 2009 * save&restore of |'mod'| now done with local - variant - 34 : Jul 08, 2008 * using :AlignCtrl before entering any alignment - control commands was causing an error. - 33 : Sep 20, 2007 * s:Strlen() introduced to support various ways - used to represent characters and their effects - on string lengths. See |align-strlen|. - * Align now accepts "..." -- so it can accept - whitespace as separators. - 32 : Aug 18, 2007 * uses || instead of || plus a - custom argument splitter to allow patterns with - backslashes to slide in unaltered. - 31 : Aug 06, 2007 * :[range]Align! [AlignCtrl settings] pattern(s) - implemented. - 30 : Feb 12, 2007 * now uses |setline()| - 29 : Jan 18, 2006 * cecutil updated to use keepjumps - Feb 23, 2006 * Align now converted to vim 7.0 style using - auto-loading functions. - 28 : Aug 17, 2005 * report option workaround - Oct 24, 2005 * AlignCtrl l: wasn't behaving as expected; fixed - 27 : Apr 15, 2005 : cpo workaround - ignorecase workaround - 26 : Aug 20, 2004 : loaded_align now also indicates version number - GetLatestVimScripts :AutoInstall: now supported - 25 : Jul 27, 2004 : For debugging, uses Dfunc(), Dret(), and Decho() - 24 : Mar 03, 2004 : (should've done this earlier!) visualmode(1) - not supported until v6.2, now Align will avoid - calling it for earlier versions. Visualmode - clearing won't take place then, of course. - 23 : Oct 07, 2003 : Included Leif Wickland's ReplaceQuotedSpaces() - function which supports \tsq - 22 : Jan 29, 2003 : Now requires 6.1.308 or later to clear visualmode() - 21 : Jan 10, 2003 : BugFix: similar problem to #19; new code - bypasses "norm! v\" until initialization - is over. - 20 : Dec 30, 2002 : BugFix: more on "unable to highlight" fixed - 19 : Nov 21, 2002 : BugFix: some terminals gave an "unable to highlight" - message at startup; Hari Krishna Dara tracked it - down; a silent! now included to prevent noise. - 18 : Nov 04, 2002 : BugFix: re-enabled anti-repeated-loading - 17 : Nov 04, 2002 : BugFix: forgot to have AlignPush() push s:AlignSep - AlignCtrl now clears visual-block mode when used so - that Align won't try to use old visual-block - selection marks '< '> - 16 : Sep 18, 2002 : AlignCtrl <>| options implemented (separator - justification) - 15 : Aug 22, 2002 : bug fix: AlignCtrl's ":" now acts as a modifier of - the preceding alignment operator (lrc) - 14 : Aug 20, 2002 : bug fix: AlignCtrl default now keeps &ic unchanged - bug fix: Align, on end-field, wasn't using correct - alignop bug fix: Align, on end-field, was appending - padding - 13 : Aug 19, 2002 : bug fix: zero-length g/v patterns are accepted - bug fix: always skip blank lines - bug fix: AlignCtrl default now also clears g and v - patterns - 12 : Aug 16, 2002 : moved keep_ic above zero-length pattern checks - added "AlignCtrl default" - fixed bug with last field getting separator spaces - at end line - 11 : Jul 08, 2002 : prevent separator patterns which match zero length - -+: included as additional alignment/justification - styles - 10 : Jun 26, 2002 : =~# used instead of =~ (for matching case) - ignorecase option handled - 9 : Jun 25, 2002 : implemented cyclic padding + v37 Nov 29, 2012 * (Kim Jang-hwan) reported that with g:Align_xstrlen + set to 3 that the cursor was moved (linewise) + after invocation. Fixed. + Jan 07, 2013 * now has visual mode mappings to accompany all + normal mode mappings (use |V| to invoke) + v36 May 20, 2009 * Previously, the "W" AlignCtrl setting, intended + to retain initial white space, did so by convert- + ing any leading tabs into an equivalent quantity + of blanks (using the current tabstop setting). + Align will now retain leading tabs. + Nov 24, 2009 * QArgSplitter() used split(), intending to split + on white space only. However, the \tab map + uses ctrl-o as a separator instead of tabs; the + split() function treated the ctrl-o as a whitespace + character, too. Solution: give split() an explicit + pattern matching blanks and tabs, only. \tab now + works again! + Jun 29, 2010 * included |g:AlignSkip| and |alignctrl-star| support + May 10, 2011 * if the range is only one line, then Align will + automatically grow the range to accommodate all + lines containing the first separator pattern + surrounding the current line. + Aug 05, 2011 * g:Align_xstrlen usage extended to permit users to + specify a function by name which computes string + length. + Oct 27, 2011 * (reported by Fco Javier) reported a problem with + the default s:Strlen() result; there was a missing + "let". Fixed. + Nov 10, 2011 * (Lewis Thompson) Align was doing "set noet" when + it should've been doing "setlocal noet". + Dec 22, 2011 * modifed s:Strlen() to use |strdisplaywidth()| when + g:Align_xstrlen is zero. + v35 Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading + installed + Nov 19, 2008 * new sanity check for an AlignStyle of just ":" + Jan 08, 2009 * save&restore of |'mod'| now done with local + variant + v34 Jul 08, 2008 * using :AlignCtrl before entering any alignment + control commands was causing an error. + v33 Sep 20, 2007 * s:Strlen() introduced to support various ways + used to represent characters and their effects + on string lengths. See |align-strlen|. + * Align now accepts "..." -- so it can accept + whitespace as separators. + v32 Aug 18, 2007 * uses || instead of || plus a + custom argument splitter to allow patterns with + backslashes to slide in unaltered. + v31 Aug 06, 2007 * :[range]Align! [AlignCtrl settings] pattern(s) + implemented. + v30 Feb 12, 2007 * now uses |setline()| + v29 Jan 18, 2006 * cecutil updated to use keepjumps + Feb 23, 2006 * Align now converted to vim 7.0 style using + auto-loading functions. + v28 Aug 17, 2005 * report option workaround + Oct 24, 2005 * AlignCtrl l: wasn't behaving as expected; fixed + v27 Apr 15, 2005 * cpo workaround + ignorecase workaround + v26 Aug 20, 2004 * loaded_align now also indicates version number + GetLatestVimScripts :AutoInstall: now supported + v25 Jul 27, 2004 * For debugging, uses Dfunc(), Dret(), and Decho() + v24 Mar 03, 2004 * (should've done this earlier!) visualmode(1) + not supported until v6.2, now Align will avoid + calling it for earlier versions. Visualmode + clearing won't take place then, of course. + v23 Oct 07, 2003 * Included Leif Wickland's ReplaceQuotedSpaces() + function which supports \tsq + v22 Jan 29, 2003 * Now requires 6.1.308 or later to clear visualmode() + v21 Jan 10, 2003 * BugFix: similar problem to #19; new code + bypasses "norm! v\" until initialization + is over. + v20 Dec 30, 2002 * BugFix: more on "unable to highlight" fixed + v19 Nov 21, 2002 * BugFix: some terminals gave an "unable to highlight" + message at startup; Hari Krishna Dara tracked it + down; a silent! now included to prevent noise. + v18 Nov 04, 2002 * BugFix: re-enabled anti-repeated-loading + v17 Nov 04, 2002 * BugFix: forgot to have AlignPush() push s:AlignSep + AlignCtrl now clears visual-block mode when used so + that Align won't try to use old visual-block + selection marks '< '> + v16 Sep 18, 2002 * AlignCtrl <>| options implemented (separator + justification) + v15 Aug 22, 2002 * bug fix: AlignCtrl's ":" now acts as a modifier of + the preceding alignment operator (lrc) + v14 Aug 20, 2002 * bug fix: AlignCtrl default now keeps &ic unchanged + bug fix: Align, on end-field, wasn't using correct + alignop bug fix: Align, on end-field, was appending + padding + v13 Aug 19, 2002 * bug fix: zero-length g/v patterns are accepted + bug fix: always skip blank lines + bug fix: AlignCtrl default now also clears g and v + patterns + v12 Aug 16, 2002 * moved keep_ic above zero-length pattern checks + added "AlignCtrl default" + fixed bug with last field getting separator spaces + at end line + v11 Jul 08, 2002 * prevent separator patterns which match zero length + -+: included as additional alignment/justification + styles + v10 Jun 26, 2002 * =~# used instead of =~ (for matching case) + ignorecase option handled + v09 Jun 25, 2002 * implemented cyclic padding ALIGNMENT MAP HISTORY *alignmap-history* {{{2 - v42 Jan 06, 2010 * new maps for \anum, \aenum, \aunum - Feb 16, 2010 * map for \t=, \T= now handles x++ = something; - for c, c++ correctly. - Oct 29, 2010 * added a note on having one's own default - AlignCtrl (see |alignctrl-init|) - Feb 22, 2011 * for menus, &go =~# used to insure correct case - Jun 10, 2011 * |:AlignMapsClean| command provided to make it - easy for those who would prefer not to have - AlignMaps' maps not to have them. - v41 Nov 02, 2008 * g:loaded_AlignMapsPlugin testing to prevent - re-loading installed - * AlignMaps now use 0x0f (ctrl-p) for special - character substitutions (instead of 0xff). - Seems to avoid some problems with having to - use Strlen(). - * bug fixed with \ts, - * new maps: \ts; \ts, \ts: \ts< \ts= \a( - v40 Oct 21, 2008 * Modified AlignMaps so that its maps use s - and