1. Vladislav Bortnikov
  2. dotfiles

Commits

Vladislav Bortnikov  committed 49a32a0

Added css & groovy syntax, python folding & menus, small changes to .vimrc

  • Participants
  • Parent commits 736e712
  • Branches default

Comments (0)

Files changed (11)

File vim/autoload/color_helper.vim

View file
+" Author:   Nate Kane <nathanaelkane AT gmail DOT com>
+" Homepage: http://github.com/nathanaelkane/vim-indent-guides
+
+"
+" Return hex string equivalent to given decimal string or number.
+"
+" Example: color_helper#dec_to_hex(255, 2)
+" Returns: 'FF'
+"
+" Example: color_helper#dec_to_hex(255, 5)
+" Returns: '000FF'
+"
+function! color_helper#dec_to_hex(arg, padding)
+  return toupper(printf('%0' . a:padding . 'x', a:arg + 0))
+endfunction
+
+"
+" Return number equivalent to given hex string ('0x' is optional).
+"
+" Example: color_helper#hex_to_dec('FF')
+" Returns: 255
+"
+" Example: color_helper#hex_to_dec('88')
+" Returns: 136
+"
+" Example: color_helper#hex_to_dec('00')
+" Returns: 0
+"
+function! color_helper#hex_to_dec(arg)
+  return (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0
+endfunction
+
+"
+" Converts a given hex color string into an rgb list (eg. [red, green, blue]).
+"
+" Example: color_helper#hex_color_to_rgb('#0088FF')
+" Returns: [0, 136, 255]
+"
+function! color_helper#hex_color_to_rgb(hex_color)
+  let l:rgb = []
+
+  if a:hex_color =~ g:indent_guides_color_hex_pattern
+    let l:red   = color_helper#hex_to_dec(strpart(a:hex_color, 1, 2))
+    let l:green = color_helper#hex_to_dec(strpart(a:hex_color, 3, 2))
+    let l:blue  = color_helper#hex_to_dec(strpart(a:hex_color, 5, 2))
+    let l:rgb = [l:red, l:green, l:blue]
+  end
+
+  return l:rgb
+endfunction
+
+"
+" Converts a given rgb list (eg. [red, green, blue]) into a hex color string.
+"
+" Example: color_helper#rgb_color_to_hex([0, 136, 255])
+" Returns: '#0088FF'
+"
+function! color_helper#rgb_color_to_hex(rgb_color)
+  let l:hex_color  = '#'
+  let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[0], 2) " red
+  let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[1], 2) " green
+  let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[2], 2) " blue
+
+  return l:hex_color
+endfunction
+
+"
+" Returns a ligtened color using the given color and the percent to lighten it
+" by.
+"
+" Example: color_helper#hex_color_lighten('#000000', 0.10)
+" Returns: '#191919'
+"
+function! color_helper#hex_color_lighten(color, percent)
+  let l:rgb = color_helper#hex_color_to_rgb(a:color)
+  let l:rgb_lightened = []
+
+  for i in l:rgb
+    call add(l:rgb_lightened, float2nr(i + ((255 - i) * a:percent)))
+  endfor
+
+  return color_helper#rgb_color_to_hex(l:rgb_lightened)
+endfunction
+
+"
+" Returns a darkened color using the given color and the percent to darken it
+" by.
+"
+" Example: color_helper#hex_color_darken('#FFFFFF', 0.10)
+" Returns: '#E5E5E5'
+"
+function! color_helper#hex_color_darken(color, percent)
+  let l:rgb = color_helper#hex_color_to_rgb(a:color)
+  let l:rgb_darkened = []
+
+  for i in l:rgb
+    call add(l:rgb_darkened, float2nr(i * (1 - a:percent)))
+  endfor
+
+  return color_helper#rgb_color_to_hex(l:rgb_darkened)
+endfunction
+
+"
+" Returns a hex color code for the given color name.
+"
+" Example: color_helper#color_name_to_hex('darkslategray')
+" Returns: '#2F4F4F'
+"
+function! color_helper#color_name_to_hex(color_name)
+  let l:hex_code   = ''
+  let l:color_name = tolower(a:color_name)
+
+  let l:color_list = {
+    \ 'alice blue'             : '#F0F8FF',
+    \ 'aliceblue'              : '#F0F8FF',
+    \ 'antique white'          : '#FAEBD7',
+    \ 'antiquewhite'           : '#FAEBD7',
+    \ 'antiquewhite1'          : '#FFEFDB',
+    \ 'antiquewhite2'          : '#EEDFCC',
+    \ 'antiquewhite3'          : '#CDC0B0',
+    \ 'antiquewhite4'          : '#8B8378',
+    \ 'aquamarine'             : '#7FFFD4',
+    \ 'aquamarine1'            : '#7FFFD4',
+    \ 'aquamarine2'            : '#76EEC6',
+    \ 'aquamarine3'            : '#66CDAA',
+    \ 'aquamarine4'            : '#458B74',
+    \ 'azure'                  : '#F0FFFF',
+    \ 'azure1'                 : '#F0FFFF',
+    \ 'azure2'                 : '#E0EEEE',
+    \ 'azure3'                 : '#C1CDCD',
+    \ 'azure4'                 : '#838B8B',
+    \ 'beige'                  : '#F5F5DC',
+    \ 'bisque'                 : '#FFE4C4',
+    \ 'bisque1'                : '#FFE4C4',
+    \ 'bisque2'                : '#EED5B7',
+    \ 'bisque3'                : '#CDB79E',
+    \ 'bisque4'                : '#8B7D6B',
+    \ 'black'                  : '#000000',
+    \ 'blanched almond'        : '#FFEBCD',
+    \ 'blanchedalmond'         : '#FFEBCD',
+    \ 'blue violet'            : '#8A2BE2',
+    \ 'blue'                   : '#0000FF',
+    \ 'blue1'                  : '#0000FF',
+    \ 'blue2'                  : '#0000EE',
+    \ 'blue3'                  : '#0000CD',
+    \ 'blue4'                  : '#00008B',
+    \ 'blueviolet'             : '#8A2BE2',
+    \ 'brown'                  : '#A52A2A',
+    \ 'brown1'                 : '#FF4040',
+    \ 'brown2'                 : '#EE3B3B',
+    \ 'brown3'                 : '#CD3333',
+    \ 'brown4'                 : '#8B2323',
+    \ 'burlywood'              : '#DEB887',
+    \ 'burlywood1'             : '#FFD39B',
+    \ 'burlywood2'             : '#EEC591',
+    \ 'burlywood3'             : '#CDAA7D',
+    \ 'burlywood4'             : '#8B7355',
+    \ 'cadet blue'             : '#5F9EA0',
+    \ 'cadetblue'              : '#5F9EA0',
+    \ 'cadetblue1'             : '#98F5FF',
+    \ 'cadetblue2'             : '#8EE5EE',
+    \ 'cadetblue3'             : '#7AC5CD',
+    \ 'cadetblue4'             : '#53868B',
+    \ 'chartreuse'             : '#7FFF00',
+    \ 'chartreuse1'            : '#7FFF00',
+    \ 'chartreuse2'            : '#76EE00',
+    \ 'chartreuse3'            : '#66CD00',
+    \ 'chartreuse4'            : '#458B00',
+    \ 'chocolate'              : '#D2691E',
+    \ 'chocolate1'             : '#FF7F24',
+    \ 'chocolate2'             : '#EE7621',
+    \ 'chocolate3'             : '#CD661D',
+    \ 'chocolate4'             : '#8B4513',
+    \ 'coral'                  : '#FF7F50',
+    \ 'coral1'                 : '#FF7256',
+    \ 'coral2'                 : '#EE6A50',
+    \ 'coral3'                 : '#CD5B45',
+    \ 'coral4'                 : '#8B3E2F',
+    \ 'cornflower blue'        : '#6495ED',
+    \ 'cornflowerblue'         : '#6495ED',
+    \ 'cornsilk'               : '#FFF8DC',
+    \ 'cornsilk1'              : '#FFF8DC',
+    \ 'cornsilk2'              : '#EEE8CD',
+    \ 'cornsilk3'              : '#CDC8B1',
+    \ 'cornsilk4'              : '#8B8878',
+    \ 'cyan'                   : '#00FFFF',
+    \ 'cyan1'                  : '#00FFFF',
+    \ 'cyan2'                  : '#00EEEE',
+    \ 'cyan3'                  : '#00CDCD',
+    \ 'cyan4'                  : '#008B8B',
+    \ 'dark blue'              : '#00008B',
+    \ 'dark cyan'              : '#008B8B',
+    \ 'dark goldenrod'         : '#B8860B',
+    \ 'dark gray'              : '#A9A9A9',
+    \ 'dark green'             : '#006400',
+    \ 'dark grey'              : '#A9A9A9',
+    \ 'dark khaki'             : '#BDB76B',
+    \ 'dark magenta'           : '#8B008B',
+    \ 'dark olive green'       : '#556B2F',
+    \ 'dark orange'            : '#FF8C00',
+    \ 'dark orchid'            : '#9932CC',
+    \ 'dark red'               : '#8B0000',
+    \ 'dark salmon'            : '#E9967A',
+    \ 'dark sea green'         : '#8FBC8F',
+    \ 'dark slate blue'        : '#483D8B',
+    \ 'dark slate gray'        : '#2F4F4F',
+    \ 'dark slate grey'        : '#2F4F4F',
+    \ 'dark turquoise'         : '#00CED1',
+    \ 'dark violet'            : '#9400D3',
+    \ 'dark yellow'            : '#BBBB00',
+    \ 'darkblue'               : '#00008B',
+    \ 'darkcyan'               : '#008B8B',
+    \ 'darkgoldenrod'          : '#B8860B',
+    \ 'darkgoldenrod1'         : '#FFB90F',
+    \ 'darkgoldenrod2'         : '#EEAD0E',
+    \ 'darkgoldenrod3'         : '#CD950C',
+    \ 'darkgoldenrod4'         : '#8B6508',
+    \ 'darkgray'               : '#A9A9A9',
+    \ 'darkgreen'              : '#006400',
+    \ 'darkgrey'               : '#A9A9A9',
+    \ 'darkkhaki'              : '#BDB76B',
+    \ 'darkmagenta'            : '#8B008B',
+    \ 'darkolivegreen'         : '#556B2F',
+    \ 'darkolivegreen1'        : '#CAFF70',
+    \ 'darkolivegreen2'        : '#BCEE68',
+    \ 'darkolivegreen3'        : '#A2CD5A',
+    \ 'darkolivegreen4'        : '#6E8B3D',
+    \ 'darkorange'             : '#FF8C00',
+    \ 'darkorange1'            : '#FF7F00',
+    \ 'darkorange2'            : '#EE7600',
+    \ 'darkorange3'            : '#CD6600',
+    \ 'darkorange4'            : '#8B4500',
+    \ 'darkorchid'             : '#9932CC',
+    \ 'darkorchid1'            : '#BF3EFF',
+    \ 'darkorchid2'            : '#B23AEE',
+    \ 'darkorchid3'            : '#9A32CD',
+    \ 'darkorchid4'            : '#68228B',
+    \ 'darkred'                : '#8B0000',
+    \ 'darksalmon'             : '#E9967A',
+    \ 'darkseagreen'           : '#8FBC8F',
+    \ 'darkseagreen1'          : '#C1FFC1',
+    \ 'darkseagreen2'          : '#B4EEB4',
+    \ 'darkseagreen3'          : '#9BCD9B',
+    \ 'darkseagreen4'          : '#698B69',
+    \ 'darkslateblue'          : '#483D8B',
+    \ 'darkslategray'          : '#2F4F4F',
+    \ 'darkslategray1'         : '#97FFFF',
+    \ 'darkslategray2'         : '#8DEEEE',
+    \ 'darkslategray3'         : '#79CDCD',
+    \ 'darkslategray4'         : '#528B8B',
+    \ 'darkslategrey'          : '#2F4F4F',
+    \ 'darkturquoise'          : '#00CED1',
+    \ 'darkviolet'             : '#9400D3',
+    \ 'darkyellow'             : '#BBBB00',
+    \ 'deep pink'              : '#FF1493',
+    \ 'deep sky blue'          : '#00BFFF',
+    \ 'deeppink'               : '#FF1493',
+    \ 'deeppink1'              : '#FF1493',
+    \ 'deeppink2'              : '#EE1289',
+    \ 'deeppink3'              : '#CD1076',
+    \ 'deeppink4'              : '#8B0A50',
+    \ 'deepskyblue'            : '#00BFFF',
+    \ 'deepskyblue1'           : '#00BFFF',
+    \ 'deepskyblue2'           : '#00B2EE',
+    \ 'deepskyblue3'           : '#009ACD',
+    \ 'deepskyblue4'           : '#00688B',
+    \ 'dim gray'               : '#696969',
+    \ 'dim grey'               : '#696969',
+    \ 'dimgray'                : '#696969',
+    \ 'dimgrey'                : '#696969',
+    \ 'dodger blue'            : '#1E90FF',
+    \ 'dodgerblue'             : '#1E90FF',
+    \ 'dodgerblue1'            : '#1E90FF',
+    \ 'dodgerblue2'            : '#1C86EE',
+    \ 'dodgerblue3'            : '#1874CD',
+    \ 'dodgerblue4'            : '#104E8B',
+    \ 'firebrick'              : '#B22222',
+    \ 'firebrick1'             : '#FF3030',
+    \ 'firebrick2'             : '#EE2C2C',
+    \ 'firebrick3'             : '#CD2626',
+    \ 'firebrick4'             : '#8B1A1A',
+    \ 'floral white'           : '#FFFAF0',
+    \ 'floralwhite'            : '#FFFAF0',
+    \ 'forest green'           : '#228B22',
+    \ 'forestgreen'            : '#228B22',
+    \ 'gainsboro'              : '#DCDCDC',
+    \ 'ghost white'            : '#F8F8FF',
+    \ 'ghostwhite'             : '#F8F8FF',
+    \ 'gold'                   : '#FFD700',
+    \ 'gold1'                  : '#FFD700',
+    \ 'gold2'                  : '#EEC900',
+    \ 'gold3'                  : '#CDAD00',
+    \ 'gold4'                  : '#8B7500',
+    \ 'goldenrod'              : '#DAA520',
+    \ 'goldenrod1'             : '#FFC125',
+    \ 'goldenrod2'             : '#EEB422',
+    \ 'goldenrod3'             : '#CD9B1D',
+    \ 'goldenrod4'             : '#8B6914',
+    \ 'gray'                   : '#BEBEBE',
+    \ 'gray0'                  : '#000000',
+    \ 'gray1'                  : '#030303',
+    \ 'gray10'                 : '#1A1A1A',
+    \ 'gray100'                : '#FFFFFF',
+    \ 'gray11'                 : '#1C1C1C',
+    \ 'gray12'                 : '#1F1F1F',
+    \ 'gray13'                 : '#212121',
+    \ 'gray14'                 : '#242424',
+    \ 'gray15'                 : '#262626',
+    \ 'gray16'                 : '#292929',
+    \ 'gray17'                 : '#2B2B2B',
+    \ 'gray18'                 : '#2E2E2E',
+    \ 'gray19'                 : '#303030',
+    \ 'gray2'                  : '#050505',
+    \ 'gray20'                 : '#333333',
+    \ 'gray21'                 : '#363636',
+    \ 'gray22'                 : '#383838',
+    \ 'gray23'                 : '#3B3B3B',
+    \ 'gray24'                 : '#3D3D3D',
+    \ 'gray25'                 : '#404040',
+    \ 'gray26'                 : '#424242',
+    \ 'gray27'                 : '#454545',
+    \ 'gray28'                 : '#474747',
+    \ 'gray29'                 : '#4A4A4A',
+    \ 'gray3'                  : '#080808',
+    \ 'gray30'                 : '#4D4D4D',
+    \ 'gray31'                 : '#4F4F4F',
+    \ 'gray32'                 : '#525252',
+    \ 'gray33'                 : '#545454',
+    \ 'gray34'                 : '#575757',
+    \ 'gray35'                 : '#595959',
+    \ 'gray36'                 : '#5C5C5C',
+    \ 'gray37'                 : '#5E5E5E',
+    \ 'gray38'                 : '#616161',
+    \ 'gray39'                 : '#636363',
+    \ 'gray4'                  : '#0A0A0A',
+    \ 'gray40'                 : '#666666',
+    \ 'gray41'                 : '#696969',
+    \ 'gray42'                 : '#6B6B6B',
+    \ 'gray43'                 : '#6E6E6E',
+    \ 'gray44'                 : '#707070',
+    \ 'gray45'                 : '#737373',
+    \ 'gray46'                 : '#757575',
+    \ 'gray47'                 : '#787878',
+    \ 'gray48'                 : '#7A7A7A',
+    \ 'gray49'                 : '#7D7D7D',
+    \ 'gray5'                  : '#0D0D0D',
+    \ 'gray50'                 : '#7F7F7F',
+    \ 'gray51'                 : '#828282',
+    \ 'gray52'                 : '#858585',
+    \ 'gray53'                 : '#878787',
+    \ 'gray54'                 : '#8A8A8A',
+    \ 'gray55'                 : '#8C8C8C',
+    \ 'gray56'                 : '#8F8F8F',
+    \ 'gray57'                 : '#919191',
+    \ 'gray58'                 : '#949494',
+    \ 'gray59'                 : '#969696',
+    \ 'gray6'                  : '#0F0F0F',
+    \ 'gray60'                 : '#999999',
+    \ 'gray61'                 : '#9C9C9C',
+    \ 'gray62'                 : '#9E9E9E',
+    \ 'gray63'                 : '#A1A1A1',
+    \ 'gray64'                 : '#A3A3A3',
+    \ 'gray65'                 : '#A6A6A6',
+    \ 'gray66'                 : '#A8A8A8',
+    \ 'gray67'                 : '#ABABAB',
+    \ 'gray68'                 : '#ADADAD',
+    \ 'gray69'                 : '#B0B0B0',
+    \ 'gray7'                  : '#121212',
+    \ 'gray70'                 : '#B3B3B3',
+    \ 'gray71'                 : '#B5B5B5',
+    \ 'gray72'                 : '#B8B8B8',
+    \ 'gray73'                 : '#BABABA',
+    \ 'gray74'                 : '#BDBDBD',
+    \ 'gray75'                 : '#BFBFBF',
+    \ 'gray76'                 : '#C2C2C2',
+    \ 'gray77'                 : '#C4C4C4',
+    \ 'gray78'                 : '#C7C7C7',
+    \ 'gray79'                 : '#C9C9C9',
+    \ 'gray8'                  : '#141414',
+    \ 'gray80'                 : '#CCCCCC',
+    \ 'gray81'                 : '#CFCFCF',
+    \ 'gray82'                 : '#D1D1D1',
+    \ 'gray83'                 : '#D4D4D4',
+    \ 'gray84'                 : '#D6D6D6',
+    \ 'gray85'                 : '#D9D9D9',
+    \ 'gray86'                 : '#DBDBDB',
+    \ 'gray87'                 : '#DEDEDE',
+    \ 'gray88'                 : '#E0E0E0',
+    \ 'gray89'                 : '#E3E3E3',
+    \ 'gray9'                  : '#171717',
+    \ 'gray90'                 : '#E5E5E5',
+    \ 'gray91'                 : '#E8E8E8',
+    \ 'gray92'                 : '#EBEBEB',
+    \ 'gray93'                 : '#EDEDED',
+    \ 'gray94'                 : '#F0F0F0',
+    \ 'gray95'                 : '#F2F2F2',
+    \ 'gray96'                 : '#F5F5F5',
+    \ 'gray97'                 : '#F7F7F7',
+    \ 'gray98'                 : '#FAFAFA',
+    \ 'gray99'                 : '#FCFCFC',
+    \ 'green yellow'           : '#ADFF2F',
+    \ 'green'                  : '#00FF00',
+    \ 'green1'                 : '#00FF00',
+    \ 'green2'                 : '#00EE00',
+    \ 'green3'                 : '#00CD00',
+    \ 'green4'                 : '#008B00',
+    \ 'greenyellow'            : '#ADFF2F',
+    \ 'grey'                   : '#BEBEBE',
+    \ 'grey0'                  : '#000000',
+    \ 'grey1'                  : '#030303',
+    \ 'grey10'                 : '#1A1A1A',
+    \ 'grey100'                : '#FFFFFF',
+    \ 'grey11'                 : '#1C1C1C',
+    \ 'grey12'                 : '#1F1F1F',
+    \ 'grey13'                 : '#212121',
+    \ 'grey14'                 : '#242424',
+    \ 'grey15'                 : '#262626',
+    \ 'grey16'                 : '#292929',
+    \ 'grey17'                 : '#2B2B2B',
+    \ 'grey18'                 : '#2E2E2E',
+    \ 'grey19'                 : '#303030',
+    \ 'grey2'                  : '#050505',
+    \ 'grey20'                 : '#333333',
+    \ 'grey21'                 : '#363636',
+    \ 'grey22'                 : '#383838',
+    \ 'grey23'                 : '#3B3B3B',
+    \ 'grey24'                 : '#3D3D3D',
+    \ 'grey25'                 : '#404040',
+    \ 'grey26'                 : '#424242',
+    \ 'grey27'                 : '#454545',
+    \ 'grey28'                 : '#474747',
+    \ 'grey29'                 : '#4A4A4A',
+    \ 'grey3'                  : '#080808',
+    \ 'grey30'                 : '#4D4D4D',
+    \ 'grey31'                 : '#4F4F4F',
+    \ 'grey32'                 : '#525252',
+    \ 'grey33'                 : '#545454',
+    \ 'grey34'                 : '#575757',
+    \ 'grey35'                 : '#595959',
+    \ 'grey36'                 : '#5C5C5C',
+    \ 'grey37'                 : '#5E5E5E',
+    \ 'grey38'                 : '#616161',
+    \ 'grey39'                 : '#636363',
+    \ 'grey4'                  : '#0A0A0A',
+    \ 'grey40'                 : '#666666',
+    \ 'grey41'                 : '#696969',
+    \ 'grey42'                 : '#6B6B6B',
+    \ 'grey43'                 : '#6E6E6E',
+    \ 'grey44'                 : '#707070',
+    \ 'grey45'                 : '#737373',
+    \ 'grey46'                 : '#757575',
+    \ 'grey47'                 : '#787878',
+    \ 'grey48'                 : '#7A7A7A',
+    \ 'grey49'                 : '#7D7D7D',
+    \ 'grey5'                  : '#0D0D0D',
+    \ 'grey50'                 : '#7F7F7F',
+    \ 'grey51'                 : '#828282',
+    \ 'grey52'                 : '#858585',
+    \ 'grey53'                 : '#878787',
+    \ 'grey54'                 : '#8A8A8A',
+    \ 'grey55'                 : '#8C8C8C',
+    \ 'grey56'                 : '#8F8F8F',
+    \ 'grey57'                 : '#919191',
+    \ 'grey58'                 : '#949494',
+    \ 'grey59'                 : '#969696',
+    \ 'grey6'                  : '#0F0F0F',
+    \ 'grey60'                 : '#999999',
+    \ 'grey61'                 : '#9C9C9C',
+    \ 'grey62'                 : '#9E9E9E',
+    \ 'grey63'                 : '#A1A1A1',
+    \ 'grey64'                 : '#A3A3A3',
+    \ 'grey65'                 : '#A6A6A6',
+    \ 'grey66'                 : '#A8A8A8',
+    \ 'grey67'                 : '#ABABAB',
+    \ 'grey68'                 : '#ADADAD',
+    \ 'grey69'                 : '#B0B0B0',
+    \ 'grey7'                  : '#121212',
+    \ 'grey70'                 : '#B3B3B3',
+    \ 'grey71'                 : '#B5B5B5',
+    \ 'grey72'                 : '#B8B8B8',
+    \ 'grey73'                 : '#BABABA',
+    \ 'grey74'                 : '#BDBDBD',
+    \ 'grey75'                 : '#BFBFBF',
+    \ 'grey76'                 : '#C2C2C2',
+    \ 'grey77'                 : '#C4C4C4',
+    \ 'grey78'                 : '#C7C7C7',
+    \ 'grey79'                 : '#C9C9C9',
+    \ 'grey8'                  : '#141414',
+    \ 'grey80'                 : '#CCCCCC',
+    \ 'grey81'                 : '#CFCFCF',
+    \ 'grey82'                 : '#D1D1D1',
+    \ 'grey83'                 : '#D4D4D4',
+    \ 'grey84'                 : '#D6D6D6',
+    \ 'grey85'                 : '#D9D9D9',
+    \ 'grey86'                 : '#DBDBDB',
+    \ 'grey87'                 : '#DEDEDE',
+    \ 'grey88'                 : '#E0E0E0',
+    \ 'grey89'                 : '#E3E3E3',
+    \ 'grey9'                  : '#171717',
+    \ 'grey90'                 : '#E5E5E5',
+    \ 'grey91'                 : '#E8E8E8',
+    \ 'grey92'                 : '#EBEBEB',
+    \ 'grey93'                 : '#EDEDED',
+    \ 'grey94'                 : '#F0F0F0',
+    \ 'grey95'                 : '#F2F2F2',
+    \ 'grey96'                 : '#F5F5F5',
+    \ 'grey97'                 : '#F7F7F7',
+    \ 'grey98'                 : '#FAFAFA',
+    \ 'grey99'                 : '#FCFCFC',
+    \ 'honeydew'               : '#F0FFF0',
+    \ 'honeydew1'              : '#F0FFF0',
+    \ 'honeydew2'              : '#E0EEE0',
+    \ 'honeydew3'              : '#C1CDC1',
+    \ 'honeydew4'              : '#838B83',
+    \ 'hot pink'               : '#FF69B4',
+    \ 'hotpink'                : '#FF69B4',
+    \ 'hotpink1'               : '#FF6EB4',
+    \ 'hotpink2'               : '#EE6AA7',
+    \ 'hotpink3'               : '#CD6090',
+    \ 'hotpink4'               : '#8B3A62',
+    \ 'indian red'             : '#CD5C5C',
+    \ 'indianred'              : '#CD5C5C',
+    \ 'indianred1'             : '#FF6A6A',
+    \ 'indianred2'             : '#EE6363',
+    \ 'indianred3'             : '#CD5555',
+    \ 'indianred4'             : '#8B3A3A',
+    \ 'ivory'                  : '#FFFFF0',
+    \ 'ivory1'                 : '#FFFFF0',
+    \ 'ivory2'                 : '#EEEEE0',
+    \ 'ivory3'                 : '#CDCDC1',
+    \ 'ivory4'                 : '#8B8B83',
+    \ 'khaki'                  : '#F0E68C',
+    \ 'khaki1'                 : '#FFF68F',
+    \ 'khaki2'                 : '#EEE685',
+    \ 'khaki3'                 : '#CDC673',
+    \ 'khaki4'                 : '#8B864E',
+    \ 'lavender blush'         : '#FFF0F5',
+    \ 'lavender'               : '#E6E6FA',
+    \ 'lavenderblush'          : '#FFF0F5',
+    \ 'lavenderblush1'         : '#FFF0F5',
+    \ 'lavenderblush2'         : '#EEE0E5',
+    \ 'lavenderblush3'         : '#CDC1C5',
+    \ 'lavenderblush4'         : '#8B8386',
+    \ 'lawn green'             : '#7CFC00',
+    \ 'lawngreen'              : '#7CFC00',
+    \ 'lemon chiffon'          : '#FFFACD',
+    \ 'lemonchiffon'           : '#FFFACD',
+    \ 'lemonchiffon1'          : '#FFFACD',
+    \ 'lemonchiffon2'          : '#EEE9BF',
+    \ 'lemonchiffon3'          : '#CDC9A5',
+    \ 'lemonchiffon4'          : '#8B8970',
+    \ 'light blue'             : '#ADD8E6',
+    \ 'light coral'            : '#F08080',
+    \ 'light cyan'             : '#E0FFFF',
+    \ 'light goldenrod yellow' : '#FAFAD2',
+    \ 'light goldenrod'        : '#EEDD82',
+    \ 'light gray'             : '#D3D3D3',
+    \ 'light green'            : '#90EE90',
+    \ 'light grey'             : '#D3D3D3',
+    \ 'light magenta'          : '#FFBBFF',
+    \ 'light pink'             : '#FFB6C1',
+    \ 'light red'              : '#FFBBBB',
+    \ 'light salmon'           : '#FFA07A',
+    \ 'light sea green'        : '#20B2AA',
+    \ 'light sky blue'         : '#87CEFA',
+    \ 'light slate blue'       : '#8470FF',
+    \ 'light slate gray'       : '#778899',
+    \ 'light slate grey'       : '#778899',
+    \ 'light steel blue'       : '#B0C4DE',
+    \ 'light yellow'           : '#FFFFE0',
+    \ 'lightblue'              : '#ADD8E6',
+    \ 'lightblue1'             : '#BFEFFF',
+    \ 'lightblue2'             : '#B2DFEE',
+    \ 'lightblue3'             : '#9AC0CD',
+    \ 'lightblue4'             : '#68838B',
+    \ 'lightcoral'             : '#F08080',
+    \ 'lightcyan'              : '#E0FFFF',
+    \ 'lightcyan1'             : '#E0FFFF',
+    \ 'lightcyan2'             : '#D1EEEE',
+    \ 'lightcyan3'             : '#B4CDCD',
+    \ 'lightcyan4'             : '#7A8B8B',
+    \ 'lightgoldenrod'         : '#EEDD82',
+    \ 'lightgoldenrod1'        : '#FFEC8B',
+    \ 'lightgoldenrod2'        : '#EEDC82',
+    \ 'lightgoldenrod3'        : '#CDBE70',
+    \ 'lightgoldenrod4'        : '#8B814C',
+    \ 'lightgoldenrodyellow'   : '#FAFAD2',
+    \ 'lightgray'              : '#D3D3D3',
+    \ 'lightgreen'             : '#90EE90',
+    \ 'lightgrey'              : '#D3D3D3',
+    \ 'lightmagenta'           : '#FFBBFF',
+    \ 'lightpink'              : '#FFB6C1',
+    \ 'lightpink1'             : '#FFAEB9',
+    \ 'lightpink2'             : '#EEA2AD',
+    \ 'lightpink3'             : '#CD8C95',
+    \ 'lightpink4'             : '#8B5F65',
+    \ 'lightred'               : '#FFBBBB',
+    \ 'lightsalmon'            : '#FFA07A',
+    \ 'lightsalmon1'           : '#FFA07A',
+    \ 'lightsalmon2'           : '#EE9572',
+    \ 'lightsalmon3'           : '#CD8162',
+    \ 'lightsalmon4'           : '#8B5742',
+    \ 'lightseagreen'          : '#20B2AA',
+    \ 'lightskyblue'           : '#87CEFA',
+    \ 'lightskyblue1'          : '#B0E2FF',
+    \ 'lightskyblue2'          : '#A4D3EE',
+    \ 'lightskyblue3'          : '#8DB6CD',
+    \ 'lightskyblue4'          : '#607B8B',
+    \ 'lightslateblue'         : '#8470FF',
+    \ 'lightslategray'         : '#778899',
+    \ 'lightslategrey'         : '#778899',
+    \ 'lightsteelblue'         : '#B0C4DE',
+    \ 'lightsteelblue1'        : '#CAE1FF',
+    \ 'lightsteelblue2'        : '#BCD2EE',
+    \ 'lightsteelblue3'        : '#A2B5CD',
+    \ 'lightsteelblue4'        : '#6E7B8B',
+    \ 'lightyellow'            : '#FFFFE0',
+    \ 'lightyellow1'           : '#FFFFE0',
+    \ 'lightyellow2'           : '#EEEED1',
+    \ 'lightyellow3'           : '#CDCDB4',
+    \ 'lightyellow4'           : '#8B8B7A',
+    \ 'lime green'             : '#32CD32',
+    \ 'limegreen'              : '#32CD32',
+    \ 'linen'                  : '#FAF0E6',
+    \ 'magenta'                : '#FF00FF',
+    \ 'magenta1'               : '#FF00FF',
+    \ 'magenta2'               : '#EE00EE',
+    \ 'magenta3'               : '#CD00CD',
+    \ 'magenta4'               : '#8B008B',
+    \ 'maroon'                 : '#B03060',
+    \ 'maroon1'                : '#FF34B3',
+    \ 'maroon2'                : '#EE30A7',
+    \ 'maroon3'                : '#CD2990',
+    \ 'maroon4'                : '#8B1C62',
+    \ 'medium aquamarine'      : '#66CDAA',
+    \ 'medium blue'            : '#0000CD',
+    \ 'medium orchid'          : '#BA55D3',
+    \ 'medium purple'          : '#9370DB',
+    \ 'medium sea green'       : '#3CB371',
+    \ 'medium slate blue'      : '#7B68EE',
+    \ 'medium spring green'    : '#00FA9A',
+    \ 'medium turquoise'       : '#48D1CC',
+    \ 'medium violet red'      : '#C71585',
+    \ 'mediumaquamarine'       : '#66CDAA',
+    \ 'mediumblue'             : '#0000CD',
+    \ 'mediumorchid'           : '#BA55D3',
+    \ 'mediumorchid1'          : '#E066FF',
+    \ 'mediumorchid2'          : '#D15FEE',
+    \ 'mediumorchid3'          : '#B452CD',
+    \ 'mediumorchid4'          : '#7A378B',
+    \ 'mediumpurple'           : '#9370DB',
+    \ 'mediumpurple1'          : '#AB82FF',
+    \ 'mediumpurple2'          : '#9F79EE',
+    \ 'mediumpurple3'          : '#8968CD',
+    \ 'mediumpurple4'          : '#5D478B',
+    \ 'mediumseagreen'         : '#3CB371',
+    \ 'mediumslateblue'        : '#7B68EE',
+    \ 'mediumspringgreen'      : '#00FA9A',
+    \ 'mediumturquoise'        : '#48D1CC',
+    \ 'mediumvioletred'        : '#C71585',
+    \ 'midnight blue'          : '#191970',
+    \ 'midnightblue'           : '#191970',
+    \ 'mint cream'             : '#F5FFFA',
+    \ 'mintcream'              : '#F5FFFA',
+    \ 'misty rose'             : '#FFE4E1',
+    \ 'mistyrose'              : '#FFE4E1',
+    \ 'mistyrose1'             : '#FFE4E1',
+    \ 'mistyrose2'             : '#EED5D2',
+    \ 'mistyrose3'             : '#CDB7B5',
+    \ 'mistyrose4'             : '#8B7D7B',
+    \ 'moccasin'               : '#FFE4B5',
+    \ 'navajo white'           : '#FFDEAD',
+    \ 'navajowhite'            : '#FFDEAD',
+    \ 'navajowhite1'           : '#FFDEAD',
+    \ 'navajowhite2'           : '#EECFA1',
+    \ 'navajowhite3'           : '#CDB38B',
+    \ 'navajowhite4'           : '#8B795E',
+    \ 'navy blue'              : '#000080',
+    \ 'navy'                   : '#000080',
+    \ 'navyblue'               : '#000080',
+    \ 'old lace'               : '#FDF5E6',
+    \ 'oldlace'                : '#FDF5E6',
+    \ 'olive drab'             : '#6B8E23',
+    \ 'olivedrab'              : '#6B8E23',
+    \ 'olivedrab1'             : '#C0FF3E',
+    \ 'olivedrab2'             : '#B3EE3A',
+    \ 'olivedrab3'             : '#9ACD32',
+    \ 'olivedrab4'             : '#698B22',
+    \ 'orange red'             : '#FF4500',
+    \ 'orange'                 : '#FFA500',
+    \ 'orange1'                : '#FFA500',
+    \ 'orange2'                : '#EE9A00',
+    \ 'orange3'                : '#CD8500',
+    \ 'orange4'                : '#8B5A00',
+    \ 'orangered'              : '#FF4500',
+    \ 'orangered1'             : '#FF4500',
+    \ 'orangered2'             : '#EE4000',
+    \ 'orangered3'             : '#CD3700',
+    \ 'orangered4'             : '#8B2500',
+    \ 'orchid'                 : '#DA70D6',
+    \ 'orchid1'                : '#FF83FA',
+    \ 'orchid2'                : '#EE7AE9',
+    \ 'orchid3'                : '#CD69C9',
+    \ 'orchid4'                : '#8B4789',
+    \ 'pale goldenrod'         : '#EEE8AA',
+    \ 'pale green'             : '#98FB98',
+    \ 'pale turquoise'         : '#AFEEEE',
+    \ 'pale violet red'        : '#DB7093',
+    \ 'palegoldenrod'          : '#EEE8AA',
+    \ 'palegreen'              : '#98FB98',
+    \ 'palegreen1'             : '#9AFF9A',
+    \ 'palegreen2'             : '#90EE90',
+    \ 'palegreen3'             : '#7CCD7C',
+    \ 'palegreen4'             : '#548B54',
+    \ 'paleturquoise'          : '#AFEEEE',
+    \ 'paleturquoise1'         : '#BBFFFF',
+    \ 'paleturquoise2'         : '#AEEEEE',
+    \ 'paleturquoise3'         : '#96CDCD',
+    \ 'paleturquoise4'         : '#668B8B',
+    \ 'palevioletred'          : '#DB7093',
+    \ 'palevioletred1'         : '#FF82AB',
+    \ 'palevioletred2'         : '#EE799F',
+    \ 'palevioletred3'         : '#CD6889',
+    \ 'palevioletred4'         : '#8B475D',
+    \ 'papaya whip'            : '#FFEFD5',
+    \ 'papayawhip'             : '#FFEFD5',
+    \ 'peach puff'             : '#FFDAB9',
+    \ 'peachpuff'              : '#FFDAB9',
+    \ 'peachpuff1'             : '#FFDAB9',
+    \ 'peachpuff2'             : '#EECBAD',
+    \ 'peachpuff3'             : '#CDAF95',
+    \ 'peachpuff4'             : '#8B7765',
+    \ 'peru'                   : '#CD853F',
+    \ 'pink'                   : '#FFC0CB',
+    \ 'pink1'                  : '#FFB5C5',
+    \ 'pink2'                  : '#EEA9B8',
+    \ 'pink3'                  : '#CD919E',
+    \ 'pink4'                  : '#8B636C',
+    \ 'plum'                   : '#DDA0DD',
+    \ 'plum1'                  : '#FFBBFF',
+    \ 'plum2'                  : '#EEAEEE',
+    \ 'plum3'                  : '#CD96CD',
+    \ 'plum4'                  : '#8B668B',
+    \ 'powder blue'            : '#B0E0E6',
+    \ 'powderblue'             : '#B0E0E6',
+    \ 'purple'                 : '#A020F0',
+    \ 'purple1'                : '#9B30FF',
+    \ 'purple2'                : '#912CEE',
+    \ 'purple3'                : '#7D26CD',
+    \ 'purple4'                : '#551A8B',
+    \ 'red'                    : '#FF0000',
+    \ 'red1'                   : '#FF0000',
+    \ 'red2'                   : '#EE0000',
+    \ 'red3'                   : '#CD0000',
+    \ 'red4'                   : '#8B0000',
+    \ 'rosy brown'             : '#BC8F8F',
+    \ 'rosybrown'              : '#BC8F8F',
+    \ 'rosybrown1'             : '#FFC1C1',
+    \ 'rosybrown2'             : '#EEB4B4',
+    \ 'rosybrown3'             : '#CD9B9B',
+    \ 'rosybrown4'             : '#8B6969',
+    \ 'royal blue'             : '#4169E1',
+    \ 'royalblue'              : '#4169E1',
+    \ 'royalblue1'             : '#4876FF',
+    \ 'royalblue2'             : '#436EEE',
+    \ 'royalblue3'             : '#3A5FCD',
+    \ 'royalblue4'             : '#27408B',
+    \ 'saddle brown'           : '#8B4513',
+    \ 'saddlebrown'            : '#8B4513',
+    \ 'salmon'                 : '#FA8072',
+    \ 'salmon1'                : '#FF8C69',
+    \ 'salmon2'                : '#EE8262',
+    \ 'salmon3'                : '#CD7054',
+    \ 'salmon4'                : '#8B4C39',
+    \ 'sandy brown'            : '#F4A460',
+    \ 'sandybrown'             : '#F4A460',
+    \ 'sea green'              : '#2E8B57',
+    \ 'seagreen'               : '#2E8B57',
+    \ 'seagreen1'              : '#54FF9F',
+    \ 'seagreen2'              : '#4EEE94',
+    \ 'seagreen3'              : '#43CD80',
+    \ 'seagreen4'              : '#2E8B57',
+    \ 'seashell'               : '#FFF5EE',
+    \ 'seashell1'              : '#FFF5EE',
+    \ 'seashell2'              : '#EEE5DE',
+    \ 'seashell3'              : '#CDC5BF',
+    \ 'seashell4'              : '#8B8682',
+    \ 'sienna'                 : '#A0522D',
+    \ 'sienna1'                : '#FF8247',
+    \ 'sienna2'                : '#EE7942',
+    \ 'sienna3'                : '#CD6839',
+    \ 'sienna4'                : '#8B4726',
+    \ 'sky blue'               : '#87CEEB',
+    \ 'skyblue'                : '#87CEEB',
+    \ 'skyblue1'               : '#87CEFF',
+    \ 'skyblue2'               : '#7EC0EE',
+    \ 'skyblue3'               : '#6CA6CD',
+    \ 'skyblue4'               : '#4A708B',
+    \ 'slate blue'             : '#6A5ACD',
+    \ 'slate gray'             : '#708090',
+    \ 'slate grey'             : '#708090',
+    \ 'slateblue'              : '#6A5ACD',
+    \ 'slateblue1'             : '#836FFF',
+    \ 'slateblue2'             : '#7A67EE',
+    \ 'slateblue3'             : '#6959CD',
+    \ 'slateblue4'             : '#473C8B',
+    \ 'slategray'              : '#708090',
+    \ 'slategray1'             : '#C6E2FF',
+    \ 'slategray2'             : '#B9D3EE',
+    \ 'slategray3'             : '#9FB6CD',
+    \ 'slategray4'             : '#6C7B8B',
+    \ 'slategrey'              : '#708090',
+    \ 'snow'                   : '#FFFAFA',
+    \ 'snow1'                  : '#FFFAFA',
+    \ 'snow2'                  : '#EEE9E9',
+    \ 'snow3'                  : '#CDC9C9',
+    \ 'snow4'                  : '#8B8989',
+    \ 'spring green'           : '#00FF7F',
+    \ 'springgreen'            : '#00FF7F',
+    \ 'springgreen1'           : '#00FF7F',
+    \ 'springgreen2'           : '#00EE76',
+    \ 'springgreen3'           : '#00CD66',
+    \ 'springgreen4'           : '#008B45',
+    \ 'steel blue'             : '#4682B4',
+    \ 'steelblue'              : '#4682B4',
+    \ 'steelblue1'             : '#63B8FF',
+    \ 'steelblue2'             : '#5CACEE',
+    \ 'steelblue3'             : '#4F94CD',
+    \ 'steelblue4'             : '#36648B',
+    \ 'tan'                    : '#D2B48C',
+    \ 'tan1'                   : '#FFA54F',
+    \ 'tan2'                   : '#EE9A49',
+    \ 'tan3'                   : '#CD853F',
+    \ 'tan4'                   : '#8B5A2B',
+    \ 'thistle'                : '#D8BFD8',
+    \ 'thistle1'               : '#FFE1FF',
+    \ 'thistle2'               : '#EED2EE',
+    \ 'thistle3'               : '#CDB5CD',
+    \ 'thistle4'               : '#8B7B8B',
+    \ 'tomato'                 : '#FF6347',
+    \ 'tomato1'                : '#FF6347',
+    \ 'tomato2'                : '#EE5C42',
+    \ 'tomato3'                : '#CD4F39',
+    \ 'tomato4'                : '#8B3626',
+    \ 'turquoise'              : '#40E0D0',
+    \ 'turquoise1'             : '#00F5FF',
+    \ 'turquoise2'             : '#00E5EE',
+    \ 'turquoise3'             : '#00C5CD',
+    \ 'turquoise4'             : '#00868B',
+    \ 'violet red'             : '#D02090',
+    \ 'violet'                 : '#EE82EE',
+    \ 'violetred'              : '#D02090',
+    \ 'violetred1'             : '#FF3E96',
+    \ 'violetred2'             : '#EE3A8C',
+    \ 'violetred3'             : '#CD3278',
+    \ 'violetred4'             : '#8B2252',
+    \ 'wheat'                  : '#F5DEB3',
+    \ 'wheat1'                 : '#FFE7BA',
+    \ 'wheat2'                 : '#EED8AE',
+    \ 'wheat3'                 : '#CDBA96',
+    \ 'wheat4'                 : '#8B7E66',
+    \ 'white smoke'            : '#F5F5F5',
+    \ 'white'                  : '#FFFFFF',
+    \ 'whitesmoke'             : '#F5F5F5',
+    \ 'yellow green'           : '#9ACD32',
+    \ 'yellow'                 : '#FFFF00',
+    \ 'yellow1'                : '#FFFF00',
+    \ 'yellow2'                : '#EEEE00',
+    \ 'yellow3'                : '#CDCD00',
+    \ 'yellow4'                : '#8B8B00',
+    \ 'yellowgreen'            : '#9ACD32',
+  \}
+
+  if has_key(l:color_list, l:color_name)
+    let l:hex_code = l:color_list[l:color_name]
+  endif
+
+  return l:hex_code
+endfunction
+

