Initial commit
This commit is contained in:
764
colorschemedegrade/autoload/colorschemedegradelib.vim
Executable file
764
colorschemedegrade/autoload/colorschemedegradelib.vim
Executable file
@@ -0,0 +1,764 @@
|
||||
function! colorschemedegradelib#RGB()
|
||||
let rv = {}
|
||||
|
||||
let rv["snow"] = "#FFFAFA"
|
||||
let rv["ghost_white"] = "#F8F8FF"
|
||||
let rv["ghostwhite"] = "#F8F8FF"
|
||||
let rv["white_smoke"] = "#F5F5F5"
|
||||
let rv["whitesmoke"] = "#F5F5F5"
|
||||
let rv["gainsboro"] = "#DCDCDC"
|
||||
let rv["floral_white"] = "#FFFAF0"
|
||||
let rv["floralwhite"] = "#FFFAF0"
|
||||
let rv["old_lace"] = "#FDF5E6"
|
||||
let rv["oldlace"] = "#FDF5E6"
|
||||
let rv["linen"] = "#FAF0E6"
|
||||
let rv["antique_white"] = "#FAEBD7"
|
||||
let rv["antiquewhite"] = "#FAEBD7"
|
||||
let rv["papaya_whip"] = "#FFEFD5"
|
||||
let rv["papayawhip"] = "#FFEFD5"
|
||||
let rv["blanched_almond"] = "#FFEBCD"
|
||||
let rv["blanchedalmond"] = "#FFEBCD"
|
||||
let rv["bisque"] = "#FFE4C4"
|
||||
let rv["peach_puff"] = "#FFDAB9"
|
||||
let rv["peachpuff"] = "#FFDAB9"
|
||||
let rv["navajo_white"] = "#FFDEAD"
|
||||
let rv["navajowhite"] = "#FFDEAD"
|
||||
let rv["moccasin"] = "#FFE4B5"
|
||||
let rv["cornsilk"] = "#FFF8DC"
|
||||
let rv["ivory"] = "#FFFFF0"
|
||||
let rv["lemon_chiffon"] = "#FFFACD"
|
||||
let rv["lemonchiffon"] = "#FFFACD"
|
||||
let rv["seashell"] = "#FFF5EE"
|
||||
let rv["honeydew"] = "#F0FFF0"
|
||||
let rv["mint_cream"] = "#F5FFFA"
|
||||
let rv["mintcream"] = "#F5FFFA"
|
||||
let rv["azure"] = "#F0FFFF"
|
||||
let rv["alice_blue"] = "#F0F8FF"
|
||||
let rv["aliceblue"] = "#F0F8FF"
|
||||
let rv["lavender"] = "#E6E6FA"
|
||||
let rv["lavender_blush"] = "#FFF0F5"
|
||||
let rv["lavenderblush"] = "#FFF0F5"
|
||||
let rv["misty_rose"] = "#FFE4E1"
|
||||
let rv["mistyrose"] = "#FFE4E1"
|
||||
let rv["white"] = "#FFFFFF"
|
||||
let rv["black"] = "#000000"
|
||||
let rv["dark_slate_gray"] = "#2F4F4F"
|
||||
let rv["darkslategray"] = "#2F4F4F"
|
||||
let rv["dark_slate_grey"] = "#2F4F4F"
|
||||
let rv["darkslategrey"] = "#2F4F4F"
|
||||
let rv["dim_gray"] = "#696969"
|
||||
let rv["dimgray"] = "#696969"
|
||||
let rv["dim_grey"] = "#696969"
|
||||
let rv["dimgrey"] = "#696969"
|
||||
let rv["slate_gray"] = "#708090"
|
||||
let rv["slategray"] = "#708090"
|
||||
let rv["slate_grey"] = "#708090"
|
||||
let rv["slategrey"] = "#708090"
|
||||
let rv["light_slate_gray"] = "#778899"
|
||||
let rv["lightslategray"] = "#778899"
|
||||
let rv["light_slate_grey"] = "#778899"
|
||||
let rv["lightslategrey"] = "#778899"
|
||||
let rv["gray"] = "#BEBEBE"
|
||||
let rv["grey"] = "#BEBEBE"
|
||||
let rv["light_grey"] = "#D3D3D3"
|
||||
let rv["lightgrey"] = "#D3D3D3"
|
||||
let rv["light_gray"] = "#D3D3D3"
|
||||
let rv["lightgray"] = "#D3D3D3"
|
||||
let rv["midnight_blue"] = "#191970"
|
||||
let rv["midnightblue"] = "#191970"
|
||||
let rv["navy"] = "#000080"
|
||||
let rv["navy_blue"] = "#000080"
|
||||
let rv["navyblue"] = "#000080"
|
||||
let rv["cornflower_blue"] = "#6495ED"
|
||||
let rv["cornflowerblue"] = "#6495ED"
|
||||
let rv["dark_slate_blue"] = "#483D8B"
|
||||
let rv["darkslateblue"] = "#483D8B"
|
||||
let rv["slate_blue"] = "#6A5ACD"
|
||||
let rv["slateblue"] = "#6A5ACD"
|
||||
let rv["medium_slate_blue"] = "#7B68EE"
|
||||
let rv["mediumslateblue"] = "#7B68EE"
|
||||
let rv["light_slate_blue"] = "#8470FF"
|
||||
let rv["lightslateblue"] = "#8470FF"
|
||||
let rv["medium_blue"] = "#0000CD"
|
||||
let rv["mediumblue"] = "#0000CD"
|
||||
let rv["royal_blue"] = "#4169E1"
|
||||
let rv["royalblue"] = "#4169E1"
|
||||
let rv["blue"] = "#0000FF"
|
||||
let rv["dodger_blue"] = "#1E90FF"
|
||||
let rv["dodgerblue"] = "#1E90FF"
|
||||
let rv["deep_sky_blue"] = "#00BFFF"
|
||||
let rv["deepskyblue"] = "#00BFFF"
|
||||
let rv["sky_blue"] = "#87CEEB"
|
||||
let rv["skyblue"] = "#87CEEB"
|
||||
let rv["light_sky_blue"] = "#87CEFA"
|
||||
let rv["lightskyblue"] = "#87CEFA"
|
||||
let rv["steel_blue"] = "#4682B4"
|
||||
let rv["steelblue"] = "#4682B4"
|
||||
let rv["light_steel_blue"] = "#B0C4DE"
|
||||
let rv["lightsteelblue"] = "#B0C4DE"
|
||||
let rv["light_blue"] = "#ADD8E6"
|
||||
let rv["lightblue"] = "#ADD8E6"
|
||||
let rv["powder_blue"] = "#B0E0E6"
|
||||
let rv["powderblue"] = "#B0E0E6"
|
||||
let rv["pale_turquoise"] = "#AFEEEE"
|
||||
let rv["paleturquoise"] = "#AFEEEE"
|
||||
let rv["dark_turquoise"] = "#00CED1"
|
||||
let rv["darkturquoise"] = "#00CED1"
|
||||
let rv["medium_turquoise"] = "#48D1CC"
|
||||
let rv["mediumturquoise"] = "#48D1CC"
|
||||
let rv["turquoise"] = "#40E0D0"
|
||||
let rv["cyan"] = "#00FFFF"
|
||||
let rv["light_cyan"] = "#E0FFFF"
|
||||
let rv["lightcyan"] = "#E0FFFF"
|
||||
let rv["cadet_blue"] = "#5F9EA0"
|
||||
let rv["cadetblue"] = "#5F9EA0"
|
||||
let rv["medium_aquamarine"] = "#66CDAA"
|
||||
let rv["mediumaquamarine"] = "#66CDAA"
|
||||
let rv["aquamarine"] = "#7FFFD4"
|
||||
let rv["dark_green"] = "#006400"
|
||||
let rv["darkgreen"] = "#006400"
|
||||
let rv["dark_olive_green"] = "#556B2F"
|
||||
let rv["darkolivegreen"] = "#556B2F"
|
||||
let rv["dark_sea_green"] = "#8FBC8F"
|
||||
let rv["darkseagreen"] = "#8FBC8F"
|
||||
let rv["sea_green"] = "#2E8B57"
|
||||
let rv["seagreen"] = "#2E8B57"
|
||||
let rv["medium_sea_green"] = "#3CB371"
|
||||
let rv["mediumseagreen"] = "#3CB371"
|
||||
let rv["light_sea_green"] = "#20B2AA"
|
||||
let rv["lightseagreen"] = "#20B2AA"
|
||||
let rv["pale_green"] = "#98FB98"
|
||||
let rv["palegreen"] = "#98FB98"
|
||||
let rv["spring_green"] = "#00FF7F"
|
||||
let rv["springgreen"] = "#00FF7F"
|
||||
let rv["lawn_green"] = "#7CFC00"
|
||||
let rv["lawngreen"] = "#7CFC00"
|
||||
let rv["green"] = "#00FF00"
|
||||
let rv["chartreuse"] = "#7FFF00"
|
||||
let rv["medium_spring_green"] = "#00FA9A"
|
||||
let rv["mediumspringgreen"] = "#00FA9A"
|
||||
let rv["green_yellow"] = "#ADFF2F"
|
||||
let rv["greenyellow"] = "#ADFF2F"
|
||||
let rv["lime_green"] = "#32CD32"
|
||||
let rv["limegreen"] = "#32CD32"
|
||||
let rv["yellow_green"] = "#9ACD32"
|
||||
let rv["yellowgreen"] = "#9ACD32"
|
||||
let rv["forest_green"] = "#228B22"
|
||||
let rv["forestgreen"] = "#228B22"
|
||||
let rv["olive_drab"] = "#6B8E23"
|
||||
let rv["olivedrab"] = "#6B8E23"
|
||||
let rv["dark_khaki"] = "#BDB76B"
|
||||
let rv["darkkhaki"] = "#BDB76B"
|
||||
let rv["khaki"] = "#F0E68C"
|
||||
let rv["pale_goldenrod"] = "#EEE8AA"
|
||||
let rv["palegoldenrod"] = "#EEE8AA"
|
||||
let rv["light_goldenrod_yellow"] = "#FAFAD2"
|
||||
let rv["lightgoldenrodyellow"] = "#FAFAD2"
|
||||
let rv["light_yellow"] = "#FFFFE0"
|
||||
let rv["lightyellow"] = "#FFFFE0"
|
||||
let rv["yellow"] = "#FFFF00"
|
||||
let rv["gold"] = "#FFD700"
|
||||
let rv["light_goldenrod"] = "#EEDD82"
|
||||
let rv["lightgoldenrod"] = "#EEDD82"
|
||||
let rv["goldenrod"] = "#DAA520"
|
||||
let rv["dark_goldenrod"] = "#B8860B"
|
||||
let rv["darkgoldenrod"] = "#B8860B"
|
||||
let rv["rosy_brown"] = "#BC8F8F"
|
||||
let rv["rosybrown"] = "#BC8F8F"
|
||||
let rv["indian_red"] = "#CD5C5C"
|
||||
let rv["indianred"] = "#CD5C5C"
|
||||
let rv["saddle_brown"] = "#8B4513"
|
||||
let rv["saddlebrown"] = "#8B4513"
|
||||
let rv["sienna"] = "#A0522D"
|
||||
let rv["peru"] = "#CD853F"
|
||||
let rv["burlywood"] = "#DEB887"
|
||||
let rv["beige"] = "#F5F5DC"
|
||||
let rv["wheat"] = "#F5DEB3"
|
||||
let rv["sandy_brown"] = "#F4A460"
|
||||
let rv["sandybrown"] = "#F4A460"
|
||||
let rv["tan"] = "#D2B48C"
|
||||
let rv["chocolate"] = "#D2691E"
|
||||
let rv["firebrick"] = "#B22222"
|
||||
let rv["brown"] = "#A52A2A"
|
||||
let rv["dark_salmon"] = "#E9967A"
|
||||
let rv["darksalmon"] = "#E9967A"
|
||||
let rv["salmon"] = "#FA8072"
|
||||
let rv["light_salmon"] = "#FFA07A"
|
||||
let rv["lightsalmon"] = "#FFA07A"
|
||||
let rv["orange"] = "#FFA500"
|
||||
let rv["dark_orange"] = "#FF8C00"
|
||||
let rv["darkorange"] = "#FF8C00"
|
||||
let rv["coral"] = "#FF7F50"
|
||||
let rv["light_coral"] = "#F08080"
|
||||
let rv["lightcoral"] = "#F08080"
|
||||
let rv["tomato"] = "#FF6347"
|
||||
let rv["orange_red"] = "#FF4500"
|
||||
let rv["orangered"] = "#FF4500"
|
||||
let rv["red"] = "#FF0000"
|
||||
let rv["hot_pink"] = "#FF69B4"
|
||||
let rv["hotpink"] = "#FF69B4"
|
||||
let rv["deep_pink"] = "#FF1493"
|
||||
let rv["deeppink"] = "#FF1493"
|
||||
let rv["pink"] = "#FFC0CB"
|
||||
let rv["light_pink"] = "#FFB6C1"
|
||||
let rv["lightpink"] = "#FFB6C1"
|
||||
let rv["pale_violet_red"] = "#DB7093"
|
||||
let rv["palevioletred"] = "#DB7093"
|
||||
let rv["maroon"] = "#B03060"
|
||||
let rv["medium_violet_red"] = "#C71585"
|
||||
let rv["mediumvioletred"] = "#C71585"
|
||||
let rv["violet_red"] = "#D02090"
|
||||
let rv["violetred"] = "#D02090"
|
||||
let rv["magenta"] = "#FF00FF"
|
||||
let rv["violet"] = "#EE82EE"
|
||||
let rv["plum"] = "#DDA0DD"
|
||||
let rv["orchid"] = "#DA70D6"
|
||||
let rv["medium_orchid"] = "#BA55D3"
|
||||
let rv["mediumorchid"] = "#BA55D3"
|
||||
let rv["dark_orchid"] = "#9932CC"
|
||||
let rv["darkorchid"] = "#9932CC"
|
||||
let rv["dark_violet"] = "#9400D3"
|
||||
let rv["darkviolet"] = "#9400D3"
|
||||
let rv["blue_violet"] = "#8A2BE2"
|
||||
let rv["blueviolet"] = "#8A2BE2"
|
||||
let rv["purple"] = "#A020F0"
|
||||
let rv["medium_purple"] = "#9370DB"
|
||||
let rv["mediumpurple"] = "#9370DB"
|
||||
let rv["thistle"] = "#D8BFD8"
|
||||
let rv["snow1"] = "#FFFAFA"
|
||||
let rv["snow2"] = "#EEE9E9"
|
||||
let rv["snow3"] = "#CDC9C9"
|
||||
let rv["snow4"] = "#8B8989"
|
||||
let rv["seashell1"] = "#FFF5EE"
|
||||
let rv["seashell2"] = "#EEE5DE"
|
||||
let rv["seashell3"] = "#CDC5BF"
|
||||
let rv["seashell4"] = "#8B8682"
|
||||
let rv["antiquewhite1"] = "#FFEFDB"
|
||||
let rv["antiquewhite2"] = "#EEDFCC"
|
||||
let rv["antiquewhite3"] = "#CDC0B0"
|
||||
let rv["antiquewhite4"] = "#8B8378"
|
||||
let rv["bisque1"] = "#FFE4C4"
|
||||
let rv["bisque2"] = "#EED5B7"
|
||||
let rv["bisque3"] = "#CDB79E"
|
||||
let rv["bisque4"] = "#8B7D6B"
|
||||
let rv["peachpuff1"] = "#FFDAB9"
|
||||
let rv["peachpuff2"] = "#EECBAD"
|
||||
let rv["peachpuff3"] = "#CDAF95"
|
||||
let rv["peachpuff4"] = "#8B7765"
|
||||
let rv["navajowhite1"] = "#FFDEAD"
|
||||
let rv["navajowhite2"] = "#EECFA1"
|
||||
let rv["navajowhite3"] = "#CDB38B"
|
||||
let rv["navajowhite4"] = "#8B795E"
|
||||
let rv["lemonchiffon1"] = "#FFFACD"
|
||||
let rv["lemonchiffon2"] = "#EEE9BF"
|
||||
let rv["lemonchiffon3"] = "#CDC9A5"
|
||||
let rv["lemonchiffon4"] = "#8B8970"
|
||||
let rv["cornsilk1"] = "#FFF8DC"
|
||||
let rv["cornsilk2"] = "#EEE8CD"
|
||||
let rv["cornsilk3"] = "#CDC8B1"
|
||||
let rv["cornsilk4"] = "#8B8878"
|
||||
let rv["ivory1"] = "#FFFFF0"
|
||||
let rv["ivory2"] = "#EEEEE0"
|
||||
let rv["ivory3"] = "#CDCDC1"
|
||||
let rv["ivory4"] = "#8B8B83"
|
||||
let rv["honeydew1"] = "#F0FFF0"
|
||||
let rv["honeydew2"] = "#E0EEE0"
|
||||
let rv["honeydew3"] = "#C1CDC1"
|
||||
let rv["honeydew4"] = "#838B83"
|
||||
let rv["lavenderblush1"] = "#FFF0F5"
|
||||
let rv["lavenderblush2"] = "#EEE0E5"
|
||||
let rv["lavenderblush3"] = "#CDC1C5"
|
||||
let rv["lavenderblush4"] = "#8B8386"
|
||||
let rv["mistyrose1"] = "#FFE4E1"
|
||||
let rv["mistyrose2"] = "#EED5D2"
|
||||
let rv["mistyrose3"] = "#CDB7B5"
|
||||
let rv["mistyrose4"] = "#8B7D7B"
|
||||
let rv["azure1"] = "#F0FFFF"
|
||||
let rv["azure2"] = "#E0EEEE"
|
||||
let rv["azure3"] = "#C1CDCD"
|
||||
let rv["azure4"] = "#838B8B"
|
||||
let rv["slateblue1"] = "#836FFF"
|
||||
let rv["slateblue2"] = "#7A67EE"
|
||||
let rv["slateblue3"] = "#6959CD"
|
||||
let rv["slateblue4"] = "#473C8B"
|
||||
let rv["royalblue1"] = "#4876FF"
|
||||
let rv["royalblue2"] = "#436EEE"
|
||||
let rv["royalblue3"] = "#3A5FCD"
|
||||
let rv["royalblue4"] = "#27408B"
|
||||
let rv["blue1"] = "#0000FF"
|
||||
let rv["blue2"] = "#0000EE"
|
||||
let rv["blue3"] = "#0000CD"
|
||||
let rv["blue4"] = "#00008B"
|
||||
let rv["dodgerblue1"] = "#1E90FF"
|
||||
let rv["dodgerblue2"] = "#1C86EE"
|
||||
let rv["dodgerblue3"] = "#1874CD"
|
||||
let rv["dodgerblue4"] = "#104E8B"
|
||||
let rv["steelblue1"] = "#63B8FF"
|
||||
let rv["steelblue2"] = "#5CACEE"
|
||||
let rv["steelblue3"] = "#4F94CD"
|
||||
let rv["steelblue4"] = "#36648B"
|
||||
let rv["deepskyblue1"] = "#00BFFF"
|
||||
let rv["deepskyblue2"] = "#00B2EE"
|
||||
let rv["deepskyblue3"] = "#009ACD"
|
||||
let rv["deepskyblue4"] = "#00688B"
|
||||
let rv["skyblue1"] = "#87CEFF"
|
||||
let rv["skyblue2"] = "#7EC0EE"
|
||||
let rv["skyblue3"] = "#6CA6CD"
|
||||
let rv["skyblue4"] = "#4A708B"
|
||||
let rv["lightskyblue1"] = "#B0E2FF"
|
||||
let rv["lightskyblue2"] = "#A4D3EE"
|
||||
let rv["lightskyblue3"] = "#8DB6CD"
|
||||
let rv["lightskyblue4"] = "#607B8B"
|
||||
let rv["slategray1"] = "#C6E2FF"
|
||||
let rv["slategray2"] = "#B9D3EE"
|
||||
let rv["slategray3"] = "#9FB6CD"
|
||||
let rv["slategray4"] = "#6C7B8B"
|
||||
let rv["lightsteelblue1"] = "#CAE1FF"
|
||||
let rv["lightsteelblue2"] = "#BCD2EE"
|
||||
let rv["lightsteelblue3"] = "#A2B5CD"
|
||||
let rv["lightsteelblue4"] = "#6E7B8B"
|
||||
let rv["lightblue1"] = "#BFEFFF"
|
||||
let rv["lightblue2"] = "#B2DFEE"
|
||||
let rv["lightblue3"] = "#9AC0CD"
|
||||
let rv["lightblue4"] = "#68838B"
|
||||
let rv["lightcyan1"] = "#E0FFFF"
|
||||
let rv["lightcyan2"] = "#D1EEEE"
|
||||
let rv["lightcyan3"] = "#B4CDCD"
|
||||
let rv["lightcyan4"] = "#7A8B8B"
|
||||
let rv["paleturquoise1"] = "#BBFFFF"
|
||||
let rv["paleturquoise2"] = "#AEEEEE"
|
||||
let rv["paleturquoise3"] = "#96CDCD"
|
||||
let rv["paleturquoise4"] = "#668B8B"
|
||||
let rv["cadetblue1"] = "#98F5FF"
|
||||
let rv["cadetblue2"] = "#8EE5EE"
|
||||
let rv["cadetblue3"] = "#7AC5CD"
|
||||
let rv["cadetblue4"] = "#53868B"
|
||||
let rv["turquoise1"] = "#00F5FF"
|
||||
let rv["turquoise2"] = "#00E5EE"
|
||||
let rv["turquoise3"] = "#00C5CD"
|
||||
let rv["turquoise4"] = "#00868B"
|
||||
let rv["cyan1"] = "#00FFFF"
|
||||
let rv["cyan2"] = "#00EEEE"
|
||||
let rv["cyan3"] = "#00CDCD"
|
||||
let rv["cyan4"] = "#008B8B"
|
||||
let rv["darkslategray1"] = "#97FFFF"
|
||||
let rv["darkslategray2"] = "#8DEEEE"
|
||||
let rv["darkslategray3"] = "#79CDCD"
|
||||
let rv["darkslategray4"] = "#528B8B"
|
||||
let rv["aquamarine1"] = "#7FFFD4"
|
||||
let rv["aquamarine2"] = "#76EEC6"
|
||||
let rv["aquamarine3"] = "#66CDAA"
|
||||
let rv["aquamarine4"] = "#458B74"
|
||||
let rv["darkseagreen1"] = "#C1FFC1"
|
||||
let rv["darkseagreen2"] = "#B4EEB4"
|
||||
let rv["darkseagreen3"] = "#9BCD9B"
|
||||
let rv["darkseagreen4"] = "#698B69"
|
||||
let rv["seagreen1"] = "#54FF9F"
|
||||
let rv["seagreen2"] = "#4EEE94"
|
||||
let rv["seagreen3"] = "#43CD80"
|
||||
let rv["seagreen4"] = "#2E8B57"
|
||||
let rv["palegreen1"] = "#9AFF9A"
|
||||
let rv["palegreen2"] = "#90EE90"
|
||||
let rv["palegreen3"] = "#7CCD7C"
|
||||
let rv["palegreen4"] = "#548B54"
|
||||
let rv["springgreen1"] = "#00FF7F"
|
||||
let rv["springgreen2"] = "#00EE76"
|
||||
let rv["springgreen3"] = "#00CD66"
|
||||
let rv["springgreen4"] = "#008B45"
|
||||
let rv["green1"] = "#00FF00"
|
||||
let rv["green2"] = "#00EE00"
|
||||
let rv["green3"] = "#00CD00"
|
||||
let rv["green4"] = "#008B00"
|
||||
let rv["chartreuse1"] = "#7FFF00"
|
||||
let rv["chartreuse2"] = "#76EE00"
|
||||
let rv["chartreuse3"] = "#66CD00"
|
||||
let rv["chartreuse4"] = "#458B00"
|
||||
let rv["olivedrab1"] = "#C0FF3E"
|
||||
let rv["olivedrab2"] = "#B3EE3A"
|
||||
let rv["olivedrab3"] = "#9ACD32"
|
||||
let rv["olivedrab4"] = "#698B22"
|
||||
let rv["darkolivegreen1"] = "#CAFF70"
|
||||
let rv["darkolivegreen2"] = "#BCEE68"
|
||||
let rv["darkolivegreen3"] = "#A2CD5A"
|
||||
let rv["darkolivegreen4"] = "#6E8B3D"
|
||||
let rv["khaki1"] = "#FFF68F"
|
||||
let rv["khaki2"] = "#EEE685"
|
||||
let rv["khaki3"] = "#CDC673"
|
||||
let rv["khaki4"] = "#8B864E"
|
||||
let rv["lightgoldenrod1"] = "#FFEC8B"
|
||||
let rv["lightgoldenrod2"] = "#EEDC82"
|
||||
let rv["lightgoldenrod3"] = "#CDBE70"
|
||||
let rv["lightgoldenrod4"] = "#8B814C"
|
||||
let rv["lightyellow1"] = "#FFFFE0"
|
||||
let rv["lightyellow2"] = "#EEEED1"
|
||||
let rv["lightyellow3"] = "#CDCDB4"
|
||||
let rv["lightyellow4"] = "#8B8B7A"
|
||||
let rv["yellow1"] = "#FFFF00"
|
||||
let rv["yellow2"] = "#EEEE00"
|
||||
let rv["yellow3"] = "#CDCD00"
|
||||
let rv["yellow4"] = "#8B8B00"
|
||||
let rv["gold1"] = "#FFD700"
|
||||
let rv["gold2"] = "#EEC900"
|
||||
let rv["gold3"] = "#CDAD00"
|
||||
let rv["gold4"] = "#8B7500"
|
||||
let rv["goldenrod1"] = "#FFC125"
|
||||
let rv["goldenrod2"] = "#EEB422"
|
||||
let rv["goldenrod3"] = "#CD9B1D"
|
||||
let rv["goldenrod4"] = "#8B6914"
|
||||
let rv["darkgoldenrod1"] = "#FFB90F"
|
||||
let rv["darkgoldenrod2"] = "#EEAD0E"
|
||||
let rv["darkgoldenrod3"] = "#CD950C"
|
||||
let rv["darkgoldenrod4"] = "#8B6508"
|
||||
let rv["rosybrown1"] = "#FFC1C1"
|
||||
let rv["rosybrown2"] = "#EEB4B4"
|
||||
let rv["rosybrown3"] = "#CD9B9B"
|
||||
let rv["rosybrown4"] = "#8B6969"
|
||||
let rv["indianred1"] = "#FF6A6A"
|
||||
let rv["indianred2"] = "#EE6363"
|
||||
let rv["indianred3"] = "#CD5555"
|
||||
let rv["indianred4"] = "#8B3A3A"
|
||||
let rv["sienna1"] = "#FF8247"
|
||||
let rv["sienna2"] = "#EE7942"
|
||||
let rv["sienna3"] = "#CD6839"
|
||||
let rv["sienna4"] = "#8B4726"
|
||||
let rv["burlywood1"] = "#FFD39B"
|
||||
let rv["burlywood2"] = "#EEC591"
|
||||
let rv["burlywood3"] = "#CDAA7D"
|
||||
let rv["burlywood4"] = "#8B7355"
|
||||
let rv["wheat1"] = "#FFE7BA"
|
||||
let rv["wheat2"] = "#EED8AE"
|
||||
let rv["wheat3"] = "#CDBA96"
|
||||
let rv["wheat4"] = "#8B7E66"
|
||||
let rv["tan1"] = "#FFA54F"
|
||||
let rv["tan2"] = "#EE9A49"
|
||||
let rv["tan3"] = "#CD853F"
|
||||
let rv["tan4"] = "#8B5A2B"
|
||||
let rv["chocolate1"] = "#FF7F24"
|
||||
let rv["chocolate2"] = "#EE7621"
|
||||
let rv["chocolate3"] = "#CD661D"
|
||||
let rv["chocolate4"] = "#8B4513"
|
||||
let rv["firebrick1"] = "#FF3030"
|
||||
let rv["firebrick2"] = "#EE2C2C"
|
||||
let rv["firebrick3"] = "#CD2626"
|
||||
let rv["firebrick4"] = "#8B1A1A"
|
||||
let rv["brown1"] = "#FF4040"
|
||||
let rv["brown2"] = "#EE3B3B"
|
||||
let rv["brown3"] = "#CD3333"
|
||||
let rv["brown4"] = "#8B2323"
|
||||
let rv["salmon1"] = "#FF8C69"
|
||||
let rv["salmon2"] = "#EE8262"
|
||||
let rv["salmon3"] = "#CD7054"
|
||||
let rv["salmon4"] = "#8B4C39"
|
||||
let rv["lightsalmon1"] = "#FFA07A"
|
||||
let rv["lightsalmon2"] = "#EE9572"
|
||||
let rv["lightsalmon3"] = "#CD8162"
|
||||
let rv["lightsalmon4"] = "#8B5742"
|
||||
let rv["orange1"] = "#FFA500"
|
||||
let rv["orange2"] = "#EE9A00"
|
||||
let rv["orange3"] = "#CD8500"
|
||||
let rv["orange4"] = "#8B5A00"
|
||||
let rv["darkorange1"] = "#FF7F00"
|
||||
let rv["darkorange2"] = "#EE7600"
|
||||
let rv["darkorange3"] = "#CD6600"
|
||||
let rv["darkorange4"] = "#8B4500"
|
||||
let rv["coral1"] = "#FF7256"
|
||||
let rv["coral2"] = "#EE6A50"
|
||||
let rv["coral3"] = "#CD5B45"
|
||||
let rv["coral4"] = "#8B3E2F"
|
||||
let rv["tomato1"] = "#FF6347"
|
||||
let rv["tomato2"] = "#EE5C42"
|
||||
let rv["tomato3"] = "#CD4F39"
|
||||
let rv["tomato4"] = "#8B3626"
|
||||
let rv["orangered1"] = "#FF4500"
|
||||
let rv["orangered2"] = "#EE4000"
|
||||
let rv["orangered3"] = "#CD3700"
|
||||
let rv["orangered4"] = "#8B2500"
|
||||
let rv["red1"] = "#FF0000"
|
||||
let rv["red2"] = "#EE0000"
|
||||
let rv["red3"] = "#CD0000"
|
||||
let rv["red4"] = "#8B0000"
|
||||
let rv["deeppink1"] = "#FF1493"
|
||||
let rv["deeppink2"] = "#EE1289"
|
||||
let rv["deeppink3"] = "#CD1076"
|
||||
let rv["deeppink4"] = "#8B0A50"
|
||||
let rv["hotpink1"] = "#FF6EB4"
|
||||
let rv["hotpink2"] = "#EE6AA7"
|
||||
let rv["hotpink3"] = "#CD6090"
|
||||
let rv["hotpink4"] = "#8B3A62"
|
||||
let rv["pink1"] = "#FFB5C5"
|
||||
let rv["pink2"] = "#EEA9B8"
|
||||
let rv["pink3"] = "#CD919E"
|
||||
let rv["pink4"] = "#8B636C"
|
||||
let rv["lightpink1"] = "#FFAEB9"
|
||||
let rv["lightpink2"] = "#EEA2AD"
|
||||
let rv["lightpink3"] = "#CD8C95"
|
||||
let rv["lightpink4"] = "#8B5F65"
|
||||
let rv["palevioletred1"] = "#FF82AB"
|
||||
let rv["palevioletred2"] = "#EE799F"
|
||||
let rv["palevioletred3"] = "#CD6889"
|
||||
let rv["palevioletred4"] = "#8B475D"
|
||||
let rv["maroon1"] = "#FF34B3"
|
||||
let rv["maroon2"] = "#EE30A7"
|
||||
let rv["maroon3"] = "#CD2990"
|
||||
let rv["maroon4"] = "#8B1C62"
|
||||
let rv["violetred1"] = "#FF3E96"
|
||||
let rv["violetred2"] = "#EE3A8C"
|
||||
let rv["violetred3"] = "#CD3278"
|
||||
let rv["violetred4"] = "#8B2252"
|
||||
let rv["magenta1"] = "#FF00FF"
|
||||
let rv["magenta2"] = "#EE00EE"
|
||||
let rv["magenta3"] = "#CD00CD"
|
||||
let rv["magenta4"] = "#8B008B"
|
||||
let rv["orchid1"] = "#FF83FA"
|
||||
let rv["orchid2"] = "#EE7AE9"
|
||||
let rv["orchid3"] = "#CD69C9"
|
||||
let rv["orchid4"] = "#8B4789"
|
||||
let rv["plum1"] = "#FFBBFF"
|
||||
let rv["plum2"] = "#EEAEEE"
|
||||
let rv["plum3"] = "#CD96CD"
|
||||
let rv["plum4"] = "#8B668B"
|
||||
let rv["mediumorchid1"] = "#E066FF"
|
||||
let rv["mediumorchid2"] = "#D15FEE"
|
||||
let rv["mediumorchid3"] = "#B452CD"
|
||||
let rv["mediumorchid4"] = "#7A378B"
|
||||
let rv["darkorchid1"] = "#BF3EFF"
|
||||
let rv["darkorchid2"] = "#B23AEE"
|
||||
let rv["darkorchid3"] = "#9A32CD"
|
||||
let rv["darkorchid4"] = "#68228B"
|
||||
let rv["purple1"] = "#9B30FF"
|
||||
let rv["purple2"] = "#912CEE"
|
||||
let rv["purple3"] = "#7D26CD"
|
||||
let rv["purple4"] = "#551A8B"
|
||||
let rv["mediumpurple1"] = "#AB82FF"
|
||||
let rv["mediumpurple2"] = "#9F79EE"
|
||||
let rv["mediumpurple3"] = "#8968CD"
|
||||
let rv["mediumpurple4"] = "#5D478B"
|
||||
let rv["thistle1"] = "#FFE1FF"
|
||||
let rv["thistle2"] = "#EED2EE"
|
||||
let rv["thistle3"] = "#CDB5CD"
|
||||
let rv["thistle4"] = "#8B7B8B"
|
||||
let rv["gray0"] = "#000000"
|
||||
let rv["grey0"] = "#000000"
|
||||
let rv["gray1"] = "#030303"
|
||||
let rv["grey1"] = "#030303"
|
||||
let rv["gray2"] = "#050505"
|
||||
let rv["grey2"] = "#050505"
|
||||
let rv["gray3"] = "#080808"
|
||||
let rv["grey3"] = "#080808"
|
||||
let rv["gray4"] = "#0A0A0A"
|
||||
let rv["grey4"] = "#0A0A0A"
|
||||
let rv["gray5"] = "#0D0D0D"
|
||||
let rv["grey5"] = "#0D0D0D"
|
||||
let rv["gray6"] = "#0F0F0F"
|
||||
let rv["grey6"] = "#0F0F0F"
|
||||
let rv["gray7"] = "#121212"
|
||||
let rv["grey7"] = "#121212"
|
||||
let rv["gray8"] = "#141414"
|
||||
let rv["grey8"] = "#141414"
|
||||
let rv["gray9"] = "#171717"
|
||||
let rv["grey9"] = "#171717"
|
||||
let rv["gray10"] = "#1A1A1A"
|
||||
let rv["grey10"] = "#1A1A1A"
|
||||
let rv["gray11"] = "#1C1C1C"
|
||||
let rv["grey11"] = "#1C1C1C"
|
||||
let rv["gray12"] = "#1F1F1F"
|
||||
let rv["grey12"] = "#1F1F1F"
|
||||
let rv["gray13"] = "#212121"
|
||||
let rv["grey13"] = "#212121"
|
||||
let rv["gray14"] = "#242424"
|
||||
let rv["grey14"] = "#242424"
|
||||
let rv["gray15"] = "#262626"
|
||||
let rv["grey15"] = "#262626"
|
||||
let rv["gray16"] = "#292929"
|
||||
let rv["grey16"] = "#292929"
|
||||
let rv["gray17"] = "#2B2B2B"
|
||||
let rv["grey17"] = "#2B2B2B"
|
||||
let rv["gray18"] = "#2E2E2E"
|
||||
let rv["grey18"] = "#2E2E2E"
|
||||
let rv["gray19"] = "#303030"
|
||||
let rv["grey19"] = "#303030"
|
||||
let rv["gray20"] = "#333333"
|
||||
let rv["grey20"] = "#333333"
|
||||
let rv["gray21"] = "#363636"
|
||||
let rv["grey21"] = "#363636"
|
||||
let rv["gray22"] = "#383838"
|
||||
let rv["grey22"] = "#383838"
|
||||
let rv["gray23"] = "#3B3B3B"
|
||||
let rv["grey23"] = "#3B3B3B"
|
||||
let rv["gray24"] = "#3D3D3D"
|
||||
let rv["grey24"] = "#3D3D3D"
|
||||
let rv["gray25"] = "#404040"
|
||||
let rv["grey25"] = "#404040"
|
||||
let rv["gray26"] = "#424242"
|
||||
let rv["grey26"] = "#424242"
|
||||
let rv["gray27"] = "#454545"
|
||||
let rv["grey27"] = "#454545"
|
||||
let rv["gray28"] = "#474747"
|
||||
let rv["grey28"] = "#474747"
|
||||
let rv["gray29"] = "#4A4A4A"
|
||||
let rv["grey29"] = "#4A4A4A"
|
||||
let rv["gray30"] = "#4D4D4D"
|
||||
let rv["grey30"] = "#4D4D4D"
|
||||
let rv["gray31"] = "#4F4F4F"
|
||||
let rv["grey31"] = "#4F4F4F"
|
||||
let rv["gray32"] = "#525252"
|
||||
let rv["grey32"] = "#525252"
|
||||
let rv["gray33"] = "#545454"
|
||||
let rv["grey33"] = "#545454"
|
||||
let rv["gray34"] = "#575757"
|
||||
let rv["grey34"] = "#575757"
|
||||
let rv["gray35"] = "#595959"
|
||||
let rv["grey35"] = "#595959"
|
||||
let rv["gray36"] = "#5C5C5C"
|
||||
let rv["grey36"] = "#5C5C5C"
|
||||
let rv["gray37"] = "#5E5E5E"
|
||||
let rv["grey37"] = "#5E5E5E"
|
||||
let rv["gray38"] = "#616161"
|
||||
let rv["grey38"] = "#616161"
|
||||
let rv["gray39"] = "#636363"
|
||||
let rv["grey39"] = "#636363"
|
||||
let rv["gray40"] = "#666666"
|
||||
let rv["grey40"] = "#666666"
|
||||
let rv["gray41"] = "#696969"
|
||||
let rv["grey41"] = "#696969"
|
||||
let rv["gray42"] = "#6B6B6B"
|
||||
let rv["grey42"] = "#6B6B6B"
|
||||
let rv["gray43"] = "#6E6E6E"
|
||||
let rv["grey43"] = "#6E6E6E"
|
||||
let rv["gray44"] = "#707070"
|
||||
let rv["grey44"] = "#707070"
|
||||
let rv["gray45"] = "#737373"
|
||||
let rv["grey45"] = "#737373"
|
||||
let rv["gray46"] = "#757575"
|
||||
let rv["grey46"] = "#757575"
|
||||
let rv["gray47"] = "#787878"
|
||||
let rv["grey47"] = "#787878"
|
||||
let rv["gray48"] = "#7A7A7A"
|
||||
let rv["grey48"] = "#7A7A7A"
|
||||
let rv["gray49"] = "#7D7D7D"
|
||||
let rv["grey49"] = "#7D7D7D"
|
||||
let rv["gray50"] = "#7F7F7F"
|
||||
let rv["grey50"] = "#7F7F7F"
|
||||
let rv["gray51"] = "#828282"
|
||||
let rv["grey51"] = "#828282"
|
||||
let rv["gray52"] = "#858585"
|
||||
let rv["grey52"] = "#858585"
|
||||
let rv["gray53"] = "#878787"
|
||||
let rv["grey53"] = "#878787"
|
||||
let rv["gray54"] = "#8A8A8A"
|
||||
let rv["grey54"] = "#8A8A8A"
|
||||
let rv["gray55"] = "#8C8C8C"
|
||||
let rv["grey55"] = "#8C8C8C"
|
||||
let rv["gray56"] = "#8F8F8F"
|
||||
let rv["grey56"] = "#8F8F8F"
|
||||
let rv["gray57"] = "#919191"
|
||||
let rv["grey57"] = "#919191"
|
||||
let rv["gray58"] = "#949494"
|
||||
let rv["grey58"] = "#949494"
|
||||
let rv["gray59"] = "#969696"
|
||||
let rv["grey59"] = "#969696"
|
||||
let rv["gray60"] = "#999999"
|
||||
let rv["grey60"] = "#999999"
|
||||
let rv["gray61"] = "#9C9C9C"
|
||||
let rv["grey61"] = "#9C9C9C"
|
||||
let rv["gray62"] = "#9E9E9E"
|
||||
let rv["grey62"] = "#9E9E9E"
|
||||
let rv["gray63"] = "#A1A1A1"
|
||||
let rv["grey63"] = "#A1A1A1"
|
||||
let rv["gray64"] = "#A3A3A3"
|
||||
let rv["grey64"] = "#A3A3A3"
|
||||
let rv["gray65"] = "#A6A6A6"
|
||||
let rv["grey65"] = "#A6A6A6"
|
||||
let rv["gray66"] = "#A8A8A8"
|
||||
let rv["grey66"] = "#A8A8A8"
|
||||
let rv["gray67"] = "#ABABAB"
|
||||
let rv["grey67"] = "#ABABAB"
|
||||
let rv["gray68"] = "#ADADAD"
|
||||
let rv["grey68"] = "#ADADAD"
|
||||
let rv["gray69"] = "#B0B0B0"
|
||||
let rv["grey69"] = "#B0B0B0"
|
||||
let rv["gray70"] = "#B3B3B3"
|
||||
let rv["grey70"] = "#B3B3B3"
|
||||
let rv["gray71"] = "#B5B5B5"
|
||||
let rv["grey71"] = "#B5B5B5"
|
||||
let rv["gray72"] = "#B8B8B8"
|
||||
let rv["grey72"] = "#B8B8B8"
|
||||
let rv["gray73"] = "#BABABA"
|
||||
let rv["grey73"] = "#BABABA"
|
||||
let rv["gray74"] = "#BDBDBD"
|
||||
let rv["grey74"] = "#BDBDBD"
|
||||
let rv["gray75"] = "#BFBFBF"
|
||||
let rv["grey75"] = "#BFBFBF"
|
||||
let rv["gray76"] = "#C2C2C2"
|
||||
let rv["grey76"] = "#C2C2C2"
|
||||
let rv["gray77"] = "#C4C4C4"
|
||||
let rv["grey77"] = "#C4C4C4"
|
||||
let rv["gray78"] = "#C7C7C7"
|
||||
let rv["grey78"] = "#C7C7C7"
|
||||
let rv["gray79"] = "#C9C9C9"
|
||||
let rv["grey79"] = "#C9C9C9"
|
||||
let rv["gray80"] = "#CCCCCC"
|
||||
let rv["grey80"] = "#CCCCCC"
|
||||
let rv["gray81"] = "#CFCFCF"
|
||||
let rv["grey81"] = "#CFCFCF"
|
||||
let rv["gray82"] = "#D1D1D1"
|
||||
let rv["grey82"] = "#D1D1D1"
|
||||
let rv["gray83"] = "#D4D4D4"
|
||||
let rv["grey83"] = "#D4D4D4"
|
||||
let rv["gray84"] = "#D6D6D6"
|
||||
let rv["grey84"] = "#D6D6D6"
|
||||
let rv["gray85"] = "#D9D9D9"
|
||||
let rv["grey85"] = "#D9D9D9"
|
||||
let rv["gray86"] = "#DBDBDB"
|
||||
let rv["grey86"] = "#DBDBDB"
|
||||
let rv["gray87"] = "#DEDEDE"
|
||||
let rv["grey87"] = "#DEDEDE"
|
||||
let rv["gray88"] = "#E0E0E0"
|
||||
let rv["grey88"] = "#E0E0E0"
|
||||
let rv["gray89"] = "#E3E3E3"
|
||||
let rv["grey89"] = "#E3E3E3"
|
||||
let rv["gray90"] = "#E5E5E5"
|
||||
let rv["grey90"] = "#E5E5E5"
|
||||
let rv["gray91"] = "#E8E8E8"
|
||||
let rv["grey91"] = "#E8E8E8"
|
||||
let rv["gray92"] = "#EBEBEB"
|
||||
let rv["grey92"] = "#EBEBEB"
|
||||
let rv["gray93"] = "#EDEDED"
|
||||
let rv["grey93"] = "#EDEDED"
|
||||
let rv["gray94"] = "#F0F0F0"
|
||||
let rv["grey94"] = "#F0F0F0"
|
||||
let rv["gray95"] = "#F2F2F2"
|
||||
let rv["grey95"] = "#F2F2F2"
|
||||
let rv["gray96"] = "#F5F5F5"
|
||||
let rv["grey96"] = "#F5F5F5"
|
||||
let rv["gray97"] = "#F7F7F7"
|
||||
let rv["grey97"] = "#F7F7F7"
|
||||
let rv["gray98"] = "#FAFAFA"
|
||||
let rv["grey98"] = "#FAFAFA"
|
||||
let rv["gray99"] = "#FCFCFC"
|
||||
let rv["grey99"] = "#FCFCFC"
|
||||
let rv["gray100"] = "#FFFFFF"
|
||||
let rv["grey100"] = "#FFFFFF"
|
||||
let rv["dark_grey"] = "#A9A9A9"
|
||||
let rv["darkgrey"] = "#A9A9A9"
|
||||
let rv["dark_gray"] = "#A9A9A9"
|
||||
let rv["darkgray"] = "#A9A9A9"
|
||||
let rv["dark_blue"] = "#00008B"
|
||||
let rv["darkblue"] = "#00008B"
|
||||
let rv["dark_cyan"] = "#008B8B"
|
||||
let rv["darkcyan"] = "#008B8B"
|
||||
let rv["dark_magenta"] = "#8B008B"
|
||||
let rv["darkmagenta"] = "#8B008B"
|
||||
let rv["dark_red"] = "#8B0000"
|
||||
let rv["darkred"] = "#8B0000"
|
||||
let rv["light_green"] = "#90EE90"
|
||||
let rv["lightgreen"] = "#90EE90"
|
||||
let rv["darkyellow"] = "#BBBB00"
|
||||
let rv["dark_yellow"] = "#BBBB00"
|
||||
let rv["lightred"] = "#FFA0A0"
|
||||
let rv["light_red"] = "#FFA0A0"
|
||||
let rv["lightmagenta"] = "#F0A0F0"
|
||||
let rv["light_magenta"] = "#F0A0F0"
|
||||
|
||||
return rv
|
||||
endfunction
|
||||
416
colorschemedegrade/plugin/ColorschemeDegrade.vim
Executable file
416
colorschemedegrade/plugin/ColorschemeDegrade.vim
Executable file
@@ -0,0 +1,416 @@
|
||||
" ColorschemeDegrade: Degrade gvim colorschemes to be suitable for a terminal
|
||||
" Maintainer: Matthew Wozniski (mjw@drexel.edu)
|
||||
" Date: Sun, 21 Oct 2007 21:04:33 -0400
|
||||
" Version: 0.2
|
||||
" History: TODO(History Link)
|
||||
" Installation: Drop this script into ~/.vim/plugin.
|
||||
|
||||
" Whenever you change colorschemes using the :colorscheme command, this script
|
||||
" will be executed. If you're running in 256 color terminal or an 88 color
|
||||
" terminal, as reported by the command ":echo &t_Co" it will take the colors
|
||||
" that the scheme specified for use in the gui and use an approximation
|
||||
" algorithm to try to gracefully degrade them to the closest color available.
|
||||
" If you are running in a gui or if t_Co is reported as less than 88 colors,
|
||||
" no changes are made.
|
||||
|
||||
" Abort if running in vi-compatible mode or the user doesn't want or need us.
|
||||
if &cp || has("gui_running") || ! has("gui") || exists('g:colorschemedegrade_loaded')
|
||||
if &cp && &verbose
|
||||
echomsg "Not loading ColorschemeDegrade in compatible mode."
|
||||
endif
|
||||
if has('gui_running') && &verbose
|
||||
echomsg "Not loading ColorschemeDegrade in gui mode."
|
||||
endif
|
||||
if ! has('gui') && &verbose
|
||||
echomsg "Unfortunately, ColorschemeDegrade needs gui support. Not loading."
|
||||
endif
|
||||
finish
|
||||
endif
|
||||
|
||||
" A local copy of rgb.txt must be included, since I can't count on it being in
|
||||
" a standard location. But, we won't load it unless we need it.
|
||||
let s:rgb = {}
|
||||
|
||||
let g:colorschemedegrade_loaded = 1
|
||||
|
||||
let s:savecpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Script-local variables {{{1
|
||||
|
||||
" Script-local variables defining the rgb vals on a 256-color cube {{{2
|
||||
|
||||
" Every possible 256-color cube color is made up of 3 rgb values, all out of
|
||||
" this table.
|
||||
let s:vals_greys_256 = [ 0, 8, 18, 28, 38,
|
||||
\ 48, 58, 68, 78, 88,
|
||||
\ 95, 98, 108, 118, 128,
|
||||
\ 135, 138, 148, 158, 168,
|
||||
\ 175, 178, 188, 198, 208,
|
||||
\ 215, 218, 228, 238, 255 ]
|
||||
|
||||
" Many of those colors can only be used for a grey (r == g == b). This subset
|
||||
" can be mix-and-matched.
|
||||
let s:vals_color_256 = [ 0, 95, 135, 175, 215, 255 ]
|
||||
|
||||
" This table holds the midpoints between each of the possible grey values, as
|
||||
" well as one extra element higher than all, to be used in the approximation
|
||||
" algorithm.
|
||||
let s:mids_greys_256 = [ 4, 13, 23, 33, 43,
|
||||
\ 53, 63, 73, 83, 91,
|
||||
\ 96, 103, 113, 123, 131,
|
||||
\ 136, 143, 153, 163, 171,
|
||||
\ 176, 183, 193, 203, 211,
|
||||
\ 216, 223, 233, 246, 256 ]
|
||||
|
||||
" This table is the same, only for the non-grey midpoints.
|
||||
let s:mids_color_256 = [ 48, 115, 155, 195, 235, 256 ]
|
||||
|
||||
" Script-local variables defining the rgb vals on a 88-color cube {{{2
|
||||
|
||||
" Every possible 88-color cube color is made up of 3 rgb values, all out of
|
||||
" this table.
|
||||
let s:vals_greys_88 = [ 0, 46, 92, 115, 139, 162,
|
||||
\ 185, 205, 208, 231, 255 ]
|
||||
|
||||
" Many of those colors can only be used for a grey (r == g == b). This subset
|
||||
" can be mix-and-matched.
|
||||
let s:vals_color_88 = [ 0, 139, 205, 255 ]
|
||||
|
||||
" This table holds the midpoints between each of the possible grey values, as
|
||||
" well as one extra element higher than all, to be used in the approximation
|
||||
" algorithm.
|
||||
let s:mids_greys_88 = [ 23, 69, 103, 127, 150, 173,
|
||||
\ 195, 206, 219, 243, 256 ]
|
||||
|
||||
" This table is the same, only for the non-grey midpoints.
|
||||
let s:mids_color_88 = [ 69, 172, 230, 256 ]
|
||||
|
||||
" Function definitions {{{1
|
||||
|
||||
" Given 3 hex strings rr, gg, bb, return the closest color cube number.
|
||||
function! s:FindClosestCode(h1,h2,h3)
|
||||
let d1 = str2nr(a:h1, 16)
|
||||
let d2 = str2nr(a:h2, 16)
|
||||
let d3 = str2nr(a:h3, 16)
|
||||
|
||||
let r = s:FindClosest(d1, s:vals_greys_{&t_Co}, s:mids_greys_{&t_Co})
|
||||
let g = s:FindClosest(d2, s:vals_greys_{&t_Co}, s:mids_greys_{&t_Co})
|
||||
let b = s:FindClosest(d3, s:vals_greys_{&t_Co}, s:mids_greys_{&t_Co})
|
||||
|
||||
if(r == g && g == b)
|
||||
return s:GreyComponentTo{&t_Co}Cube(r)
|
||||
else
|
||||
let r = s:FindClosest(d1, s:vals_color_{&t_Co}, s:mids_color_{&t_Co})
|
||||
let g = s:FindClosest(d2, s:vals_color_{&t_Co}, s:mids_color_{&t_Co})
|
||||
let b = s:FindClosest(d3, s:vals_color_{&t_Co}, s:mids_color_{&t_Co})
|
||||
return s:RGBComponentsTo{&t_Co}Cube(r, g, b)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Given a number, an array of elements, and an array of midpts, find the index
|
||||
" of the least midpt that the number is strictly less than, and return the
|
||||
" corresponding element.
|
||||
function! s:FindClosest(num, elems, midpts)
|
||||
for i in range(len(a:elems))
|
||||
if ( a:num < a:midpts[i] )
|
||||
return a:elems[i]
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" Expects a decimal value 'x' between 0 and 255, inclusive
|
||||
" Returns a 256-color colorcube number for the color at RGB=x,x,x
|
||||
function! s:GreyComponentTo256Cube(num)
|
||||
if(a:num % 10 == 8)
|
||||
return 232 + (a:num - 8) / 10
|
||||
else
|
||||
" Not in the greyscale ramp, so we can use our normal processing
|
||||
return s:RGBComponentsTo256Cube(a:num, a:num, a:num)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Expects a decimal value 'x' between 0 and 255, inclusive
|
||||
" Returns an 88-color colorcube number for the color at RGB=x,x,x
|
||||
function! s:GreyComponentTo88Cube(num)
|
||||
if a:num == 46
|
||||
return 80
|
||||
elseif a:num == 92
|
||||
return 81
|
||||
elseif a:num == 115
|
||||
return 82
|
||||
elseif a:num == 139
|
||||
return 83
|
||||
elseif a:num == 162
|
||||
return 84
|
||||
elseif a:num == 185
|
||||
return 85
|
||||
elseif a:num == 208
|
||||
return 86
|
||||
elseif a:num == 231
|
||||
return 87
|
||||
else
|
||||
" Not in the greyscale ramp, so we can use our normal processing
|
||||
return s:RGBComponentsTo88Cube(a:num, a:num, a:num)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Expects 3 decimal values 'r', 'g', and 'b', each between 0 and 255 inclusive.
|
||||
" Returns a 256-color colorcube number for the color at RGB=r,g,b.
|
||||
" Will not use the greyscale ramp.
|
||||
function! s:RGBComponentsTo256Cube(r,g,b)
|
||||
let rc = index(s:vals_color_256, a:r)
|
||||
let gc = index(s:vals_color_256, a:g)
|
||||
let bc = index(s:vals_color_256, a:b)
|
||||
|
||||
return (rc * 36 + gc * 6 + bc + 16)
|
||||
endfunction
|
||||
|
||||
" Expects 3 decimal values 'r', 'g', and 'b', each between 0 and 255 inclusive.
|
||||
" Returns a 88-color colorcube number for the color at RGB=r,g,b.
|
||||
" Will not use the greyscale ramp.
|
||||
function! s:RGBComponentsTo88Cube(r,g,b)
|
||||
let rc = index(s:vals_color_88, a:r)
|
||||
let gc = index(s:vals_color_88, a:g)
|
||||
let bc = index(s:vals_color_88, a:b)
|
||||
|
||||
return (rc * 16 + gc * 4 + bc + 16)
|
||||
endfunction
|
||||
|
||||
" Check if the provided value is found in "g:colorschemedegrade_ignore", which
|
||||
" may either be a list or a comma or space separated string. If the variable
|
||||
" "g:colorschemedegrade_ignore" is not present, the default is "bold italic"
|
||||
function! s:ignoring(attr)
|
||||
if !exists("g:colorschemedegrade_ignore")
|
||||
let ignore = [ 'bold', 'italic' ]
|
||||
elseif type(g:colorschemedegrade_ignore) == type("")
|
||||
let ignore = split(g:colorschemedegrade_ignore, '[ ,]')
|
||||
elseif type(g:colorschemedegrade_ignore) == type([])
|
||||
let ignore = g:colorschemedegrade_ignore
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
|
||||
return index(ignore, a:attr) != -1
|
||||
endfunction
|
||||
|
||||
" Sets some settings, calls s:ColorschemeDegradeImpl to handle actually
|
||||
" degrading the colorscheme, then restores the settings. This wrapper
|
||||
" should make sure that we don't accidentally recurse, and that settings are
|
||||
" restored properly even if something throws.
|
||||
function! s:ColorschemeDegrade()
|
||||
if g:colors_name =~ ".*-rgb"
|
||||
return
|
||||
endif
|
||||
let saveei = &ei
|
||||
set ei+=ColorScheme
|
||||
|
||||
if exists("g:colors_name")
|
||||
let colors_name = g:colors_name
|
||||
unlet g:colors_name
|
||||
endif
|
||||
|
||||
let savelz = &lz
|
||||
set lz
|
||||
|
||||
let rv = -1
|
||||
|
||||
try
|
||||
let rv = s:ColorschemeDegradeImpl()
|
||||
catch
|
||||
let ex = v:exception
|
||||
endtry
|
||||
|
||||
let &lz = savelz
|
||||
|
||||
if exists("colors_name")
|
||||
let g:colors_name = colors_name
|
||||
endif
|
||||
|
||||
let &ei = saveei
|
||||
|
||||
if exists("ex")
|
||||
echoerr 'ColorschemeDegrade failed: ' . substitute(ex, '.\{-}:', '', '')
|
||||
endif
|
||||
|
||||
return rv
|
||||
endfunction
|
||||
|
||||
" For every highlight group, sets the cterm values to the best approximation
|
||||
" of the gui values possible given the value of &t_Co.
|
||||
function! s:ColorschemeDegradeImpl()
|
||||
if has('gui_running') || (&t_Co != 256 && &t_Co != 88)
|
||||
return
|
||||
endif
|
||||
|
||||
let g:highlights = ""
|
||||
redir => g:highlights
|
||||
" Normal must be set 1st for ctermfg=bg, etc, and resetting it doesn't hurt
|
||||
silent highlight Normal
|
||||
silent highlight
|
||||
redir END
|
||||
|
||||
let hilines = split(g:highlights, '\n')
|
||||
|
||||
" hilines[0] is Normal. If that doesn't use gui colors, we should probably
|
||||
" just give up. That way we don't muck up an already 256/88 color scheme.
|
||||
if hilines[0] !~ 'gui[fb]g'
|
||||
if &verbose
|
||||
echomsg "Not degrading colorscheme; doesn't set Normal group gui colors"
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
call filter(hilines, 'v:val !~ "links to" && v:val !~ "cleared"')
|
||||
|
||||
let i = 0
|
||||
let end = len(hilines)
|
||||
|
||||
while i < end
|
||||
let line = hilines[i]
|
||||
let i += 1
|
||||
while i < end && hilines[i] !~ '\<xxx\>'
|
||||
let line .= hilines[i]
|
||||
let i += 1
|
||||
endwhile
|
||||
let line = substitute(line, '\<st\(art\|op\)=.\{-}\S\@!', '', 'g')
|
||||
let line = substitute(line, '\<c\=term.\{-}=.\{-}\S\@!', '', 'g')
|
||||
let line = substitute(line, '\<xxx\>', '', '')
|
||||
let line = substitute(line, '\<gui', 'cterm', 'g')
|
||||
let line = substitute(line, '\s\+', ' ', 'g')
|
||||
|
||||
let items = split(line, '\%(\s\zecterm\|font\)\|=')
|
||||
|
||||
let higrp = items[0]
|
||||
if len(items) % 2 != 1
|
||||
echoerr "I cannot understand the highlight group "
|
||||
\ . string(items) . ' at line ' . hilines[i]
|
||||
endif
|
||||
|
||||
" Start clean
|
||||
exe 'hi ' . higrp . ' term=NONE cterm=NONE ctermbg=NONE ctermfg=NONE'
|
||||
|
||||
for j in range((len(items)-1)/2)
|
||||
" TODO Can we handle 16 color terminals? Probably, if we're in an xterm.
|
||||
let var = items[2*j+1]
|
||||
let val = items[2*j+2]
|
||||
if var == 'ctermsp'
|
||||
if exists('g:colorschemedegrade_sp_is_bg') && g:colorschemedegrade_sp_is_bg
|
||||
let var = 'ctermbg'
|
||||
else
|
||||
let var = 'ctermfg'
|
||||
endif
|
||||
endif
|
||||
if var == 'cterm'
|
||||
if s:ignoring('bold')
|
||||
let val = substitute(val, 'bold', '', '')
|
||||
endif
|
||||
if s:ignoring('underline')
|
||||
let val = substitute(val, 'underline', '', '')
|
||||
endif
|
||||
if s:ignoring('undercurl')
|
||||
let val = substitute(val, 'undercurl', '', '')
|
||||
endif
|
||||
if s:ignoring('reverse') || s:ignoring('inverse')
|
||||
let val = substitute(val, '\%(re\|in\)verse', '', '')
|
||||
endif
|
||||
if s:ignoring('italic')
|
||||
let val = substitute(val, 'italic', '', '')
|
||||
endif
|
||||
if s:ignoring('standout')
|
||||
let val = substitute(val, 'standout', '', '')
|
||||
endif
|
||||
let val = substitute(val, '\(^,*\|,*$\)', '', '')
|
||||
let val = substitute(val, ',\+', ',', 'g')
|
||||
let val = substitute(val, '^,*$', 'NONE', '')
|
||||
|
||||
exe 'hi ' . higrp . ' ' . var . '=' . val
|
||||
elseif var =~ 'cterm[fb]g'
|
||||
if val =~ '[FBfb]g'
|
||||
let val = tolower(val)
|
||||
if var =~ val
|
||||
let val = "NONE"
|
||||
endif
|
||||
"echomsg 'higrp=' . higrp . ' var=' . var . ' val=' . val
|
||||
exe 'hi ' . higrp . ' ' . var . '=' . val
|
||||
continue
|
||||
elseif val !~ '^#'
|
||||
try
|
||||
" We do need our cooked rgb.txt
|
||||
if s:rgb == {}
|
||||
let s:rgb = colorschemedegradelib#RGB()
|
||||
endif
|
||||
let val = s:rgb[tolower(substitute(val, ' ', '_', 'g'))]
|
||||
catch
|
||||
echomsg "Cannot translate color \"" . val . "\""
|
||||
continue
|
||||
endtry
|
||||
endif
|
||||
|
||||
if v:termresponse =~ '>8[35];'
|
||||
\ && exists('g:colorschemedegrade_changecube')
|
||||
\ && g:colorschemedegrade_changecube
|
||||
if !exists("s:lastcubepos")
|
||||
let s:lastcubepos="15"
|
||||
let s:colors = {}
|
||||
endif
|
||||
|
||||
let tisave = &t_ti
|
||||
let tesave = &t_te
|
||||
set t_ti= t_te=
|
||||
|
||||
if has_key(s:colors, tolower(val))
|
||||
let nr = s:colors[tolower(val)]
|
||||
else
|
||||
let s:lastcubepos = s:lastcubepos + 1
|
||||
|
||||
if s:lastcubepos >= &t_Co
|
||||
let s:lastcubepos = 16
|
||||
endif
|
||||
|
||||
let nr = s:lastcubepos
|
||||
let s:colors[tolower(val)] = nr
|
||||
|
||||
if $STY == ""
|
||||
exe 'sil !echo -n -e "\\033]4;' . nr . ';\' . val . '\\a"'
|
||||
else
|
||||
exe 'sil !echo -n -e "\\033P\\033]4;' . nr . ';\' . val . '\\a\\033\\\\"'
|
||||
endif
|
||||
endif
|
||||
|
||||
let &t_ti = tisave
|
||||
let &t_te = tesave
|
||||
exe 'hi' higrp var.'='.nr
|
||||
else
|
||||
let r = val[1] . val[2]
|
||||
let g = val[3] . val[4]
|
||||
let b = val[5] . val[6]
|
||||
exe 'hi ' . higrp . ' ' . var . '=' . s:FindClosestCode(r, g, b)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
endwhile
|
||||
if exists("s:lastcubepos")
|
||||
unlet s:lastcubepos
|
||||
endif
|
||||
endfunction
|
||||
|
||||
augroup ColorSchemeDegrade
|
||||
au!
|
||||
au ColorScheme * call s:ColorschemeDegrade()
|
||||
augroup END
|
||||
|
||||
autocmd TermResponse * if exists("g:colors_name")
|
||||
\ | exe "colorscheme" g:colors_name
|
||||
\ | call s:ColorschemeDegrade()
|
||||
\ | endif
|
||||
|
||||
if exists("g:colors_name")
|
||||
" Don't do anything unless :colorscheme has already been called
|
||||
call s:ColorschemeDegrade()
|
||||
endif
|
||||
|
||||
let &cpo = s:savecpo
|
||||
unlet s:savecpo
|
||||
|
||||
" vim:set sw=2 sts=2 fdm=marker:
|
||||
Reference in New Issue
Block a user