Updated plugins

Added solarize colorscheme
This commit is contained in:
Andrea Mistrali 2013-04-11 15:36:38 +00:00
parent bfbaa2149d
commit f7c35d77ef
12 changed files with 1554 additions and 493 deletions

View File

@ -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') 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') 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') 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') 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') 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') 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')

View File

@ -2,7 +2,7 @@ ScriptID SourceID Filename
-------------------------- --------------------------
910 18164 :AutoInstall: pydoc.vim 910 18164 :AutoInstall: pydoc.vim
2771 16279 :AutoInstall: conque_term.vim 2771 16279 :AutoInstall: conque_term.vim
294 18148 :AutoInstall: Align.vim 294 19633 :AutoInstall: Align.vim
1066 7618 :AutoInstall: cecutil.vim 1066 7618 :AutoInstall: cecutil.vim
642 15781 :AutoInstall: getscript.vim 642 15781 :AutoInstall: getscript.vim
2324 9247 :AutoInstall: TextFormat 2324 9247 :AutoInstall: TextFormat

View File

@ -1,10 +1,10 @@
" Align: tool to align multiple fields based on one or more separators " Align: tool to align multiple fields based on one or more separators
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell
" Date: Jun 18, 2012 " Date: Mar 12, 2013
" Version: 36 " Version: 37
" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim " GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.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, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -25,7 +25,7 @@
if exists("g:loaded_Align") || &cp if exists("g:loaded_Align") || &cp
finish finish
endif endif
let g:loaded_Align = "v36" let g:loaded_Align = "v37"
if v:version < 700 if v:version < 700
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of Align needs vim 7.0" echo "***warning*** this version of Align needs vim 7.0"
@ -43,7 +43,11 @@ set cpo&vim
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Options: {{{1 " Options: {{{1
if !exists("g:Align_xstrlen") 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 let g:Align_xstrlen= 0
else else
let g:Align_xstrlen= 1 let g:Align_xstrlen= 1
@ -529,19 +533,19 @@ fun! Align#Align(hasctrl,...) range
" call Decho(" ") " call Decho(" ")
" call Decho("---- Pass ".pass.": ----") " call Decho("---- Pass ".pass.": ----")
let line= begline let curline= begline
while line <= endline while curline <= endline
" Process each line " Process each line
let txt = getline(line) let txt = getline(curline)
" call Decho(" ") " 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 ) " AlignGPat support: allows a selector pattern (akin to g/selector/cmd )
if exists("s:AlignGPat") if exists("s:AlignGPat")
" call Decho("Pass".pass.": AlignGPat<".s:AlignGPat.">") " call Decho("Pass".pass.": AlignGPat<".s:AlignGPat.">")
if match(txt,s:AlignGPat) == -1 if match(txt,s:AlignGPat) == -1
" call Decho("Pass".pass.": skipping") " call Decho("Pass".pass.": skipping")
let line= line + 1 let curline= curline + 1
continue continue
endif endif
endif endif
@ -551,7 +555,7 @@ fun! Align#Align(hasctrl,...) range
" call Decho("Pass".pass.": AlignVPat<".s:AlignVPat.">") " call Decho("Pass".pass.": AlignVPat<".s:AlignVPat.">")
if match(txt,s:AlignVPat) != -1 if match(txt,s:AlignVPat) != -1
" call Decho("Pass".pass.": skipping") " call Decho("Pass".pass.": skipping")
let line= line + 1 let curline= curline + 1
continue continue
endif endif
endif endif
@ -559,7 +563,7 @@ fun! Align#Align(hasctrl,...) range
" Always skip blank lines " Always skip blank lines
if match(txt,'^\s*$') != -1 if match(txt,'^\s*$') != -1
" call Decho("Pass".pass.": skipping") " call Decho("Pass".pass.": skipping")
let line= line + 1 let curline= curline + 1
continue continue
endif endif
@ -655,7 +659,7 @@ fun! Align#Align(hasctrl,...) range
if alignop == '*' && exists("g:AlignSkip") && type(g:AlignSkip) == 2 if alignop == '*' && exists("g:AlignSkip") && type(g:AlignSkip) == 2
" call Decho("Pass".pass.": endfield=match(txt<".txt.">,seppat<".seppat.">,bgnfield=".bgnfield.")=".endfield." alignop=".alignop) " 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 " 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 endfield = match(txt,seppat,skipfield)
let sepfield = matchend(txt,seppat,skipfield) let sepfield = matchend(txt,seppat,skipfield)
let skipfield = sepfield let skipfield = sepfield
@ -688,22 +692,20 @@ fun! Align#Align(hasctrl,...) range
let field = bgntxt.field let field = bgntxt.field
let bgntxt= "" let bgntxt= ""
endif endif
let fieldlen = s:Strlen(field) let fieldlen= s:Strlen(field)
let sFieldSize = "FieldSize_".ifield if !exists("FieldSize_{ifield}")
if !exists(sFieldSize)
let FieldSize_{ifield}= fieldlen 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} elseif fieldlen > FieldSize_{ifield}
let FieldSize_{ifield}= fieldlen 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 endif
let sSepSize= "SepSize_".ifield if !exists("SepSize_{ifield}")
if !exists(sSepSize)
let SepSize_{ifield}= seplen 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} elseif seplen > SepSize_{ifield}
let SepSize_{ifield}= seplen 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 endif
else else
@ -714,6 +716,8 @@ fun! Align#Align(hasctrl,...) range
let alignprepad = strpart(alignprepad,1).strpart(alignprepad,0,1) let alignprepad = strpart(alignprepad,1).strpart(alignprepad,0,1)
let alignpostpad = strpart(alignpostpad,1).strpart(alignpostpad,0,1) let alignpostpad = strpart(alignpostpad,1).strpart(alignpostpad,0,1)
let field = substitute(strpart(txt,bgnfield,endfield-bgnfield),'^\s*\(.\{-}\)\s*$','\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' if s:AlignLeadKeep == 'W'
let field = bgntxt.field let field = bgntxt.field
let bgntxt= "" let bgntxt= ""
@ -724,21 +728,26 @@ fun! Align#Align(hasctrl,...) range
endif endif
let fieldlen = s:Strlen(field) let fieldlen = s:Strlen(field)
let sep = s:MakeSpace(prepad).strpart(txt,endfield,sepfield-endfield).s:MakeSpace(postpad) 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 seplen < SepSize_{ifield}
if alignsepop == "<" if alignsepop == "<"
" left-justify separators " left-justify separators
let sep = sep.s:MakeSpace(SepSize_{ifield}-seplen) let sep = sep.s:MakeSpace(SepSize_{ifield}-seplen)
" call Decho("Pass".pass.": sep<".sep."> (left-justified)")
elseif alignsepop == ">" elseif alignsepop == ">"
" right-justify separators " right-justify separators
let sep = s:MakeSpace(SepSize_{ifield}-seplen).sep let sep = s:MakeSpace(SepSize_{ifield}-seplen).sep
" call Decho("Pass".pass.": sep<".sep."> (right-justified)")
else else
" center-justify separators " center-justify separators
let sepleft = (SepSize_{ifield} - seplen)/2 let sepleft = (SepSize_{ifield} - seplen)/2
let sepright = SepSize_{ifield} - seplen - sepleft let sepright = SepSize_{ifield} - seplen - sepleft
let sep = s:MakeSpace(sepleft).sep.s:MakeSpace(sepright) let sep = s:MakeSpace(sepleft).sep.s:MakeSpace(sepright)
" call Decho("Pass".pass.": sep<".sep."> (center-justified)")
endif endif
endif endif
let spaces = FieldSize_{ifield} - fieldlen 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.">") " 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 " Perform alignment according to alignment style justification
@ -786,18 +795,20 @@ fun! Align#Align(hasctrl,...) range
if pass == 2 if pass == 2
" Write altered line to buffer " 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.": newtxt<".newtxt.">")
" call Decho("Pass".pass.": endtxt<".endtxt.">") " call Decho("Pass".pass.": endtxt<".endtxt.">")
keepj call setline(line,bgntxt.newtxt.endtxt) keepj call setline(curline,bgntxt.newtxt.endtxt)
endif endif
" call Decho("Pass".pass.": line#".curline."<".getline(".")."> (end-of-while)")
let line = line + 1 let curline = curline + 1
endwhile " line loop endwhile " curline loop
let pass= pass + 1 let pass= pass + 1
endwhile " pass loop endwhile " pass loop
" call Decho("end of two pass loop") " call Decho("end of two pass loop")
" call Decho("ENDWHILE: cursor at (".line(".").",".col(".").") curline#".curline)
" restore original leading whitespace " restore original leading whitespace
if s:AlignLeadKeep == 'W' if s:AlignLeadKeep == 'W'
@ -1059,6 +1070,7 @@ fun! s:Strlen(x)
call setline(line("."),a:x) call setline(line("."),a:x)
let ret= virtcol("$") - 1 let ret= virtcol("$") - 1
d d
keepj norm! k
let &l:mod= modkeep let &l:mod= modkeep
else else

View File

@ -1,8 +1,8 @@
" AlignMaps.vim : support functions for AlignMaps " AlignMaps.vim : support functions for AlignMaps
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell
" Date: Jun 18, 2012 " Date: Mar 12, 2013
" Version: 42 " Version: 43
" 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, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -16,7 +16,7 @@
if &cp || exists("g:loaded_AlignMaps") if &cp || exists("g:loaded_AlignMaps")
finish finish
endif endif
let g:loaded_AlignMaps= "v42" let g:loaded_AlignMaps= "v43"
let s:keepcpo = &cpo let s:keepcpo = &cpo
set cpo&vim set cpo&vim
"DechoTabOn "DechoTabOn
@ -111,6 +111,20 @@ fun! AlignMaps#WrapperEnd() range
" call Dret("AlignMaps#WrapperEnd : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z")) " call Dret("AlignMaps#WrapperEnd : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
endfun 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 <unique> ".maplead.a:mapname." <Plug>AM_".a:mapname
exe "vmap <silent> ".maplead.a:mapname.' :call AlignMaps#Vis("'.a:mapname.'")'."<cr>"
endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" AlignMaps#StdAlign: some semi-standard align calls {{{2 " AlignMaps#StdAlign: some semi-standard align calls {{{2
fun! AlignMaps#StdAlign(mode) range fun! AlignMaps#StdAlign(mode) range
@ -169,15 +183,15 @@ endfun
" AlignMaps#Equals: supports \t= and \T= {{{2 " AlignMaps#Equals: supports \t= and \T= {{{2
fun! AlignMaps#Equals() range fun! AlignMaps#Equals() range
" call Dfunc("AlignMaps#Equals()") " call Dfunc("AlignMaps#Equals()")
keepj 'a,'zs/\s\+\([*/+\-%|&\~^]\==\)/ \1/e keepj 'a,'zs/\s\+\([.*/+\-%|&\~^]\==\)/ \1/e
keepj 'a,'zs@ \+\([*/+\-%|&\~^]\)=@\1=@ge keepj 'a,'zs@ \+\([.*/+\-%|&\~^]\)=@\1=@ge
keepj 'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge keepj 'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge
keepj 'a,'zs/\([!<>:]\)=/\=submatch(1)."\<Char-0x0f>"/ge keepj 'a,'zs/\([!<>:]\)=/\=submatch(1)."\<Char-0x0f>"/ge
keepj norm g'zk keepj norm g'zk
AlignCtrl mIp1P1=l = AlignCtrl mIp1P1=l =
AlignCtrl g = AlignCtrl g =
keepj 'a,'z-1Align 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@[^+\-]\zs\([+\-]\)\( \+\)=@\2\1=@ge
keepj 'a,'z-1s/\( \+\);/;\1/ge keepj 'a,'z-1s/\( \+\);/;\1/ge
if &ft == "c" || &ft == "cpp" if &ft == "c" || &ft == "cpp"
@ -323,37 +337,6 @@ fun! AlignMaps#FixMultiDec()
let curline = getline(".") let curline = getline(".")
" call Decho("curline<".curline.">") " 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).";\<cr>"
" 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).";\<cr>"
" 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','') let @x=substitute(curline,'^\(\s*[a-zA-Z_ \t][a-zA-Z0-9<>_ \t]*\)\s\+[(*]*\h.*$','\1','')
" call Decho("@x<".@x.">") " call Decho("@x<".@x.">")
@ -386,6 +369,31 @@ fun! AlignMaps#AlignMapsClean()
" call Dret("AlignMaps#AlignMapsClean") " call Dret("AlignMaps#AlignMapsClean")
endfun 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 " Restore: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo

969
vim/colors/solarized.vim Normal file
View File

@ -0,0 +1,969 @@
" Name: Solarized vim colorscheme
" Author: Ethan Schoonover <es@ethanschoonover.com>
" 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
" <F5> if that mapping is available. If it is not available you will need to
" either map the function manually or change your current <F5> mapping to
" something else. If you wish to map the function manually, enter the following
" lines in your .vimrc:
"
" nmap <unique> <F5> <Plug>ToggleBackground
" imap <unique> <F5> <Plug>ToggleBackground
" vmap <unique> <F5> <Plug>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
"}}}

View File

@ -1,4 +1,4 @@
*align.txt* The Alignment Tool Jun 18, 2012 *align.txt* The Alignment Tool Jan 07, 2013
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM> Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first) (remove NOSPAM from Campbell's email first)
@ -144,7 +144,7 @@ Copyright: (c) 2004-2012 by Charles E. Campbell *Align-copyright*
3. Alignment Usage *alignusage* *align-usage* *align-userguide* {{{1 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: 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) 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 This command doesn't do the alignment operation itself; instead, it
controls subsequent alignment operation(s). controls subsequent alignment operation(s).
@ -756,7 +756,7 @@ ALIGNMENT CONTROL INITIALIZATION *alignctrl-init* *alignctrl-initialization* {{{
and :AlignCtrl will then be defined. 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 Once the alignment control has been determined, the user specifies a
range of lines for the Align command/function to do its thing. 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| \adcom: useful for aligning comments in declarations |alignmap-adcom|
\anum : useful for aligning numbers |alignmap-anum| \anum : useful for aligning numbers |alignmap-anum|
NOTE: For the visual-mode use of \anum, <vis.vim> is needed! NOTE: For the visual-mode use of \anum, <vis.vim> 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| \aenum: align a European-style number |alignmap-anum|
\aunum: align a USA-style number |alignmap-anum| \aunum: align a USA-style number |alignmap-anum|
\adec : useful for aligning declarations |alignmap-adec| \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 an AlignMap with the vis.vim plugin, available at either
stable: http://vim.sourceforge.net/scripts/script.php?script_id=1195 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 > Use it with commands such as >
@ -1400,7 +1400,12 @@ ALIGNMENT *align-align* {{{2
4. Alignment Tools' History *align-history* {{{1 4. Alignment Tools' History *align-history* {{{1
ALIGN HISTORY {{{2 ALIGN HISTORY {{{2
36 : May 20, 2009 * Previously, the "W" AlignCtrl setting, intended 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- to retain initial white space, did so by convert-
ing any leading tabs into an equivalent quantity ing any leading tabs into an equivalent quantity
of blanks (using the current tabstop setting). of blanks (using the current tabstop setting).
@ -1427,77 +1432,80 @@ ALIGN HISTORY {{{2
it should've been doing "setlocal noet". it should've been doing "setlocal noet".
Dec 22, 2011 * modifed s:Strlen() to use |strdisplaywidth()| when Dec 22, 2011 * modifed s:Strlen() to use |strdisplaywidth()| when
g:Align_xstrlen is zero. g:Align_xstrlen is zero.
35 : Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading v35 Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading
installed installed
Nov 19, 2008 * new sanity check for an AlignStyle of just ":" Nov 19, 2008 * new sanity check for an AlignStyle of just ":"
Jan 08, 2009 * save&restore of |'mod'| now done with local Jan 08, 2009 * save&restore of |'mod'| now done with local
variant variant
34 : Jul 08, 2008 * using :AlignCtrl before entering any alignment v34 Jul 08, 2008 * using :AlignCtrl before entering any alignment
control commands was causing an error. control commands was causing an error.
33 : Sep 20, 2007 * s:Strlen() introduced to support various ways v33 Sep 20, 2007 * s:Strlen() introduced to support various ways
used to represent characters and their effects used to represent characters and their effects
on string lengths. See |align-strlen|. on string lengths. See |align-strlen|.
* Align now accepts "..." -- so it can accept * Align now accepts "..." -- so it can accept
whitespace as separators. whitespace as separators.
32 : Aug 18, 2007 * uses |<q-args>| instead of |<f-args>| plus a v32 Aug 18, 2007 * uses |<q-args>| instead of |<f-args>| plus a
custom argument splitter to allow patterns with custom argument splitter to allow patterns with
backslashes to slide in unaltered. backslashes to slide in unaltered.
31 : Aug 06, 2007 * :[range]Align! [AlignCtrl settings] pattern(s) v31 Aug 06, 2007 * :[range]Align! [AlignCtrl settings] pattern(s)
implemented. implemented.
30 : Feb 12, 2007 * now uses |setline()| v30 Feb 12, 2007 * now uses |setline()|
29 : Jan 18, 2006 * cecutil updated to use keepjumps v29 Jan 18, 2006 * cecutil updated to use keepjumps
Feb 23, 2006 * Align now converted to vim 7.0 style using Feb 23, 2006 * Align now converted to vim 7.0 style using
auto-loading functions. auto-loading functions.
28 : Aug 17, 2005 * report option workaround v28 Aug 17, 2005 * report option workaround
Oct 24, 2005 * AlignCtrl l: wasn't behaving as expected; fixed Oct 24, 2005 * AlignCtrl l: wasn't behaving as expected; fixed
27 : Apr 15, 2005 : cpo workaround v27 Apr 15, 2005 * cpo workaround
ignorecase workaround ignorecase workaround
26 : Aug 20, 2004 : loaded_align now also indicates version number v26 Aug 20, 2004 * loaded_align now also indicates version number
GetLatestVimScripts :AutoInstall: now supported GetLatestVimScripts :AutoInstall: now supported
25 : Jul 27, 2004 : For debugging, uses Dfunc(), Dret(), and Decho() v25 Jul 27, 2004 * For debugging, uses Dfunc(), Dret(), and Decho()
24 : Mar 03, 2004 : (should've done this earlier!) visualmode(1) v24 Mar 03, 2004 * (should've done this earlier!) visualmode(1)
not supported until v6.2, now Align will avoid not supported until v6.2, now Align will avoid
calling it for earlier versions. Visualmode calling it for earlier versions. Visualmode
clearing won't take place then, of course. clearing won't take place then, of course.
23 : Oct 07, 2003 : Included Leif Wickland's ReplaceQuotedSpaces() v23 Oct 07, 2003 * Included Leif Wickland's ReplaceQuotedSpaces()
function which supports \tsq function which supports \tsq
22 : Jan 29, 2003 : Now requires 6.1.308 or later to clear visualmode() v22 Jan 29, 2003 * Now requires 6.1.308 or later to clear visualmode()
21 : Jan 10, 2003 : BugFix: similar problem to #19; new code v21 Jan 10, 2003 * BugFix: similar problem to #19; new code
bypasses "norm! v\<Esc>" until initialization bypasses "norm! v\<Esc>" until initialization
is over. is over.
20 : Dec 30, 2002 : BugFix: more on "unable to highlight" fixed v20 Dec 30, 2002 * BugFix: more on "unable to highlight" fixed
19 : Nov 21, 2002 : BugFix: some terminals gave an "unable to highlight" v19 Nov 21, 2002 * BugFix: some terminals gave an "unable to highlight"
message at startup; Hari Krishna Dara tracked it message at startup; Hari Krishna Dara tracked it
down; a silent! now included to prevent noise. down; a silent! now included to prevent noise.
18 : Nov 04, 2002 : BugFix: re-enabled anti-repeated-loading v18 Nov 04, 2002 * BugFix: re-enabled anti-repeated-loading
17 : Nov 04, 2002 : BugFix: forgot to have AlignPush() push s:AlignSep v17 Nov 04, 2002 * BugFix: forgot to have AlignPush() push s:AlignSep
AlignCtrl now clears visual-block mode when used so AlignCtrl now clears visual-block mode when used so
that Align won't try to use old visual-block that Align won't try to use old visual-block
selection marks '< '> selection marks '< '>
16 : Sep 18, 2002 : AlignCtrl <>| options implemented (separator v16 Sep 18, 2002 * AlignCtrl <>| options implemented (separator
justification) justification)
15 : Aug 22, 2002 : bug fix: AlignCtrl's ":" now acts as a modifier of v15 Aug 22, 2002 * bug fix: AlignCtrl's ":" now acts as a modifier of
the preceding alignment operator (lrc) the preceding alignment operator (lrc)
14 : Aug 20, 2002 : bug fix: AlignCtrl default now keeps &ic unchanged v14 Aug 20, 2002 * bug fix: AlignCtrl default now keeps &ic unchanged
bug fix: Align, on end-field, wasn't using correct bug fix: Align, on end-field, wasn't using correct
alignop bug fix: Align, on end-field, was appending alignop bug fix: Align, on end-field, was appending
padding padding
13 : Aug 19, 2002 : bug fix: zero-length g/v patterns are accepted v13 Aug 19, 2002 * bug fix: zero-length g/v patterns are accepted
bug fix: always skip blank lines bug fix: always skip blank lines
bug fix: AlignCtrl default now also clears g and v bug fix: AlignCtrl default now also clears g and v
patterns patterns
12 : Aug 16, 2002 : moved keep_ic above zero-length pattern checks v12 Aug 16, 2002 * moved keep_ic above zero-length pattern checks
added "AlignCtrl default" added "AlignCtrl default"
fixed bug with last field getting separator spaces fixed bug with last field getting separator spaces
at end line at end line
11 : Jul 08, 2002 : prevent separator patterns which match zero length v11 Jul 08, 2002 * prevent separator patterns which match zero length
-+: included as additional alignment/justification -+: included as additional alignment/justification
styles styles
10 : Jun 26, 2002 : =~# used instead of =~ (for matching case) v10 Jun 26, 2002 * =~# used instead of =~ (for matching case)
ignorecase option handled ignorecase option handled
9 : Jun 25, 2002 : implemented cyclic padding v09 Jun 25, 2002 * implemented cyclic padding
ALIGNMENT MAP HISTORY *alignmap-history* {{{2 ALIGNMENT MAP HISTORY *alignmap-history* {{{2
v43 Nov 28, 2012 * changed a lot of maps to use nnoremap (instead
of map)
Jan 07, 2013 *
v42 Jan 06, 2010 * new maps for \anum, \aenum, \aunum v42 Jan 06, 2010 * new maps for \anum, \aenum, \aunum
Feb 16, 2010 * map for \t=, \T= now handles x++ = something; Feb 16, 2010 * map for \t=, \T= now handles x++ = something;
for c, c++ correctly. for c, c++ correctly.
@ -1524,27 +1532,27 @@ ALIGNMENT MAP HISTORY *alignmap-history* {{{2
with a simple map. with a simple map.
Oct 24, 2008 * broke AlignMaps into a plugin and autoload Oct 24, 2008 * broke AlignMaps into a plugin and autoload
pair of scripts. pair of scripts.
v39 Mar 06, 2008 : * \t= only does /* ... */ aligning when in *.c v39 Mar 06, 2008 * \t= only does /* ... */ aligning when in *.c
*.cpp files. *.cpp files.
v38 Aug 18, 2007 : * \tt altered so that it works with the new v38 Aug 18, 2007 * \tt altered so that it works with the new
use of |<q-args>| plus a custom argument use of |<q-args>| plus a custom argument
splitter splitter
v36 Sep 27, 2006 : * AlignWrapperStart() now has tests that marks v36 Sep 27, 2006 * AlignWrapperStart() now has tests that marks
y and z are not set y and z are not set
May 15, 2007 * \anum and variants improved May 15, 2007 * \anum and variants improved
v35 Sep 01, 2006 : * \t= and cousins used "`"s. They now use \xff v35 Sep 01, 2006 * \t= and cousins used "`"s. They now use \xff
characters. characters.
* \acom now works with doxygen style /// comments * \acom now works with doxygen style /// comments
* <char-0xff> used in \t= \T= \w= and \m= instead * <char-0xff> used in \t= \T= \w= and \m= instead
of backquotes. of backquotes.
v34 Feb 23, 2006 : * AlignMaps now converted to vim 7.0 style using v34 Feb 23, 2006 * AlignMaps now converted to vim 7.0 style using
auto-loading functions. auto-loading functions.
v33 Oct 12, 2005 : * \ts, now uses P1 in its AlignCtrl call v33 Oct 12, 2005 * \ts, now uses P1 in its AlignCtrl call
v32 Jun 28, 2005 : * s:WrapperStart() changed to AlignWrapperStart() v32 Jun 28, 2005 * s:WrapperStart() changed to AlignWrapperStart()
s:WrapperEnd() changed to AlignWrapperEnd() s:WrapperEnd() changed to AlignWrapperEnd()
These changes let the AlignWrapper...()s to be These changes let the AlignWrapper...()s to be
used outside of AlignMaps.vim used outside of AlignMaps.vim
v31 Feb 01, 2005 : * \adcom included, with help v31 Feb 01, 2005 * \adcom included, with help
* \a, now works across multiple lines with * \a, now works across multiple lines with
different types different types
* AlignMaps now uses <cecutil.vim> for its mark and * AlignMaps now uses <cecutil.vim> for its mark and
@ -1552,42 +1560,42 @@ ALIGNMENT MAP HISTORY *alignmap-history* {{{2
Mar 04, 2005 * improved \a, Mar 04, 2005 * improved \a,
Apr 06, 2005 * included \aenum, \aunum, and provided Apr 06, 2005 * included \aenum, \aunum, and provided
g:alignmaps_{usa|euro]number} options g:alignmaps_{usa|euro]number} options
v30 Aug 20, 2004 : * \a, : handles embedded assignments and does \adec v30 Aug 20, 2004 * * \a, : handles embedded assignments and does \adec
* \acom now can handle Doxygen-style comments * \acom now can handle Doxygen-style comments
* g:loaded_alignmaps now also indicates version * g:loaded_alignmaps now also indicates version
* internal maps \WE and \WS are now re-entrant * internal maps \WE and \WS are now re-entrant
v29 Jul 27, 2004 : * \tml aligns trailing multi-line single v29 Jul 27, 2004 * \tml aligns trailing multi-line single
backslashes (thanks to Raul Benavente!) backslashes (thanks to Raul Benavente!)
v28 May 13, 2004 : * \a, had problems with leading blanks; fixed! v28 May 13, 2004 * \a, had problems with leading blanks; fixed!
v27 Mar 31, 2004 : * \T= was having problems with == and != v27 Mar 31, 2004 * \T= was having problems with == and !=
* Fixed more problems with \adec * Fixed more problems with \adec
v26 Dec 09, 2003 : * \ascom now also ignores lines without comments v26 Dec 09, 2003 * \ascom now also ignores lines without comments
* \tt \& now not matched * \tt \& now not matched
* \a< handles both << and >> * \a< handles both << and >>
v25 Nov 14, 2003 : * included \anum (aligns numbers with periods and v25 Nov 14, 2003 * included \anum (aligns numbers with periods and
commas). \anum also supported with ctrl-v mode. commas). \anum also supported with ctrl-v mode.
* \ts, \Ts, : (aligns on commas, then swaps leading * \ts, \Ts, : (aligns on commas, then swaps leading
spaces with commas) spaces with commas)
* \adec ignores preprocessor lines and lines with * \adec ignores preprocessor lines and lines with
with comments-only with comments-only
v23 Sep 10, 2003 : * Bugfix for \afnc - no longer overwrites marks y,z v23 Sep 10, 2003 * Bugfix for \afnc - no longer overwrites marks y,z
* fixed bug in \tsp, \tab, \Tsp, and \Tab - lines * fixed bug in \tsp, \tab, \Tsp, and \Tab - lines
containing backslashes were having their containing backslashes were having their
backslashes removed. Included Leif Wickland's backslashes removed. Included Leif Wickland's
patch for \tsq. patch for \tsq.
* \adef now ignores lines holding comments only * \adef now ignores lines holding comments only
v18 Aug 22, 2003 : \a< lines up C++'s << operators v18 Aug 22, 2003 * \a< lines up C++'s << operators
saves/restores gdefault option (sets to nogd) saves/restores gdefault option (sets to nogd)
all b:..varname.. are now b:alignmaps_..varname.. all b:..varname.. are now b:alignmaps_..varname..
v17 Nov 04, 2002 : \afnc now handles // comments correctly and v17 Nov 04, 2002 * \afnc now handles // comments correctly and
commas within comments commas within comments
v16 Sep 10, 2002 : changed : to :silent! for \adec v16 Sep 10, 2002 * changed : to :silent! for \adec
v15 Aug 27, 2002 : removed some <c-v>s v15 Aug 27, 2002 * removed some <c-v>s
v14 Aug 20, 2002 : \WS, \WE mostly moved to functions, marks y and z v14 Aug 20, 2002 * \WS, \WE mostly moved to functions, marks y and z
now restored now restored
v11 Jul 08, 2002 : \abox bug fix v11 Jul 08, 2002 * \abox bug fix
v9 Jun 25, 2002 : \abox now handles leading initial whitespace v9 Jun 25, 2002 * \abox now handles leading initial whitespace
: various bugfixes to \afnc, \T=, etc various bugfixes to \afnc, \T=, etc
============================================================================== ==============================================================================
Modelines: {{{1 Modelines: {{{1

View File

@ -59,7 +59,9 @@
'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'* 'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'*
'loaded_nerd_comments' NERD_commenter.txt /*'loaded_nerd_comments'* 'loaded_nerd_comments' NERD_commenter.txt /*'loaded_nerd_comments'*
'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'* 'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'*
:Align Align.txt /*:Align*
:AlignCenter textformat.txt /*:AlignCenter* :AlignCenter textformat.txt /*:AlignCenter*
:AlignCtrl Align.txt /*:AlignCtrl*
:AlignJustify textformat.txt /*:AlignJustify* :AlignJustify textformat.txt /*:AlignJustify*
:AlignLeft textformat.txt /*:AlignLeft* :AlignLeft textformat.txt /*:AlignLeft*
:AlignMapsClean Align.txt /*:AlignMapsClean* :AlignMapsClean Align.txt /*:AlignMapsClean*

View File

@ -12,7 +12,7 @@ set mousefocus
set errorbells set errorbells
set visualbell set visualbell
set showtabline=2 set showtabline=2
set guicursor=a:blinkon0 set guicursor=a:block-blinkon0
set showtabline=2 set showtabline=2
set guitablabel=%!GuiTabLabel() set guitablabel=%!GuiTabLabel()
set guitabtooltip=%!GuiTabToolTip() set guitabtooltip=%!GuiTabToolTip()

View File

@ -1,9 +1,9 @@
" AlignMapsPlugin: Alignment maps based upon <Align.vim> and <AlignMaps.vim> " AlignMapsPlugin: Alignment maps based upon <Align.vim> and <AlignMaps.vim>
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Dr. Charles E. Campbell. <NdrOchipS@PcampbellAfamily.Mbiz>
" Date: Jun 18, 2012 " Date: Jan 07, 2013
" "
" NOTE: the code herein needs vim 7.0 or later " NOTE: the code herein needs vim 7.0 or later
" 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, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -37,7 +37,7 @@ if &cp || exists("g:loaded_AlignMapsPlugin")
finish finish
endif endif
let s:keepcpo = &cpo let s:keepcpo = &cpo
let g:loaded_AlignMapsPlugin = "v42" let g:loaded_AlignMapsPlugin = "v43"
set cpo&vim set cpo&vim
" ===================================================================== " =====================================================================
@ -53,8 +53,8 @@ com! AlignMapsClean :call AlignMaps#AlignMapsClean()
if !hasmapto('<Plug>WrapperStart') if !hasmapto('<Plug>WrapperStart')
map <unique> <SID>WS <Plug>AlignMapsWrapperStart map <unique> <SID>WS <Plug>AlignMapsWrapperStart
endif endif
nmap <silent> <script> <Plug>AlignMapsWrapperStart :set lz<CR>:call AlignMaps#WrapperStart(0)<CR> nnoremap <silent> <script> <Plug>AlignMapsWrapperStart :set lz<CR>:call AlignMaps#WrapperStart(0)<CR>
vmap <silent> <script> <Plug>AlignMapsWrapperStart :<c-u>set lz<CR>:call AlignMaps#WrapperStart(1)<CR> vnoremap <silent> <script> <Plug>AlignMapsWrapperStart :<c-u>set lz<CR>:call AlignMaps#WrapperStart(1)<CR>
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" WE: wrapper end (internal) {{{2 " WE: wrapper end (internal) {{{2
@ -62,50 +62,52 @@ vmap <silent> <script> <Plug>AlignMapsWrapperStart :<c-u>set lz<CR>:call AlignMa
if !hasmapto('<Plug>WrapperEnd') if !hasmapto('<Plug>WrapperEnd')
nmap <unique> <SID>WE <Plug>AlignMapsWrapperEnd nmap <unique> <SID>WE <Plug>AlignMapsWrapperEnd
endif endif
nmap <silent> <script> <Plug>AlignMapsWrapperEnd :call AlignMaps#WrapperEnd()<CR>:set nolz<CR> nnoremap <silent> <script> <Plug>AlignMapsWrapperEnd :call AlignMaps#WrapperEnd()<CR>:set nolz<CR>
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Complex C-code alignment maps: {{{2 " Complex C-code alignment maps: {{{2
if !hasmapto('<Plug>AM_a?') |map <unique> <Leader>a? <Plug>AM_a?|endif if !hasmapto('<Plug>AM_a?') |call AlignMaps#MakeMap("a?")|endif
if !hasmapto('<Plug>AM_a,') |map <unique> <Leader>a, <Plug>AM_a,|endif if !hasmapto('<Plug>AM_a,') |call AlignMaps#MakeMap("a,")|endif
if !hasmapto('<Plug>AM_a<') |map <unique> <Leader>a< <Plug>AM_a<|endif if !hasmapto('<Plug>AM_a<') |call AlignMaps#MakeMap("a<")|endif
if !hasmapto('<Plug>AM_a=') |map <unique> <Leader>a= <Plug>AM_a=|endif if !hasmapto('<Plug>AM_a=') |call AlignMaps#MakeMap("a=")|endif
if !hasmapto('<Plug>AM_a(') |map <unique> <Leader>a( <Plug>AM_a(|endif if !hasmapto('<Plug>AM_a(') |call AlignMaps#MakeMap("a(")|endif
if !hasmapto('<Plug>AM_abox') |map <unique> <Leader>abox <Plug>AM_abox|endif if !hasmapto('<Plug>AM_abox') |call AlignMaps#MakeMap("abox")|endif
if !hasmapto('<Plug>AM_acom') |map <unique> <Leader>acom <Plug>AM_acom|endif if !hasmapto('<Plug>AM_acom') |call AlignMaps#MakeMap("acom")|endif
if !hasmapto('<Plug>AM_adcom')|map <unique> <Leader>adcom <Plug>AM_adcom|endif if !hasmapto('<Plug>AM_adcom')|call AlignMaps#MakeMap("adcom")|endif
if !hasmapto('<Plug>AM_aocom')|map <unique> <Leader>aocom <Plug>AM_aocom|endif if !hasmapto('<Plug>AM_aocom')|call AlignMaps#MakeMap("aocom")|endif
if !hasmapto('<Plug>AM_ascom')|map <unique> <Leader>ascom <Plug>AM_ascom|endif if !hasmapto('<Plug>AM_ascom')|call AlignMaps#MakeMap("ascom")|endif
if !hasmapto('<Plug>AM_adec') |map <unique> <Leader>adec <Plug>AM_adec|endif if !hasmapto('<Plug>AM_adec') |call AlignMaps#MakeMap("adec")|endif
if !hasmapto('<Plug>AM_adef') |map <unique> <Leader>adef <Plug>AM_adef|endif if !hasmapto('<Plug>AM_adef') |call AlignMaps#MakeMap("adef")|endif
if !hasmapto('<Plug>AM_afnc') |map <unique> <Leader>afnc <Plug>AM_afnc|endif if !hasmapto('<Plug>AM_afnc') |call AlignMaps#MakeMap("afnc")|endif
if !hasmapto('<Plug>AM_afnc') |map <unique> <Leader>afnc <Plug>AM_afnc|endif if !hasmapto('<Plug>AM_afnc') |call AlignMaps#MakeMap("afnc")|endif
" ---------------------------------------------------------------------
" Number alignment maps: {{{2 " Number alignment maps: {{{2
if !hasmapto('<Plug>AM_aunum')|map <unique> <Leader>aunum <Plug>AM_aunum|endif if !hasmapto('<Plug>AM_aunum')|call AlignMaps#MakeMap("aunum")|endif
if !hasmapto('<Plug>AM_aenum')|map <unique> <Leader>aenum <Plug>AM_aenum|endif if !hasmapto('<Plug>AM_aenum')|call AlignMaps#MakeMap("aenum")|endif
if exists("g:alignmaps_euronumber") && !exists("g:alignmaps_usanumber") if exists("g:alignmaps_euronumber") && !exists("g:alignmaps_usanumber")
if !hasmapto('<Plug>AM_anum')|map <unique> <Leader>anum <Plug>AM_aenum|endif if !hasmapto('<Plug>AM_anum')|call AlignMaps#MakeMap("anum")|endif
else else
if !hasmapto('<Plug>AM_anum')|map <unique> <Leader>anum <Plug>AM_aunum|endif if !hasmapto('<Plug>AM_anum')|call AlignMaps#MakeMap("anum")|endif
endif endif
" ---------------------------------------------------------------------
" Plug maps: (the real thing) {{{2 " Plug maps: (the real thing) {{{2
map <silent> <script> <Plug>AM_a? <SID>WS:AlignCtrl mIp1P1lC ? : : : : <CR>:'a,.Align<CR>:'a,'z-1s/\(\s\+\)? /?\1/e<CR><SID>WE nnoremap <silent> <script> <Plug>AM_a? <SID>WS:AlignCtrl mIp1P1lC ? : : : : <CR>:'a,.Align<CR>:'a,'z-1s/\(\s\+\)? /?\1/e<CR><SID>WE
map <silent> <script> <Plug>AM_a, <SID>WS:'y,'zs/\(\S\)\s\+/\1 /ge<CR>'yjma'zk:call AlignMaps#CharJoiner(",")<cr>:silent 'y,'zg/,/call AlignMaps#FixMultiDec()<CR>'z:exe "norm \<Plug>AM_adec"<cr><SID>WE nnoremap <silent> <script> <Plug>AM_a, <SID>WS:'y,'zs/\(\S\)\s\+/\1 /ge<CR>'yjma'zk:call AlignMaps#CharJoiner(",")<cr>:silent 'y,'zg/,/call AlignMaps#FixMultiDec()<CR>'z:exe "norm \<Plug>AM_adec"<cr><SID>WE
map <silent> <script> <Plug>AM_a< <SID>WS:AlignCtrl mIp1P1=l << >><CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_a< <SID>WS:AlignCtrl mIp1P1=l << >><CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_a( <SID>WS:AlignCtrl mIp0P1=l<CR>:'a,.Align [(,]<CR>:sil 'y+1,'z-1s/\(\s\+\),/,\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_a( <SID>WS:AlignCtrl mIp0P1=l<CR>:'a,.Align [(,]<CR>:sil 'y+1,'z-1s/\(\s\+\),/,\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_a= <SID>WS:AlignCtrl mIp1P1=l<CR>:AlignCtrl g :=<CR>:'a,'zAlign :\==<CR><SID>WE nnoremap <silent> <script> <Plug>AM_a= <SID>WS:AlignCtrl mIp1P1=l<CR>:AlignCtrl g :=<CR>:'a,'zAlign :\==<CR><SID>WE
map <silent> <script> <Plug>AM_abox <SID>WS:let g:alignmaps_iws=substitute(getline("'a"),'^\(\s*\).*$','\1','e')<CR>:'a,'z-1s/^\s\+//e<CR>:'a,'z-1s/^.*$/@&@/<CR>:AlignCtrl m=p01P0w @<CR>:'a,.Align<CR>:'a,'z-1s/@/ * /<CR>:'a,'z-1s/@$/*/<CR>'aYP:s/./*/g<CR>0r/'zkYp:s/./*/g<CR>0r A/<Esc>:exe "'a-1,'z-1s/^/".g:alignmaps_iws."/e"<CR><SID>WE nnoremap <silent> <script> <Plug>AM_abox <SID>WS:let g:alignmaps_iws=substitute(getline("'a"),'^\(\s*\).*$','\1','e')<CR>:'a,'z-1s/^\s\+//e<CR>:'a,'z-1s/^.*$/@&@/<CR>:AlignCtrl m=p01P0w @<CR>:'a,.Align<CR>:'a,'z-1s/@/ * /<CR>:'a,'z-1s/@$/*/<CR>'aYP:s/./*/g<CR>0r/'zkYp:s/./*/g<CR>0r A/<Esc>:exe "'a-1,'z-1s/^/".g:alignmaps_iws."/e"<CR><SID>WE
map <silent> <script> <Plug>AM_acom <SID>WS:'a,.s/\/[*/]\/\=/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:'y,'zs/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(2)<CR>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE nnoremap <silent> <script> <Plug>AM_acom <SID>WS:'a,.s/\/[*/]\/\=/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:'y,'zs/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(2)<CR>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
map <silent> <script> <Plug>AM_adcom <SID>WS:'a,.v/^\s*\/[/*]/s/\/[*/]\*\=/@&@/e<CR>:'a,.v/^\s*\/[/*]/s/\*\//@&/e<CR>:'y,'zv/^\s*\/[/*]/s/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(3)<cr>:'y,'zv/^\s*\/[/*]/s/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE nnoremap <silent> <script> <Plug>AM_adcom <SID>WS:'a,.v/^\s*\/[/*]/s/\/[*/]\*\=/@&@/e<CR>:'a,.v/^\s*\/[/*]/s/\*\//@&/e<CR>:'y,'zv/^\s*\/[/*]/s/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(3)<cr>:'y,'zv/^\s*\/[/*]/s/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
map <silent> <script> <Plug>AM_aocom <SID>WS:AlignPush<CR>:AlignCtrl g /[*/]<CR>:exe "norm \<Plug>AM_acom"<cr>:AlignPop<CR><SID>WE nnoremap <silent> <script> <Plug>AM_aocom <SID>WS:AlignPush<CR>:AlignCtrl g /[*/]<CR>:exe "norm \<Plug>AM_acom"<cr>:AlignPop<CR><SID>WE
map <silent> <script> <Plug>AM_ascom <SID>WS:'a,.s/\/[*/]/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:silent! 'a,.g/^\s*@\/[*/]/s/@//ge<CR>:AlignCtrl v ^\s*\/[*/]<CR>:AlignCtrl g \/[*/]<CR>'zk:call AlignMaps#StdAlign(2)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ascom <SID>WS:'a,.s/\/[*/]/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:silent! 'a,.g/^\s*@\/[*/]/s/@//ge<CR>:AlignCtrl v ^\s*\/[*/]<CR>:AlignCtrl g \/[*/]<CR>'zk:call AlignMaps#StdAlign(2)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
map <silent> <script> <Plug>AM_adec <SID>WS:'a,'zs/\([^ \t/(]\)\([*&]\)/\1 \2/e<CR>:'y,'zv/^\//s/\([^ \t]\)\s\+/\1 /ge<CR>:'y,'zv/^\s*[*/]/s/\([^/][*&]\)\s\+/\1/ge<CR>:'y,'zv/^\s*[*/]/s/^\(\s*\%([a-zA-Z_][a-zA-Z_0-9<>:]*\s\+\%([a-zA-Z_*(&]\)\@=\)\+\)\([*(&]*\)\s*\([a-zA-Z0-9_()<>:]\+\)\s*\(\(\[.\{-}]\)*\)\s*\(=\)\=\s*\(.\{-}\)\=\s*;/\1@\2#@\3\4@\6@\7;@/e<CR>:'y,'zv/^\s*[*/]/s/\*\/\s*$/@*\//e<CR>:'y,'zv/^\s*[*/]/s/^\s\+\*/@@@@@* /e<CR>:'y,'zv/^\s*[*/]/s/^@@@@@\*\(.*[^*/]\)$/&@*/e<CR>'yjma'zk:AlignCtrl v ^\s*[*/#]<CR>:call AlignMaps#StdAlign(1)<cr>:'y,'zv/^\s*[*/]/s/@ //ge<CR>:'y,'zv/^\s*[*/]/s/\(\s*\);/;\1/e<CR>:'y,'zv/^#/s/# //e<CR>:'y,'zv/^\s\+[*/#]/s/\([^/*]\)\(\*\+\)\( \+\)/\1\3\2/e<CR>:'y,'zv/^\s\+[*/#]/s/\((\+\)\( \+\)\*/\2\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/^\(\s\+\) \*/\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/[ \t@]*$//e<CR>:'y,'zs/^[*]/ */e<CR><SID>WE nnoremap <silent> <script> <Plug>AM_adec <SID>WS:'a,'zs/\([^ \t/(]\)\([*&]\)/\1 \2/e<CR>:'y,'zv/^\//s/\([^ \t]\)\s\+/\1 /ge<CR>:'y,'zv/^\s*[*/]/s/\([^/][*&]\)\s\+/\1/ge<CR>:'y,'zv/^\s*[*/]/s/^\(\s*\%([a-zA-Z_][a-zA-Z_0-9<>:]*\s\+\%([a-zA-Z_*(&]\)\@=\)\+\)\([*(&]*\)\s*\([a-zA-Z0-9_()<>:]\+\)\s*\(\(\[.\{-}]\)*\)\s*\(=\)\=\s*\(.\{-}\)\=\s*;/\1@\2#@\3\4@\6@\7;@/e<CR>:'y,'zv/^\s*[*/]/s/\*\/\s*$/@*\//e<CR>:'y,'zv/^\s*[*/]/s/^\s\+\*/@@@@@* /e<CR>:'y,'zv/^\s*[*/]/s/^@@@@@\*\(.*[^*/]\)$/&@*/e<CR>'yjma'zk:AlignCtrl v ^\s*[*/#]<CR>:call AlignMaps#StdAlign(1)<cr>:'y,'zv/^\s*[*/]/s/@ //ge<CR>:'y,'zv/^\s*[*/]/s/\(\s*\);/;\1/e<CR>:'y,'zv/^#/s/# //e<CR>:'y,'zv/^\s\+[*/#]/s/\([^/*]\)\(\*\+\)\( \+\)/\1\3\2/e<CR>:'y,'zv/^\s\+[*/#]/s/\((\+\)\( \+\)\*/\2\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/^\(\s\+\) \*/\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/[ \t@]*$//e<CR>:'y,'zs/^[*]/ */e<CR><SID>WE
map <silent> <script> <Plug>AM_adef <SID>WS:AlignPush<CR>:AlignCtrl v ^\s*\(\/\*\<bar>\/\/\)<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/^\(\s*\)#\(\s\)*define\s*\(\I[a-zA-Z_0-9(),]*\)\s*\(.\{-}\)\($\<Bar>\/\*\)/#\1\2define @\3@\4@\5/e<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/\($\<Bar>\*\/\)/@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>'yjma'zk:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/ @//g<CR><SID>WE nnoremap <silent> <script> <Plug>AM_adef <SID>WS:AlignPush<CR>:AlignCtrl v ^\s*\(\/\*\<bar>\/\/\)<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/^\(\s*\)#\(\s\)*define\s*\(\I[a-zA-Z_0-9(),]*\)\s*\(.\{-}\)\($\<Bar>\/\*\)/#\1\2define @\3@\4@\5/e<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/\($\<Bar>\*\/\)/@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>'yjma'zk:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/ @//g<CR><SID>WE
map <silent> <script> <Plug>AM_afnc :<c-u>set lz<CR>:silent call AlignMaps#Afnc()<CR>:set nolz<CR> nnoremap <silent> <script> <Plug>AM_afnc :<c-u>set lz<CR>:silent call AlignMaps#Afnc()<CR>:set nolz<CR>
map <silent> <script> <Plug>AM_aunum <SID>WS:'a,'zs/\([-+]\=\d\+\)\([eE][-+]\d\+\)\=/\1#\2/ge<CR>:'a,'zs/\([.eE][-+]\=\d\+\)#/\1/ge<CR>:'a,'zs/#\././ge<CR>:'a,'zs/[-+]\=\%(\d\+\%([.#]\d*\)\=\<bar>[.#]\d\+\)\%([eE][-+]\=\d\+\)\=/@&@/ge<CR>:AlignCtrl Imp0P0r<CR>:'a,'zAlign [@#.]<CR>:'a,'zs/\([.#]\)\(\s\+\)\(\d*\%([eE][-+]\=\d\+\)\=\)@/\1\3\2@/ge<CR>:'a,'zs/@//<CR>:'a,'zs/[#@]/ /ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_aunum <SID>WS:'a,'zs/\([-+]\=\d\+\)\([eE][-+]\d\+\)\=/\1#\2/ge<CR>:'a,'zs/\([.eE][-+]\=\d\+\)#/\1/ge<CR>:'a,'zs/#\././ge<CR>:'a,'zs/[-+]\=\%(\d\+\%([.#]\d*\)\=\<bar>[.#]\d\+\)\%([eE][-+]\=\d\+\)\=/@&@/ge<CR>:AlignCtrl Imp0P0r<CR>:'a,'zAlign [@#.]<CR>:'a,'zs/\([.#]\)\(\s\+\)\(\d*\%([eE][-+]\=\d\+\)\=\)@/\1\3\2@/ge<CR>:'a,'zs/@//<CR>:'a,'zs/[#@]/ /ge<CR><SID>WE
map <silent> <script> <Plug>AM_aenum <SID>WS:'a,'zs/\([-+]\=\d\+\)\([eE][-+]\d\+\)\=/\1#\2/ge<CR>:'a,'zs/\([,eE][-+]\=\d\+\)#/\1/ge<CR>:'a,'zs/#,/,/ge<CR>:'a,'zs/[-+]\=\%(\d\+\%([,#]\d*\)\=\<bar>[,#]\d\+\)\%([eE][-+]\=\d\+\)\=/@&@/ge<CR>:AlignCtrl Imp0P0r<CR>:'a,'zAlign [@#,]<CR>:'a,'zs/\([,#]\)\(\s\+\)\(\d*\%([eE][-+]\=\d\+\)\=\)@/\1\3\2@/ge<CR>:'a,'zs/@//<CR>:'a,'zs/[#@]/ /ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_aenum <SID>WS:'a,'zs/\([-+]\=\d\+\)\([eE][-+]\d\+\)\=/\1#\2/ge<CR>:'a,'zs/\([,eE][-+]\=\d\+\)#/\1/ge<CR>:'a,'zs/#,/,/ge<CR>:'a,'zs/[-+]\=\%(\d\+\%([,#]\d*\)\=\<bar>[,#]\d\+\)\%([eE][-+]\=\d\+\)\=/@&@/ge<CR>:AlignCtrl Imp0P0r<CR>:'a,'zAlign [@#,]<CR>:'a,'zs/\([,#]\)\(\s\+\)\(\d*\%([eE][-+]\=\d\+\)\=\)@/\1\3\2@/ge<CR>:'a,'zs/@//<CR>:'a,'zs/[#@]/ /ge<CR><SID>WE
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" html table alignment {{{2 " html table alignment {{{2
if !hasmapto('<Plug>AM_Htd')|map <unique> <Leader>Htd <Plug>AM_Htd|endif if !hasmapto('<Plug>AM_Htd')|map <unique> <Leader>Htd <Plug>AM_Htd|endif
@ -113,86 +115,88 @@ map <silent> <script> <Plug>AM_Htd <SID>WS:'y,'zs%<[tT][rR]><[tT][dD][^>]\{-}>\<
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" character-based right-justified alignment maps {{{2 " character-based right-justified alignment maps {{{2
if !hasmapto('<Plug>AM_T|')|map <unique> <Leader>T| <Plug>AM_T||endif if !hasmapto('<Plug>AM_T|')|call AlignMaps#MakeMap("T|")|endif
if !hasmapto('<Plug>AM_T#') |map <unique> <Leader>T# <Plug>AM_T#|endif if !hasmapto('<Plug>AM_T#') |call AlignMaps#MakeMap("T#")|endif
if !hasmapto('<Plug>AM_T,') |map <unique> <Leader>T, <Plug>AM_T,o|endif if !hasmapto('<Plug>AM_T,') |call AlignMaps#MakeMap("T,")|endif
if !hasmapto('<Plug>AM_Ts,') |map <unique> <Leader>Ts, <Plug>AM_Ts,|endif if !hasmapto('<Plug>AM_Ts,') |call AlignMaps#MakeMap("Ts,")|endif
if !hasmapto('<Plug>AM_T:') |map <unique> <Leader>T: <Plug>AM_T:|endif if !hasmapto('<Plug>AM_T:') |call AlignMaps#MakeMap("T:")|endif
if !hasmapto('<Plug>AM_T;') |map <unique> <Leader>T; <Plug>AM_T;|endif if !hasmapto('<Plug>AM_T;') |call AlignMaps#MakeMap("T;")|endif
if !hasmapto('<Plug>AM_T<') |map <unique> <Leader>T< <Plug>AM_T<|endif if !hasmapto('<Plug>AM_T<') |call AlignMaps#MakeMap("T<")|endif
if !hasmapto('<Plug>AM_T=') |map <unique> <Leader>T= <Plug>AM_T=|endif if !hasmapto('<Plug>AM_T=') |call AlignMaps#MakeMap("T=")|endif
if !hasmapto('<Plug>AM_T?') |map <unique> <Leader>T? <Plug>AM_T?|endif if !hasmapto('<Plug>AM_T?') |call AlignMaps#MakeMap("T?")|endif
if !hasmapto('<Plug>AM_T@') |map <unique> <Leader>T@ <Plug>AM_T@|endif if !hasmapto('<Plug>AM_T@') |call AlignMaps#MakeMap("T@")|endif
if !hasmapto('<Plug>AM_TW@') |map <unique> <Leader>TW@ <Plug>AM_TW@|endif if !hasmapto('<Plug>AM_TW@') |call AlignMaps#MakeMap("TW@")|endif
if !hasmapto('<Plug>AM_Tab') |map <unique> <Leader>Tab <Plug>AM_Tab|endif if !hasmapto('<Plug>AM_Tab') |call AlignMaps#MakeMap("Tab")|endif
if !hasmapto('<Plug>AM_Tsp') |map <unique> <Leader>Tsp <Plug>AM_Tsp|endif if !hasmapto('<Plug>AM_Tsp') |call AlignMaps#MakeMap("Tsp")|endif
if !hasmapto('<Plug>AM_T~') |map <unique> <Leader>T~ <Plug>AM_T~|endif if !hasmapto('<Plug>AM_T~') |call AlignMaps#MakeMap("T~")|endif
map <silent> <script> <Plug>AM_T| <SID>WS:AlignCtrl mIp0P0=r <Bar><CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T| <SID>WS:AlignCtrl mIp0P0=r <Bar><CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_T# <SID>WS:AlignCtrl mIp0P0=r #<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T# <SID>WS:AlignCtrl mIp0P0=r #<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_T, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_Ts, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR>:'a,.s/\(\s*\),/,\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_Ts, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<CR>:'a,.s/\(\s*\),/,\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_T: <SID>WS:AlignCtrl mIp1P1=r :<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T: <SID>WS:AlignCtrl mIp1P1=r :<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_T; <SID>WS:AlignCtrl mIp0P0=r ;<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T; <SID>WS:AlignCtrl mIp0P0=r ;<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_T< <SID>WS:AlignCtrl mIp0P0=r <<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T< <SID>WS:AlignCtrl mIp0P0=r <<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_T= <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0x0f>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom" nnoremap <silent> <script> <Plug>AM_T= <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0x0f>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
map <silent> <script> <Plug>AM_T? <SID>WS:AlignCtrl mIp0P0=r ?<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T? <SID>WS:AlignCtrl mIp0P0=r ?<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_T@ <SID>WS:AlignCtrl mIp0P0=r @<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T@ <SID>WS:AlignCtrl mIp0P0=r @<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_TW@ <SID>WS:AlignCtrl mWp0P0=r @<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_TW@ <SID>WS:AlignCtrl mWp0P0=r @<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_Tab <SID>WS:'a,.s/^\(\t*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\t','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE nnoremap <silent> <script> <Plug>AM_Tab <SID>WS:'a,.s/^\(\t*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\t','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
map <silent> <script> <Plug>AM_Tsp <SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE nnoremap <silent> <script> <Plug>AM_Tsp <SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
map <silent> <script> <Plug>AM_T~ <SID>WS:AlignCtrl mIp0P0=r ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_T~ <SID>WS:AlignCtrl mIp0P0=r ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" character-based left-justified alignment maps {{{2 " character-based left-justified alignment maps {{{2
if !hasmapto('<Plug>AM_t|') |map <unique> <Leader>t| <Plug>AM_t||endif if !hasmapto('<Plug>AM_t|','n') |call AlignMaps#MakeMap("t|")|endif
if !hasmapto('<Plug>AM_t#') |map <unique> <Leader>t# <Plug>AM_t#|endif if !hasmapto('<Plug>AM_t#','n') |call AlignMaps#MakeMap("t#")|endif
if !hasmapto('<Plug>AM_t,') |map <unique> <Leader>t, <Plug>AM_t,|endif if !hasmapto('<Plug>AM_t,','n') |call AlignMaps#MakeMap("t,")|endif
if !hasmapto('<Plug>AM_t:') |map <unique> <Leader>t: <Plug>AM_t:|endif if !hasmapto('<Plug>AM_t:','n') |call AlignMaps#MakeMap("t:")|endif
if !hasmapto('<Plug>AM_t;') |map <unique> <Leader>t; <Plug>AM_t;|endif if !hasmapto('<Plug>AM_t;','n') |call AlignMaps#MakeMap("t;")|endif
if !hasmapto('<Plug>AM_t<') |map <unique> <Leader>t< <Plug>AM_t<|endif if !hasmapto('<Plug>AM_t<','n') |call AlignMaps#MakeMap("t<")|endif
if !hasmapto('<Plug>AM_t=') |map <unique> <Leader>t= <Plug>AM_t=|endif if !hasmapto('<Plug>AM_t=','n') |call AlignMaps#MakeMap("t=")|endif
if !hasmapto('<Plug>AM_ts,') |map <unique> <Leader>ts, <Plug>AM_ts,|endif if !hasmapto('<Plug>AM_ts,','n') |call AlignMaps#MakeMap("ts,")|endif
if !hasmapto('<Plug>AM_ts:') |map <unique> <Leader>ts: <Plug>AM_ts:|endif if !hasmapto('<Plug>AM_ts:','n') |call AlignMaps#MakeMap("ts:")|endif
if !hasmapto('<Plug>AM_ts;') |map <unique> <Leader>ts; <Plug>AM_ts;|endif if !hasmapto('<Plug>AM_ts;','n') |call AlignMaps#MakeMap("ts;")|endif
if !hasmapto('<Plug>AM_ts<') |map <unique> <Leader>ts< <Plug>AM_ts<|endif if !hasmapto('<Plug>AM_ts<','n') |call AlignMaps#MakeMap("ts<")|endif
if !hasmapto('<Plug>AM_ts=') |map <unique> <Leader>ts= <Plug>AM_ts=|endif if !hasmapto('<Plug>AM_ts=','n') |call AlignMaps#MakeMap("ts=")|endif
if !hasmapto('<Plug>AM_w=') |map <unique> <Leader>w= <Plug>AM_w=|endif if !hasmapto('<Plug>AM_w=','n') |call AlignMaps#MakeMap("w=")|endif
if !hasmapto('<Plug>AM_t?') |map <unique> <Leader>t? <Plug>AM_t?|endif if !hasmapto('<Plug>AM_t?','n') |call AlignMaps#MakeMap("t?")|endif
if !hasmapto('<Plug>AM_t~') |map <unique> <Leader>t~ <Plug>AM_t~|endif if !hasmapto('<Plug>AM_t~','n') |call AlignMaps#MakeMap("t~")|endif
if !hasmapto('<Plug>AM_t@') |map <unique> <Leader>t@ <Plug>AM_t@|endif if !hasmapto('<Plug>AM_t@','n') |call AlignMaps#MakeMap("t@")|endif
if !hasmapto('<Plug>AM_tW@') |map <unique> <Leader>tW@ <Plug>AM_tW@|endif if !hasmapto('<Plug>AM_tW@','n') |call AlignMaps#MakeMap("tW@")|endif
if !hasmapto('<Plug>AM_m=') |map <unique> <Leader>m= <Plug>AM_m=|endif if !hasmapto('<Plug>AM_m=','n') |call AlignMaps#MakeMap("m=")|endif
if !hasmapto('<Plug>AM_tab') |map <unique> <Leader>tab <Plug>AM_tab|endif if !hasmapto('<Plug>AM_tab','n') |call AlignMaps#MakeMap("tab")|endif
if !hasmapto('<Plug>AM_tml') |map <unique> <Leader>tml <Plug>AM_tml|endif if !hasmapto('<Plug>AM_tml','n') |call AlignMaps#MakeMap("tml")|endif
if !hasmapto('<Plug>AM_tsp') |map <unique> <Leader>tsp <Plug>AM_tsp|endif if !hasmapto('<Plug>AM_tsp','n') |call AlignMaps#MakeMap("tsp")|endif
if !hasmapto('<Plug>AM_tsq') |map <unique> <Leader>tsq <Plug>AM_tsq|endif if !hasmapto('<Plug>AM_tsq','n') |call AlignMaps#MakeMap("tsq")|endif
if !hasmapto('<Plug>AM_tt') |map <unique> <Leader>tt <Plug>AM_tt|endif if !hasmapto('<Plug>AM_tt','n') |call AlignMaps#MakeMap("tt")|endif
if !hasmapto('<Plug>AM_tab','n') |call AlignMaps#MakeMap("tab")|endif
map <silent> <script> <Plug>AM_t| <SID>WS:AlignCtrl mIp0P0=l <Bar><CR>:'a,.Align<CR><SID>WE " <Plug> normal mode mappings
map <silent> <script> <Plug>AM_t# <SID>WS:AlignCtrl mIp0P0=l #<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t| <SID>WS:AlignCtrl mIp0P0=l <Bar><CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_t, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t# <SID>WS:AlignCtrl mIp0P0=l #<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_t: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_t; <SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:sil 'y,'zs/\( *\);/;\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_t< <SID>WS:AlignCtrl mIp0P0=l <<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t; <SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:sil 'y,'zs/\( *\);/;\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_t= <SID>WS:call AlignMaps#Equals()<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t< <SID>WS:AlignCtrl mIp0P0=l <<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l #\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t= <SID>WS:call AlignMaps#Equals()<CR><SID>WE
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l ,\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l #\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_ts: <SID>WS:AlignCtrl mIp1P1=l :\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l ,\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_ts; <SID>WS:AlignCtrl mIp1P1=l ;\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts: <SID>WS:AlignCtrl mIp1P1=l :\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_ts< <SID>WS:AlignCtrl mIp1P1=l <\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts; <SID>WS:AlignCtrl mIp1P1=l ;\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_ts= <SID>WS:AlignCtrl mIp1P1=l =\zs<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts< <SID>WS:AlignCtrl mIp1P1=l <\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_w= <SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE nnoremap <silent> <script> <Plug>AM_ts= <SID>WS:AlignCtrl mIp1P1=l =\zs<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_t? <SID>WS:AlignCtrl mIp0P0=l ?<CR>:'a,.Align<CR>:.,'zs/ \( *\);/;\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_w= <SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
map <silent> <script> <Plug>AM_t~ <SID>WS:AlignCtrl mIp0P0=l ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE nnoremap <silent> <script> <Plug>AM_t? <SID>WS:AlignCtrl mIp0P0=l ?<CR>:'a,.Align<CR>:.,'zs/ \( *\);/;\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_t@ <SID>WS:call AlignMaps#StdAlign(1)<cr><SID>WE nnoremap <silent> <script> <Plug>AM_t~ <SID>WS:AlignCtrl mIp0P0=l ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
map <silent> <script> <Plug>AM_tW@ <SID>WS:call AlignMaps#StdAlign(2)<cr><SID>WE nnoremap <silent> <script> <Plug>AM_t@ <SID>WS:call AlignMaps#StdAlign(1)<cr><SID>WE
map <silent> <script> <Plug>AM_m= <SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zs/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE nnoremap <silent> <script> <Plug>AM_tW@ <SID>WS:call AlignMaps#StdAlign(2)<cr><SID>WE
map <silent> <script> <Plug>AM_tab <SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0x0f>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0x0f>"<bar>else<bar>exe "AlignCtrl mI=l"<bar>endif<CR>:'a,.Align <Char-0x0f><CR>:exe "'y+1,'z-1s/\<Char-0x0f>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE nnoremap <silent> <script> <Plug>AM_m= <SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zs/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
map <silent> <script> <Plug>AM_tml <SID>WS:AlignCtrl mWp1P0=l \\\@<!\\\s*$<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_tab <SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0x0f>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0x0f>"<bar>else<bar>exe "AlignCtrl mI=l"<bar>endif<CR>:'a,.Align <Char-0x0f><CR>:exe "'y+1,'z-1s/\<Char-0x0f>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
map <silent> <script> <Plug>AM_tsp <SID>WS:keepj 'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=lp0P0 @<CR>:'a,.Align<CR>:keepj 'y+1,'z-1s/@/ /g<CR><SID>WE nnoremap <silent> <script> <Plug>AM_tml <SID>WS:AlignCtrl mWp1P0=l \\\@<!\\\s*$<CR>:'a,.Align<CR><SID>WE
map <silent> <script> <Plug>AM_tsq <SID>WS:'a,.AlignReplaceQuotedSpaces<CR>:keepj 'a,.s/^\(\s*\)\(.*\)/\=submatch(1).substitute(submatch(2),'\s\+','@','g')/<CR>:AlignCtrl mIp0P0=l @<CR>:'a,.Align<CR>:keepj 'y+1,'z-1s/[%@]/ /g<CR><SID>WE nnoremap <silent> <script> <Plug>AM_tsp <SID>WS:keepj 'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=lp0P0 @<CR>:'a,.Align<CR>:keepj 'y+1,'z-1s/@/ /g<CR><SID>WE
map <silent> <script> <Plug>AM_tt <SID>WS:AlignCtrl mIp1P1=l \\\@<!& \\\\<CR>:'a,.Align<CR><SID>WE nnoremap <silent> <script> <Plug>AM_tsq <SID>WS:'a,.AlignReplaceQuotedSpaces<CR>:keepj 'a,.s/^\(\s*\)\(.*\)/\=submatch(1).substitute(submatch(2),'\s\+','@','g')/<CR>:AlignCtrl mIp0P0=l @<CR>:'a,.Align<CR>:keepj 'y+1,'z-1s/[%@]/ /g<CR><SID>WE
nnoremap <silent> <script> <Plug>AM_tt <SID>WS:AlignCtrl mIp1P1=l \\\@<!& \\\\<CR>:'a,.Align<CR><SID>WE
" ===================================================================== " =====================================================================
" Menu Support: {{{1 " Menu Support: {{{1

View File

@ -1,9 +1,9 @@
" AlignPlugin: tool to align multiple fields based on one or more separators " AlignPlugin: tool to align multiple fields based on one or more separators
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell
" Date: Nov 02, 2008 " Date: Nov 02, 2008
" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim " GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.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, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -22,7 +22,7 @@
if &cp || exists("g:loaded_AlignPlugin") if &cp || exists("g:loaded_AlignPlugin")
finish finish
endif endif
let g:loaded_AlignPlugin = "v36" let g:loaded_AlignPlugin = "v37"
let s:keepcpo = &cpo let s:keepcpo = &cpo
set cpo&vim set cpo&vim

View File

@ -1,9 +1,9 @@
" cecutil.vim : save/restore window position " cecutil.vim : save/restore window position
" save/restore mark position " save/restore mark position
" save/restore selected user maps " save/restore selected user maps
" Author: Charles E. Campbell, Jr. " Author: Charles E. Campbell
" Version: 17 " Version: 18h ASTRO-ONLY
" Date: Sep 04, 2007 " Date: Oct 16, 2012
" "
" Saving Restoring Destroying Marks: {{{1 " Saving Restoring Destroying Marks: {{{1
" call SaveMark(markname) let savemark= SaveMark(markname) " call SaveMark(markname) let savemark= SaveMark(markname)
@ -27,20 +27,23 @@
" You believe that God is one. You do well. The demons also {{{1 " You believe that God is one. You do well. The demons also {{{1
" believe, and shudder. But do you want to know, vain man, that " believe, and shudder. But do you want to know, vain man, that
" faith apart from works is dead? (James 2:19,20 WEB) " faith apart from works is dead? (James 2:19,20 WEB)
"redraw!|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Load Once: {{{1 " Load Once: {{{1
if &cp || exists("g:loaded_cecutil") if &cp || exists("g:loaded_cecutil")
finish finish
endif endif
let g:loaded_cecutil = "v17" let g:loaded_cecutil = "v18h"
let s:keepcpo = &cpo let s:keepcpo = &cpo
set cpo&vim set cpo&vim
"DechoVarOn "DechoRemOn
" ----------------------- " =======================
" Public Interface: {{{1 " Public Interface: {{{1
" ----------------------- " =======================
" ---------------------------------------------------------------------
" Map Interface: {{{2 " Map Interface: {{{2
if !hasmapto('<Plug>SaveWinPosn') if !hasmapto('<Plug>SaveWinPosn')
map <unique> <Leader>swp <Plug>SaveWinPosn map <unique> <Leader>swp <Plug>SaveWinPosn
@ -51,43 +54,56 @@ endif
nmap <silent> <Plug>SaveWinPosn :call SaveWinPosn()<CR> nmap <silent> <Plug>SaveWinPosn :call SaveWinPosn()<CR>
nmap <silent> <Plug>RestoreWinPosn :call RestoreWinPosn()<CR> nmap <silent> <Plug>RestoreWinPosn :call RestoreWinPosn()<CR>
" ---------------------------------------------------------------------
" Command Interface: {{{2 " Command Interface: {{{2
com! -bar -nargs=0 SWP call SaveWinPosn() com! -bar -nargs=0 SWP call SaveWinPosn()
com! -bar -nargs=0 RWP call RestoreWinPosn() com! -bar -nargs=? RWP call RestoreWinPosn(<args>)
com! -bar -nargs=1 SM call SaveMark(<q-args>) com! -bar -nargs=1 SM call SaveMark(<q-args>)
com! -bar -nargs=1 RM call RestoreMark(<q-args>) com! -bar -nargs=1 RM call RestoreMark(<q-args>)
com! -bar -nargs=1 DM call DestroyMark(<q-args>) com! -bar -nargs=1 DM call DestroyMark(<q-args>)
com! -bar -nargs=1 WLR call s:WinLineRestore(<q-args>)
if v:version < 630 if v:version < 630
let s:modifier= "sil " let s:modifier= "sil! "
else else
let s:modifier= "sil keepj " let s:modifier= "sil! keepj "
endif endif
" ===============
" Functions: {{{1
" ===============
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" SaveWinPosn: {{{1 " SaveWinPosn: {{{2
" let winposn= SaveWinPosn() will save window position in winposn variable " let winposn= SaveWinPosn() will save window position in winposn variable
" call SaveWinPosn() will save window position in b:cecutil_winposn{b:cecutil_iwinposn} " call SaveWinPosn() will save window position in b:cecutil_winposn{b:cecutil_iwinposn}
" let winposn= SaveWinPosn(0) will *only* save window position in winposn variable (no stacking done) " let winposn= SaveWinPosn(0) will *only* save window position in winposn variable (no stacking done)
fun! SaveWinPosn(...) fun! SaveWinPosn(...)
" call Dfunc("SaveWinPosn() a:0=".a:0) " echomsg "Decho: SaveWinPosn() a:0=".a:0
if line(".") == 1 && getline(1) == "" if line("$") == 1 && getline(1) == ""
" call Dfunc("SaveWinPosn : empty buffer") " echomsg "Decho: SaveWinPosn : empty buffer"
return "" return ""
endif endif
let so_keep = &so let so_keep = &l:so
let siso_keep = &siso let siso_keep = &siso
let ss_keep = &ss let ss_keep = &l:ss
set so=0 siso=0 ss=0 setlocal so=0 siso=0 ss=0
let swline = line(".") let swline = line(".") " save-window line in file
let swcol = col(".") let swcol = col(".") " save-window column in file
let swwline = winline() - 1 if swcol >= col("$")
let swwcol = virtcol(".") - wincol() let swcol= swcol + virtcol(".") - virtcol("$") " adjust for virtual edit (cursor past end-of-line)
let savedposn = "call GoWinbufnr(".winbufnr(0).")|silent ".swline endif
let swwline = winline() - 1 " save-window window line
let swwcol = virtcol(".") - wincol() " save-window window column
let savedposn = ""
" echomsg "Decho: sw[".swline.",".swcol."] sww[".swwline.",".swwcol."]"
let savedposn = "call GoWinbufnr(".winbufnr(0).")"
let savedposn = savedposn."|".s:modifier.swline
let savedposn = savedposn."|".s:modifier."norm! 0z\<cr>" let savedposn = savedposn."|".s:modifier."norm! 0z\<cr>"
if swwline > 0 if swwline > 0
let savedposn= savedposn.":".s:modifier."norm! ".swwline."\<c-y>\<cr>" let savedposn= savedposn.":".s:modifier."call s:WinLineRestore(".(swwline+1).")\<cr>"
endif endif
if swwcol > 0 if swwcol > 0
let savedposn= savedposn.":".s:modifier."norm! 0".swwcol."zl\<cr>" let savedposn= savedposn.":".s:modifier."norm! 0".swwcol."zl\<cr>"
@ -103,44 +119,46 @@ fun! SaveWinPosn(...)
else else
let b:cecutil_iwinposn= b:cecutil_iwinposn + 1 let b:cecutil_iwinposn= b:cecutil_iwinposn + 1
endif endif
" call Decho("saving posn to SWP stack") " echomsg "Decho: saving posn to SWP stack"
let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn let b:cecutil_winposn{b:cecutil_iwinposn}= savedposn
endif endif
let &so = so_keep let &l:so = so_keep
let &siso = siso_keep let &siso = siso_keep
let &ss = ss_keep let &l:ss = ss_keep
" if exists("b:cecutil_iwinposn") " Decho " if exists("b:cecutil_iwinposn") " Decho
" call Decho("b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]") " echomsg "Decho: b:cecutil_winpos{".b:cecutil_iwinposn."}[".b:cecutil_winposn{b:cecutil_iwinposn}."]"
" else " Decho " else " Decho
" call Decho("b:cecutil_iwinposn doesn't exist") " echomsg "Decho: b:cecutil_iwinposn doesn't exist"
" endif " Decho " endif " Decho
" call Dret("SaveWinPosn [".savedposn."]") " echomsg "Decho: SaveWinPosn [".savedposn."]"
return savedposn return savedposn
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" RestoreWinPosn: {{{1 " RestoreWinPosn: {{{2
" call RestoreWinPosn()
" call RestoreWinPosn(winposn)
fun! RestoreWinPosn(...) fun! RestoreWinPosn(...)
" call Dfunc("RestoreWinPosn() a:0=".a:0) " echomsg "Decho: RestoreWinPosn() a:0=".a:0
" call Decho("getline(1)<".getline(1).">") " echomsg "Decho: getline(1)<".getline(1).">"
" call Decho("line(.)=".line(".")) " echomsg "Decho: line(.)=".line(".")
if line(".") == 1 && getline(1) == "" if line("$") == 1 && getline(1) == ""
" call Dfunc("RestoreWinPosn : empty buffer") " echomsg "Decho: RestoreWinPosn : empty buffer"
return "" return ""
endif endif
let so_keep = &so let so_keep = &l:so
let siso_keep = &siso let siso_keep = &l:siso
let ss_keep = &ss let ss_keep = &l:ss
set so=0 siso=0 ss=0 setlocal so=0 siso=0 ss=0
if a:0 == 0 || a:1 == "" if a:0 == 0 || a:1 == ""
" use saved window position in b:cecutil_winposn{b:cecutil_iwinposn} if it exists " use saved window position in b:cecutil_winposn{b:cecutil_iwinposn} if it exists
if exists("b:cecutil_iwinposn") && exists("b:cecutil_winposn{b:cecutil_iwinposn}") if exists("b:cecutil_iwinposn") && exists("b:cecutil_winposn{b:cecutil_iwinposn}")
" call Decho("using stack b:cecutil_winposn{".b:cecutil_iwinposn."}<".b:cecutil_winposn{b:cecutil_iwinposn}.">") " echomsg "Decho: using stack b:cecutil_winposn{".b:cecutil_iwinposn."}<".b:cecutil_winposn{b:cecutil_iwinposn}.">"
try try
exe "silent! ".b:cecutil_winposn{b:cecutil_iwinposn} exe s:modifier.b:cecutil_winposn{b:cecutil_iwinposn}
catch /^Vim\%((\a\+)\)\=:E749/ catch /^Vim\%((\a\+)\)\=:E749/
" ignore empty buffer error messages " ignore empty buffer error messages
endtry endtry
@ -164,9 +182,9 @@ fun! RestoreWinPosn(...)
endif endif
else " handle input argument else " handle input argument
" call Decho("using input a:1<".a:1.">") " echomsg "Decho: using input a:1<".a:1.">"
" use window position passed to this function " use window position passed to this function
exe "silent ".a:1 exe a:1
" remove a:1 pattern from b:cecutil_winposn{b:cecutil_iwinposn} stack " remove a:1 pattern from b:cecutil_winposn{b:cecutil_iwinposn} stack
if exists("b:cecutil_iwinposn") if exists("b:cecutil_iwinposn")
let jwinposn= b:cecutil_iwinposn let jwinposn= b:cecutil_iwinposn
@ -184,23 +202,42 @@ fun! RestoreWinPosn(...)
endif endif
endif endif
" seems to be something odd: vertical motions after RWP " Seems to be something odd: vertical motions after RWP
" cause jump to first column. Following fixes that " cause jump to first column. The following fixes that.
if wincol() > 1 " Note: was using wincol()>1, but with signs, a cursor
silent norm! hl " at column 1 yields wincol()==3. Beeping ensued.
let vekeep= &ve
set ve=all
if virtcol('.') > 1
exe s:modifier."norm! hl"
elseif virtcol(".") < virtcol("$") elseif virtcol(".") < virtcol("$")
silent norm! lh exe s:modifier."norm! lh"
endif endif
let &ve= vekeep
let &so = so_keep let &l:so = so_keep
let &siso = siso_keep let &l:siso = siso_keep
let &ss = ss_keep let &l:ss = ss_keep
" call Dret("RestoreWinPosn") " echomsg "Decho: RestoreWinPosn"
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" GoWinbufnr: go to window holding given buffer (by number) {{{1 " s:WinLineRestore: {{{2
fun! s:WinLineRestore(swwline)
" echomsg "Decho: s:WinLineRestore(swwline=".a:swwline.")"
while winline() < a:swwline
let curwinline= winline()
exe s:modifier."norm! \<c-y>"
if curwinline == winline()
break
endif
endwhile
" echomsg "Decho: s:WinLineRestore"
endfun
" ---------------------------------------------------------------------
" GoWinbufnr: go to window holding given buffer (by number) {{{2
" Prefers current window; if its buffer number doesn't match, " Prefers current window; if its buffer number doesn't match,
" then will try from topleft to bottom right " then will try from topleft to bottom right
fun! GoWinbufnr(bufnum) fun! GoWinbufnr(bufnum)
@ -219,7 +256,7 @@ fun! GoWinbufnr(bufnum)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" SaveMark: sets up a string saving a mark position. {{{1 " SaveMark: sets up a string saving a mark position. {{{2
" For example, SaveMark("a") " For example, SaveMark("a")
" Also sets up a global variable, g:savemark_{markname} " Also sets up a global variable, g:savemark_{markname}
fun! SaveMark(markname) fun! SaveMark(markname)
@ -252,7 +289,7 @@ fun! SaveMark(markname)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" RestoreMark: {{{1 " RestoreMark: {{{2
" call RestoreMark("a") -or- call RestoreMark(savemark) " call RestoreMark("a") -or- call RestoreMark(savemark)
fun! RestoreMark(markname) fun! RestoreMark(markname)
" call Dfunc("RestoreMark(markname<".a:markname.">)") " call Dfunc("RestoreMark(markname<".a:markname.">)")
@ -294,7 +331,7 @@ fun! RestoreMark(markname)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" DestroyMark: {{{1 " DestroyMark: {{{2
" call DestroyMark("a") -- destroys mark " call DestroyMark("a") -- destroys mark
fun! DestroyMark(markname) fun! DestroyMark(markname)
" call Dfunc("DestroyMark(markname<".a:markname.">)") " call Dfunc("DestroyMark(markname<".a:markname.">)")
@ -329,7 +366,7 @@ fun! DestroyMark(markname)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" QArgSplitter: to avoid \ processing by <f-args>, <q-args> is needed. {{{1 " QArgSplitter: to avoid \ processing by <f-args>, <q-args> is needed. {{{2
" However, <q-args> doesn't split at all, so this one returns a list " However, <q-args> doesn't split at all, so this one returns a list
" with splits at all whitespace (only!), plus a leading length-of-list. " with splits at all whitespace (only!), plus a leading length-of-list.
" The resulting list: qarglist[0] corresponds to a:0 " The resulting list: qarglist[0] corresponds to a:0
@ -344,7 +381,7 @@ fun! QArgSplitter(qarg)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" ListWinPosn: " ListWinPosn: {{{2
"fun! ListWinPosn() " Decho "fun! ListWinPosn() " Decho
" if !exists("b:cecutil_iwinposn") || b:cecutil_iwinposn == 0 " Decho " if !exists("b:cecutil_iwinposn") || b:cecutil_iwinposn == 0 " Decho
" call Decho("nothing on SWP stack") " Decho " call Decho("nothing on SWP stack") " Decho
@ -363,14 +400,19 @@ endfun
"com! -nargs=0 LWP call ListWinPosn() " Decho "com! -nargs=0 LWP call ListWinPosn() " Decho
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" SaveUserMaps: this function sets up a script-variable (s:restoremap) {{{1 " SaveUserMaps: this function sets up a script-variable (s:restoremap) {{{2
" which can be used to restore user maps later with " which can be used to restore user maps later with
" call RestoreUserMaps() " call RestoreUserMaps()
" "
" mapmode - see :help maparg for its list " mapmode - see :help maparg for details (n v o i c l "")
" ex. "n" = Normal " ex. "n" = Normal
" If the first letter is u, then unmapping will be done " The letters "b" and "u" are optional prefixes;
" The "u" means that the map will also be unmapped
" The "b" means that the map has a <buffer> qualifier
" ex. "un" = Normal + unmapping " ex. "un" = Normal + unmapping
" ex. "bn" = Normal + <buffer>
" ex. "bun" = Normal + <buffer> + unmapping
" ex. "ubn" = Normal + <buffer> + unmapping
" maplead - see mapchx " maplead - see mapchx
" mapchx - "<something>" handled as a single map item. " mapchx - "<something>" handled as a single map item.
" ex. "<left>" " ex. "<left>"
@ -395,60 +437,70 @@ fun! SaveUserMaps(mapmode,maplead,mapchx,suffix)
" set up dounmap: if 1, then save and unmap (a:mapmode leads with a "u") " set up dounmap: if 1, then save and unmap (a:mapmode leads with a "u")
" if 0, save only " if 0, save only
if a:mapmode =~ '^u' let mapmode = a:mapmode
let dounmap= 1 let dounmap = 0
let mapmode= strpart(a:mapmode,1) let dobuffer = ""
else while mapmode =~ '^[bu]'
let dounmap= 0 if mapmode =~ '^u'
let mapmode= a:mapmode let dounmap = 1
let mapmode = strpart(a:mapmode,1)
elseif mapmode =~ '^b'
let dobuffer = "<buffer> "
let mapmode = strpart(a:mapmode,1)
endif endif
endwhile
" call Decho("dounmap=".dounmap." dobuffer<".dobuffer.">")
" save single map :...something... " save single map :...something...
if strpart(a:mapchx,0,1) == ':' if strpart(a:mapchx,0,1) == ':'
" call Decho("save single map :...something...")
let amap= strpart(a:mapchx,1) let amap= strpart(a:mapchx,1)
if amap == "|" || amap == "\<c-v>" if amap == "|" || amap == "\<c-v>"
let amap= "\<c-v>".amap let amap= "\<c-v>".amap
endif endif
let amap = a:maplead.amap let amap = a:maplead.amap
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:silent! ".mapmode."unmap ".amap let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:sil! ".mapmode."unmap ".dobuffer.amap
if maparg(amap,mapmode) != "" if maparg(amap,mapmode) != ""
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge') let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:".mapmode."map ".amap." ".maprhs let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|:".mapmode."map ".dobuffer.amap." ".maprhs
endif endif
if dounmap if dounmap
exe "silent! ".mapmode."unmap ".amap exe "sil! ".mapmode."unmap ".dobuffer.amap
endif endif
" save single map <something> " save single map <something>
elseif strpart(a:mapchx,0,1) == '<' elseif strpart(a:mapchx,0,1) == '<'
" call Decho("save single map <something>")
let amap = a:mapchx let amap = a:mapchx
if amap == "|" || amap == "\<c-v>" if amap == "|" || amap == "\<c-v>"
let amap= "\<c-v>".amap let amap= "\<c-v>".amap
" call Decho("amap[[".amap."]]")
endif endif
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".amap let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|sil! ".mapmode."unmap ".dobuffer.amap
if maparg(a:mapchx,mapmode) != "" if maparg(a:mapchx,mapmode) != ""
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge') let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".maprhs let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".dobuffer.amap." ".maprhs
endif endif
if dounmap if dounmap
exe "silent! ".mapmode."unmap ".amap exe "sil! ".mapmode."unmap ".dobuffer.amap
endif endif
" save multiple maps " save multiple maps
else else
" call Decho("save multiple maps")
let i= 1 let i= 1
while i <= strlen(a:mapchx) while i <= strlen(a:mapchx)
let amap= a:maplead.strpart(a:mapchx,i-1,1) let amap= a:maplead.strpart(a:mapchx,i-1,1)
if amap == "|" || amap == "\<c-v>" if amap == "|" || amap == "\<c-v>"
let amap= "\<c-v>".amap let amap= "\<c-v>".amap
endif endif
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|silent! ".mapmode."unmap ".amap let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|sil! ".mapmode."unmap ".dobuffer.amap
if maparg(amap,mapmode) != "" if maparg(amap,mapmode) != ""
let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge') let maprhs = substitute(maparg(amap,mapmode),'|','<bar>','ge')
let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".amap." ".maprhs let s:restoremap_{a:suffix} = s:restoremap_{a:suffix}."|".mapmode."map ".dobuffer.amap." ".maprhs
endif endif
if dounmap if dounmap
exe "silent! ".mapmode."unmap ".amap exe "sil! ".mapmode."unmap ".dobuffer.amap
endif endif
let i= i + 1 let i= i + 1
endwhile endwhile
@ -457,7 +509,7 @@ fun! SaveUserMaps(mapmode,maplead,mapchx,suffix)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" RestoreUserMaps: {{{1 " RestoreUserMaps: {{{2
" Used to restore user maps saved by SaveUserMaps() " Used to restore user maps saved by SaveUserMaps()
fun! RestoreUserMaps(suffix) fun! RestoreUserMaps(suffix)
" call Dfunc("RestoreUserMaps(suffix<".a:suffix.">)") " call Dfunc("RestoreUserMaps(suffix<".a:suffix.">)")
@ -465,18 +517,20 @@ fun! RestoreUserMaps(suffix)
let s:restoremap_{a:suffix}= substitute(s:restoremap_{a:suffix},'|\s*$','','e') let s:restoremap_{a:suffix}= substitute(s:restoremap_{a:suffix},'|\s*$','','e')
if s:restoremap_{a:suffix} != "" if s:restoremap_{a:suffix} != ""
" call Decho("exe ".s:restoremap_{a:suffix}) " call Decho("exe ".s:restoremap_{a:suffix})
exe "silent! ".s:restoremap_{a:suffix} exe "sil! ".s:restoremap_{a:suffix}
endif endif
unlet s:restoremap_{a:suffix} unlet s:restoremap_{a:suffix}
endif endif
" call Dret("RestoreUserMaps") " call Dret("RestoreUserMaps")
endfun endfun
" --------------------------------------------------------------------- " ==============
" Restore: {{{1 " Restore: {{{1
" ==============
let &cpo= s:keepcpo let &cpo= s:keepcpo
unlet s:keepcpo unlet s:keepcpo
" --------------------------------------------------------------------- " ================
" Modelines: {{{1 " Modelines: {{{1
" ================
" vim: ts=4 fdm=marker " vim: ts=4 fdm=marker

View File

@ -13,7 +13,7 @@ set nohlsearch
set nostartofline set nostartofline
" set paste " set paste
set autochdir set autochdir
set clipboard=unnamed " set clipboard=unnamed
" Let's go to 256 colors " Let's go to 256 colors
set t_Co=256 set t_Co=256
@ -49,16 +49,16 @@ set modeline
set modelines=1 set modelines=1
set encoding=utf-8 set encoding=utf-8
set listchars=tab:->,trail:.,eol:$,extends:>,precedes:< set listchars=tab:->,trail:.,eol:$,extends:>,precedes:<
set smartcase set ignorecase " Do case insensitive matching
set smartcase " But with style
set errorbells set errorbells
" set visualbell " set visualbell
set showcmd " Show (partial) command in status line. set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets. set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set incsearch " Incremental search set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make set autowrite " Automatically save before commands like :next and :make
" set statusline=%<%f\ %H%m%r%=%-14.(%l,%c%)\ %P\ Buf.%n " set statusline=%<%f\ %H%m%r%=%-14.(%l,%c%)\ %P\ Buf.%n
set showtabline=0 set showtabline=1
set backupcopy=yes set backupcopy=yes
set fileformats=unix,mac,dos set fileformats=unix,mac,dos
set fileformat=unix set fileformat=unix
@ -151,6 +151,10 @@ nnoremap <silent> <Leader>N :set number!<CR>
nnoremap <silent> da "_dd nnoremap <silent> da "_dd
" Standard Unix Home/End
" nnoremap <Home> ^
" nnoremap <End> $
nnoremap <silent> <Leader>ts :ConqueTermSplit zsh<CR> nnoremap <silent> <Leader>ts :ConqueTermSplit zsh<CR>
nnoremap <silent> <Leader>tT :ConqueTermTab zsh<CR> nnoremap <silent> <Leader>tT :ConqueTermTab zsh<CR>
@ -210,16 +214,16 @@ if has("syntax")
endif endif
if has("autocmd") if has("autocmd")
filetype indent on filetype plugin indent on
filetype plugin on
" When editing a file, always jump to the last cursor position " When editing a file, always jump to the last cursor position
autocmd BufReadPost * autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") | \ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal g'\"" | \ exe "normal g'\"" |
\ endif \ endif
" Mako " Mako
autocmd BufNewFile,BufRead *.mako setf mako autocmd! BufRead,BufNewFile *.mako setfiletype mako
autocmd FileType *.mako set textwidth=0 autocmd BufWinEnter *.mako setfiletype mako
autocmd FileType mako set textwidth=0
" Python " Python
autocmd FileType python set textwidth=79 autocmd FileType python set textwidth=79