File vim/autoload/indent_guides.vim

View file
+" Author:   Nate Kane <nathanaelkane AT gmail DOT com>
+" Homepage: http://github.com/nathanaelkane/vim-indent-guides
+
+"
+" Toggles the indent guides on and off.
+"
+function! indent_guides#toggle()
+  call indent_guides#init_matches()
+
+  if empty(w:indent_guides_matches)
+    call indent_guides#enable()
+  else
+    call indent_guides#disable()
+  endif
+endfunction
+
+"
+" Called from autocmds, keeps indent guides enabled or disabled when entering
+" other buffers and windows.
+"
+function! indent_guides#process_autocmds()
+  if g:indent_guides_autocmds_enabled
+    call indent_guides#enable()
+  else
+    call indent_guides#disable()
+  end
+endfunction
+
+"
+" Enables the indent guides for the current buffer and any other buffer upon
+" entering it.
+"
+function! indent_guides#enable()
+  let g:indent_guides_autocmds_enabled = 1
+
+  call indent_guides#init_script_vars()
+  call indent_guides#highlight_colors()
+  call indent_guides#clear_matches()
+
+  " loop through each indent level and define a highlight pattern
+  " will automagically figure out whether to use tabs or spaces
+  for l:level in range(s:start_level, s:indent_levels)
+    let l:group      = 'IndentGuides' . ((l:level % 2 == 0) ? 'Even' : 'Odd')
+    let l:pattern    = '^\s\{' . (l:level * s:indent_size - s:indent_size) . '\}\zs'
+    let l:pattern   .= '\s\{' . s:guide_size . '\}'
+    let l:pattern   .= '\ze'
+
+    " define the higlight pattern and add to list
+    call add(w:indent_guides_matches, matchadd(l:group, l:pattern))
+  endfor
+endfunction
+
+"
+" Disables the indent guides for the current buffer and any other buffer upon
+" entering it.
+"
+function! indent_guides#disable()
+  let g:indent_guides_autocmds_enabled = 0
+  call indent_guides#clear_matches()
+endfunction
+
+"
+" Clear all highlight matches for the current window.
+"
+function! indent_guides#clear_matches()
+  call indent_guides#init_matches()
+  if !empty(w:indent_guides_matches)
+    let l:index = 0
+    for l:match_id in w:indent_guides_matches
+      call matchdelete(l:match_id)
+      call remove(w:indent_guides_matches, l:index)
+      let l:index += l:index
+    endfor
+  endif
+endfunction
+
+"
+" Automagically calculates and defines the indent highlight colors.
+"
+function! indent_guides#highlight_colors()
+  if s:auto_colors
+    if has('gui_running')
+      call indent_guides#gui_highlight_colors()
+    else
+      call indent_guides#basic_highlight_colors()
+    endif
+  endif
+endfunction
+
+"
+" Defines some basic indent highlight colors that work for Terminal Vim and
+" gVim when colors can't be automatically calculated.
+"
+function! indent_guides#basic_highlight_colors()
+  let l:cterm_colors = (&g:background == 'dark') ? ['darkgrey', 'black'] : ['lightgrey', 'white']
+  let l:gui_colors   = (&g:background == 'dark') ? ['grey15', 'grey30']  : ['grey70', 'grey85']
+
+  exe 'hi IndentGuidesEven guibg=' . l:gui_colors[0] . ' ctermbg=' . l:cterm_colors[0]
+  exe 'hi IndentGuidesOdd  guibg=' . l:gui_colors[1] . ' ctermbg=' . l:cterm_colors[1]
+endfunction
+
+"
+" Automagically calculates and defines the indent highlight colors for gui
+" vim.
+"
+function! indent_guides#gui_highlight_colors()
+  let l:hi_normal_guibg = ''
+
+  " capture the backgroud color from the normal highlight
+  if s:hi_normal =~ s:color_hex_bg_pat
+    " hex color code is being used, eg. '#FFFFFF'
+    let l:hi_normal_guibg = matchstr(s:hi_normal, s:color_hex_bg_pat)
+
+  elseif s:hi_normal =~ s:color_name_bg_pat
+    " color name is being used, eg. 'white'
+    let l:color_name = matchstr(s:hi_normal, s:color_name_bg_pat)
+    let l:hi_normal_guibg = color_helper#color_name_to_hex(l:color_name)
+
+  else
+    " background color could not be detected, default to basic colors
+    call indent_guides#basic_highlight_colors()
+  endif
+
+  if l:hi_normal_guibg =~ s:color_hex_pat
+    " calculate the highlight background colors
+    let l:hi_odd_bg  = indent_guides#lighten_or_darken_color(l:hi_normal_guibg)
+    let l:hi_even_bg = indent_guides#lighten_or_darken_color(l:hi_odd_bg)
+
+    " define the new highlights
+    exe 'hi IndentGuidesOdd  guibg=' . l:hi_odd_bg
+    exe 'hi IndentGuidesEven guibg=' . l:hi_even_bg
+  end
+endfunction
+
+"
+" Takes a color and darkens or lightens it depending on whether a dark or light
+" colorscheme is being used.
+"
+function! indent_guides#lighten_or_darken_color(color)
+  let l:new_color = ''
+
+  if (&g:background == 'dark')
+    let l:new_color = color_helper#hex_color_lighten(a:color, s:change_percent)
+  else
+    let l:new_color = color_helper#hex_color_darken (a:color, s:change_percent)
+  endif
+
+  return l:new_color
+endfunction
+
+"
+" Define default highlights.
+"
+function! indent_guides#define_default_highlights()
+  exe 'hi IndentGuidesOdd  guibg=NONE ctermbg=NONE'
+  exe 'hi IndentGuidesEven guibg=NONE ctermbg=NONE'
+endfunction
+
+"
+" Init the w:indent_guides_matches variable.
+"
+function! indent_guides#init_matches()
+  let w:indent_guides_matches = exists('w:indent_guides_matches') ? w:indent_guides_matches : []
+endfunction
+
+"
+" We need to initialize these vars every time a buffer is entered while the
+" plugin is enabled.
+"
+function! indent_guides#init_script_vars()
+  let s:indent_size = indent_guides#get_indent_size()
+  let s:guide_size  = indent_guides#calculate_guide_size()
+  let s:hi_normal   = indent_guides#capture_highlight('Normal')
+
+  " shortcuts to the global variables - this makes the code easier to read
+  let s:debug             = g:indent_guides_debug
+  let s:indent_levels     = g:indent_guides_indent_levels
+  let s:auto_colors       = g:indent_guides_auto_colors
+  let s:change_percent    = g:indent_guides_color_change_percent / 100.0
+  let s:color_hex_pat     = g:indent_guides_color_hex_pattern
+  let s:color_hex_bg_pat  = g:indent_guides_color_hex_guibg_pattern
+  let s:color_name_bg_pat = g:indent_guides_color_name_guibg_pattern
+  let s:start_level       = g:indent_guides_start_level
+
+  if s:debug
+    echo 's:indent_size = '       . s:indent_size
+    echo 's:guide_size = '        . s:guide_size
+    echo 's:hi_normal = '         . s:hi_normal
+    echo 's:indent_levels = '     . s:indent_levels
+    echo 's:auto_colors = '       . s:auto_colors
+    echo 's:change_percent = '    . string(s:change_percent)
+    echo 's:color_hex_pat = '     . s:color_hex_pat
+    echo 's:color_hex_bg_pat = '  . s:color_hex_bg_pat
+    echo 's:color_name_bg_pat = ' . s:color_name_bg_pat
+    echo 's:start_level = '       . s:start_level
+  endif
+endfunction
+
+"
+" Calculate the indent guide size. Ensures the guide size is less than or
+" equal to the actual indent size, otherwise some weird things can occur.
+"
+" NOTE: Currently, this only works when soft-tabs are being used.
+"
+function! indent_guides#calculate_guide_size()
+  let l:guide_size  = g:indent_guides_guide_size
+  let l:indent_size = indent_guides#get_indent_size()
+
+  if l:indent_size > 1 && l:guide_size >= 1
+    let l:guide_size = (l:guide_size > s:indent_size) ? s:indent_size : l:guide_size
+  else
+    let l:guide_size = s:indent_size
+  endif
+
+  return l:guide_size
+endfunction
+
+"
+" Gets the indent size, which depends on whether soft-tabs or hard-tabs are
+" being used.
+"
+function! indent_guides#get_indent_size()
+  return (&l:expandtab == 1) ? &l:shiftwidth : 1
+endfunction
+
+"
+" Captures and returns the output of highlight group definitions.
+"
+" Example: indent_guides#capture_highlight('normal')
+" Returns: 'Normal xxx guifg=#323232 guibg=#ffffff
+"
+function! indent_guides#capture_highlight(group_name)
+  redir => l:output
+  exe "silent hi " . a:group_name
+  redir END
+
+  let l:output = substitute(l:output, "\n", "", "")
+  return l:output
+endfunction
+

File vim/doc/indent_guides.txt

View file
+*indent_guides.txt*  A plugin for visually displaying indent levels in Vim.
+
+                                                                 *indent-guides*
+      ____           __            __     ______       _      __
+     /  _/____  ____/ /___  ____  / /_   / ____/__  __(_)____/ /___  _____
+     / / / __ \/ __  // _ \/ __ \/ __/  / / __ / / / / // __  // _ \/ ___/
+   _/ / / / / / /_/ //  __/ / / / /_   / /_/ // /_/ / // /_/ //  __(__  )
+  /___//_/ /_/\__,_/ \___/_/ /_/\__/   \____/ \__,_/_/ \__,_/ \___/____/
+
+
+Author:      Nate Kane <nathanaelkane AT gmail DOT com>
+Version:     1.3
+Last Change: 17 Jan 2011
+
+==============================================================================
+CONTENTS                                                *indent-guides-contents*
+
+  1. Introduction.......................... |indent-guides-introduction|
+  2. Commands.............................. |indent-guides-commands|
+  3. Options............................... |indent-guides-options|
+  4. Mappings.............................. |indent-guides-mappings|
+  5. Terminal Vim.......................... |indent-guides-terminal-vim|
+  6. About................................. |indent-guides-about|
+  7. Changelog............................. |indent-guides-changelog|
+  8. License............................... |indent-guides-license|
+
+==============================================================================
+1. INTRODUCTION                                     *indent-guides-introduction*
+
+Indent Guides is a plugin for visually displaying indent levels in Vim.
+
+This plugin should work with gVim out of the box, no configuration needed.
+
+Features:~
+  * Can detect both tab and space indent styles.
+  * Automatically inspects your colorscheme and picks appropriate colors (gVim
+    only).
+  * Will highlight indent levels with alternating colors.
+  * Full support for gVim and basic support for Terminal Vim.
+  * Seems to work on Windows gVim 7.3 (haven't done any extensive tests
+    though).
+  * Customizable size for indent guides, eg. skinny guides (soft-tabs only).
+  * Customizable start indent level.
+
+==============================================================================
+2. COMMANDS                                             *indent-guides-commands*
+
+------------------------------------------------------------------------------
+:IndentGuidesToggle                                        *:IndentGuidesToggle*
+  Toggles the indent guides on and off.
+
+------------------------------------------------------------------------------
+:IndentGuidesEnable                                        *:IndentGuidesEnable*
+  Enables the indent guides for the current buffer and any other buffer upon
+  entering it.
+
+------------------------------------------------------------------------------
+:IndentGuidesDisable                                      *:IndentGuidesDisable*
+  Disables the indent guides for the current buffer and any other buffer upon
+  entering it.
+
+==============================================================================
+3. OPTIONS                                               *indent-guides-options*
+
+------------------------------------------------------------------------------
+                                                 *'indent_guides_indent_levels'*
+Use this option to control how many indent levels to display guides for.
+
+Default: 30. Values: integer.
+>
+  let g:indent_guides_indent_levels = 30
+<
+
+------------------------------------------------------------------------------
+                                                   *'indent_guides_auto_colors'*
+Use this option to control whether or not the plugin automatically calculates
+the highlight colors. Will use the current colorscheme's background color as a
+base color.
+
+Default: 1. Values: 0 or 1.
+>
+  let g:indent_guides_auto_colors = 1
+<
+
+If you set this option to 0, be sure to manually define some highlight colors
+in an autocmd.
+>
+  let g:indent_guides_auto_colors = 0
+  autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  guibg=red   ctermbg=3
+  autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=4
+<
+
+------------------------------------------------------------------------------
+                                          *'indent_guides_color_change_percent'*
+Use this option to control the percent at which the highlight colors will be
+lightened or darkened.
+
+Default: 10 (10%). Values: between 0 and 100.
+>
+  let g:indent_guides_color_change_percent = 10
+<
+
+------------------------------------------------------------------------------
+                                                    *'indent_guides_guide_size'*
+Use this option to customize the size of the indent guide. By default the
+value is set to 0, which will set the guide size to be the same as the
+|shiftwidth|. Setting this value to be larger than the |shiftwidth| is essentially
+the same as setting it to 0.
+
+A common use of this setting is to create skinny indent guides, which look
+great with a |shiftwidth| of 4 or more.
+
+NOTE: This option only works for soft-tabs (spaces) and not hard-tabs.
+
+Default: 0. Values: between 0 and |shiftwidth|.
+>
+  let g:indent_guides_guide_size = 1
+<
+
+------------------------------------------------------------------------------
+                                                   *'indent_guides_start_level'*
+Use this option to control which indent level to start showing guides from.
+
+Default: 1. Values: between 1 and g:|indent_guides_indent_levels|.
+>
+  let g:indent_guides_start_level = 2
+<
+
+==============================================================================
+4. MAPPINGS                                             *indent-guides-mappings*
+
+The default mapping for toggling indent guides is <Leader>ig. You can easily
+map it to other keys. For example:
+>
+  :nmap <Leader>ig :IndentGuidesToggle<CR>
+<
+
+You can also map some other commands that are not mapped by default. For
+example:
+>
+  :nmap <Leader>ie :IndentGuidesEnable<CR>
+  :nmap <Leader>id :IndentGuidesDisable<CR>
+<
+
+==============================================================================
+5. TERMINAL VIM                                     *indent-guides-terminal-vim*
+
+At the moment Terminal Vim only has basic support. This means is that colors
+won't be automatically calculated based on your colorscheme. Instead, some
+preset colors are used depending on whether `background` is set to `dark` or
+`light`.
+
+When `set background=dark` is used, the following highlight colors will be
+defined:
+>
+  hi IndentGuidesEven ctermbg=darkgrey
+  hi IndentGuidesOdd  ctermbg=black
+<
+
+Alternatively, when `set background=light` is used, the following highlight
+colors will be defined:
+>
+  hi IndentGuidesEven ctermbg=lightgrey
+  hi IndentGuidesOdd  ctermbg=white
+<
+
+If for some reason it's incorrectly defining light highlight colors instead of
+dark ones or vice versa, the first thing you should check is that the
+`background` value is being set correctly for your colorscheme. Sometimes it's
+best to manually set the `background` value in your `.vimrc`, for example:
+>
+  colorscheme desert256
+  set background=dark
+<
+
+Alternatively you can manually setup the highlight colors yourself, see
+|indent_guides_auto_colors| for an example.
+
+==============================================================================
+6. ABOUT                                                   *indent-guides-about*
+
+Why did I build this plugin?~
+  * I believe indent guides make nested code easier to read and understand.
+  * Other editors have them and it's high time Vim did.
+  * None of the existing indent guide plugins on the market suited my needs.
+  * I wanted to learn me some VimL.
+
+Links:~
+  * Github:        https://github.com/nathanaelkane/vim-indent-guides
+  * Bugs & Issues: https://github.com/nathanaelkane/vim-indent-guides/issues
+
+Credits:~
+  * Matt Wozniski (godlygeek) for letting me use the list of color names and
+    hex codes from his CSApprox plugin.
+
+Contact:~
+  * Twitter: @nathanaelkane
+  * Email:   <nathanaelkane AT gmail DOT com>
+  * IRC:     nate- on Freenode (I usually idle in the #vim channel)
+
+Bug reports, feedback, suggestions etc are welcomed.
+
+==============================================================================
+7. CHANGELOG                                           *indent-guides-changelog*
+
+1.3~
+  * Changed the default value of g:|indent_guides_color_change_percent| to 10.
+  * Added support for gVim themes that don't specify a `hi Normal guibg`
+    color.
+
+1.2~
+  * Customizable size for indent guides, eg. skinny guides (soft-tabs only).
+  * Customizable start indent level.
+  * Refactored some internal logic.
+
+1.1~
+  * Added basic support for Terminal Vim. See |indent-guides-terminal-vim| for
+    more information.
+  * Cut down on rgb to hex color conversions by adding a big dictionary of
+    color names and hex codes.
+  * Various bug fixes.
+
+1.0~
+  * First public version.
+
+==============================================================================
+8. LICENSE                                               *indent-guides-license*
+
+The MIT Licence
+http://www.opensource.org/licenses/mit-license.php
+
+Copyright (c) 2010-2011 Nate Kane
+
+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:tw=78:ts=2:ft=help:norl:
+

File vim/doc/tags

View file
 'Tlist_Use_SingleClick'	taglist.txt	/*'Tlist_Use_SingleClick'*
 'Tlist_WinHeight'	taglist.txt	/*'Tlist_WinHeight'*
 'Tlist_WinWidth'	taglist.txt	/*'Tlist_WinWidth'*
+'indent_guides_auto_colors'	indent_guides.txt	/*'indent_guides_auto_colors'*
+'indent_guides_color_change_percent'	indent_guides.txt	/*'indent_guides_color_change_percent'*
+'indent_guides_guide_size'	indent_guides.txt	/*'indent_guides_guide_size'*
+'indent_guides_indent_levels'	indent_guides.txt	/*'indent_guides_indent_levels'*
+'indent_guides_start_level'	indent_guides.txt	/*'indent_guides_start_level'*
 'loaded_nerd_comments'	NERD_commenter.txt	/*'loaded_nerd_comments'*
 'loaded_nerd_tree'	NERD_tree.txt	/*'loaded_nerd_tree'*
 'snippets'	snipMate.txt	/*'snippets'*
 :FufTag	fuf.txt	/*:FufTag*
 :FufTagWithCursorWord	fuf.txt	/*:FufTagWithCursorWord*
 :FufTaggedFile	fuf.txt	/*:FufTaggedFile*
+:IndentGuidesDisable	indent_guides.txt	/*:IndentGuidesDisable*
+:IndentGuidesEnable	indent_guides.txt	/*:IndentGuidesEnable*
+:IndentGuidesToggle	indent_guides.txt	/*:IndentGuidesToggle*
 :LAck	ack.txt	/*:LAck*
 :LAckAdd	ack.txt	/*:LAckAdd*
 :LatexErrors	latex-box.txt	/*:LatexErrors*
 imaps-usage	imaps.txt	/*imaps-usage*
 imaps.txt	imaps.txt	/*imaps.txt*
 imaps.txt-toc	imaps.txt	/*imaps.txt-toc*
+indent-guides	indent_guides.txt	/*indent-guides*
+indent-guides-about	indent_guides.txt	/*indent-guides-about*
+indent-guides-changelog	indent_guides.txt	/*indent-guides-changelog*
+indent-guides-commands	indent_guides.txt	/*indent-guides-commands*
+indent-guides-contents	indent_guides.txt	/*indent-guides-contents*
+indent-guides-introduction	indent_guides.txt	/*indent-guides-introduction*
+indent-guides-license	indent_guides.txt	/*indent-guides-license*
+indent-guides-mappings	indent_guides.txt	/*indent-guides-mappings*
+indent-guides-options	indent_guides.txt	/*indent-guides-options*
+indent-guides-terminal-vim	indent_guides.txt	/*indent-guides-terminal-vim*
+indent_guides.txt	indent_guides.txt	/*indent_guides.txt*
 inserting-commands	latex-suite.txt	/*inserting-commands*
 inserting-env-f5	latex-suite.txt	/*inserting-env-f5*
 inserting-env-shift-f1	latex-suite.txt	/*inserting-env-shift-f1*
 vs	surround.txt	/*vs*
 why-IMAP	latex-suite.txt	/*why-IMAP*
 wiki	potwiki.txt	/*wiki*
+xml-plugin-callbacks	xml-plugin.txt	/*xml-plugin-callbacks*
+xml-plugin-html	xml-plugin.txt	/*xml-plugin-html*
+xml-plugin-mappings	xml-plugin.txt	/*xml-plugin-mappings*
+xml-plugin-settings	xml-plugin.txt	/*xml-plugin-settings*
+xml-plugin.txt	xml-plugin.txt	/*xml-plugin.txt*
 yS	surround.txt	/*yS*
 ySS	surround.txt	/*ySS*
 ys	surround.txt	/*ys*

File vim/doc/xml-plugin.txt

View file
+*xml-plugin.txt*  Help edit XML and SGML documents.                   v1.36
+
+				   XML Edit  ~
+
+A filetype plugin to help edit XML and SGML documents.
+
+This script provides some convenience when editing XML (and some SGML
+including HTML) formated documents. It allows you to jump to the
+beginning or end of the tag block your cursor is in. '%' will jump
+between '<' and '>' within the tag your cursor is in. When in insert
+mode and you finish a tag (pressing '>') the tag will be completed. If
+you press '>' twice it will place the cursor in the middle of the tags
+on it's own line (helps with nested tags).
+
+Usage: Place this file into your ftplugin directory. To add html support
+Sym-link or copy this file to html.vim in your ftplugin directory. To activte
+the script place 'filetype plugin on' in your |.vimrc| file. See |ftplugins|
+for more information on this topic.
+
+If the file edited is of type "html" and "xml_use_html" is  defined then
+the following tags will not auto complete: <img>, <input>, <param>,
+<frame>, <br>, <hr>, <meta>, <link>, <base>, <area>
+        
+If the file edited is of type 'html' and 'xml_use_xhtml' is defined the
+above tags will autocomplete the xml closing staying xhtml compatable.
+ex. <hr> becomes <hr /> (see |xml-plugin-settings|)
+
+Known Bugs {{{1 ~
+
+- < & > marks inside of a CDATA section are interpreted as actual XML tags
+  even if unmatched.
+- The script can not handle leading spaces such as < tag></ tag> it is
+  illegal XML syntax and considered very bad form.
+- Placing a literal `>' in an attribute value will auto complete despite that
+  the start tag isn't finished. This is poor XML anyway you should use
+  &gt; instead.
+
+
+------------------------------------------------------------------------------
+                                                         *xml-plugin-settings*
+Options {{{1
+
+(All options must be placed in your |.vimrc| prior to the |ftplugin|
+command.)
+
+xml_tag_completion_map
+	Use this setting to change the default mapping to auto complete a
+	tag. By default typing a literal `>' will cause the tag your editing
+	to auto complete; pressing twice will auto nest the tag. By using
+	this setting the `>' will be a literal `>' and you must use the new
+	mapping to perform auto completion and auto nesting. For example if
+	you wanted Control-L to perform auto completion inmstead of typing a
+	`>' place the following into your .vimrc: >
+            let xml_tag_completion_map = "<C-l>"
+<
+xml_no_auto_nesting (Not Working!!!!!)
+	This turns off the auto nesting feature. After a completion is made
+	and another `>' is typed xml-edit automatically will break the tag
+	accross multiple lines and indent the curser to make creating nested
+	tqags easier. This feature turns it off. Enter the following in your
+	.vimrc: >
+            let xml_no_auto_nesting = 1
+<
+xml_use_xhtml
+	When editing HTML this will auto close the short tags to make valid
+	XML like <hr/> and <br/>. Enter the following in your vimrc to
+	turn this option on: >
+            let xml_use_xhtml = 1
+	if the filetype is xhtml and g:xml_use_xhtml doesn't exists
+	the script defines it to be 1. (This also assumes that you have linked
+	xml.vim to xhtml.vim. Otherwise this item is moot)
+	For a file to be of xhtml type there need to be a doctype declaration!!
+	just naming a file something.xhtml doesn't make it type xhtml!
+<
+xml_no_html
+	This turns of the support for HTML specific tags. Place this in your
+        .vimrc: >
+            let xml_no_html = 1
+<
+------------------------------------------------------------------------------
+                                                        *xml-plugin-mappings*
+
+Mapings and their functions {{{1
+
+Typing '>' will start the tag closing routine.
+Typing (Where | means cursor position)
+           <para>|
+results in
+           <para>|</para>
+
+Typing
+           <para>>|</para>
+results in
+           <para>
+                |
+           </para>
+typing a lone '>' and no '<' in front of it accepts the '>' (But having
+lone '>' or '<' in a XML file is frown upon except in <!CDATA> sections,
+and that will throw of the plugin!!).
+
+Typing </tag> or <tag/> also results in na expanding. So when editing
+html type <input .... />
+
+The closing routing also ignores DTD tags '<!,,>' and processing
+instructions '<?....?>'. Thus typing these result in no expansion.
+
+
+<LocalLeader> is a setting in VIM that depicts a prefix for scripts and
+plugins to use. By default this is the backslash key `\'. See |mapleader|
+for details.
+
+;;              make element out previous word and close it         {{{2
+          - when typing a word;; wil create <word>|</word>
+						when word on its own line it will be
+						<word>
+               |
+						</word>
+            the suffix can be changed by setting 
+						let makeElementSuf = ',,,' in your .vimrc
+						Thanks to Bart van Deenen
+						(http://www.vim.org/scripts/script.php?script_id=632)
+						
+[ and ] mappings                            {{{2
+          <LocalLeader>[        Delete <![CDATA[ ]]> delimiters
+          <LocalLeader>{        Delete <![CDATA[ ]]> section
+          <LocalLeader>]        Delete <!-- -->      delimiters
+          <LocalLeader>}        Delete <!-- -->      section
+          [[        Goto to the previous open tag 
+          [[        Goto to the next open tag 
+          []        Goto to the previous close tag 
+          ][        Goto to the next  close tag 
+          ["        Goto to the next  comment
+          ]"        Goto the previous comment
+<LocalLeader>5  Jump to the matching tag.                           {{{2
+<LocalLeader>%  Jump to the matching tag.   
+
+
+<LocalLeader>c  Rename tag                                          {{{2
+
+<LocalLeader>C  Rename tag and remove attributes                    {{{2
+		Will ask for attributes
+
+<LocalLeader>d  Deletes the surrounding tags from the cursor.       {{{2
+            <tag1>outter <tag2>inner text</tag2> text</tag1>
+               |
+       Turns to: 
+            outter <tag2>inner text</tag2> text
+            |
+
+<LocalLeader>D  Deletes the tag and it contents                     {{{2
+        - and put it in register x.
+            <tag1>outter <tag2>inner text</tag2> text</tag1>
+                           |
+       Turns to: 
+            <tag1>outter text</tag1>
+
+<LocalLeader>e  provide endtag for open tags.                       {{{2
+        - provide endtag for open tags. Watch where de cursor is
+            <para><listitem>list item content
+                                            |
+        pressing \e twice produces
+            <para><listitem>list item content</para></listitem>
+
+<LocalLeader>f  fold the tag under the cursor                       {{{2
+          <para>
+            line 1
+            line 2
+            line 3
+          </para>
+        \f produces
+        +--  5 lines: <para>--------------------------
+
+
+<LocalLeader>F  all tags of name 'tag' will be fold.                {{{2
+      - If there isn't a tag under
+        the cursor you will be asked for one.
+                  
+<LocalLeader>g  Format (Vim's gq function)                          {{{2
+			- will make a visual block of tag under cursor and then format using gq
+
+                  
+<LocalLeader>G  Format all tags under cursor (Vim's gq function)    {{{2
+      - If there isn't a tag under
+        the cursor you will be asked for one.
+
+                  
+<LocalLeader>I  Indent all tags     {{{2
+      - will create a multiline layout every opening tag will be shifted out
+				and every closing tag will be shifted in. Be aware that the rendering
+				of the XML through XSLT and/or DSSSL, might be changed by this.
+				Be aware tha if the file is big, more than 1000 lines, the reformatting
+				takes a long time because vim has to make a big undo buffer.
+				For example using \I on the example below:
+        
+				<chapter><title>Indent</title><para>The documentation</para></chapter>
+
+			- Becomes
+
+				<chapter>
+					<title>
+						Indent
+					</title>
+					<para>
+						The documentation
+					</para>
+				</chapter>
+
+                  
+<LocalLeader>j  Joins two the SAME sections together.               {{{2
+      -  The sections must be next to each other. 
+			<para> This is line 1
+			 of a paragraph. </para>
+			<para> This is line 2
+			|
+			 of a paragraph. </para>
+		\j produces
+			<para> This is line 1
+			 of a paragraph. 
+			 This is line 2
+			 of a paragraph. </para>
+
+<LocalLeader>l  visual surround the block with listitem and para     {{{2 
+				When marking up docbook tekst you have the issue that listitems
+				consist of 2 item. This key combination inserts them both,
+
+        blaah
+          |
+        \l produces
+        <listitem>
+            <para>blaah</para>
+        </listitem>
+    
+<LocalLeader>o  Insert a tag inside the current one (like vim o)     {{{2
+				You are asked for tag and attributes.
+
+        <tag1><tag2><tag3>blaah</tag3></tag2></tag1>
+          |
+        \o produces
+        <tag1>
+            <aftertag><tag2><tag3>blaah</tag3></tag2></aftertag>
+        </tag1>
+    
+<LocalLeader>O  Insert a tag outside the current one (like vim O)     {{{2
+				You are asked for tag and attributes.
+        <tag1><tag2><tag3>blaah</tag3></tag2></tag1>
+          |
+    \O produces
+        <beforetag>
+          <tag1><tag2><tag3>blaah</tag3></tag2></tag1>
+        </beforetag>
+
+<LocalLeader>s  Insert an opening tag for an closing tag.           {{{2
+            list item content</para></listitem>
+            |
+        pressing \s twice produces
+            <para><listitem>list item content</para></listitem>
+
+<LocalLeader>[        Delete <![CDATA[ ]]> delimiters               {{{2
+								Removes Only <CDATA[ and •]•]> 
+								handy when you want	to uncomment a section.
+								You need to stand in the tag and not on an other tag
+								<![CDATA[  <tag> ]]>
+								if you  cursor is outside <tag> but inside the
+								CDATA tag the delition works.
+<LocalLeader>{        Delete <![CDATA[ ]]> section                  {{{2
+								Removes everything tag and Content
+<LocalLeader>]        Delete <!-- -->      delimiters               {{{2
+								Uncommnet a block.
+<LocalLeader>}        Delete <!--  -->      section                  {{{2
+								Removes everything tag and Content
+<LocalLeader>>  shift right opening tag and closing tag.           {{{2
+                shift everything between the tags 1 shiftwide right
+<LocalLeader><  shift left opening tag and closing tag.           {{{2
+                shift everything between the tags 1 shiftwide left
+<LocalLeader>c  Visual Place a CDATA section around the selected text.  {{{2
+			Place Cdata section around the block
+<LocalLeader><  Visual Place a Comment around the selected text.  {{{2
+			Place comment around the block
+<LocalLeader>5  Extend the visual selection to the matching tag.  {{{2
+<LocalLeader>%  
+			Extend the visual selection to the matching tag. Make sure you are at
+			the start of the opening tag or the end of the closing tag.
+<LocalLeader>v  Visual Place a tag around the selected text.       {{{2
+        - You are asked for tag and attributes. You
+        need to have selected text in visual mode before you can use this
+        mapping. See |visual-mode| for details.
+        Be careful where you place the marks.
+        The top uses append
+        The bottom uses append
+        Useful when marking up a text file
+
+------------------------------------------------------------------------------
+                                                        *xml-plugin-callbacks*
+
+Callback Functions {{{2 ~
+
+A callback function is a function used to customize features on a per tag
+basis. For example say you wish to have a default set of attributs when you
+type an empty tag like this:
+    You type: <tag>
+    You get:  <tag default="attributes"></tag>
+
+This is for any script programmers who wish to add xml-plugin support to
+there own filetype plugins.
+
+Callback functions recive one attribute variable which is the tag name. The
+all must return either a string or the number zero. If it returns a string
+the plugin will place the string in the proper location. If it is a zero the
+plugin will ignore and continue as if no callback existed.
+
+The following are implemented callback functions:
+
+HtmlAttribCallback
+	This is used to add default attributes to html tag. It is intended
+	for HTML files only.
+
+XmlAttribCallback
+	This is a generic callback for xml tags intended to add attributes.
+
+							     *xml-plugin-html*
+Callback Example {{{2 ~
+
+The following is an example of using XmlAttribCallback in your .vimrc
+>
+        function XmlAttribCallback (xml_tag)
+            if a:xml_tag ==? "my-xml-tag"
+                return "attributes=\"my xml attributes\""
+            else
+                return 0
+            endif
+        endfunction
+<
+The following is a sample html.vim file type plugin you could use:
+>
+  " Vim script file                                       vim600:fdm=marker:
+  " FileType:   HTML
+  " Maintainer: Devin Weaver <vim (at) tritarget.com>
+  " Location:   http://www.vim.org/scripts/script.php?script_id=301
+
+  " This is a wrapper script to add extra html support to xml documents.
+  " Original script can be seen in xml-plugin documentation.
+
+  " Only do this when not done yet for this buffer
+  if exists("b:did_ftplugin")
+    finish
+  endif
+  " Don't set 'b:did_ftplugin = 1' because that is xml.vim's responsability.
+
+  let b:html_mode = 1
+
+  if !exists("*HtmlAttribCallback")
+  function HtmlAttribCallback( xml_tag )
+      if a:xml_tag ==? "table"
+          return "cellpadding=\"0\" cellspacing=\"0\" border=\"0\""
+      elseif a:xml_tag ==? "link"
+          return "href=\"/site.css\" rel=\"StyleSheet\" type=\"text/css\""
+      elseif a:xml_tag ==? "body"
+          return "bgcolor=\"white\""
+      elseif a:xml_tag ==? "frame"
+          return "name=\"NAME\" src=\"/\" scrolling=\"auto\" noresize"
+      elseif a:xml_tag ==? "frameset"
+          return "rows=\"0,*\" cols=\"*,0\" border=\"0\""
+      elseif a:xml_tag ==? "img"
+          return "src=\"\" width=\"0\" height=\"0\" border=\"0\" alt=\"\""
+      elseif a:xml_tag ==? "a"
+          if has("browse")
+	      " Look up a file to fill the href. Used in local relative file
+	      " links. typeing your own href before closing the tag with `>'
+	      " will override this.
+              let cwd = getcwd()
+              let cwd = substitute (cwd, "\\", "/", "g")
+              let href = browse (0, "Link to href...", getcwd(), "")
+              let href = substitute (href, cwd . "/", "", "")
+              let href = substitute (href, " ", "%20", "g")
+          else
+              let href = ""
+          endif
+          return "href=\"" . href . "\""
+      else
+          return 0
+      endif
+  endfunction
+  endif
+
+  " On to loading xml.vim
+  runtime ftplugin/xml.vim
+<
+
+ vim:tw=78:ts=8:fen:fdm=marker:ft=help:norl:

File vim/ftplugin/python/jpythonfold.vim

View file
+" Fold routines for python code, version 3.2
+" Source: http://www.vim.org/scripts/script.php?script_id=2527
+" Last Change: 2009 Feb 25
+" Author: Jurjen Bos
+" Bug fixes and helpful comments: Grissiom, David Froger, Andrew McNabb
+
+" Principles:
+" - a def/class starts a fold
+" a line with indent less than the previous def/class ends a fold
+" empty lines and comment lines are linked to the previous fold
+" comment lines outside a def/class are never folded
+" other lines outside a def/class are folded together as a group
+" for algorithm, see bottom of script
+
+" - optionally, you can get empty lines between folds, see (***)
+" - another option is to ignore non-python files see (**)
+" - you can also modify the def/class check,
+"    allowing for multiline def and class definitions see (*)
+
+" Note for vim 7 users:
+" Vim 6 line numbers always take 8 columns, while vim 7 has a numberwidth variable
+" you can change the 8 below to &numberwidth if you have vim 7,
+" this is only really useful when you plan to use more than 8 columns (i.e. never)
+
+" Note for masochists trying to read this:
+" I wanted to keep the functions short, so I replaced occurences of
+" if condition
+"     statement
+" by
+" if condition | statement
+" wherever I found that useful
+
+" (*)
+" class definitions are supposed to ontain a colon on the same line.
+" function definitions are *not* required to have a colon, to allow for multiline defs.
+" I you disagree, use instead of the pattern '^\s*\(class\s.*:\|def\s\)'
+" to enforce : for defs:                     '^\s*\(class\|def\)\s.*:'
+" you'll have to do this in two places.
+let s:defpat = '^\s*\(@\|class\s.*:\|def\s\)'
+
+" (**) Ignore non-python files
+" Commented out because some python files are not recognized by Vim
+"if &filetype != 'python'
+"    finish
+"endif
+
+setlocal foldmethod=expr
+setlocal foldexpr=GetPythonFold(v:lnum)
+setlocal foldtext=PythonFoldText()
+
+function! PythonFoldText()
+  let fs = v:foldstart
+  while getline(fs) =~ '^\s*@' | let fs = nextnonblank(fs + 1)
+  endwhile
+  let line = getline(fs)
+  let nnum = nextnonblank(fs + 1)
+  let nextline = getline(nnum)
+  "get the document string: next line is ''' or """
+  if nextline =~ "^\\s\\+[\"']\\{3}\\s*$"
+      let line = line . " " . matchstr(getline(nextnonblank(nnum + 1)), '^\s*\zs.*\ze$')
+  "next line starts with qoutes, and has text
+  elseif nextline =~ "^\\s\\+[\"']\\{1,3}"
+      let line = line." ".matchstr(nextline, "^\\s\\+[\"']\\{1,3}\\zs.\\{-}\\ze['\"]\\{0,3}$")
+  elseif nextline =~ '^\s\+pass\s*$'
+    let line = line . ' pass'
+  endif
+  "compute the width of the visible part of the window (see Note above)
+  let w = winwidth(0) - &foldcolumn - (&number ? 8 : 0)
+  let size = 1 + v:foldend - v:foldstart
+  "compute expansion string
+  let spcs = '................'
+  while strlen(spcs) < w | let spcs = spcs . spcs
+  endwhile
+  "expand tabs (mail me if you have tabstop>10)
+  let onetab = strpart('          ', 0, &tabstop)
+  let line = substitute(line, '\t', onetab, 'g')
+  return strpart(line.spcs, 0, w-strlen(size)-7).'.'.size.' lines'
+endfunction
+
+function! GetBlockIndent(lnum)
+    " Auxiliary function; determines the indent level of the surrounding def/class
+    " "global" lines are level 0, first def &shiftwidth, and so on
+    " scan backwards for class/def that is shallower or equal
+    let ind = 100
+    let p = a:lnum+1
+    while indent(p) >= 0
+        let p = p - 1
+        " skip empty and comment lines
+        if getline(p) =~ '^$\|^\s*#' | continue
+        " zero-level regular line
+        elseif indent(p) == 0 | return 0
+        " skip deeper or equal lines
+        elseif indent(p) >= ind || getline(p) =~ '^$\|^\s*#' | continue
+        " indent is strictly less at this point: check for def/class
+        elseif getline(p) =~ s:defpat && getline(p) !~ '^\s*@'
+            " level is one more than this def/class
+            return indent(p) + &shiftwidth
+        endif
+        " shallower line that is neither class nor def: continue search at new level
+        let ind = indent(p)
+    endwhile
+    "beginning of file
+    return 0
+endfunction
+
+" Clever debug code, use as: call PrintIfCount(n,"Line: ".a:lnum.", value: ".x)
+let s:counter=0
+function! PrintIfCount(n,t)
+    "Print text the nth time this function is called
+    let s:counter = s:counter+1
+    if s:counter==a:n | echo a:t
+    endif
+endfunction
+
+function! GetPythonFold(lnum)
+    " Determine folding level in Python source (see "higher foldlevel theory" below)
+    let line = getline(a:lnum)
+    let ind = indent(a:lnum)
+    " Case D***: class and def start a fold
+    " If previous line is @, it is not the first
+    if line =~ s:defpat && getline(prevnonblank(a:lnum-1)) !~ '^\s*@'
+        " let's see if this range of 0 or more @'s end in a class/def
+        let n = a:lnum
+        while getline(n) =~ '^\s*@' | let n = nextnonblank(n + 1)
+        endwhile
+        " yes, we have a match: this is the first of a real def/class with decorators
+        if getline(n) =~ s:defpat
+            return ">".(ind/&shiftwidth+1)
+        endif
+    " Case E***: empty lines fold with previous
+    " (***) change '=' to -1 if you want empty lines/comment out of a fold
+    elseif line == '' | return '='
+    endif
+    " now we need the indent from previous
+    let p = prevnonblank(a:lnum-1)
+    while p>0 && getline(p) =~ '^\s*#' | let p = prevnonblank(p-1)
+    endwhile
+    let pind = indent(p)
+    " If previous was definition: count as one level deeper
+    if getline(p) =~ s:defpat && getline(prevnonblank(a:lnum - 1)) !~ '^\s*@'
+        let pind = pind + &shiftwidth
+    " if begin of file: take zero
+    elseif p==0 | let pind = 0
+    endif
+    " Case S*=* and C*=*: indent equal
+    if ind>0 && ind==pind | return '='
+    " Case S*>* and C*>*: indent increase
+    elseif ind>pind | return '='
+    " All cases with 0 indent
+    elseif ind==0
+        " Case C*=0*: separate global code blocks
+        if pind==0 && line =~ '^#' | return 0
+        " Case S*<0* and S*=0*: global code
+        elseif line !~'^#'
+            " Case S*<0*: new global statement if/while/for/try/with
+            if 0<pind && line!~'^else\s*:\|^except.*:\|^elif.*:\|^finally\s*:' | return '>1'
+            " Case S*=0*, after level 0 comment
+            elseif 0==pind && getline(prevnonblank(a:lnum-1)) =~ '^\s*#' | return '>1'
+            " Case S*=0*, other, stay 1
+            else | return '='
+            endif
+        endif
+        " Case C*<0= and C*<0<: compute next indent
+        let n = nextnonblank(a:lnum+1)
+        while n>0 && getline(n) =~'^\s*#' | let n = nextnonblank(n+1)
+        endwhile
+        " Case C*<0=: split definitions
+        if indent(n)==0 | return 0
+        " Case C*<0<: shallow comment
+        else | return -1
+        end
+    endif
+    " now we really need to compute the actual fold indent
+    " do the hard computation
+    let blockindent = GetBlockIndent(a:lnum)
+    " Case SG<* and CG<*: global code, level 1
+    if blockindent==0 | return 1
+    endif
+    " now we need the indent from next
+    let n = nextnonblank(a:lnum+1)
+    while n>0 && getline(n) =~'^\s*#' | let n = nextnonblank(n+1)
+    endwhile
+    let nind = indent(n)
+    " Case CR<= and CR<>
+    "if line !~ '^\s*#' | call PrintIfCount(4,"Line: ".a:lnum.", blockindent: ".blockindent.", n: ".n.", nind: ".nind.", p: ".p.", pind: ".pind)
+    endif
+    if line =~ '^\s*#' && ind>=nind | return -1
+    " Case CR<<: return next indent
+    elseif line =~ '^\s*#' | return nind / &shiftwidth
+    " Case SR<*: return actual indent
+    else | return blockindent / &shiftwidth
+    endif
+endfunction
+
+" higher foldlevel theory
+" There are five kinds of statements: S (code), D (def/class), E (empty), C (comment)
+
+" Note that a decorator statement (beginning with @) counts as definition,
+" but that of a sequence of @,@,@,def only the first one counts
+" This means that a definiion only counts if not preceded by a decorator
+
+" There are two kinds of folds: R (regular), G (global statements)
+
+" There are five indent situations with respect to the previous non-emtpy non-comment line:
+" > (indent), < (dedent), = (same); < and = combine with 0 (indent is zero)
+" Note: if the previous line is class/def, its indent is interpreted as one higher
+
+" There are three indent situations with respect to the next (non-E non-C) line:
+" > (dedent), < (indent), = (same)
+
+" Situations (in order of the script):
+" stat  fold prev   next
+" SDEC  RG   ><=00  ><=
+" D     *    *      *     begin fold level if previous is not @: '>'.ind/&sw+1
+" E     *    *      *     keep with previous: '='
+" S     *    =      *     stays the same: '='
+" C     *    =      *     combine with previous: '='
+" S     *    >      *     stays the same: '='
+" C     *    >      *     combine with previous: '='
+" C     *    =0     *     separate blocks: 0
+" S     *    <0