From a22d62511d02ec9ec12c2b7f4b240522b4feb4d8 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Mon, 28 Oct 2013 21:00:33 +0000 Subject: [PATCH] initial commit - vim stuff and install script --- .vim/.VimballRecord | 3 + .vim/.gitignore | 3 + .vim/.vim | 1 + .vim/NERD_tree.txt | 1222 +++++ .vim/README.markdown | 21 + .vim/autoload/Align.vim | 1140 ++++ .vim/autoload/AlignMaps.vim | 401 ++ .vim/autoload/conque_term.vim | 1504 ++++++ .vim/autoload/conque_term/conque.py | 1154 ++++ .vim/autoload/conque_term/conque_globals.py | 319 ++ .vim/autoload/conque_term/conque_screen.py | 230 + .vim/autoload/conque_term/conque_sole.py | 458 ++ .../conque_term/conque_sole_communicator.py | 183 + .../conque_term/conque_sole_shared_memory.py | 210 + .../conque_term/conque_sole_subprocess.py | 762 +++ .../conque_term/conque_sole_wrapper.py | 278 + .../autoload/conque_term/conque_subprocess.py | 198 + .../autoload/conque_term/conque_win32_util.py | 448 ++ .vim/autoload/go/complete.vim | 49 + .vim/autoload/gocomplete.vim | 73 + .vim/autoload/rails.vim | 4744 +++++++++++++++++ .vim/autoload/rubycomplete.vim | 655 +++ .vim/autoload/zencoding.vim | 2066 +++++++ .vim/colors/256-grayvim.vim | 46 + .vim/colors/adaryn.vim | 72 + .vim/colors/adrian.vim | 97 + .vim/colors/aiseered.vim | 37 + .vim/colors/anotherdark.vim | 108 + .vim/colors/aqua.vim | 44 + .vim/colors/astronaut.vim | 164 + .vim/colors/asu1dark.vim | 59 + .vim/colors/autumn.vim | 69 + .vim/colors/autumn2.vim | 88 + .vim/colors/autumnleaf.vim | 154 + .vim/colors/baycomb.vim | 319 ++ .vim/colors/bclear.vim | 67 + .vim/colors/biogoo.vim | 115 + .vim/colors/blacksea.vim | 37 + .vim/colors/bluegreen.vim | 50 + .vim/colors/borland.vim | 60 + .vim/colors/breeze.vim | 70 + .vim/colors/brookstream.vim | 83 + .vim/colors/buttercream.vim | 59 + .vim/colors/calmar256-dark.vim | 247 + .vim/colors/calmar256-light.vim | 247 + .vim/colors/camo.vim | 76 + .vim/colors/candy.vim | 78 + .vim/colors/candycode.vim | 174 + .vim/colors/carvedwood.vim | 118 + .vim/colors/chela_light.vim | 110 + .vim/colors/chocolateliquor.vim | 36 + .vim/colors/clarity.vim | 52 + .vim/colors/cleanphp.vim | 81 + .vim/colors/colorer.vim | 79 + .vim/colors/dante.vim | 83 + .vim/colors/dark-ruby.vim | 291 + .vim/colors/darkZ.vim | 91 + .vim/colors/darkblue2.vim | 105 + .vim/colors/darkbone.vim | 102 + .vim/colors/darkslategray.vim | 117 + .vim/colors/darkspectrum.vim | 130 + .vim/colors/dawn.vim | 78 + .vim/colors/denim.vim | 141 + .vim/colors/desert256.vim | 338 ++ .vim/colors/desertEx.vim | 98 + .vim/colors/dusk.vim | 71 + .vim/colors/dw_blue.vim | 66 + .vim/colors/dw_cyan.vim | 66 + .vim/colors/dw_green.vim | 66 + .vim/colors/dw_orange.vim | 66 + .vim/colors/dw_purple.vim | 66 + .vim/colors/dw_red.vim | 66 + .vim/colors/dw_yellow.vim | 66 + .vim/colors/earendel.vim | 159 + .vim/colors/eclipse.vim | 92 + .vim/colors/ekvoli.vim | 105 + .vim/colors/fine_blue.vim | 71 + .vim/colors/fine_blue2.vim | 71 + .vim/colors/fnaqevan.vim | 67 + .vim/colors/fog.vim | 170 + .vim/colors/freya.vim | 79 + .vim/colors/fruit.vim | 69 + .vim/colors/fruity.vim | 147 + .vim/colors/gardener.vim | 271 + .vim/colors/golden.vim | 70 + .vim/colors/guardian.vim | 103 + .vim/colors/habilight.vim | 138 + .vim/colors/herald.vim | 385 ++ .vim/colors/impact.vim | 66 + .vim/colors/inkpot.vim | 216 + .vim/colors/ironman.vim | 133 + .vim/colors/jammy.vim | 111 + .vim/colors/jellybeans.vim | 410 ++ .vim/colors/kellys.vim | 236 + .vim/colors/leo.vim | 150 + .vim/colors/lettuce.vim | 215 + .vim/colors/lucius.vim | 346 ++ .vim/colors/manxome.vim | 47 + .vim/colors/marklar.vim | 174 + .vim/colors/maroloccio.vim | 594 +++ .vim/colors/martin_krischik.vim | 397 ++ .vim/colors/matrix.vim | 80 + .vim/colors/molokai.vim | 211 + .vim/colors/moria.vim | 247 + .vim/colors/moss.vim | 109 + .vim/colors/motus.vim | 66 + .vim/colors/mustang.vim | 57 + .vim/colors/navajo-night.vim | 119 + .vim/colors/navajo.vim | 65 + .vim/colors/neon.vim | 70 + .vim/colors/neverness.vim | 141 + .vim/colors/night.vim | 70 + .vim/colors/nightshimmer.vim | 111 + .vim/colors/no_quarter.vim | 134 + .vim/colors/northland.vim | 149 + .vim/colors/nuvola.vim | 107 + .vim/colors/oceanblack.vim | 115 + .vim/colors/oceandeep.vim | 140 + .vim/colors/oceanlight.vim | 105 + .vim/colors/olive.vim | 119 + .vim/colors/papayawhip.vim | 31 + .vim/colors/peaksea.vim | 597 +++ .vim/colors/plugin/color_sample_pack.vim | 164 + .vim/colors/print_bw.vim | 65 + .vim/colors/pyte.vim | 92 + .vim/colors/railscasts.vim | 124 + .vim/colors/railscasts2.vim | 124 + .vim/colors/rdark.vim | 159 + .vim/colors/relaxedgreen.vim | 112 + .vim/colors/robinhood.vim | 103 + .vim/colors/rootwater.vim | 98 + .vim/colors/rubycomplete.vim | 655 +++ .vim/colors/satori.vim | 47 + .vim/colors/sea.vim | 69 + .vim/colors/settlemyer.vim | 53 + .vim/colors/sienna.vim | 150 + .vim/colors/silent.vim | 116 + .vim/colors/simpleandfriendly.vim | 65 + .vim/colors/softblue.vim | 45 + .vim/colors/soso.vim | 67 + .vim/colors/spring.vim | 71 + .vim/colors/summerfruit256.vim | 322 ++ .vim/colors/synic.vim | 81 + .vim/colors/tabula.vim | 698 +++ .vim/colors/tango.vim | 78 + .vim/colors/tango2.vim | 62 + .vim/colors/taqua.vim | 84 + .vim/colors/tcsoft.vim | 83 + .vim/colors/tir_black.vim | 130 + .vim/colors/tolerable.vim | 43 + .vim/colors/torte.vim | 51 + .vim/colors/twilight.vim | 114 + .vim/colors/two2tango.vim | 101 + .vim/colors/vc.vim | 24 + .vim/colors/vibrantink.vim | 68 + .vim/colors/vividchalk.vim | 172 + .vim/colors/vylight.vim | 81 + .vim/colors/winter.vim | 87 + .vim/colors/wombat.vim | 51 + .vim/colors/wombat256.vim | 302 ++ .vim/colors/wood.vim | 39 + .vim/colors/wuye.vim | 82 + .vim/colors/xemacs.vim | 46 + .vim/colors/xoria256.vim | 94 + .vim/colors/zenburn.vim | 351 ++ .vim/colors/zmrok.vim | 59 + .vim/doc/Align.txt | 1602 ++++++ .vim/doc/IndentAnything.txt | 184 + .vim/doc/NERD_tree.txt | 1222 +++++ .vim/doc/bufexplorer.txt | 513 ++ .vim/doc/command-t.txt | 896 ++++ .vim/doc/conque_term.txt | 646 +++ .vim/doc/extradite.txt | 48 + .vim/doc/matchit.txt | 406 ++ .vim/doc/project.txt | 710 +++ .vim/doc/rails.txt | 1134 ++++ .vim/doc/supertab.txt | 350 ++ .vim/doc/surround.txt | 222 + .vim/doc/taglist.txt | 1501 ++++++ .vim/doc/tags | 706 +++ .vim/doc/vim-phpcs.txt | 34 + .vim/doc/zencoding.txt | 383 ++ .vim/filetype.vim | 7 + .vim/ftdetect/git.vim | 18 + .vim/ftdetect/gofiletype.vim | 1 + .vim/ftdetect/javascript.vim | 2 + .vim/ftdetect/mkd.vim | 2 + .vim/ftdetect/processing.vim | 2 + .vim/ftdetect/proto.vim | 3 + .vim/ftdetect/scala.vim | 2 + .vim/ftplugin/Wikipedia.vim | 23 + .vim/ftplugin/c.vim | 4 + .vim/ftplugin/git.vim | 36 + .vim/ftplugin/gitcommit.vim | 67 + .vim/ftplugin/gitconfig.vim | 14 + .vim/ftplugin/gitrebase.vim | 41 + .vim/ftplugin/gitsendemail.vim | 5 + .vim/ftplugin/go.vim | 1 + .vim/ftplugin/go/fmt.vim | 30 + .vim/ftplugin/go/godoc.vim | 13 + .vim/ftplugin/go/import.vim | 201 + .vim/ftplugin/html.vim | 0 .vim/ftplugin/javascript.vim | 2 + .vim/ftplugin/mkd.vim | 1 + .vim/ftplugin/php.vim | 2 + .vim/ftplugin/processing.vim | 60 + .vim/ftplugin/python.vim | 19 + .vim/ftplugin/ruby.vim | 3 + .vim/ftplugin/smarty.vim | 8 + .vim/indent/IndentAnything_html.vim | 35 + .vim/indent/gitconfig.vim | 34 + .vim/indent/go.vim | 65 + .vim/indent/javascript.vim | 330 ++ .vim/indent/python.vim | 196 + .vim/indent/ruby.vim | 121 + .vim/indent/scala.vim | 103 + .vim/nerdtree_plugin/exec_menuitem.vim | 41 + .vim/nerdtree_plugin/fs_menu.vim | 194 + .vim/plugin/.minibufexpl.vim | 1838 +++++++ .vim/plugin/AlignMapsPlugin.vim | 253 + .vim/plugin/AlignPlugin.vim | 41 + .vim/plugin/IndentAnything.vim | 675 +++ .vim/plugin/NERD_tree.vim | 4059 ++++++++++++++ .vim/plugin/bufexplorer.vim | 1162 ++++ .vim/plugin/cecutil.vim | 536 ++ .vim/plugin/color_sample_pack.vim | 164 + .vim/plugin/command-t.vim | 186 + .vim/plugin/conque_term.vim | 213 + .vim/plugin/etsy.vim | 15 + .vim/plugin/extradite.vim | 236 + .vim/plugin/godoc.vim | 85 + .vim/plugin/matchit.vim | 812 +++ .vim/plugin/phpcs.vim | 68 + .vim/plugin/project.vim | 1293 +++++ .vim/plugin/rails.vim | 340 ++ .vim/plugin/supertab.vim | 874 +++ .vim/plugin/surround.vim | 625 +++ .vim/plugin/taglist.vim | 4546 ++++++++++++++++ .vim/plugin/test/IndentAnything/test.js | 131 + .vim/plugin/zencoding.vim | 137 + .vim/ruby/command-t/Makefile | 211 + .vim/ruby/command-t/controller.rb | 357 ++ .vim/ruby/command-t/depend | 24 + .vim/ruby/command-t/ext.c | 65 + .vim/ruby/command-t/ext.h | 36 + .vim/ruby/command-t/ext.o | Bin 0 -> 11352 bytes .vim/ruby/command-t/ext.so | Bin 0 -> 36901 bytes .vim/ruby/command-t/extconf.rb | 34 + .vim/ruby/command-t/finder.rb | 54 + .vim/ruby/command-t/finder/buffer_finder.rb | 35 + .vim/ruby/command-t/finder/file_finder.rb | 39 + .vim/ruby/command-t/finder/jump_finder.rb | 35 + .vim/ruby/command-t/finder/tag_finder.rb | 44 + .vim/ruby/command-t/match.c | 189 + .vim/ruby/command-t/match.h | 29 + .vim/ruby/command-t/match.o | Bin 0 -> 18312 bytes .vim/ruby/command-t/match_window.rb | 445 ++ .vim/ruby/command-t/matcher.c | 164 + .vim/ruby/command-t/matcher.h | 30 + .vim/ruby/command-t/matcher.o | Bin 0 -> 25912 bytes .vim/ruby/command-t/mkmf.log | 20 + .vim/ruby/command-t/prompt.rb | 165 + .vim/ruby/command-t/ruby_compat.h | 49 + .vim/ruby/command-t/scanner.rb | 28 + .vim/ruby/command-t/scanner/buffer_scanner.rb | 42 + .vim/ruby/command-t/scanner/file_scanner.rb | 101 + .vim/ruby/command-t/scanner/jump_scanner.rb | 54 + .vim/ruby/command-t/scanner/tag_scanner.rb | 49 + .vim/ruby/command-t/settings.rb | 77 + .vim/ruby/command-t/stub.rb | 42 + .vim/ruby/command-t/vim.rb | 59 + .vim/ruby/command-t/vim/path_utilities.rb | 40 + .vim/ruby/command-t/vim/screen.rb | 32 + .vim/ruby/command-t/vim/window.rb | 38 + .vim/syntax/Wikipedia.vim | 293 + .vim/syntax/ck.vim | 177 + .vim/syntax/conque_term.vim | 113 + .vim/syntax/dokuwiki.vim | 247 + .vim/syntax/git.vim | 77 + .vim/syntax/gitcommit.vim | 82 + .vim/syntax/gitconfig.vim | 37 + .vim/syntax/gitrebase.vim | 32 + .vim/syntax/gitsendemail.vim | 18 + .vim/syntax/go.vim | 208 + .vim/syntax/godoc.vim | 20 + .vim/syntax/htmljinja.vim | 27 + .vim/syntax/javascript.vim | 246 + .vim/syntax/jinja.vim | 113 + .vim/syntax/json.vim | 77 + .vim/syntax/mkd.vim | 129 + .vim/syntax/nginx.vim | 664 +++ .vim/syntax/processing.vim | 235 + .vim/syntax/proto.vim | 106 + .vim/syntax/scala.vim | 151 + .vimrc | 220 + install.sh | 26 + 296 files changed, 71359 insertions(+) create mode 100644 .vim/.VimballRecord create mode 100644 .vim/.gitignore create mode 120000 .vim/.vim create mode 100644 .vim/NERD_tree.txt create mode 100644 .vim/README.markdown create mode 100644 .vim/autoload/Align.vim create mode 100644 .vim/autoload/AlignMaps.vim create mode 100644 .vim/autoload/conque_term.vim create mode 100644 .vim/autoload/conque_term/conque.py create mode 100644 .vim/autoload/conque_term/conque_globals.py create mode 100644 .vim/autoload/conque_term/conque_screen.py create mode 100644 .vim/autoload/conque_term/conque_sole.py create mode 100644 .vim/autoload/conque_term/conque_sole_communicator.py create mode 100644 .vim/autoload/conque_term/conque_sole_shared_memory.py create mode 100644 .vim/autoload/conque_term/conque_sole_subprocess.py create mode 100644 .vim/autoload/conque_term/conque_sole_wrapper.py create mode 100644 .vim/autoload/conque_term/conque_subprocess.py create mode 100644 .vim/autoload/conque_term/conque_win32_util.py create mode 100644 .vim/autoload/go/complete.vim create mode 100644 .vim/autoload/gocomplete.vim create mode 100644 .vim/autoload/rails.vim create mode 100644 .vim/autoload/rubycomplete.vim create mode 100644 .vim/autoload/zencoding.vim create mode 100644 .vim/colors/256-grayvim.vim create mode 100644 .vim/colors/adaryn.vim create mode 100644 .vim/colors/adrian.vim create mode 100644 .vim/colors/aiseered.vim create mode 100644 .vim/colors/anotherdark.vim create mode 100644 .vim/colors/aqua.vim create mode 100644 .vim/colors/astronaut.vim create mode 100644 .vim/colors/asu1dark.vim create mode 100644 .vim/colors/autumn.vim create mode 100644 .vim/colors/autumn2.vim create mode 100644 .vim/colors/autumnleaf.vim create mode 100644 .vim/colors/baycomb.vim create mode 100644 .vim/colors/bclear.vim create mode 100644 .vim/colors/biogoo.vim create mode 100644 .vim/colors/blacksea.vim create mode 100644 .vim/colors/bluegreen.vim create mode 100644 .vim/colors/borland.vim create mode 100644 .vim/colors/breeze.vim create mode 100644 .vim/colors/brookstream.vim create mode 100644 .vim/colors/buttercream.vim create mode 100644 .vim/colors/calmar256-dark.vim create mode 100644 .vim/colors/calmar256-light.vim create mode 100644 .vim/colors/camo.vim create mode 100644 .vim/colors/candy.vim create mode 100644 .vim/colors/candycode.vim create mode 100644 .vim/colors/carvedwood.vim create mode 100644 .vim/colors/chela_light.vim create mode 100644 .vim/colors/chocolateliquor.vim create mode 100644 .vim/colors/clarity.vim create mode 100644 .vim/colors/cleanphp.vim create mode 100644 .vim/colors/colorer.vim create mode 100644 .vim/colors/dante.vim create mode 100644 .vim/colors/dark-ruby.vim create mode 100644 .vim/colors/darkZ.vim create mode 100644 .vim/colors/darkblue2.vim create mode 100644 .vim/colors/darkbone.vim create mode 100644 .vim/colors/darkslategray.vim create mode 100644 .vim/colors/darkspectrum.vim create mode 100644 .vim/colors/dawn.vim create mode 100644 .vim/colors/denim.vim create mode 100644 .vim/colors/desert256.vim create mode 100644 .vim/colors/desertEx.vim create mode 100644 .vim/colors/dusk.vim create mode 100644 .vim/colors/dw_blue.vim create mode 100644 .vim/colors/dw_cyan.vim create mode 100644 .vim/colors/dw_green.vim create mode 100644 .vim/colors/dw_orange.vim create mode 100644 .vim/colors/dw_purple.vim create mode 100644 .vim/colors/dw_red.vim create mode 100644 .vim/colors/dw_yellow.vim create mode 100644 .vim/colors/earendel.vim create mode 100644 .vim/colors/eclipse.vim create mode 100644 .vim/colors/ekvoli.vim create mode 100644 .vim/colors/fine_blue.vim create mode 100644 .vim/colors/fine_blue2.vim create mode 100644 .vim/colors/fnaqevan.vim create mode 100644 .vim/colors/fog.vim create mode 100644 .vim/colors/freya.vim create mode 100644 .vim/colors/fruit.vim create mode 100644 .vim/colors/fruity.vim create mode 100644 .vim/colors/gardener.vim create mode 100644 .vim/colors/golden.vim create mode 100644 .vim/colors/guardian.vim create mode 100644 .vim/colors/habilight.vim create mode 100644 .vim/colors/herald.vim create mode 100644 .vim/colors/impact.vim create mode 100644 .vim/colors/inkpot.vim create mode 100644 .vim/colors/ironman.vim create mode 100644 .vim/colors/jammy.vim create mode 100644 .vim/colors/jellybeans.vim create mode 100644 .vim/colors/kellys.vim create mode 100644 .vim/colors/leo.vim create mode 100644 .vim/colors/lettuce.vim create mode 100644 .vim/colors/lucius.vim create mode 100644 .vim/colors/manxome.vim create mode 100644 .vim/colors/marklar.vim create mode 100644 .vim/colors/maroloccio.vim create mode 100644 .vim/colors/martin_krischik.vim create mode 100644 .vim/colors/matrix.vim create mode 100644 .vim/colors/molokai.vim create mode 100644 .vim/colors/moria.vim create mode 100644 .vim/colors/moss.vim create mode 100644 .vim/colors/motus.vim create mode 100644 .vim/colors/mustang.vim create mode 100644 .vim/colors/navajo-night.vim create mode 100644 .vim/colors/navajo.vim create mode 100644 .vim/colors/neon.vim create mode 100644 .vim/colors/neverness.vim create mode 100644 .vim/colors/night.vim create mode 100644 .vim/colors/nightshimmer.vim create mode 100644 .vim/colors/no_quarter.vim create mode 100644 .vim/colors/northland.vim create mode 100644 .vim/colors/nuvola.vim create mode 100644 .vim/colors/oceanblack.vim create mode 100644 .vim/colors/oceandeep.vim create mode 100644 .vim/colors/oceanlight.vim create mode 100644 .vim/colors/olive.vim create mode 100644 .vim/colors/papayawhip.vim create mode 100644 .vim/colors/peaksea.vim create mode 100644 .vim/colors/plugin/color_sample_pack.vim create mode 100644 .vim/colors/print_bw.vim create mode 100644 .vim/colors/pyte.vim create mode 100644 .vim/colors/railscasts.vim create mode 100644 .vim/colors/railscasts2.vim create mode 100644 .vim/colors/rdark.vim create mode 100644 .vim/colors/relaxedgreen.vim create mode 100644 .vim/colors/robinhood.vim create mode 100644 .vim/colors/rootwater.vim create mode 100644 .vim/colors/rubycomplete.vim create mode 100644 .vim/colors/satori.vim create mode 100644 .vim/colors/sea.vim create mode 100644 .vim/colors/settlemyer.vim create mode 100644 .vim/colors/sienna.vim create mode 100644 .vim/colors/silent.vim create mode 100644 .vim/colors/simpleandfriendly.vim create mode 100644 .vim/colors/softblue.vim create mode 100644 .vim/colors/soso.vim create mode 100644 .vim/colors/spring.vim create mode 100644 .vim/colors/summerfruit256.vim create mode 100644 .vim/colors/synic.vim create mode 100644 .vim/colors/tabula.vim create mode 100644 .vim/colors/tango.vim create mode 100644 .vim/colors/tango2.vim create mode 100644 .vim/colors/taqua.vim create mode 100644 .vim/colors/tcsoft.vim create mode 100644 .vim/colors/tir_black.vim create mode 100644 .vim/colors/tolerable.vim create mode 100644 .vim/colors/torte.vim create mode 100644 .vim/colors/twilight.vim create mode 100644 .vim/colors/two2tango.vim create mode 100644 .vim/colors/vc.vim create mode 100644 .vim/colors/vibrantink.vim create mode 100644 .vim/colors/vividchalk.vim create mode 100644 .vim/colors/vylight.vim create mode 100644 .vim/colors/winter.vim create mode 100644 .vim/colors/wombat.vim create mode 100644 .vim/colors/wombat256.vim create mode 100644 .vim/colors/wood.vim create mode 100644 .vim/colors/wuye.vim create mode 100644 .vim/colors/xemacs.vim create mode 100644 .vim/colors/xoria256.vim create mode 100644 .vim/colors/zenburn.vim create mode 100644 .vim/colors/zmrok.vim create mode 100644 .vim/doc/Align.txt create mode 100644 .vim/doc/IndentAnything.txt create mode 100644 .vim/doc/NERD_tree.txt create mode 100644 .vim/doc/bufexplorer.txt create mode 100644 .vim/doc/command-t.txt create mode 100644 .vim/doc/conque_term.txt create mode 100644 .vim/doc/extradite.txt create mode 100644 .vim/doc/matchit.txt create mode 100644 .vim/doc/project.txt create mode 100644 .vim/doc/rails.txt create mode 100644 .vim/doc/supertab.txt create mode 100644 .vim/doc/surround.txt create mode 100755 .vim/doc/taglist.txt create mode 100644 .vim/doc/tags create mode 100644 .vim/doc/vim-phpcs.txt create mode 100644 .vim/doc/zencoding.txt create mode 100644 .vim/filetype.vim create mode 100644 .vim/ftdetect/git.vim create mode 100644 .vim/ftdetect/gofiletype.vim create mode 100644 .vim/ftdetect/javascript.vim create mode 100644 .vim/ftdetect/mkd.vim create mode 100755 .vim/ftdetect/processing.vim create mode 100644 .vim/ftdetect/proto.vim create mode 100644 .vim/ftdetect/scala.vim create mode 100644 .vim/ftplugin/Wikipedia.vim create mode 100644 .vim/ftplugin/c.vim create mode 100644 .vim/ftplugin/git.vim create mode 100644 .vim/ftplugin/gitcommit.vim create mode 100644 .vim/ftplugin/gitconfig.vim create mode 100644 .vim/ftplugin/gitrebase.vim create mode 100644 .vim/ftplugin/gitsendemail.vim create mode 100644 .vim/ftplugin/go.vim create mode 100644 .vim/ftplugin/go/fmt.vim create mode 100644 .vim/ftplugin/go/godoc.vim create mode 100644 .vim/ftplugin/go/import.vim create mode 100644 .vim/ftplugin/html.vim create mode 100644 .vim/ftplugin/javascript.vim create mode 100644 .vim/ftplugin/mkd.vim create mode 100644 .vim/ftplugin/php.vim create mode 100755 .vim/ftplugin/processing.vim create mode 100644 .vim/ftplugin/python.vim create mode 100644 .vim/ftplugin/ruby.vim create mode 100644 .vim/ftplugin/smarty.vim create mode 100644 .vim/indent/IndentAnything_html.vim create mode 100644 .vim/indent/gitconfig.vim create mode 100644 .vim/indent/go.vim create mode 100644 .vim/indent/javascript.vim create mode 100644 .vim/indent/python.vim create mode 100644 .vim/indent/ruby.vim create mode 100644 .vim/indent/scala.vim create mode 100644 .vim/nerdtree_plugin/exec_menuitem.vim create mode 100644 .vim/nerdtree_plugin/fs_menu.vim create mode 100644 .vim/plugin/.minibufexpl.vim create mode 100644 .vim/plugin/AlignMapsPlugin.vim create mode 100644 .vim/plugin/AlignPlugin.vim create mode 100644 .vim/plugin/IndentAnything.vim create mode 100644 .vim/plugin/NERD_tree.vim create mode 100644 .vim/plugin/bufexplorer.vim create mode 100644 .vim/plugin/cecutil.vim create mode 100644 .vim/plugin/color_sample_pack.vim create mode 100644 .vim/plugin/command-t.vim create mode 100644 .vim/plugin/conque_term.vim create mode 100644 .vim/plugin/etsy.vim create mode 100644 .vim/plugin/extradite.vim create mode 100644 .vim/plugin/godoc.vim create mode 100755 .vim/plugin/matchit.vim create mode 100644 .vim/plugin/phpcs.vim create mode 100644 .vim/plugin/project.vim create mode 100644 .vim/plugin/rails.vim create mode 100644 .vim/plugin/supertab.vim create mode 100644 .vim/plugin/surround.vim create mode 100644 .vim/plugin/taglist.vim create mode 100644 .vim/plugin/test/IndentAnything/test.js create mode 100644 .vim/plugin/zencoding.vim create mode 100644 .vim/ruby/command-t/Makefile create mode 100644 .vim/ruby/command-t/controller.rb create mode 100644 .vim/ruby/command-t/depend create mode 100644 .vim/ruby/command-t/ext.c create mode 100644 .vim/ruby/command-t/ext.h create mode 100644 .vim/ruby/command-t/ext.o create mode 100755 .vim/ruby/command-t/ext.so create mode 100644 .vim/ruby/command-t/extconf.rb create mode 100644 .vim/ruby/command-t/finder.rb create mode 100644 .vim/ruby/command-t/finder/buffer_finder.rb create mode 100644 .vim/ruby/command-t/finder/file_finder.rb create mode 100644 .vim/ruby/command-t/finder/jump_finder.rb create mode 100644 .vim/ruby/command-t/finder/tag_finder.rb create mode 100644 .vim/ruby/command-t/match.c create mode 100644 .vim/ruby/command-t/match.h create mode 100644 .vim/ruby/command-t/match.o create mode 100644 .vim/ruby/command-t/match_window.rb create mode 100644 .vim/ruby/command-t/matcher.c create mode 100644 .vim/ruby/command-t/matcher.h create mode 100644 .vim/ruby/command-t/matcher.o create mode 100644 .vim/ruby/command-t/mkmf.log create mode 100644 .vim/ruby/command-t/prompt.rb create mode 100644 .vim/ruby/command-t/ruby_compat.h create mode 100644 .vim/ruby/command-t/scanner.rb create mode 100644 .vim/ruby/command-t/scanner/buffer_scanner.rb create mode 100644 .vim/ruby/command-t/scanner/file_scanner.rb create mode 100644 .vim/ruby/command-t/scanner/jump_scanner.rb create mode 100644 .vim/ruby/command-t/scanner/tag_scanner.rb create mode 100644 .vim/ruby/command-t/settings.rb create mode 100644 .vim/ruby/command-t/stub.rb create mode 100644 .vim/ruby/command-t/vim.rb create mode 100644 .vim/ruby/command-t/vim/path_utilities.rb create mode 100644 .vim/ruby/command-t/vim/screen.rb create mode 100644 .vim/ruby/command-t/vim/window.rb create mode 100644 .vim/syntax/Wikipedia.vim create mode 100644 .vim/syntax/ck.vim create mode 100644 .vim/syntax/conque_term.vim create mode 100644 .vim/syntax/dokuwiki.vim create mode 100644 .vim/syntax/git.vim create mode 100644 .vim/syntax/gitcommit.vim create mode 100644 .vim/syntax/gitconfig.vim create mode 100644 .vim/syntax/gitrebase.vim create mode 100644 .vim/syntax/gitsendemail.vim create mode 100644 .vim/syntax/go.vim create mode 100644 .vim/syntax/godoc.vim create mode 100644 .vim/syntax/htmljinja.vim create mode 100644 .vim/syntax/javascript.vim create mode 100644 .vim/syntax/jinja.vim create mode 100644 .vim/syntax/json.vim create mode 100644 .vim/syntax/mkd.vim create mode 100644 .vim/syntax/nginx.vim create mode 100755 .vim/syntax/processing.vim create mode 100644 .vim/syntax/proto.vim create mode 100644 .vim/syntax/scala.vim create mode 100644 .vimrc create mode 100755 install.sh diff --git a/.vim/.VimballRecord b/.vim/.VimballRecord new file mode 100644 index 0000000..a3e5081 --- /dev/null +++ b/.vim/.VimballRecord @@ -0,0 +1,3 @@ +align.vba: call delete('/home/jorelli/.vim/plugin/AlignPlugin.vim')|call delete('/home/jorelli/.vim/plugin/AlignMapsPlugin.vim')|call delete('/home/jorelli/.vim/plugin/cecutil.vim')|call delete('/home/jorelli/.vim/doc/Align.txt')|call delete('/home/jorelli/.vim/autoload/Align.vim')|call delete('/home/jorelli/.vim/autoload/AlignMaps.vim') +cmdt.vba: call delete('/home/jorelli/.vim/ruby/command-t/controller.rb')|call delete('/home/jorelli/.vim/ruby/command-t/extconf.rb')|call delete('/home/jorelli/.vim/ruby/command-t/finder/buffer_finder.rb')|call delete('/home/jorelli/.vim/ruby/command-t/finder/file_finder.rb')|call delete('/home/jorelli/.vim/ruby/command-t/finder/jump_finder.rb')|call delete('/home/jorelli/.vim/ruby/command-t/finder/tag_finder.rb')|call delete('/home/jorelli/.vim/ruby/command-t/finder.rb')|call delete('/home/jorelli/.vim/ruby/command-t/match_window.rb')|call delete('/home/jorelli/.vim/ruby/command-t/prompt.rb')|call delete('/home/jorelli/.vim/ruby/command-t/scanner/buffer_scanner.rb')|call delete('/home/jorelli/.vim/ruby/command-t/scanner/file_scanner.rb')|call delete('/home/jorelli/.vim/ruby/command-t/scanner/jump_scanner.rb')|call delete('/home/jorelli/.vim/ruby/command-t/scanner/tag_scanner.rb')|call delete('/home/jorelli/.vim/ruby/command-t/scanner.rb')|call delete('/home/jorelli/.vim/ruby/command-t/settings.rb')|call delete('/home/jorelli/.vim/ruby/command-t/stub.rb')|call delete('/home/jorelli/.vim/ruby/command-t/vim/path_utilities.rb')|call delete('/home/jorelli/.vim/ruby/command-t/vim/screen.rb')|call delete('/home/jorelli/.vim/ruby/command-t/vim/window.rb')|call delete('/home/jorelli/.vim/ruby/command-t/vim.rb')|call delete('/home/jorelli/.vim/ruby/command-t/ext.c')|call delete('/home/jorelli/.vim/ruby/command-t/match.c')|call delete('/home/jorelli/.vim/ruby/command-t/matcher.c')|call delete('/home/jorelli/.vim/ruby/command-t/ext.h')|call delete('/home/jorelli/.vim/ruby/command-t/match.h')|call delete('/home/jorelli/.vim/ruby/command-t/matcher.h')|call delete('/home/jorelli/.vim/ruby/command-t/ruby_compat.h')|call delete('/home/jorelli/.vim/ruby/command-t/depend')|call delete('/home/jorelli/.vim/doc/command-t.txt')|call delete('/home/jorelli/.vim/plugin/command-t.vim') +supertab.vim: call delete('/home/jorelli/.vim/doc/supertab.txt')|call delete('/home/jorelli/.vim/plugin/supertab.vim') diff --git a/.vim/.gitignore b/.vim/.gitignore new file mode 100644 index 0000000..b93b595 --- /dev/null +++ b/.vim/.gitignore @@ -0,0 +1,3 @@ +!* +.DS_Store +.netrwhist diff --git a/.vim/.vim b/.vim/.vim new file mode 120000 index 0000000..9956b51 --- /dev/null +++ b/.vim/.vim @@ -0,0 +1 @@ +/home/jorelli/.dotfiles/.vim \ No newline at end of file diff --git a/.vim/NERD_tree.txt b/.vim/NERD_tree.txt new file mode 100644 index 0000000..2e2278c --- /dev/null +++ b/.vim/NERD_tree.txt @@ -0,0 +1,1222 @@ +*NERD_tree.txt* A tree explorer plugin that owns your momma! + + + + omg its ... ~ + + ________ ________ _ ____________ ____ __________ ____________~ + /_ __/ / / / ____/ / | / / ____/ __ \/ __ \ /_ __/ __ \/ ____/ ____/~ + / / / /_/ / __/ / |/ / __/ / /_/ / / / / / / / /_/ / __/ / __/ ~ + / / / __ / /___ / /| / /___/ _, _/ /_/ / / / / _, _/ /___/ /___ ~ + /_/ /_/ /_/_____/ /_/ |_/_____/_/ |_/_____/ /_/ /_/ |_/_____/_____/ ~ + + + Reference Manual~ + + + + +============================================================================== +CONTENTS *NERDTree-contents* + + 1.Intro...................................|NERDTree| + 2.Functionality provided..................|NERDTreeFunctionality| + 2.1.Global commands...................|NERDTreeGlobalCommands| + 2.2.Bookmarks.........................|NERDTreeBookmarks| + 2.2.1.The bookmark table..........|NERDTreeBookmarkTable| + 2.2.2.Bookmark commands...........|NERDTreeBookmarkCommands| + 2.2.3.Invalid bookmarks...........|NERDTreeInvalidBookmarks| + 2.3.NERD tree mappings................|NERDTreeMappings| + 2.4.The NERD tree menu................|NERDTreeMenu| + 3.Options.................................|NERDTreeOptions| + 3.1.Option summary....................|NERDTreeOptionSummary| + 3.2.Option details....................|NERDTreeOptionDetails| + 4.The NERD tree API.......................|NERDTreeAPI| + 4.1.Key map API.......................|NERDTreeKeymapAPI| + 4.2.Menu API..........................|NERDTreeMenuAPI| + 5.About...................................|NERDTreeAbout| + 6.Changelog...............................|NERDTreeChangelog| + 7.Credits.................................|NERDTreeCredits| + 8.License.................................|NERDTreeLicense| + +============================================================================== +1. Intro *NERDTree* + +What is this "NERD tree"?? + +The NERD tree allows you to explore your filesystem and to open files and +directories. It presents the filesystem to you in the form of a tree which you +manipulate with the keyboard and/or mouse. It also allows you to perform +simple filesystem operations. + +The following features and functionality are provided by the NERD tree: + * Files and directories are displayed in a hierarchical tree structure + * Different highlighting is provided for the following types of nodes: + * files + * directories + * sym-links + * windows .lnk files + * read-only files + * executable files + * Many (customisable) mappings are provided to manipulate the tree: + * Mappings to open/close/explore directory nodes + * Mappings to open files in new/existing windows/tabs + * Mappings to change the current root of the tree + * Mappings to navigate around the tree + * ... + * Directories and files can be bookmarked. + * Most NERD tree navigation can also be done with the mouse + * Filtering of tree content (can be toggled at runtime) + * custom file filters to prevent e.g. vim backup files being displayed + * optional displaying of hidden files (. files) + * files can be "turned off" so that only directories are displayed + * The position and size of the NERD tree window can be customised + * The order in which the nodes in the tree are listed can be customised. + * A model of your filesystem is created/maintained as you explore it. This + has several advantages: + * All filesystem information is cached and is only re-read on demand + * If you revisit a part of the tree that you left earlier in your + session, the directory nodes will be opened/closed as you left them + * The script remembers the cursor position and window position in the NERD + tree so you can toggle it off (or just close the tree window) and then + reopen it (with NERDTreeToggle) the NERD tree window will appear exactly + as you left it + * You can have a separate NERD tree for each tab, share trees across tabs, + or a mix of both. + * By default the script overrides the default file browser (netw), so if + you :edit a directory a (slighly modified) NERD tree will appear in the + current window + * A programmable menu system is provided (simulates right clicking on a + node) + * one default menu plugin is provided to perform basic filesytem + operations (create/delete/move/copy files/directories) + * There's an API for adding your own keymappings + + +============================================================================== +2. Functionality provided *NERDTreeFunctionality* + +------------------------------------------------------------------------------ +2.1. Global Commands *NERDTreeGlobalCommands* + +:NERDTree [ | ] *:NERDTree* + Opens a fresh NERD tree. The root of the tree depends on the argument + given. There are 3 cases: If no argument is given, the current directory + will be used. If a directory is given, that will be used. If a bookmark + name is given, the corresponding directory will be used. For example: > + :NERDTree /home/marty/vim7/src + :NERDTree foo (foo is the name of a bookmark) +< +:NERDTreeFromBookmark *:NERDTreeFromBookmark* + Opens a fresh NERD tree with the root initialized to the dir for + . This only reason to use this command over :NERDTree is for + the completion (which is for bookmarks rather than directories). + +:NERDTreeToggle [ | ] *:NERDTreeToggle* + If a NERD tree already exists for this tab, it is reopened and rendered + again. If no NERD tree exists for this tab then this command acts the + same as the |:NERDTree| command. + +:NERDTreeMirror *:NERDTreeMirror* + Shares an existing NERD tree, from another tab, in the current tab. + Changes made to one tree are reflected in both as they are actually the + same buffer. + + If only one other NERD tree exists, that tree is automatically mirrored. If + more than one exists, the script will ask which tree to mirror. + +:NERDTreeClose *:NERDTreeClose* + Close the NERD tree in this tab. + +:NERDTreeFind *:NERDTreeFind* + Find the current file in the tree. If no tree exists for the current tab, + or the file is not under the current root, then initialize a new tree where + the root is the directory of the current file. + +------------------------------------------------------------------------------ +2.2. Bookmarks *NERDTreeBookmarks* + +Bookmarks in the NERD tree are a way to tag files or directories of interest. +For example, you could use bookmarks to tag all of your project directories. + +------------------------------------------------------------------------------ +2.2.1. The Bookmark Table *NERDTreeBookmarkTable* + +If the bookmark table is active (see |NERDTree-B| and +|'NERDTreeShowBookmarks'|), it will be rendered above the tree. You can double +click bookmarks or use the |NERDTree-o| mapping to activate them. See also, +|NERDTree-t| and |NERDTree-T| + +------------------------------------------------------------------------------ +2.2.2. Bookmark commands *NERDTreeBookmarkCommands* + +Note that the following commands are only available in the NERD tree buffer. + +:Bookmark + Bookmark the current node as . If there is already a + bookmark, it is overwritten. must not contain spaces. + +:BookmarkToRoot + Make the directory corresponding to the new root. If a treenode + corresponding to is already cached somewhere in the tree then + the current tree will be used, otherwise a fresh tree will be opened. + Note that if points to a file then its parent will be used + instead. + +:RevealBookmark + If the node is cached under the current root then it will be revealed + (i.e. directory nodes above it will be opened) and the cursor will be + placed on it. + +:OpenBookmark + must point to a file. The file is opened as though |NERDTree-o| + was applied. If the node is cached under the current root then it will be + revealed and the cursor will be placed on it. + +:ClearBookmarks [] + Remove all the given bookmarks. If no bookmarks are given then remove all + bookmarks on the current node. + +:ClearAllBookmarks + Remove all bookmarks. + +:ReadBookmarks + Re-read the bookmarks in the |'NERDTreeBookmarksFile'|. + +See also |:NERDTree| and |:NERDTreeFromBookmark|. + +------------------------------------------------------------------------------ +2.2.3. Invalid Bookmarks *NERDTreeInvalidBookmarks* + +If invalid bookmarks are detected, the script will issue an error message and +the invalid bookmarks will become unavailable for use. + +These bookmarks will still be stored in the bookmarks file (see +|'NERDTreeBookmarksFile'|), down the bottom. There will always be a blank line +after the valid bookmarks but before the invalid ones. + +Each line in the bookmarks file represents one bookmark. The proper format is: + + +After you have corrected any invalid bookmarks, either restart vim, or go +:ReadBookmarks from the NERD tree window. + +------------------------------------------------------------------------------ +2.3. NERD tree Mappings *NERDTreeMappings* + +Default Description~ help-tag~ +Key~ + +o.......Open files, directories and bookmarks....................|NERDTree-o| +go......Open selected file, but leave cursor in the NERDTree.....|NERDTree-go| +t.......Open selected node/bookmark in a new tab.................|NERDTree-t| +T.......Same as 't' but keep the focus on the current tab........|NERDTree-T| +i.......Open selected file in a split window.....................|NERDTree-i| +gi......Same as i, but leave the cursor on the NERDTree..........|NERDTree-gi| +s.......Open selected file in a new vsplit.......................|NERDTree-s| +gs......Same as s, but leave the cursor on the NERDTree..........|NERDTree-gs| +O.......Recursively open the selected directory..................|NERDTree-O| +x.......Close the current nodes parent...........................|NERDTree-x| +X.......Recursively close all children of the current node.......|NERDTree-X| +e.......Edit the current dif.....................................|NERDTree-e| + +...............same as |NERDTree-o|. +double-click.......same as the |NERDTree-o| map. +middle-click.......same as |NERDTree-i| for files, same as + |NERDTree-e| for dirs. + +D.......Delete the current bookmark .............................|NERDTree-D| + +P.......Jump to the root node....................................|NERDTree-P| +p.......Jump to current nodes parent.............................|NERDTree-p| +K.......Jump up inside directories at the current tree depth.....|NERDTree-K| +J.......Jump down inside directories at the current tree depth...|NERDTree-J| +...Jump down to the next sibling of the current directory...|NERDTree-C-J| +...Jump up to the previous sibling of the current directory.|NERDTree-C-K| + +C.......Change the tree root to the selected dir.................|NERDTree-C| +u.......Move the tree root up one directory......................|NERDTree-u| +U.......Same as 'u' except the old root node is left open........|NERDTree-U| +r.......Recursively refresh the current directory................|NERDTree-r| +R.......Recursively refresh the current root.....................|NERDTree-R| +m.......Display the NERD tree menu...............................|NERDTree-m| +cd......Change the CWD to the dir of the selected node...........|NERDTree-cd| + +I.......Toggle whether hidden files displayed....................|NERDTree-I| +f.......Toggle whether the file filters are used.................|NERDTree-f| +F.......Toggle whether files are displayed.......................|NERDTree-F| +B.......Toggle whether the bookmark table is displayed...........|NERDTree-B| + +q.......Close the NERDTree window................................|NERDTree-q| +A.......Zoom (maximize/minimize) the NERDTree window.............|NERDTree-A| +?.......Toggle the display of the quick help.....................|NERDTree-?| + +------------------------------------------------------------------------------ + *NERDTree-o* +Default key: o +Map option: NERDTreeMapActivateNode +Applies to: files and directories. + +If a file node is selected, it is opened in the previous window. + +If a directory is selected it is opened or closed depending on its current +state. + +If a bookmark that links to a directory is selected then that directory +becomes the new root. + +If a bookmark that links to a file is selected then that file is opened in the +previous window. + +------------------------------------------------------------------------------ + *NERDTree-go* +Default key: go +Map option: None +Applies to: files. + +If a file node is selected, it is opened in the previous window, but the +cursor does not move. + +The key combo for this mapping is always "g" + NERDTreeMapActivateNode (see +|NERDTree-o|). + +------------------------------------------------------------------------------ + *NERDTree-t* +Default key: t +Map option: NERDTreeMapOpenInTab +Applies to: files and directories. + +Opens the selected file in a new tab. If a directory is selected, a fresh +NERD Tree for that directory is opened in a new tab. + +If a bookmark which points to a directory is selected, open a NERD tree for +that directory in a new tab. If the bookmark points to a file, open that file +in a new tab. + +------------------------------------------------------------------------------ + *NERDTree-T* +Default key: T +Map option: NERDTreeMapOpenInTabSilent +Applies to: files and directories. + +The same as |NERDTree-t| except that the focus is kept in the current tab. + +------------------------------------------------------------------------------ + *NERDTree-i* +Default key: i +Map option: NERDTreeMapOpenSplit +Applies to: files. + +Opens the selected file in a new split window and puts the cursor in the new +window. + +------------------------------------------------------------------------------ + *NERDTree-gi* +Default key: gi +Map option: None +Applies to: files. + +The same as |NERDTree-i| except that the cursor is not moved. + +The key combo for this mapping is always "g" + NERDTreeMapOpenSplit (see +|NERDTree-i|). + +------------------------------------------------------------------------------ + *NERDTree-s* +Default key: s +Map option: NERDTreeMapOpenVSplit +Applies to: files. + +Opens the selected file in a new vertically split window and puts the cursor in +the new window. + +------------------------------------------------------------------------------ + *NERDTree-gs* +Default key: gs +Map option: None +Applies to: files. + +The same as |NERDTree-s| except that the cursor is not moved. + +The key combo for this mapping is always "g" + NERDTreeMapOpenVSplit (see +|NERDTree-s|). + +------------------------------------------------------------------------------ + *NERDTree-O* +Default key: O +Map option: NERDTreeMapOpenRecursively +Applies to: directories. + +Recursively opens the selelected directory. + +All files and directories are cached, but if a directory would not be +displayed due to file filters (see |'NERDTreeIgnore'| |NERDTree-f|) or the +hidden file filter (see |'NERDTreeShowHidden'|) then its contents are not +cached. This is handy, especially if you have .svn directories. + +------------------------------------------------------------------------------ + *NERDTree-x* +Default key: x +Map option: NERDTreeMapCloseDir +Applies to: files and directories. + +Closes the parent of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-X* +Default key: X +Map option: NERDTreeMapCloseChildren +Applies to: directories. + +Recursively closes all children of the selected directory. + +Tip: To quickly "reset" the tree, use |NERDTree-P| with this mapping. + +------------------------------------------------------------------------------ + *NERDTree-e* +Default key: e +Map option: NERDTreeMapOpenExpl +Applies to: files and directories. + +|:edit|s the selected directory, or the selected file's directory. This could +result in a NERD tree or a netrw being opened, depending on +|'NERDTreeHijackNetrw'|. + +------------------------------------------------------------------------------ + *NERDTree-D* +Default key: D +Map option: NERDTreeMapDeleteBookmark +Applies to: lines in the bookmarks table + +Deletes the currently selected bookmark. + +------------------------------------------------------------------------------ + *NERDTree-P* +Default key: P +Map option: NERDTreeMapJumpRoot +Applies to: no restrictions. + +Jump to the tree root. + +------------------------------------------------------------------------------ + *NERDTree-p* +Default key: p +Map option: NERDTreeMapJumpParent +Applies to: files and directories. + +Jump to the parent node of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-K* +Default key: K +Map option: NERDTreeMapJumpFirstChild +Applies to: files and directories. + +Jump to the first child of the current nodes parent. + +If the cursor is already on the first node then do the following: + * loop back thru the siblings of the current nodes parent until we find an + open dir with children + * go to the first child of that node + +------------------------------------------------------------------------------ + *NERDTree-J* +Default key: J +Map option: NERDTreeMapJumpLastChild +Applies to: files and directories. + +Jump to the last child of the current nodes parent. + +If the cursor is already on the last node then do the following: + * loop forward thru the siblings of the current nodes parent until we find + an open dir with children + * go to the last child of that node + +------------------------------------------------------------------------------ + *NERDTree-C-J* +Default key: +Map option: NERDTreeMapJumpNextSibling +Applies to: files and directories. + +Jump to the next sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C-K* +Default key: +Map option: NERDTreeMapJumpPrevSibling +Applies to: files and directories. + +Jump to the previous sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C* +Default key: C +Map option: NERDTreeMapChdir +Applies to: directories. + +Make the selected directory node the new tree root. If a file is selected, its +parent is used. + +------------------------------------------------------------------------------ + *NERDTree-u* +Default key: u +Map option: NERDTreeMapUpdir +Applies to: no restrictions. + +Move the tree root up a dir (like doing a "cd .."). + +------------------------------------------------------------------------------ + *NERDTree-U* +Default key: U +Map option: NERDTreeMapUpdirKeepOpen +Applies to: no restrictions. + +Like |NERDTree-u| except that the old tree root is kept open. + +------------------------------------------------------------------------------ + *NERDTree-r* +Default key: r +Map option: NERDTreeMapRefresh +Applies to: files and directories. + +If a dir is selected, recursively refresh that dir, i.e. scan the filesystem +for changes and represent them in the tree. + +If a file node is selected then the above is done on it's parent. + +------------------------------------------------------------------------------ + *NERDTree-R* +Default key: R +Map option: NERDTreeMapRefreshRoot +Applies to: no restrictions. + +Recursively refresh the tree root. + +------------------------------------------------------------------------------ + *NERDTree-m* +Default key: m +Map option: NERDTreeMapMenu +Applies to: files and directories. + +Display the NERD tree menu. See |NERDTreeMenu| for details. + +------------------------------------------------------------------------------ + *NERDTree-cd* +Default key: cd +Map option: NERDTreeMapChdir +Applies to: files and directories. + +Change vims current working directory to that of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-I* +Default key: I +Map option: NERDTreeMapToggleHidden +Applies to: no restrictions. + +Toggles whether hidden files (i.e. "dot files") are displayed. + +------------------------------------------------------------------------------ + *NERDTree-f* +Default key: f +Map option: NERDTreeMapToggleFilters +Applies to: no restrictions. + +Toggles whether file filters are used. See |'NERDTreeIgnore'| for details. + +------------------------------------------------------------------------------ + *NERDTree-F* +Default key: F +Map option: NERDTreeMapToggleFiles +Applies to: no restrictions. + +Toggles whether file nodes are displayed. + +------------------------------------------------------------------------------ + *NERDTree-B* +Default key: B +Map option: NERDTreeMapToggleBookmarks +Applies to: no restrictions. + +Toggles whether the bookmarks table is displayed. + +------------------------------------------------------------------------------ + *NERDTree-q* +Default key: q +Map option: NERDTreeMapQuit +Applies to: no restrictions. + +Closes the NERDtree window. + +------------------------------------------------------------------------------ + *NERDTree-A* +Default key: A +Map option: NERDTreeMapToggleZoom +Applies to: no restrictions. + +Maximize (zoom) and minimize the NERDtree window. + +------------------------------------------------------------------------------ + *NERDTree-?* +Default key: ? +Map option: NERDTreeMapHelp +Applies to: no restrictions. + +Toggles whether the quickhelp is displayed. + +------------------------------------------------------------------------------ +2.3. The NERD tree menu *NERDTreeMenu* + +The NERD tree has a menu that can be programmed via the an API (see +|NERDTreeMenuAPI|). The idea is to simulate the "right click" menus that most +file explorers have. + +The script comes with two default menu plugins: exec_menuitem.vim and +fs_menu.vim. fs_menu.vim adds some basic filesystem operations to the menu for +creating/deleting/moving/copying files and dirs. exec_menuitem.vim provides a +menu item to execute executable files. + +Related tags: |NERDTree-m| |NERDTreeApi| + +============================================================================== +3. Customisation *NERDTreeOptions* + + +------------------------------------------------------------------------------ +3.1. Customisation summary *NERDTreeOptionSummary* + +The script provides the following options that can customise the behaviour the +NERD tree. These options should be set in your vimrc. + +|'loaded_nerd_tree'| Turns off the script. + +|'NERDChristmasTree'| Tells the NERD tree to make itself colourful + and pretty. + +|'NERDTreeAutoCenter'| Controls whether the NERD tree window centers + when the cursor moves within a specified + distance to the top/bottom of the window. +|'NERDTreeAutoCenterThreshold'| Controls the sensitivity of autocentering. + +|'NERDTreeCaseSensitiveSort'| Tells the NERD tree whether to be case + sensitive or not when sorting nodes. + +|'NERDTreeChDirMode'| Tells the NERD tree if/when it should change + vim's current working directory. + +|'NERDTreeHighlightCursorline'| Tell the NERD tree whether to highlight the + current cursor line. + +|'NERDTreeHijackNetrw'| Tell the NERD tree whether to replace the netrw + autocommands for exploring local directories. + +|'NERDTreeIgnore'| Tells the NERD tree which files to ignore. + +|'NERDTreeBookmarksFile'| Where the bookmarks are stored. + +|'NERDTreeMouseMode'| Tells the NERD tree how to handle mouse + clicks. + +|'NERDTreeQuitOnOpen'| Closes the tree window after opening a file. + +|'NERDTreeShowBookmarks'| Tells the NERD tree whether to display the + bookmarks table on startup. + +|'NERDTreeShowFiles'| Tells the NERD tree whether to display files + in the tree on startup. + +|'NERDTreeShowHidden'| Tells the NERD tree whether to display hidden + files on startup. + +|'NERDTreeShowLineNumbers'| Tells the NERD tree whether to display line + numbers in the tree window. + +|'NERDTreeSortOrder'| Tell the NERD tree how to sort the nodes in + the tree. + +|'NERDTreeStatusline'| Set a statusline for NERD tree windows. + +|'NERDTreeWinPos'| Tells the script where to put the NERD tree + window. + +|'NERDTreeWinSize'| Sets the window size when the NERD tree is + opened. + +------------------------------------------------------------------------------ +3.2. Customisation details *NERDTreeOptionDetails* + +To enable any of the below options you should put the given line in your +~/.vimrc + + *'loaded_nerd_tree'* +If this plugin is making you feel homicidal, it may be a good idea to turn it +off with this line in your vimrc: > + let loaded_nerd_tree=1 +< +------------------------------------------------------------------------------ + *'NERDChristmasTree'* +Values: 0 or 1. +Default: 1. + +If this option is set to 1 then some extra syntax highlighting elements are +added to the nerd tree to make it more colourful. + +Set it to 0 for a more vanilla looking tree. + +------------------------------------------------------------------------------ + *'NERDTreeAutoCenter'* +Values: 0 or 1. +Default: 1 + +If set to 1, the NERD tree window will center around the cursor if it moves to +within |'NERDTreeAutoCenterThreshold'| lines of the top/bottom of the window. + +This is ONLY done in response to tree navigation mappings, +i.e. |NERDTree-J| |NERDTree-K| |NERDTree-C-J| |NERDTree-C-K| |NERDTree-p| +|NERDTree-P| + +The centering is done with a |zz| operation. + +------------------------------------------------------------------------------ + *'NERDTreeAutoCenterThreshold'* +Values: Any natural number. +Default: 3 + +This option controls the "sensitivity" of the NERD tree auto centering. See +|'NERDTreeAutoCenter'| for details. + +------------------------------------------------------------------------------ + *'NERDTreeCaseSensitiveSort'* +Values: 0 or 1. +Default: 0. + +By default the NERD tree does not sort nodes case sensitively, i.e. nodes +could appear like this: > + bar.c + Baz.c + blarg.c + boner.c + Foo.c +< +But, if you set this option to 1 then the case of the nodes will be taken into +account. The above nodes would then be sorted like this: > + Baz.c + Foo.c + bar.c + blarg.c + boner.c +< +------------------------------------------------------------------------------ + *'NERDTreeChDirMode'* + +Values: 0, 1 or 2. +Default: 0. + +Use this option to tell the script when (if at all) to change the current +working directory (CWD) for vim. + +If it is set to 0 then the CWD is never changed by the NERD tree. + +If set to 1 then the CWD is changed when the NERD tree is first loaded to the +directory it is initialized in. For example, if you start the NERD tree with > + :NERDTree /home/marty/foobar +< +then the CWD will be changed to /home/marty/foobar and will not be changed +again unless you init another NERD tree with a similar command. + +If the option is set to 2 then it behaves the same as if set to 1 except that +the CWD is changed whenever the tree root is changed. For example, if the CWD +is /home/marty/foobar and you make the node for /home/marty/foobar/baz the new +root then the CWD will become /home/marty/foobar/baz. + +------------------------------------------------------------------------------ + *'NERDTreeHighlightCursorline'* +Values: 0 or 1. +Default: 1. + +If set to 1, the current cursor line in the NERD tree buffer will be +highlighted. This is done using the |'cursorline'| option. + +------------------------------------------------------------------------------ + *'NERDTreeHijackNetrw'* +Values: 0 or 1. +Default: 1. + +If set to 1, doing a > + :edit +< +will open up a "secondary" NERD tree instead of a netrw in the target window. + +Secondary NERD trees behaves slighly different from a regular trees in the +following respects: + 1. 'o' will open the selected file in the same window as the tree, + replacing it. + 2. you can have as many secondary tree as you want in the same tab. + +------------------------------------------------------------------------------ + *'NERDTreeIgnore'* +Values: a list of regular expressions. +Default: ['\~$']. + +This option is used to specify which files the NERD tree should ignore. It +must be a list of regular expressions. When the NERD tree is rendered, any +files/dirs that match any of the regex's in 'NERDTreeIgnore' wont be +displayed. + +For example if you put the following line in your vimrc: > + let NERDTreeIgnore=['\.vim$', '\~$'] +< +then all files ending in .vim or ~ will be ignored. + +Note: to tell the NERD tree not to ignore any files you must use the following +line: > + let NERDTreeIgnore=[] +< + +The file filters can be turned on and off dynamically with the |NERDTree-f| +mapping. + +------------------------------------------------------------------------------ + *'NERDTreeBookmarksFile'* +Values: a path +Default: $HOME/.NERDTreeBookmarks + +This is where bookmarks are saved. See |NERDTreeBookmarkCommands|. + +------------------------------------------------------------------------------ + *'NERDTreeMouseMode'* +Values: 1, 2 or 3. +Default: 1. + +If set to 1 then a double click on a node is required to open it. +If set to 2 then a single click will open directory nodes, while a double +click will still be required for file nodes. +If set to 3 then a single click will open any node. + +Note: a double click anywhere on a line that a tree node is on will +activate it, but all single-click activations must be done on name of the node +itself. For example, if you have the following node: > + | | |-application.rb +< +then (to single click activate it) you must click somewhere in +'application.rb'. + +------------------------------------------------------------------------------ + *'NERDTreeQuitOnOpen'* + +Values: 0 or 1. +Default: 0 + +If set to 1, the NERD tree window will close after opening a file with the +|NERDTree-o|, |NERDTree-i|, |NERDTree-t| and |NERDTree-T| mappings. + +------------------------------------------------------------------------------ + *'NERDTreeShowBookmarks'* +Values: 0 or 1. +Default: 0. + +If this option is set to 1 then the bookmarks table will be displayed. + +This option can be toggled dynamically, per tree, with the |NERDTree-B| +mapping. + +------------------------------------------------------------------------------ + *'NERDTreeShowFiles'* +Values: 0 or 1. +Default: 1. + +If this option is set to 1 then files are displayed in the NERD tree. If it is +set to 0 then only directories are displayed. + +This option can be toggled dynamically, per tree, with the |NERDTree-F| +mapping and is useful for drastically shrinking the tree when you are +navigating to a different part of the tree. + +------------------------------------------------------------------------------ + *'NERDTreeShowHidden'* +Values: 0 or 1. +Default: 0. + +This option tells vim whether to display hidden files by default. This option +can be dynamically toggled, per tree, with the |NERDTree-I| mapping. Use one +of the follow lines to set this option: > + let NERDTreeShowHidden=0 + let NERDTreeShowHidden=1 +< + +------------------------------------------------------------------------------ + *'NERDTreeShowLineNumbers'* +Values: 0 or 1. +Default: 0. + +This option tells vim whether to display line numbers for the NERD tree +window. Use one of the follow lines to set this option: > + let NERDTreeShowLineNumbers=0 + let NERDTreeShowLineNumbers=1 +< + +------------------------------------------------------------------------------ + *'NERDTreeSortOrder'* +Values: a list of regular expressions. +Default: ['\/$', '*', '\.swp$', '\.bak$', '\~$'] + +This option is set to a list of regular expressions which are used to +specify the order of nodes under their parent. + +For example, if the option is set to: > + ['\.vim$', '\.c$', '\.h$', '*', 'foobar'] +< +then all .vim files will be placed at the top, followed by all .c files then +all .h files. All files containing the string 'foobar' will be placed at the +end. The star is a special flag: it tells the script that every node that +doesnt match any of the other regexps should be placed here. + +If no star is present in 'NERDTreeSortOrder' then one is automatically +appended to the array. + +The regex '\/$' should be used to match directory nodes. + +After this sorting is done, the files in each group are sorted alphabetically. + +Other examples: > + (1) ['*', '\/$'] + (2) [] + (3) ['\/$', '\.rb$', '\.php$', '*', '\.swp$', '\.bak$', '\~$'] +< +1. Directories will appear last, everything else will appear above. +2. Everything will simply appear in alphabetical order. +3. Dirs will appear first, then ruby and php. Swap files, bak files and vim + backup files will appear last with everything else preceding them. + +------------------------------------------------------------------------------ + *'NERDTreeStatusline'* +Values: Any valid statusline setting. +Default: %{b:NERDTreeRoot.path.strForOS(0)} + +Tells the script what to use as the |'statusline'| setting for NERD tree +windows. + +Note that the statusline is set using |:let-&| not |:set| so escaping spaces +isn't necessary. + +Setting this option to -1 will will deactivate it so that your global +statusline setting is used instead. + +------------------------------------------------------------------------------ + *'NERDTreeWinPos'* +Values: "left" or "right" +Default: "left". + +This option is used to determine where NERD tree window is placed on the +screen. + +This option makes it possible to use two different explorer plugins +simultaneously. For example, you could have the taglist plugin on the left of +the window and the NERD tree on the right. + +------------------------------------------------------------------------------ + *'NERDTreeWinSize'* +Values: a positive integer. +Default: 31. + +This option is used to change the size of the NERD tree when it is loaded. + +============================================================================== +4. The NERD tree API *NERDTreeAPI* + +The NERD tree script allows you to add custom key mappings and menu items via +a set of API calls. Any scripts that use this API should be placed in +~/.vim/nerdtree_plugin/ (*nix) or ~/vimfiles/nerdtree_plugin (windows). + +The script exposes some prototype objects that can be used to manipulate the +tree and/or get information from it: > + g:NERDTreePath + g:NERDTreeDirNode + g:NERDTreeFileNode + g:NERDTreeBookmark +< +See the code/comments in NERD_tree.vim to find how to use these objects. The +following code conventions are used: + * class members start with a capital letter + * instance members start with a lower case letter + * private members start with an underscore + +See this blog post for more details: + http://got-ravings.blogspot.com/2008/09/vim-pr0n-prototype-based-objects.html + +------------------------------------------------------------------------------ +4.1. Key map API *NERDTreeKeymapAPI* + +NERDTreeAddKeyMap({options}) *NERDTreeAddKeyMap()* + Adds a new keymapping for all NERD tree buffers. + {options} must be a dictionary, and must contain the following keys: + "key" - the trigger key for the new mapping + "callback" - the function the new mapping will be bound to + "quickhelpText" - the text that will appear in the quickhelp (see + |NERDTree-?|) + + Example: > + call NERDTreeAddKeyMap({ + \ 'key': 'b', + \ 'callback': 'NERDTreeEchoCurrentNode', + \ 'quickhelpText': 'echo full path of current node' }) + + function! NERDTreeEchoCurrentNode() + let n = g:NERDTreeFileNode.GetSelected() + if n != {} + echomsg 'Current node: ' . n.path.str() + endif + endfunction +< + This code should sit in a file like ~/.vim/nerdtree_plugin/mymapping.vim. + It adds a (rather useless) mapping on 'b' which echos the full path to the + current node. + +------------------------------------------------------------------------------ +4.2. Menu API *NERDTreeMenuAPI* + +NERDTreeAddSubmenu({options}) *NERDTreeAddSubmenu()* + Creates and returns a new submenu. + + {options} must be a dictionary and must contain the following keys: + "text" - the text of the submenu that the user will see + "shortcut" - a shortcut key for the submenu (need not be unique) + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this submenu item will be displayed or not. The callback function must return + 0 or 1. + "parent" - the parent submenu of the new submenu (returned from a previous + invocation of NERDTreeAddSubmenu()). If this key is left out then the new + submenu will sit under the top level menu. + + See below for an example. + +NERDTreeAddMenuItem({options}) *NERDTreeAddMenuItem()* + Adds a new menu item to the NERD tree menu (see |NERDTreeMenu|). + + {options} must be a dictionary and must contain the + following keys: + "text" - the text of the menu item which the user will see + "shortcut" - a shortcut key for the menu item (need not be unique) + "callback" - the function that will be called when the user activates the + menu item. + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this menu item will be displayed or not. The callback function must return + 0 or 1. + "parent" - if the menu item belongs under a submenu then this key must be + specified. This value for this key will be the object that + was returned when the submenu was created with |NERDTreeAddSubmenu()|. + + See below for an example. + +NERDTreeAddMenuSeparator([{options}]) *NERDTreeAddMenuSeparator()* + Adds a menu separator (a row of dashes). + + {options} is an optional dictionary that may contain the following keys: + "isActiveCallback" - see description in |NERDTreeAddMenuItem()|. + +Below is an example of the menu API in action. > + call NERDTreeAddMenuSeparator() + + call NERDTreeAddMenuItem({ + \ 'text': 'a (t)op level menu item', + \ 'shortcut': 't', + \ 'callback': 'SomeFunction' }) + + let submenu = NERDTreeAddSubmenu({ + \ 'text': 'a (s)ub menu', + \ 'shortcut': 's' }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 1', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 2', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) +< +This will create the following menu: > + -------------------- + a (t)op level menu item + a (s)ub menu +< +Where selecting "a (s)ub menu" will lead to a second menu: > + (n)ested item 1 + (n)ested item 2 +< +When any of the 3 concrete menu items are selected the function "SomeFunction" +will be called. + +------------------------------------------------------------------------------ +NERDTreeRender() *NERDTreeRender()* + Re-renders the NERD tree buffer. Useful if you change the state of the + tree and you want to it to be reflected in the UI. + +============================================================================== +5. About *NERDTreeAbout* + +The author of the NERD tree is a terrible terrible monster called Martyzilla +who gobbles up small children with milk and sugar for breakfast. + +He can be reached at martin.grenfell at gmail dot com. He would love to hear +from you, so feel free to send him suggestions and/or comments about this +plugin. Don't be shy --- the worst he can do is slaughter you and stuff you in +the fridge for later ;) + +The latest stable versions can be found at + http://www.vim.org/scripts/script.php?script_id=1658 + +The latest dev versions are on github + http://github.com/scrooloose/nerdtree + + +============================================================================== +6. Changelog *NERDTreeChangelog* + +4.1.0 + features: + - NERDTreeFind to reveal the node for the current buffer in the tree, + see |NERDTreeFind|. This effectively merges the FindInNERDTree plugin (by + Doug McInnes) into the script. + - make NERDTreeQuitOnOpen apply to the t/T keymaps too. Thanks to Stefan + Ritter and Rémi Prévost. + - truncate the root node if wider than the tree window. Thanks to Victor + Gonzalez. + + bugfixes: + - really fix window state restoring + - fix some win32 path escaping issues. Thanks to Stephan Baumeister, Ricky, + jfilip1024, and Chris Chambers + +4.0.0 + - add a new programmable menu system (see :help NERDTreeMenu). + - add new APIs to add menus/menu-items to the menu system as well as + custom key mappings to the NERD tree buffer (see :help NERDTreeAPI). + - removed the old API functions + - added a mapping to maximize/restore the size of nerd tree window, thanks + to Guillaume Duranceau for the patch. See :help NERDTree-A for details. + + - fix a bug where secondary nerd trees (netrw hijacked trees) and + NERDTreeQuitOnOpen didnt play nicely, thanks to Curtis Harvey. + - fix a bug where the script ignored directories whose name ended in a dot, + thanks to Aggelos Orfanakos for the patch. + - fix a bug when using the x mapping on the tree root, thanks to Bryan + Venteicher for the patch. + - fix a bug where the cursor position/window size of the nerd tree buffer + wasnt being stored on closing the window, thanks to Richard Hart. + - fix a bug where NERDTreeMirror would mirror the wrong tree + +3.1.1 + - fix a bug where a non-listed no-name buffer was getting created every + time the tree windows was created, thanks to Derek Wyatt and owen1 + - make behave the same as the 'o' mapping + - some helptag fixes in the doc, thanks strull + - fix a bug when using :set nohidden and opening a file where the previous + buf was modified. Thanks iElectric + - other minor fixes + +3.1.0 + New features: + - add mappings to open files in a vsplit, see :help NERDTree-s and :help + NERDTree-gs + - make the statusline for the nerd tree window default to something + hopefully more useful. See :help 'NERDTreeStatusline' + Bugfixes: + - make the hijack netrw functionality work when vim is started with "vim + " (thanks to Alf Mikula for the patch). + - fix a bug where the CWD wasnt being changed for some operations even when + NERDTreeChDirMode==2 (thanks to Lucas S. Buchala) + - add -bar to all the nerd tree :commands so they can chain with other + :commands (thanks to tpope) + - fix bugs when ignorecase was set (thanks to nach) + - fix a bug with the relative path code (thanks to nach) + - fix a bug where doing a :cd would cause :NERDTreeToggle to fail (thanks nach) + + +3.0.1 + Bugfixes: + - fix bugs with :NERDTreeToggle and :NERDTreeMirror when 'hidden + was not set + - fix a bug where :NERDTree would fail if was relative and + didnt start with a ./ or ../ Thanks to James Kanze. + - make the q mapping work with secondary (:e style) trees, + thanks to jamessan + - fix a bunch of small bugs with secondary trees + + More insane refactoring. + +3.0.0 + - hijack netrw so that doing an :edit will put a NERD tree in + the window rather than a netrw browser. See :help 'NERDTreeHijackNetrw' + - allow sharing of trees across tabs, see :help :NERDTreeMirror + - remove "top" and "bottom" as valid settings for NERDTreeWinPos + - change the '' mapping to 'i' + - change the 'H' mapping to 'I' + - lots of refactoring + +============================================================================== +7. Credits *NERDTreeCredits* + +Thanks to the following people for testing, bug reports, ideas etc. Without +you I probably would have got bored of the hacking the NERD tree and +just downloaded pr0n instead. + + Tim Carey-Smith (halorgium) + Vigil + Nick Brettell + Thomas Scott Urban + Terrance Cohen + Yegappan Lakshmanan + Jason Mills + Michael Geddes (frogonwheels) + Yu Jun + Michael Madsen + AOYAMA Shotaro + Zhang Weiwu + Niels Aan de Brugh + Olivier Yiptong + Zhang Shuhan + Cory Echols + Piotr Czachur + Yuan Jiang + Matan Nassau + Maxim Kim + Charlton Wang + Matt Wozniski (godlygeek) + knekk + Sean Chou + Ryan Penn + Simon Peter Nicholls + Michael Foobar + Tomasz Chomiuk + Denis Pokataev + Tim Pope (tpope) + James Kanze + James Vega (jamessan) + Frederic Chanal (nach) + Alf Mikula + Lucas S. Buchala + Curtis Harvey + Guillaume Duranceau + Richard Hart (hates) + Doug McInnes + Stefan Ritter + Rémi Prévost + Victor Gonzalez + Stephan Baumeister + Ricky + jfilip1024 + Chris Chambers + +============================================================================== +8. License *NERDTreeLicense* + +The NERD tree is released under the wtfpl. +See http://sam.zoy.org/wtfpl/COPYING. diff --git a/.vim/README.markdown b/.vim/README.markdown new file mode 100644 index 0000000..b98b7b3 --- /dev/null +++ b/.vim/README.markdown @@ -0,0 +1,21 @@ +extradite.vim +============= +A git commit browser / git log wrapper that extends fugitive.vim. + +`:Extradite` launches the Extradite buffer, i.e. the commit browser. By +default, it opens in the current window. Adding |!| makes it open in a vertical +split instead. The width of the split is set with `g:extradite_width`. + +Once we are in the Extradite buffer, the following keymaps are available: + +`` edits the revision on the current line in a fugitive-buffer. + +`oh`, `ov`, and `ot` edit the revision under the cursor in a new horizontal +split / vertical split / tab respectively. + +`dh`, `dv`, and `dt` diff the current file against the revision under the +cursor in a new horizontal split / vertical split / tab respectively. + +`t` toggles the visibility of the file diff buffer. + +`q` closes the Extradite buffer. diff --git a/.vim/autoload/Align.vim b/.vim/autoload/Align.vim new file mode 100644 index 0000000..714421e --- /dev/null +++ b/.vim/autoload/Align.vim @@ -0,0 +1,1140 @@ +" Align: tool to align multiple fields based on one or more separators +" Author: Charles E. Campbell +" Date: Mar 12, 2013 +" Version: 37 +" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim +" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim +" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1 +" Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" Align.vim is provided *as is* and comes with no warranty +" of any kind, either expressed or implied. By using this +" plugin, you agree that in no event will the copyright +" holder be liable for any damages resulting from the use +" of this software. +" +" Romans 1:16,17a : For I am not ashamed of the gospel of Christ, for it is {{{1 +" the power of God for salvation for everyone who believes; for the Jew first, +" and also for the Greek. For in it is revealed God's righteousness from +" faith to faith. +"redraw!|call DechoSep()|call inputsave()|call input("Press to continue")|call inputrestore() + +" --------------------------------------------------------------------- +" Load Once: {{{1 +if exists("g:loaded_Align") || &cp + finish +endif +let g:loaded_Align = "v37" +if v:version < 700 + echohl WarningMsg + echo "***warning*** this version of Align needs vim 7.0" + echohl Normal + finish +endif +let s:keepcpo= &cpo +set cpo&vim +"DechoTabOn + +" --------------------------------------------------------------------- +" Debugging Support: {{{1 +"if !exists("g:loaded_Decho") | runtime plugin/Decho.vim | endif + +" --------------------------------------------------------------------- +" Options: {{{1 +if !exists("g:Align_xstrlen") + if exists("g:drawit_xstrlen") + let g:Align_xstrlen= g:drawit_xstrlen + elseif exists("g:netrw_xstrlen") + let g:Align_xstrlen= g:netrw_xstrlen + elseif &enc == "latin1" || !has("multi_byte") + let g:Align_xstrlen= 0 + else + let g:Align_xstrlen= 1 + endif +endif + +" --------------------------------------------------------------------- +" Align#AlignCtrl: enter alignment patterns here {{{1 +" +" Styles = all alignment-break patterns are equivalent +" C cycle through alignment-break pattern(s) +" l left-justified alignment +" r right-justified alignment +" c center alignment +" - skip separator, treat as part of field +" : treat rest of line as field +" + repeat previous [lrc] style +" < left justify separators +" > right justify separators +" | center separators +" +" Builds = s:AlignPat s:AlignCtrl s:AlignPatQty +" C s:AlignPat s:AlignCtrl s:AlignPatQty +" p s:AlignPrePad +" P s:AlignPostPad +" w s:AlignLeadKeep +" W s:AlignLeadKeep +" I s:AlignLeadKeep +" l s:AlignStyle +" r s:AlignStyle +" - s:AlignStyle +" + s:AlignStyle +" : s:AlignStyle +" c s:AlignStyle +" g s:AlignGPat +" v s:AlignVPat +" < s:AlignSep +" > s:AlignSep +" | s:AlignSep +fun! Align#AlignCtrl(...) + +" call Dfunc("Align#AlignCtrl(...) a:0=".a:0) + + " save options that may be changed later + call s:SaveUserOptions() + + " turn ignorecase off + setlocal noic + + " clear visual mode so that old visual-mode selections don't + " get applied to new invocations of Align(). + if v:version < 602 + if !exists("s:Align_gavemsg") + let s:Align_gavemsg= 1 + echomsg "Align needs at least Vim version 6.2 to clear visual-mode selection" + endif + elseif exists("s:dovisclear") +" call Decho("clearing visual mode a:0=".a:0." a:1<".a:1.">") + let clearvmode= visualmode(1) + endif + + " set up a list akin to an argument list + if a:0 > 0 + let A= s:QArgSplitter(a:1) + else + let A=[0] + endif + + if A[0] > 0 + let style = A[1] + + " Check for bad separator patterns (zero-length matches) + " (but zero-length patterns for g/v is ok) + if style !~# '[gv]' + let ipat= 2 + while ipat <= A[0] + if "" =~ A[ipat] + echoerr "(AlignCtrl) separator<".A[ipat]."> matches zero-length string" + call s:RestoreUserOptions() +" call Dret("Align#AlignCtrl") + return + endif + let ipat= ipat + 1 + endwhile + endif + endif +" call Decho("(AlignCtrl) passed bad-separator pattern check (no zero-length matches)") + +" call Decho("(AlignCtrl) A[0]=".A[0]) + if !exists("s:AlignStyle") + let s:AlignStyle= 'l' + endif + if !exists("s:AlignPrePad") + let s:AlignPrePad= 0 + endif + if !exists("s:AlignPostPad") + let s:AlignPostPad= 0 + endif + if !exists("s:AlignLeadKeep") + let s:AlignLeadKeep= 'w' + endif + + if A[0] == 0 + " ---------------------- + " List current selection + " ---------------------- + if !exists("s:AlignPatQty") + let s:AlignPatQty= 0 + endif + echo "AlignCtrl<".s:AlignCtrl."> qty=".s:AlignPatQty." AlignStyle<".s:AlignStyle."> Padding<".s:AlignPrePad."|".s:AlignPostPad."> LeadingWS=".s:AlignLeadKeep." AlignSep=".s:AlignSep +" call Decho("(AlignCtrl) AlignCtrl<".s:AlignCtrl."> qty=".s:AlignPatQty." AlignStyle<".s:AlignStyle."> Padding<".s:AlignPrePad."|".s:AlignPostPad."> LeadingWS=".s:AlignLeadKeep." AlignSep=".s:AlignSep) + if exists("s:AlignGPat") && !exists("s:AlignVPat") + echo "AlignGPat<".s:AlignGPat.">" + elseif !exists("s:AlignGPat") && exists("s:AlignVPat") + echo "AlignVPat<".s:AlignVPat.">" + elseif exists("s:AlignGPat") && exists("s:AlignVPat") + echo "AlignGPat<".s:AlignGPat."> AlignVPat<".s:AlignVPat.">" + endif + let ipat= 1 + while ipat <= s:AlignPatQty + echo "Pat".ipat."<".s:AlignPat_{ipat}.">" +" call Decho("(AlignCtrl) Pat".ipat."<".s:AlignPat_{ipat}.">") + let ipat= ipat + 1 + endwhile + + else + " ---------------------------------- + " Process alignment control settings + " ---------------------------------- +" call Decho("process the alignctrl settings") +" call Decho("style<".style.">") + + if style ==? "default" + " Default: preserve initial leading whitespace, left-justified, + " alignment on '=', one space padding on both sides + if exists("s:AlignCtrlStackQty") + " clear AlignCtrl stack + while s:AlignCtrlStackQty > 0 + call Align#AlignPop() + endwhile + unlet s:AlignCtrlStackQty + endif + " Set AlignCtrl to its default value + call Align#AlignCtrl("Ilp1P1=<",'=') + call Align#AlignCtrl("g") + call Align#AlignCtrl("v") + let s:dovisclear = 1 + call s:RestoreUserOptions() +" call Dret("Align#AlignCtrl") + return + endif + + if style =~# 'm' + " map support: Do an AlignPush now and the next call to Align() + " will do an AlignPop at exit +" call Decho("style case m: do AlignPush") + call Align#AlignPush() + let s:DoAlignPop= 1 + endif + + " = : record a list of alignment patterns that are equivalent + if style =~# "=" || (A[0] >= 2 && style !~# "C" && s:AlignCtrl =~# '=') +" call Decho("style case =: record list of equiv alignment patterns") + let s:AlignCtrl = '=' + if A[0] >= 2 + let s:AlignPatQty= 1 + let s:AlignPat_1 = A[2] + let ipat = 3 + while ipat <= A[0] + let s:AlignPat_1 = s:AlignPat_1.'\|'.A[ipat] + let ipat = ipat + 1 + endwhile + let s:AlignPat_1= '\('.s:AlignPat_1.'\)' +" call Decho("AlignCtrl<".s:AlignCtrl."> AlignPat<".s:AlignPat_1.">") + endif + + "c : cycle through alignment pattern(s) + elseif style =~# 'C' || (A[0] >= 2 && s:AlignCtrl =~# '=') +" call Decho("style case C: cycle through alignment pattern(s)") + let s:AlignCtrl = 'C' + if A[0] >= 2 + let s:AlignPatQty= A[0] - 1 + let ipat = 1 + while ipat < A[0] + let s:AlignPat_{ipat}= A[ipat+1] +" call Decho("AlignCtrl<".s:AlignCtrl."> AlignQty=".s:AlignPatQty." AlignPat_".ipat."<".s:AlignPat_{ipat}.">") + let ipat= ipat + 1 + endwhile + endif + endif + + if style =~# 'p' + let s:AlignPrePad= substitute(style,'^.*p\(\d\+\).*$','\1','') +" call Decho("style case p".s:AlignPrePad.": pre-separator padding") + if s:AlignPrePad == "" + echoerr "(AlignCtrl) 'p' needs to be followed by a numeric argument'" + call s:RestoreUserOptions() +" call Dret("Align#AlignCtrl") + return + endif + endif + + if style =~# 'P' + let s:AlignPostPad= substitute(style,'^.*P\(\d\+\).*$','\1','') +" call Decho("style case P".s:AlignPostPad.": post-separator padding") + if s:AlignPostPad == "" + echoerr "(AlignCtrl) 'P' needs to be followed by a numeric argument'" + call s:RestoreUserOptions() +" call Dret("Align#AlignCtrl") + return + endif + endif + + if style =~# 'w' +" call Decho("style case w: ignore leading whitespace") + let s:AlignLeadKeep= 'w' + elseif style =~# 'W' +" call Decho("style case W: keep leading whitespace") + let s:AlignLeadKeep= 'W' + elseif style =~# 'I' +" call Decho("style case I: retain initial leading whitespace") + let s:AlignLeadKeep= 'I' + endif + + if style =~# 'g' + " first list item is a "g" selector pattern +" call Decho("style case g: global selector pattern") + if A[0] < 2 + if exists("s:AlignVPat") + unlet s:AlignVPat +" call Decho("unlet s:AlignGPat") + endif + else + let s:AlignGPat= A[2] +" call Decho("s:AlignGPat<".s:AlignGPat.">") + endif + elseif style =~# 'v' + " first list item is a "v" selector pattern +" call Decho("style case v: global selector anti-pattern") + if A[0] < 2 + if exists("s:AlignGPat") + unlet s:AlignGPat +" call Decho("unlet s:AlignVPat") + endif + else + let s:AlignVPat= A[2] +" call Decho("s:AlignVPat<".s:AlignVPat.">") + endif + endif + + "[-lrc+:] : set up s:AlignStyle + if style =~# '[-lrc+:*]' +" call Decho("style case [-lrc+:]: field justification") + let s:AlignStyle= substitute(style,'[^-lrc:+*]','','g') +" call Decho("AlignStyle<".s:AlignStyle.">") + endif + + "[<>|] : set up s:AlignSep + if style =~# '[<>|]' +" call Decho("style case [-lrc+:]: separator justification") + let s:AlignSep= substitute(style,'[^<>|]','','g') +" call Decho("AlignSep ".s:AlignSep) + endif + endif + + " sanity + if !exists("s:AlignCtrl") + let s:AlignCtrl= '=' + endif + + " restore options and return + call s:RestoreUserOptions() +" call Dret("Align#AlignCtrl ".s:AlignCtrl.'p'.s:AlignPrePad.'P'.s:AlignPostPad.s:AlignLeadKeep.s:AlignStyle) + return s:AlignCtrl.'p'.s:AlignPrePad.'P'.s:AlignPostPad.s:AlignLeadKeep.s:AlignStyle +endfun + +" --------------------------------------------------------------------- +" s:MakeSpace: returns a string with spacecnt blanks {{{1 +fun! s:MakeSpace(spacecnt) +" call Dfunc("MakeSpace(spacecnt=".a:spacecnt.")") + let str = "" + let spacecnt = a:spacecnt + while spacecnt > 0 + let str = str . " " + let spacecnt = spacecnt - 1 + endwhile +" call Dret("MakeSpace <".str.">") + return str +endfun + +" --------------------------------------------------------------------- +" Align#Align: align selected text based on alignment pattern(s) {{{1 +fun! Align#Align(hasctrl,...) range +" call Dfunc("Align#Align(hasctrl=".a:hasctrl.",...) a:0=".a:0) + + " sanity checks + if string(a:hasctrl) != "0" && string(a:hasctrl) != "1" + echohl Error|echo 'usage: Align#Align(hasctrl<'.a:hasctrl.'> (should be 0 or 1),"separator(s)" (you have '.a:0.') )'|echohl None +" call Dret("Align#Align") + return + endif + if exists("s:AlignStyle") && s:AlignStyle == ":" + echohl Error |echo '(Align#Align) your AlignStyle is ":", which implies "do-no-alignment"!'|echohl None +" call Dret("Align#Align") + return + endif + + " save user options + call s:SaveUserOptions() + + " set up a list akin to an argument list + if a:0 > 0 + let A= s:QArgSplitter(a:1) + else + let A=[0] + endif + + " if :Align! was used, then the first argument is (should be!) an AlignCtrl string + " Note that any alignment control set this way will be temporary. + let hasctrl= a:hasctrl +" call Decho("hasctrl=".hasctrl) + if a:hasctrl && A[0] >= 1 +" call Decho("Align! : using A[1]<".A[1]."> for AlignCtrl") + if A[1] =~ '[gv]' + let hasctrl= hasctrl + 1 + call Align#AlignCtrl('m') + call Align#AlignCtrl(A[1],A[2]) +" call Decho("Align! : also using A[2]<".A[2]."> for AlignCtrl") + elseif A[1] !~ 'm' + call Align#AlignCtrl(A[1]."m") + else + call Align#AlignCtrl(A[1]) + endif + endif + + " Check for bad separator patterns (zero-length matches) + let ipat= 1 + hasctrl + while ipat <= A[0] + if "" =~ A[ipat] + echoerr "(Align) separator<".A[ipat]."> matches zero-length string" + call s:RestoreUserOptions() +" call Dret("Align#Align") + return + endif + let ipat= ipat + 1 + endwhile + + " record current search pattern for subsequent restoration + " (these are all global-only options) + set noic report=10000 nohls + + if A[0] > hasctrl + " Align will accept a list of separator regexps +" call Decho("A[0]=".A[0].": accepting list of separator regexp") + + if s:AlignCtrl =~# "=" + "= : consider all separators to be equivalent +" call Decho("AlignCtrl: record list of equivalent alignment patterns") + let s:AlignCtrl = '=' + let s:AlignPat_1 = A[1 + hasctrl] + let s:AlignPatQty= 1 + let ipat = 2 + hasctrl + while ipat <= A[0] + let s:AlignPat_1 = s:AlignPat_1.'\|'.A[ipat] + let ipat = ipat + 1 + endwhile + let s:AlignPat_1= '\('.s:AlignPat_1.'\)' +" call Decho("AlignCtrl<".s:AlignCtrl."> AlignPat<".s:AlignPat_1.">") + + elseif s:AlignCtrl =~# 'C' + "c : cycle through alignment pattern(s) +" call Decho("AlignCtrl: cycle through alignment pattern(s)") + let s:AlignCtrl = 'C' + let s:AlignPatQty= A[0] - hasctrl + let ipat = 1 + while ipat <= s:AlignPatQty + let s:AlignPat_{ipat}= A[(ipat + hasctrl)] +" call Decho("AlignCtrl<".s:AlignCtrl."> AlignQty=".s:AlignPatQty." AlignPat_".ipat."<".s:AlignPat_{ipat}.">") + let ipat= ipat + 1 + endwhile + endif + endif + + " Initialize so that begline + " is greater than the line's string length -> ragged right. + " Have to be careful about visualmode() -- it returns the last visual + " mode used whether or not it was used currently. + let begcol = virtcol("'<")-1 + let endcol = virtcol("'>")-1 + if begcol > endcol + let begcol = virtcol("'>")-1 + let endcol = virtcol("'<")-1 + endif +" call Decho("begcol=".begcol." endcol=".endcol) + let begline = a:firstline + let endline = a:lastline + if begline > endline + let begline = a:lastline + let endline = a:firstline + endif + + " Expand range to cover align-able lines when the given range is only the current line. + " Look for the first line above the current line that matches the first separator pattern, and + " look for the last line below the current line that matches the first separator pattern. + if begline == endline +" call Decho("case begline == endline") + if !exists("s:AlignPat_{1}") + echohl Error|echo "(Align) no separators specified!"|echohl None + call s:RestoreUserOptions() +" call Dret("Align#Align") + return + endif + let seppat = s:AlignPat_{1} + let begline= search('^\%(\%('.seppat.'\)\@!.\)*$',"bnW") + if begline == 0|let begline= 1|else|let begline= begline + 1|endif + let endline= search('^\%(\%('.seppat.'\)\@!.\)*$',"nW") + if endline == 0|let endline= line("$")|else|let endline= endline - 1|endif +" call Decho("begline=".begline." endline=".endline." curline#".line(".")) + endif +" call Decho("begline=".begline." endline=".endline) + let fieldcnt = 0 + if (begline == line("'>") && endline == line("'<")) || (begline == line("'<") && endline == line("'>")) + let vmode= visualmode() +" call Decho("vmode=".vmode) + if vmode == "\" + let ragged = ( col("'>") > s:Strlen(getline("'>")) || col("'<") > s:Strlen(getline("'<")) ) + else + let ragged= 1 + endif + else + let ragged= 1 + endif + if ragged + let begcol= 0 + endif +" call Decho("lines[".begline.",".endline."] col[".begcol.",".endcol."] ragged=".ragged." AlignCtrl<".s:AlignCtrl.">") + + " record initial whitespace + if s:AlignLeadKeep == 'W' + let wskeep = map(getline(begline,endline),"substitute(v:val,'^\\(\\s*\\).\\{-}$','\\1','')") + endif + + " Align needs these options + setl et + set paste + + " convert selected range of lines to use spaces instead of tabs + " but if first line's initial white spaces are to be retained + " then use 'em + if begcol <= 0 && s:AlignLeadKeep == 'I' + " retain first leading whitespace for all subsequent lines + let bgntxt= substitute(getline(begline),'^\(\s*\).\{-}$','\1','') + + " exception: retain first leading whitespace predicated on g and v patterns + " if such a selected line exists + if exists("s:AlignGPat") + let firstgline= search(s:AlignGPat,"cnW",endline) + if firstgline > 0 + let bgntxt= substitute(getline(firstgline),'^\(\s*\).\{-}$','\1','') + endif + elseif exists("s:AlignVPat") + let firstvline= search(s:AlignVPat,"cnW",endline) + if firstvline > 0 + let bgntxt= substitute('^\%(\%('.getline(firstvline).')\@!\)*$','^\(\s*\).\{-}$','\1','') + endif + endif +" call Decho("retaining 1st leading whitespace: bgntxt<".bgntxt.">") + let &l:et= s:keep_et + endif + exe begline.",".endline."ret" + + " record transformed to spaces leading whitespace + if s:AlignLeadKeep == 'W' + let wsblanks = map(getline(begline,endline),"substitute(v:val,'^\\(\\s*\\).\\{-}$','\\1','')") + endif + + " Execute two passes + " First pass: collect alignment data (max field sizes) + " Second pass: perform alignment + let pass= 1 + while pass <= 2 +" call Decho(" ") +" call Decho("---- Pass ".pass.": ----") + + let curline= begline + while curline <= endline + " Process each line + let txt = getline(curline) +" call Decho(" ") +" call Decho("Pass".pass.": Line ".curline." <".txt.">") + + " AlignGPat support: allows a selector pattern (akin to g/selector/cmd ) + if exists("s:AlignGPat") +" call Decho("Pass".pass.": AlignGPat<".s:AlignGPat.">") + if match(txt,s:AlignGPat) == -1 +" call Decho("Pass".pass.": skipping") + let curline= curline + 1 + continue + endif + endif + + " AlignVPat support: allows a selector pattern (akin to v/selector/cmd ) + if exists("s:AlignVPat") +" call Decho("Pass".pass.": AlignVPat<".s:AlignVPat.">") + if match(txt,s:AlignVPat) != -1 +" call Decho("Pass".pass.": skipping") + let curline= curline + 1 + continue + endif + endif + + " Always skip blank lines + if match(txt,'^\s*$') != -1 +" call Decho("Pass".pass.": skipping") + let curline= curline + 1 + continue + endif + + " Extract visual-block selected text (init bgntxt, endtxt) + let txtlen= s:Strlen(txt) + if begcol > 0 + " Record text to left of selected area + let bgntxt= strpart(txt,0,begcol) +" call Decho("Pass".pass.": record text to left: bgntxt<".bgntxt.">") + elseif s:AlignLeadKeep == 'W' + let bgntxt= substitute(txt,'^\(\s*\).\{-}$','\1','') +" call Decho("Pass".pass.": retaining all leading ws: bgntxt<".bgntxt.">") + elseif s:AlignLeadKeep == 'w' || !exists("bgntxt") + " No beginning text + let bgntxt= "" +" call Decho("Pass".pass.": no beginning text") + endif + if ragged + let endtxt= "" + else + " Elide any text lying outside selected columnar region + let endtxt= strpart(txt,endcol+1,txtlen-endcol) + let txt = strpart(txt,begcol,endcol-begcol+1) + endif +" call Decho(" ") +" call Decho("Pass".pass.": bgntxt<".bgntxt.">") +" call Decho("Pass".pass.": txt<". txt .">") +" call Decho("Pass".pass.": endtxt<".endtxt.">") + if !exists("s:AlignPat_{1}") + echohl Error|echo "(Align) no separators specified!"|echohl None + call s:RestoreUserOptions() +" call Dret("Align#Align") + return + endif + + " Initialize for both passes + let seppat = s:AlignPat_{1} + let ifield = 1 + let ipat = 1 + let bgnfield = 0 + let endfield = 0 + let alignstyle = s:AlignStyle + let doend = 1 + let newtxt = "" + let alignprepad = s:AlignPrePad + let alignpostpad= s:AlignPostPad + let alignsep = s:AlignSep + let alignophold = " " + let alignop = 'l' +" call Decho("Pass".pass.": initial alignstyle<".alignstyle."> seppat<".seppat.">") + + " Process each field on the line + while doend > 0 + + " C-style: cycle through pattern(s) + if s:AlignCtrl == 'C' && doend == 1 + let seppat = s:AlignPat_{ipat} +" call Decho("Pass".pass.": processing field: AlignCtrl=".s:AlignCtrl." ipat=".ipat." seppat<".seppat.">") + let ipat = ipat + 1 + if ipat > s:AlignPatQty + let ipat = 1 + endif + endif + + " cyclic alignment/justification operator handling + let alignophold = alignop + let alignop = strpart(alignstyle,0,1) + if alignop == '+' || doend == 2 + let alignop= alignophold + else + let alignstyle = strpart(alignstyle,1).strpart(alignstyle,0,1) + let alignopnxt = strpart(alignstyle,0,1) + if alignop == ':' + let seppat = '$' + let doend = 2 +" call Decho("Pass".pass.": alignop<:> case: setting seppat<$> doend==2") + endif + endif + + " cyclic separator alignment specification handling + let alignsepop= strpart(alignsep,0,1) + let alignsep = strpart(alignsep,1).alignsepop + + " ------------------------------------------------------ + " mark end-of-field and the subsequent end-of-separator. + " ------------------------------------------------------ + let endfield = match(txt,seppat,bgnfield) + let sepfield = matchend(txt,seppat,bgnfield) + let skipfield= sepfield +" call Decho("Pass".pass.": endfield=match(txt<".txt.">,seppat<".seppat.">,bgnfield=".bgnfield.")=".endfield." alignop=".alignop) + + " Mark eof: Extend field if alignop is '*' and AlignSkip() is true. + if alignop == '*' && exists("g:AlignSkip") && type(g:AlignSkip) == 2 +" call Decho("Pass".pass.": endfield=match(txt<".txt.">,seppat<".seppat.">,bgnfield=".bgnfield.")=".endfield." alignop=".alignop) + " a '*' acts like a '-' while the g:AlignSkip function reference is true except that alignop doesn't advance + while g:AlignSkip(curline,endfield) && endfield != -1 + let endfield = match(txt,seppat,skipfield) + let sepfield = matchend(txt,seppat,skipfield) + let skipfield = sepfield +" call Decho("Pass".pass.": extend field: endfield<".strpart(txt,bgnfield,endfield-bgnfield)."> alignop<".alignop."> alignstyle<".alignstyle.">") + endwhile + let alignop = strpart(alignstyle,0,1) + let alignstyle= strpart(alignstyle,1).strpart(alignstyle,0,1) +" call Decho("Pass".pass.": endfield=match(txt<".txt.">,seppat<".seppat.">,bgnfield=".bgnfield.")=".endfield." alignop=".alignop." (after *)") + endif + + " Mark eof: Extend field if alignop is '-' + while alignop == '-' && endfield != -1 + let endfield = match(txt,seppat,skipfield) + let sepfield = matchend(txt,seppat,skipfield) + let skipfield = sepfield + let alignop = strpart(alignstyle,0,1) + let alignstyle= strpart(alignstyle,1).strpart(alignstyle,0,1) +" call Decho("Pass".pass.": extend field: endfield<".strpart(txt,bgnfield,endfield-bgnfield)."> alignop<".alignop."> alignstyle<".alignstyle.">") + endwhile + let seplen= sepfield - endfield +" call Decho("Pass".pass.": seplen=[sepfield=".sepfield."] - [endfield=".endfield."]=".seplen) + + if endfield != -1 + if pass == 1 + " --------------------------------------------------------------------- + " Pass 1: Update FieldSize to max +" call Decho("Pass".pass.": before lead/trail remove: field<".strpart(txt,bgnfield,endfield-bgnfield).">") + let field = substitute(strpart(txt,bgnfield,endfield-bgnfield),'^\s*\(.\{-}\)\s*$','\1','') + if s:AlignLeadKeep == 'W' + let field = bgntxt.field + let bgntxt= "" + endif + let fieldlen= s:Strlen(field) + if !exists("FieldSize_{ifield}") + let FieldSize_{ifield}= fieldlen +" call Decho("Pass".pass.": set FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field."> (init)") + elseif fieldlen > FieldSize_{ifield} + let FieldSize_{ifield}= fieldlen +" call Decho("Pass".pass.": set FieldSize_{".ifield."}=".FieldSize_{ifield}." <".field."> (fieldlen>FieldSize_".ifield.")") + endif + if !exists("SepSize_{ifield}") + let SepSize_{ifield}= seplen +" call Decho("Pass".pass.": set SepSize_{".ifield."}=".SepSize_{ifield}." <".field."> (init)") + elseif seplen > SepSize_{ifield} + let SepSize_{ifield}= seplen +" call Decho("Pass".pass.": set SepSize_{".ifield."}=".SepSize_{ifield}." <".field."> (seplen>SepSize_".ifield.")") + endif + + else + " --------------------------------------------------------------------- + " Pass 2: Perform Alignment + let prepad = strpart(alignprepad,0,1) + let postpad = strpart(alignpostpad,0,1) + let alignprepad = strpart(alignprepad,1).strpart(alignprepad,0,1) + let alignpostpad = strpart(alignpostpad,1).strpart(alignpostpad,0,1) + let field = substitute(strpart(txt,bgnfield,endfield-bgnfield),'^\s*\(.\{-}\)\s*$','\1','') +" call Decho("Pass".pass.": alignprepad <".alignprepad."> prepad =".prepad) +" call Decho("Pass".pass.": alignpostpad<".alignpostpad."> postpad=".postpad) + if s:AlignLeadKeep == 'W' + let field = bgntxt.field + let bgntxt= "" + endif + if doend == 2 + let prepad = 0 + let postpad= 0 + endif + let fieldlen = s:Strlen(field) + let sep = s:MakeSpace(prepad).strpart(txt,endfield,sepfield-endfield).s:MakeSpace(postpad) +" call Decho("Pass".pass.": sep<".sep."> (after prepad, sepfield-endfield,postpad)") + if seplen < SepSize_{ifield} + if alignsepop == "<" + " left-justify separators + let sep = sep.s:MakeSpace(SepSize_{ifield}-seplen) +" call Decho("Pass".pass.": sep<".sep."> (left-justified)") + elseif alignsepop == ">" + " right-justify separators + let sep = s:MakeSpace(SepSize_{ifield}-seplen).sep +" call Decho("Pass".pass.": sep<".sep."> (right-justified)") + else + " center-justify separators + let sepleft = (SepSize_{ifield} - seplen)/2 + let sepright = SepSize_{ifield} - seplen - sepleft + let sep = s:MakeSpace(sepleft).sep.s:MakeSpace(sepright) +" call Decho("Pass".pass.": sep<".sep."> (center-justified)") + endif + endif + let spaces = FieldSize_{ifield} - fieldlen +" call Decho("Pass".pass.": spaces=[FieldSize_".ifield."=".FieldSize_{ifield}."] - [fieldlen=".fieldlen."]=".spaces) +" call Decho("Pass".pass.": Field #".ifield."<".field."> spaces=".spaces." be[".bgnfield.",".endfield."] pad=".prepad.','.postpad." FS_".ifield."<".FieldSize_{ifield}."> sep<".sep."> ragged=".ragged." doend=".doend." alignop<".alignop.">") + + " Perform alignment according to alignment style justification + if spaces > 0 + if alignop == 'c' + " center the field + let spaceleft = spaces/2 + let spaceright= FieldSize_{ifield} - spaceleft - fieldlen + let newtxt = newtxt.s:MakeSpace(spaceleft).field.s:MakeSpace(spaceright).sep + elseif alignop == 'r' + " right justify the field + let newtxt= newtxt.s:MakeSpace(spaces).field.sep + elseif ragged && doend == 2 + " left justify rightmost field (no trailing blanks needed) + let newtxt= newtxt.field + else + " left justfiy the field + let newtxt= newtxt.field.s:MakeSpace(spaces).sep + endif + elseif ragged && doend == 2 + " field at maximum field size and no trailing blanks needed + let newtxt= newtxt.field + else + " field is at maximum field size already + let newtxt= newtxt.field.sep + endif +" call Decho("Pass".pass.": newtxt<".newtxt.">") + endif " pass 1/2 + + " bgnfield indexes to end of separator at right of current field + " Update field counter + let bgnfield= sepfield + let ifield = ifield + 1 + if doend == 2 + let doend= 0 + endif + " handle end-of-text as end-of-field + elseif doend == 1 + let seppat = '$' + let doend = 2 + else + let doend = 0 + endif " endfield != -1 + endwhile " doend loop (as well as regularly separated fields) + + if pass == 2 + " Write altered line to buffer +" call Decho("Pass".pass.": bgntxt<".bgntxt."> curline=".curline) +" call Decho("Pass".pass.": newtxt<".newtxt.">") +" call Decho("Pass".pass.": endtxt<".endtxt.">") + keepj call setline(curline,bgntxt.newtxt.endtxt) + endif +" call Decho("Pass".pass.": line#".curline."<".getline(".")."> (end-of-while)") + + let curline = curline + 1 + endwhile " curline loop + + let pass= pass + 1 + endwhile " pass loop +" call Decho("end of two pass loop") +" call Decho("ENDWHILE: cursor at (".line(".").",".col(".").") curline#".curline) + + " restore original leading whitespace + if s:AlignLeadKeep == 'W' + let iline= begline + let i = 0 +" call Decho("restore original leading whitespace") + while iline <= endline +" call Decho("exe ".iline."s/^".wsblanks[i]."/".wskeep[i]."/") + exe "keepj ".iline."s/^".wsblanks[i]."/".wskeep[i]."/" + let iline= iline + 1 + let i = i + 1 + endwhile + endif + + if exists("s:DoAlignPop") + " AlignCtrl Map support + call Align#AlignPop() + unlet s:DoAlignPop + endif + + " restore user options and return + call s:RestoreUserOptions() +" call Dret("Align#Align") + return +endfun + +" --------------------------------------------------------------------- +" Align#AlignPush: this command/function pushes an alignment control string onto a stack {{{1 +fun! Align#AlignPush() +" call Dfunc("Align#AlignPush()") + + " initialize the stack + if !exists("s:AlignCtrlStackQty") + let s:AlignCtrlStackQty= 1 + else + let s:AlignCtrlStackQty= s:AlignCtrlStackQty + 1 + endif + + " construct an AlignCtrlStack entry + if !exists("s:AlignSep") + let s:AlignSep= '' + endif + let s:AlignCtrlStack_{s:AlignCtrlStackQty}= s:AlignCtrl.'p'.s:AlignPrePad.'P'.s:AlignPostPad.s:AlignLeadKeep.s:AlignStyle.s:AlignSep +" call Decho("AlignPush: AlignCtrlStack_".s:AlignCtrlStackQty."<".s:AlignCtrlStack_{s:AlignCtrlStackQty}.">") + + " push [GV] patterns onto their own stack + if exists("s:AlignGPat") + let s:AlignGPat_{s:AlignCtrlStackQty}= s:AlignGPat + else + let s:AlignGPat_{s:AlignCtrlStackQty}= "" + endif + if exists("s:AlignVPat") + let s:AlignVPat_{s:AlignCtrlStackQty}= s:AlignVPat + else + let s:AlignVPat_{s:AlignCtrlStackQty}= "" + endif + +" call Dret("Align#AlignPush") +endfun + +" --------------------------------------------------------------------- +" Align#AlignPop: this command/function pops an alignment pattern from a stack {{{1 +" and into the AlignCtrl variables. +fun! Align#AlignPop() +" call Dfunc("Align#AlignPop()") + + " sanity checks + if !exists("s:AlignCtrlStackQty") + echoerr "(AlignPop) AlignPush needs to be used prior to AlignPop" +" call Dret("Align#AlignPop <> : AlignPush needs to have been called first") + return "" + endif + if s:AlignCtrlStackQty <= 0 + unlet s:AlignCtrlStackQty + echoerr "(AlignPop) AlignPush needs to be used prior to AlignPop" +" call Dret("Align#AlignPop <> : AlignPop needs to have been called first") + return "" + endif + + " pop top of AlignCtrlStack and pass value to AlignCtrl + let retval=s:AlignCtrlStack_{s:AlignCtrlStackQty} + unlet s:AlignCtrlStack_{s:AlignCtrlStackQty} + call Align#AlignCtrl(retval) + + " pop G pattern stack + if s:AlignGPat_{s:AlignCtrlStackQty} != "" + call Align#AlignCtrl('g',s:AlignGPat_{s:AlignCtrlStackQty}) + else + call Align#AlignCtrl('g') + endif + unlet s:AlignGPat_{s:AlignCtrlStackQty} + + " pop V pattern stack + if s:AlignVPat_{s:AlignCtrlStackQty} != "" + call Align#AlignCtrl('v',s:AlignVPat_{s:AlignCtrlStackQty}) + else + call Align#AlignCtrl('v') + endif + + unlet s:AlignVPat_{s:AlignCtrlStackQty} + let s:AlignCtrlStackQty= s:AlignCtrlStackQty - 1 + +" call Dret("Align#AlignPop <".retval."> : AlignCtrlStackQty=".s:AlignCtrlStackQty) + return retval +endfun + +" --------------------------------------------------------------------- +" Align#AlignReplaceQuotedSpaces: {{{1 +fun! Align#AlignReplaceQuotedSpaces() +" call Dfunc("Align#AlignReplaceQuotedSpaces()") + + let l:line = getline(line(".")) + let l:linelen = s:Strlen(l:line) + let l:startingPos = 0 + let l:startQuotePos = 0 + let l:endQuotePos = 0 + let l:spacePos = 0 + let l:quoteRe = '\\\@, is needed. {{{1 +" However, doesn't split at all, so this function returns a list +" of arguments which has been: +" * split at whitespace +" * unless inside "..."s. One may escape characters with a backslash inside double quotes. +" along with a leading length-of-list. +" +" Examples: %Align "\"" will align on "s +" %Align " " will align on spaces +" +" The resulting list: qarglist[0] corresponds to a:0 +" qarglist[i] corresponds to a:{i} +fun! s:QArgSplitter(qarg) +" call Dfunc("s:QArgSplitter(qarg<".a:qarg.">)") + + if a:qarg =~ '".*"' + " handle "..." args, which may include whitespace + let qarglist = [] + let args = a:qarg +" call Decho("handle quoted arguments: args<".args.">") + while args != "" + let iarg = 0 + let arglen = strlen(args) +" call Decho(".args[".iarg."]<".args[iarg]."> arglen=".arglen) + " find index to first not-escaped '"' +" call Decho("find index to first not-escaped \"") + while args[iarg] != '"' && iarg < arglen + if args[iarg] == '\' + let args= strpart(args,1) + endif + let iarg= iarg + 1 + endwhile +" call Decho(".args<".args."> iarg=".iarg." arglen=".arglen) + + if iarg > 0 + " handle left of quote or remaining section +" call Decho(".handle left of quote or remaining section") + if args[iarg] == '"' + let qarglist= qarglist + split(strpart(args,0,iarg-1)) + else + let qarglist= qarglist + split(strpart(args,0,iarg)) + endif + let args = strpart(args,iarg) + let arglen = strlen(args) + + elseif iarg < arglen && args[0] == '"' + " handle "quoted" section +" call Decho(".handle quoted section") + let iarg= 1 + while args[iarg] != '"' && iarg < arglen + if args[iarg] == '\' + let args= strpart(args,1) + endif + let iarg= iarg + 1 + endwhile +" call Decho(".args<".args."> iarg=".iarg." arglen=".arglen) + if args[iarg] == '"' + call add(qarglist,strpart(args,1,iarg-1)) + let args= strpart(args,iarg+1) + else + let qarglist = qarglist + split(args) + let args = "" + endif + endif +" call Decho(".qarglist".string(qarglist)." iarg=".iarg." args<".args.">") + endwhile +" call Decho("end of loop (handling quoted arguments)") + + else + " split at all whitespace +" call Decho("split at all whitespace") + let qarglist= split(a:qarg,"[ \t]") + endif + + let qarglistlen= len(qarglist) + let qarglist = insert(qarglist,qarglistlen) +" call Dret("s:QArgSplitter ".string(qarglist)) + return qarglist +endfun + +" --------------------------------------------------------------------- +" s:Strlen: this function returns the length of a string, even if its {{{1 +" using two-byte etc characters. +" Currently, its only used if g:Align_xstrlen is set to a +" nonzero value. Solution from Nicolai Weibull, vim docs +" (:help strlen()), Tony Mechelynck, and my own invention. +fun! s:Strlen(x) +" call Dfunc("s:Strlen(x<".a:x."> g:Align_xstrlen=".g:Align_xstrlen) + + if type(g:Align_xstrlen) == 1 + " allow user to specify a function to compute the string length + exe "let ret= ".g:Align_xstrlen."('".substitute(a:x,"'","''","g")."')" + + elseif g:Align_xstrlen == 1 + " number of codepoints (Latin a + combining circumflex is two codepoints) + " (comment from TM, solution from NW) + let ret= strlen(substitute(a:x,'.','c','g')) + + elseif g:Align_xstrlen == 2 + " number of spacing codepoints (Latin a + combining circumflex is one spacing + " codepoint; a hard tab is one; wide and narrow CJK are one each; etc.) + " (comment from TM, solution from TM) + let ret=strlen(substitute(a:x, '.\Z', 'x', 'g')) + + elseif g:Align_xstrlen == 3 + " virtual length (counting, for instance, tabs as anything between 1 and + " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately + " preceded by lam, one otherwise, etc.) + " (comment from TM, solution from me) + let modkeep= &l:mod + exe "norm! o\" + call setline(line("."),a:x) + let ret= virtcol("$") - 1 + d + keepj norm! k + let &l:mod= modkeep + + else + " at least give a decent default + if v:version >= 703 + let ret= strdisplaywidth(a:x) + else + let ret= strlen(a:x) + endif + endif +" call Dret("s:Strlen ".ret) + return ret +endfun + +" --------------------------------------------------------------------- +" s:SaveUserOptions: {{{1 +fun! s:SaveUserOptions() +" call Dfunc("s:SaveUserOptions() s:saved_user_options=".(exists("s:saved_user_options")? s:saved_user_options : 'n/a')) + if !exists("s:saved_user_options") + let s:saved_user_options = 1 + let s:keep_search = @/ + let s:keep_et = &l:et + let s:keep_hls = &hls + let s:keep_ic = &ic + let s:keep_paste = &paste + let s:keep_report = &report + else + let s:saved_user_options = s:saved_user_options + 1 + endif +" call Dret("s:SaveUserOptions : s:saved_user_options=".s:saved_user_options) +endfun + +" --------------------------------------------------------------------- +" s:RestoreUserOptions: {{{1 +fun! s:RestoreUserOptions() +" call Dfunc("s:RestoreUserOptions() s:saved_user_options=".(exists("s:saved_user_options")? s:saved_user_options : 'n/a')) + if exists("s:saved_user_options") && s:saved_user_options == 1 + let @/ = s:keep_search + let &l:et = s:keep_et + let &hls = s:keep_hls + let &ic = s:keep_ic + let &paste = s:keep_paste + let &report = s:keep_report + unlet s:keep_search + unlet s:keep_et + unlet s:keep_hls + unlet s:keep_ic + unlet s:keep_paste + unlet s:keep_report + unlet s:saved_user_options + elseif exists("s:saved_user_options") + let s:saved_user_options= s:saved_user_options - 1 + endif +" call Dret("s:RestoreUserOptions : s:saved_user_options=".(exists("s:saved_user_options")? s:saved_user_options : 'n/a')) +endfun + +" --------------------------------------------------------------------- +" Set up default values: {{{1 +"call Decho("-- Begin AlignCtrl Initialization --") +call Align#AlignCtrl("default") +"call Decho("-- End AlignCtrl Initialization --") + +" --------------------------------------------------------------------- +" Restore: {{{1 +let &cpo= s:keepcpo +unlet s:keepcpo +" vim: ts=4 fdm=marker diff --git a/.vim/autoload/AlignMaps.vim b/.vim/autoload/AlignMaps.vim new file mode 100644 index 0000000..9d20513 --- /dev/null +++ b/.vim/autoload/AlignMaps.vim @@ -0,0 +1,401 @@ +" AlignMaps.vim : support functions for AlignMaps +" Author: Charles E. Campbell +" Date: Mar 12, 2013 +" Version: 43 +" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1 +" Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" Align.vim is provided *as is* and comes with no warranty +" of any kind, either expressed or implied. By using this +" plugin, you agree that in no event will the copyright +" holder be liable for any damages resulting from the use +"redraw!|call DechoSep()|call inputsave()|call input("Press to continue")|call inputrestore() +" --------------------------------------------------------------------- +" Load Once: {{{1 +if &cp || exists("g:loaded_AlignMaps") + finish +endif +let g:loaded_AlignMaps= "v43" +let s:keepcpo = &cpo +set cpo&vim +"DechoTabOn + +" ===================================================================== +" Functions: {{{1 + +" --------------------------------------------------------------------- +" AlignMaps#WrapperStart: {{{2 +fun! AlignMaps#WrapperStart(vis) range +" call Dfunc("AlignMaps#WrapperStart(vis=".a:vis.")") + + if a:vis + keepj norm! ' + endif + + if line("'y") == 0 || line("'z") == 0 || !exists("s:alignmaps_wrapcnt") || s:alignmaps_wrapcnt <= 0 +" call Decho("wrapper initialization") + let s:alignmaps_wrapcnt = 1 + let s:alignmaps_keepgd = &gdefault + let s:alignmaps_keepsearch = @/ + let s:alignmaps_keepch = &ch + let s:alignmaps_keepmy = SaveMark("'y") + let s:alignmaps_keepmz = SaveMark("'z") + let s:alignmaps_posn = SaveWinPosn(0) + " set up fencepost blank lines + put ='' + keepj norm! mz'a + put! ='' + ky + let s:alignmaps_zline = line("'z") + exe "keepj 'y,'zs/@/\177/ge" + else +" call Decho("embedded wrapper") + let s:alignmaps_wrapcnt = s:alignmaps_wrapcnt + 1 + keepj norm! 'yjma'zk + endif + + " change some settings to align-standard values + set nogd + set ch=2 + AlignPush + keepj norm! 'zk +" call Dret("AlignMaps#WrapperStart : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z")) +endfun + +" --------------------------------------------------------------------- +" AlignMaps#WrapperEnd: {{{2 +fun! AlignMaps#WrapperEnd() range +" call Dfunc("AlignMaps#WrapperEnd() alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z")) + + " remove trailing white space introduced by whatever in the modification zone + keepj 'y,'zs/ \+$//e + + " restore AlignCtrl settings + AlignPop + + let s:alignmaps_wrapcnt= s:alignmaps_wrapcnt - 1 + if s:alignmaps_wrapcnt <= 0 + " initial wrapper ending + exe "keepj 'y,'zs/\177/@/ge" + + " if the 'z line hasn't moved, then go ahead and restore window position + let zstationary= s:alignmaps_zline == line("'z") + + " remove fencepost blank lines. + " restore 'a + keepj norm! 'yjmakdd'zdd + + " restore original 'y, 'z, and window positioning + call RestoreMark(s:alignmaps_keepmy) + call RestoreMark(s:alignmaps_keepmz) + if zstationary > 0 + call RestoreWinPosn(s:alignmaps_posn) +" call Decho("restored window positioning") + endif + + " restoration of options + let &gd= s:alignmaps_keepgd + let &ch= s:alignmaps_keepch + let @/ = s:alignmaps_keepsearch + + " remove script variables + unlet s:alignmaps_keepch + unlet s:alignmaps_keepsearch + unlet s:alignmaps_keepmy + unlet s:alignmaps_keepmz + unlet s:alignmaps_keepgd + unlet s:alignmaps_posn + endif + +" call Dret("AlignMaps#WrapperEnd : alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z")) +endfun + +" --------------------------------------------------------------------- +" AlignMaps#MakeMap: make both a normal-mode and a visual mode map for mapname {{{2 +fun! AlignMaps#MakeMap(mapname) + if exists("g:maplocalleader") + let maplead= g:maplocalleader + elseif exists("g:mapleader") + let maplead= g:mapleader + else + let maplead= '\' + endif + exe "nmap ".maplead.a:mapname." AM_".a:mapname + exe "vmap ".maplead.a:mapname.' :call AlignMaps#Vis("'.a:mapname.'")'."" +endfun + +" --------------------------------------------------------------------- +" AlignMaps#StdAlign: some semi-standard align calls {{{2 +fun! AlignMaps#StdAlign(mode) range +" call Dfunc("AlignMaps#StdAlign(mode=".a:mode.")") + if a:mode == 1 + " align on @ +" call Decho("align on @") + AlignCtrl mIp1P1=l @ + 'a,.Align + elseif a:mode == 2 + " align on @, retaining all initial white space on each line +" call Decho("align on @, retaining all initial white space on each line") + AlignCtrl mWp1P1=l @ + 'a,.Align + elseif a:mode == 3 + " like mode 2, but ignore /* */-style comments +" call Decho("like mode 2, but ignore /* */-style comments") + AlignCtrl v ^\s*/[/*] + AlignCtrl mWp1P1=l @ + 'a,.Align + else + echoerr "(AlignMaps) AlignMaps#StdAlign doesn't support mode#".a:mode + endif +" call Dret("AlignMaps#StdAlign") +endfun + +" --------------------------------------------------------------------- +" AlignMaps#CharJoiner: joins lines which end in the given character (spaces {{{2 +" at end are ignored) +fun! AlignMaps#CharJoiner(chr) +" call Dfunc("AlignMaps#CharJoiner(chr=".a:chr.")") + let aline = line("'a") + let rep = line(".") - aline + while rep > 0 + keepj norm! 'a + while match(getline(aline),a:chr . "\s*$") != -1 && rep >= 0 + " while = at end-of-line, delete it and join with next + keepj norm! 'a$ + j! + let rep = rep - 1 + endwhile + " update rep(eat) count + let rep = rep - 1 + if rep <= 0 + " terminate loop if at end-of-block + break + endif + " prepare for next line + keepj norm! jma + let aline = line("'a") + endwhile +" call Dret("AlignMaps#CharJoiner") +endfun + +" --------------------------------------------------------------------- +" AlignMaps#Equals: supports \t= and \T= {{{2 +fun! AlignMaps#Equals() range +" call Dfunc("AlignMaps#Equals()") + keepj 'a,'zs/\s\+\([.*/+\-%|&\~^]\==\)/ \1/e + keepj 'a,'zs@ \+\([.*/+\-%|&\~^]\)=@\1=@ge + keepj 'a,'zs/==/\="\\"/ge + keepj 'a,'zs/\([!<>:]\)=/\=submatch(1)."\"/ge + keepj norm g'zk + AlignCtrl mIp1P1=l = + AlignCtrl g = + keepj 'a,'z-1Align + keepj 'a,'z-1s@\([.*/%|&\~^!=]\)\( \+\)=@\2\1=@ge + keepj 'a,'z-1s@[^+\-]\zs\([+\-]\)\( \+\)=@\2\1=@ge + keepj 'a,'z-1s/\( \+\);/;\1/ge + if &ft == "c" || &ft == "cpp" +" call Decho("exception for ".&ft) + keepj 'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e + keepj 'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e + if exists("g:mapleader") + exe "keepj norm 'zk" + call AlignMaps#StdAlign(1) + else + exe "keepj norm 'zk" + call AlignMaps#StdAlign(1) + endif + keepj 'y,'zs/^\(\s*\) @/\1/e + endif + keepj 'a,'z-1s/\%x0f/=/ge + keepj 'y,'zs/ @//eg +" call Dret("AlignMaps#Equals") +endfun + +" --------------------------------------------------------------------- +" AlignMaps#Afnc: useful for splitting one-line function beginnings {{{2 +" into one line per argument format +fun! AlignMaps#Afnc() +" call Dfunc("AlignMaps#Afnc()") + + " keep display quiet + let chkeep = &l:ch + let gdkeep = &l:gd + let wwkeep = &l:ww + let vekeep = &l:ve + setlocal ch=2 nogd ve= ww=b,s,<,>,[,] + + " will use marks y,z ; save current values + let mykeep = SaveMark("'y") + let mzkeep = SaveMark("'z") + + " Find beginning of function -- be careful to skip over comments + let cmmntid = synIDtrans(hlID("Comment")) + let stringid = synIDtrans(hlID("String")) + exe "keepj norm! ]]" + while search(")","bW") != 0 +" call Decho("line=".line(".")." col=".col(".")) + let parenid= synIDtrans(synID(line("."),col("."),1)) + if parenid != cmmntid && parenid != stringid + break + endif + endwhile + keepj norm! %my + keepj s/(\s*\(\S\)/(\r \1/e + exe "keepj norm! `y%" + keepj s/)\s*\(\/[*/]\)/)\r\1/e + exe "keepj norm! `y%mz" + keepj 'y,'zs/\s\+$//e + keepj 'y,'zs/^\s\+//e + keepj 'y+1,'zs/^/ / + + " insert newline after every comma only one parenthesis deep + exe "sil! keepj norm! `y\h" + let parens = 1 + let cmmnt = 0 + let cmmntline= -1 + while parens >= 1 + exe 'keepj norm! ma "ay`a ' +" call Decho("parens=".parens." cmmnt=".cmmnt." cmmntline=".cmmntline." line(.)=".line(".")." @a<".@a."> line<".getline(".").">") + if @a == "(" + let parens= parens + 1 + elseif @a == ")" + let parens= parens - 1 + + " comment bypass: /* ... */ or //... + elseif cmmnt == 0 && @a == '/' + let cmmnt= 1 + elseif cmmnt == 1 + if @a == '/' + let cmmnt = 2 " //... + let cmmntline= line(".") + elseif @a == '*' + let cmmnt= 3 " /*... + else + let cmmnt= 0 + endif + elseif cmmnt == 2 && line(".") != cmmntline + let cmmnt = 0 + let cmmntline= -1 + elseif cmmnt == 3 && @a == '*' + let cmmnt= 4 + elseif cmmnt == 4 + if @a == '/' + let cmmnt= 0 " ...*/ + elseif @a != '*' + let cmmnt= 3 + endif + + elseif @a == "," && parens == 1 && cmmnt == 0 + exe "keepj norm! i\\" + endif + endwhile + sil! keepj norm! `y%mz% + sil! keepj 'y,'zg/^\s*$/d + + " perform substitutes to mark fields for Align + sil! keepj 'y+1,'zv/^\//s/^\s\+\(\S\)/ \1/e + sil! keepj 'y+1,'zv/^\//s/\(\S\)\s\+/\1 /eg + sil! keepj 'y+1,'zv/^\//s/\* \+/*/ge + sil! keepj 'y+1,'zv/^\//s/\w\zs\s*\*/ */ge + " func + " ws <- declaration -> <-ptr -> <-var-> <-[array][] -> <-glop-> <-end-> + sil! keepj 'y+1,'zv/^\//s/^\s*\(\(\K\k*\s*\)\+\)\s\+\([(*]*\)\s*\(\K\k*\)\s*\(\(\[.\{-}]\)*\)\s*\(.\{-}\)\=\s*\([,)]\)\s*$/ \1@#\3@\4\5@\7\8/e + sil! keepj 'y+1,'z+1g/^\s*\/[*/]/norm! kJ + sil! keepj 'y+1,'z+1s%/[*/]%@&@%ge + sil! keepj 'y+1,'z+1s%*/%@&%ge + AlignCtrl mIp0P0=l @ + sil! keepj 'y+1,'zAlign + sil! keepj 'y,'zs%@\(/[*/]\)@%\t\1 %e + sil! keepj 'y,'zs%@\*/% */%e + sil! keepj 'y,'zs/@\([,)]\)/\1/ + sil! keepj 'y,'zs/@/ / + AlignCtrl mIlrp0P0= # @ + sil! keepj 'y+1,'zAlign + sil! keepj 'y+1,'zs/#/ / + sil! keepj 'y+1,'zs/@// + sil! keepj 'y+1,'zs/\(\s\+\)\([,)]\)/\2\1/e + + " Restore + call RestoreMark(mykeep) + call RestoreMark(mzkeep) + let &l:ch= chkeep + let &l:gd= gdkeep + let &l:ww= wwkeep + let &l:ve= vekeep + +" call Dret("AlignMaps#Afnc") +endfun + +" --------------------------------------------------------------------- +" AlignMaps#FixMultiDec: converts a type arg,arg,arg; line to multiple lines {{{2 +fun! AlignMaps#FixMultiDec() +" call Dfunc("AlignMaps#FixMultiDec()") + + " save register x + let xkeep = @x + let curline = getline(".") +" call Decho("curline<".curline.">") + + let @x=substitute(curline,'^\(\s*[a-zA-Z_ \t][a-zA-Z0-9<>_ \t]*\)\s\+[(*]*\h.*$','\1','') +" call Decho("@x<".@x.">") + + " transform line + exe 'keepj s/,/;\r'.@x.' /ge' + + "restore register x + let @x= xkeep + +" call Dret("AlignMaps#FixMultiDec : my=".line("'y")." mz=".line("'z")) +endfun + +" --------------------------------------------------------------------- +" AlignMaps#AlignMapsClean: this function removes the AlignMaps plugin {{{2 +fun! AlignMaps#AlignMapsClean() +" call Dfunc("AlignMaps#AlignMapsClean()") + for home in split(&rtp,',') + [''] +" call Decho("considering home<".home.">") + if isdirectory(home) + if filereadable(home."/autoload/AlignMaps.vim") +" call Decho("deleting ".home."/autoload/AlignMaps.vim") + call delete(home."/autoload/AlignMaps.vim") + endif + if filereadable(home."/plugin/AlignMapsPlugin.vim") +" call Decho("deleting ".home."/plugin/AlignMapsPlugin.vim") + call delete(home."/plugin/AlignMapsPlugin.vim") + endif + endif + endfor +" call Dret("AlignMaps#AlignMapsClean") +endfun + +" --------------------------------------------------------------------- +" AlignMaps#Vis: interfaces with visual maps {{{2 +fun! AlignMaps#Vis(plugmap) range +" call Dfunc("AlignMaps#VisCall(plugmap<".a:plugmap.">) ".a:firstline.",".a:lastline) + + let amark= SaveMark("a") + exe a:firstline + ka + exe a:lastline + + if exists("g:maplocalleader") + let maplead= g:maplocalleader + elseif exists("g:mapleader") + let maplead= g:mapleader + else + let maplead= '\' + endif + +" call Decho("exe norm ".maplead.a:plugmap) + exe " norm ".maplead.a:plugmap + + call RestoreMark(amark) +" call Dret("AlignMaps#VisCall") +endfun + +" --------------------------------------------------------------------- +" Restore: {{{1 +let &cpo= s:keepcpo +unlet s:keepcpo +" vim: ts=4 fdm=marker diff --git a/.vim/autoload/conque_term.vim b/.vim/autoload/conque_term.vim new file mode 100644 index 0000000..856b97b --- /dev/null +++ b/.vim/autoload/conque_term.vim @@ -0,0 +1,1504 @@ +" FILE: autoload/conque_term.vim {{{ +" AUTHOR: Nico Raffo +" WEBSITE: http://conque.googlecode.com +" MODIFIED: 2011-08-12 +" VERSION: 2.2, for Vim 7.0 +" LICENSE: +" Conque - Vim terminal/console emulator +" Copyright (C) 2009-__YEAR__ Nico Raffo +" +" MIT License +" +" 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. +" }}} + +" ********************************************************************************************************** +" **** GLOBAL INITIALIZATION ******************************************************************************* +" ********************************************************************************************************** + +" {{{ + +" load plugin file if it hasn't already been loaded (e.g. conque_term#foo() is used in .vimrc) +if !exists('g:ConqueTerm_Loaded') + runtime! plugin/conque_term.vim +endif + +" path to conque install directories +let s:scriptdir = expand(":h") . '/' +let s:scriptdirpy = expand(":h") . '/conque_term/' + +" global list of terminal instances +let s:term_obj = {'idx': 1, 'var': '', 'is_buffer': 1, 'active': 1, 'buffer_name': '', 'command': ''} +let g:ConqueTerm_Terminals = {} + +" global lists of registered functions +let s:hooks = { 'after_startup': [], 'buffer_enter': [], 'buffer_leave': [], 'after_keymap': [] } + +" required for session support +if g:ConqueTerm_SessionSupport == 1 + set sessionoptions+=globals + try + sil! let s:saved_terminals = eval(g:ConqueTerm_TerminalsString) + catch + let s:saved_terminals = {} + endtry +endif + +" more session support +let g:ConqueTerm_TerminalsString = '' + +" init terminal counter +let g:ConqueTerm_Idx = 0 + +" we clobber this value later +let s:save_updatetime = &updatetime + +" have we called the init() function yet? +let s:initialized = 0 + + +" }}} + +" ********************************************************************************************************** +" **** SYSTEM DETECTION ************************************************************************************ +" ********************************************************************************************************** + +" {{{ + +" Display various error messages +function! conque_term#fail(feature) " {{{ + + " create a new buffer + new + setlocal buftype=nofile + setlocal nonumber + setlocal foldcolumn=0 + setlocal wrap + setlocal noswapfile + + " missing vim features + if a:feature == 'python' + + call append('$', 'Conque ERROR: Python interface cannot be loaded') + call append('$', '') + + if !executable("python") + call append('$', 'Your version of Vim appears to be installed without the Python interface. In ') + call append('$', 'addition, you may need to install Python.') + else + call append('$', 'Your version of Vim appears to be installed without the Python interface.') + endif + + call append('$', '') + + if has('unix') == 1 + call append('$', "You are using a Unix-like operating system. Most, if not all, of the popular ") + call append('$', "Linux package managers have Python-enabled Vim available. For example ") + call append('$', "vim-gnome or vim-gtk on Ubuntu will get you everything you need.") + call append('$', "") + call append('$', "If you are compiling Vim from source, make sure you use the --enable-pythoninterp ") + call append('$', "configure option. You will also need to install Python and the Python headers.") + call append('$', "") + call append('$', "If you are using OS X, MacVim will give you Python support by default.") + else + call append('$', "You appear to be using Windows. The official Vim 7.3 installer available at ") + call append('$', "http://www.vim.org comes with the required Python interfaces. You will also ") + call append('$', "need to install Python 2.7 and/or Python 3.1, both available at http://www.python.org") + endif + + elseif a:feature == 'python_exe' + + call append('$', "Conque ERROR: Can't find Python executable") + call append('$', "") + call append('$', "Conque needs to know the full path to python.exe on Windows systems. By default, ") + call append('$', "Conque will check your system path as well as the most common installation path ") + call append('$', "C:\\PythonXX\\python.exe. To fix this error either:") + call append('$', "") + call append('$', "Set the g:ConqueTerm_PyExe option in your .vimrc. E.g.") + call append('$', " let g:ConqueTerm_PyExe = 'C:\Program Files\Python27\python.exe'") + call append('$', "") + call append('$', "Add the directory where you installed python to your system path. This isn't a bad ") + call append('$', "idea in general.") + + elseif a:feature == 'ctypes' + + call append('$', 'Conque ERROR: Python cannot load the ctypes module') + call append('$', "") + call append('$', "Conque requires the 'ctypes' python module. This has been a standard module since Python 2.5.") + call append('$', "") + call append('$', "The recommended fix is to make sure you're using the latest official GVim version 7.3, ") + call append('$', "and have at least one of the two compatible versions of Python installed, ") + call append('$', "2.7 or 3.1. You can download the GVim 7.3 installer from http://www.vim.org. You ") + call append('$', "can download the Python 2.7 or 3.1 installer from http://www.python.org") + + endif + +endfunction " }}} + +" Go through various system checks before attempting to launch conque +function! conque_term#dependency_check() " {{{ + + " don't recheck the second time 'round + if s:initialized == 1 + return 1 + endif + + " choose a python version + let s:py = '' + if g:ConqueTerm_PyVersion == 3 + let pytest = 'python3' + else + let pytest = 'python' + let g:ConqueTerm_PyVersion = 2 + endif + + " first test the requested version + if has(pytest) + if pytest == 'python3' + let s:py = 'py3' + else + let s:py = 'py' + endif + + " otherwise use the other version + else + let py_alternate = 5 - g:ConqueTerm_PyVersion + if py_alternate == 3 + let pytest = 'python3' + else + let pytest = 'python' + endif + if has(pytest) + echohl WarningMsg | echomsg "Python " . g:ConqueTerm_PyVersion . " interface is not installed, using Python " . py_alternate . " instead" | echohl None + let g:ConqueTerm_PyVersion = py_alternate + if pytest == 'python3' + let s:py = 'py3' + else + let s:py = 'py' + endif + endif + endif + + " test if we actually found a python version + if s:py == '' + call conque_term#fail('python') + return 0 + endif + + " quick and dirty platform declaration + if has('unix') == 1 + let s:platform = 'unix' + sil exe s:py . " CONQUE_PLATFORM = 'unix'" + else + let s:platform = 'windows' + sil exe s:py . " CONQUE_PLATFORM = 'windows'" + endif + + " if we're using Windows, make sure ctypes is available + if s:platform == 'windows' + try + sil exe s:py . " import ctypes" + catch + call conque_term#fail('ctypes') + return 0 + endtry + endif + + " if we're using Windows, make sure we can finde python executable + if s:platform == 'windows' && conque_term#find_python_exe() == '' + call conque_term#fail('python_exe') + return 0 + endif + + " check for global cursorhold/cursormove events + let o = '' + silent redir => o + silent autocmd CursorHoldI,CursorMovedI + redir END + for line in split(o, "\n") + if line =~ '^ ' || line =~ '^--' || line =~ 'matchparen' + continue + endif + if g:ConqueTerm_StartMessages + echohl WarningMsg | echomsg "Warning: Global CursorHoldI and CursorMovedI autocommands may cause ConqueTerm to run slowly." | echohl None + endif + endfor + + " check for compatible mode + if &compatible == 1 + echohl WarningMsg | echomsg "Warning: Conque may not function normally in 'compatible' mode." | echohl None + endif + + " check for fast mode + if g:ConqueTerm_FastMode + sil exe s:py . " CONQUE_FAST_MODE = True" + else + sil exe s:py . " CONQUE_FAST_MODE = False" + endif + + " if we're all good, load python files + call conque_term#load_python() + + return 1 + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** STARTUP MESSAGES ************************************************************************************ +" ********************************************************************************************************** + +" {{{ +"if g:ConqueTerm_StartMessages +" let msg_file = s:scriptdirpy . 'version.vim' +" let msg_show = 1 +" let msg_ct = 1 +" +" " we can write to conque_term directory +" if filewritable(s:scriptdirpy) == 2 +" +" if filewritable(msg_file) +" +" " read current message file +" try +" silent execute "source " . msg_file +" if exists('g:ConqueTerm_MsgCt') && exists('g:ConqueTerm_MsgVer') +" if g:ConqueTerm_MsgVer == g:ConqueTerm_Version && g:ConqueTerm_MsgCt > 2 +" let msg_show = 0 +" else +" let msg_ct = g:ConqueTerm_MsgCt + 1 +" endif +" endif +" catch +" endtry +" endif +" +" " update message file +" if msg_show +" let file_contents = ['let g:ConqueTerm_MsgCt = ' . msg_ct, 'let g:ConqueTerm_MsgVer = ' . g:ConqueTerm_Version] +" call writefile(file_contents, msg_file) +" endif +" endif +" +" " save our final decision +" let g:ConqueTerm_StartMessages = msg_show +"endif +" }}} + +" ********************************************************************************************************** +" **** WINDOWS VK CODES ************************************************************************************ +" ********************************************************************************************************** + +" Windows Virtual Key Codes {{{ +let s:windows_vk = { +\ 'VK_ADD' : 107, +\ 'VK_APPS' : 93, +\ 'VK_ATTN' : 246, +\ 'VK_BACK' : 8, +\ 'VK_BROWSER_BACK' : 166, +\ 'VK_BROWSER_FORWARD' : 167, +\ 'VK_CANCEL' : 3, +\ 'VK_CAPITAL' : 20, +\ 'VK_CLEAR' : 12, +\ 'VK_CONTROL' : 17, +\ 'VK_CONVERT' : 28, +\ 'VK_CRSEL' : 247, +\ 'VK_DECIMAL' : 110, +\ 'VK_DELETE' : 46, +\ 'VK_DIVIDE' : 111, +\ 'VK_DOWN' : 40, +\ 'VK_DOWN_CTL' : '40;1024', +\ 'VK_END' : 35, +\ 'VK_EREOF' : 249, +\ 'VK_ESCAPE' : 27, +\ 'VK_EXECUTE' : 43, +\ 'VK_EXSEL' : 248, +\ 'VK_F1' : 112, +\ 'VK_F10' : 121, +\ 'VK_F11' : 122, +\ 'VK_F12' : 123, +\ 'VK_F13' : 124, +\ 'VK_F14' : 125, +\ 'VK_F15' : 126, +\ 'VK_F16' : 127, +\ 'VK_F17' : 128, +\ 'VK_F18' : 129, +\ 'VK_F19' : 130, +\ 'VK_F2' : 113, +\ 'VK_F20' : 131, +\ 'VK_F21' : 132, +\ 'VK_F22' : 133, +\ 'VK_F23' : 134, +\ 'VK_F24' : 135, +\ 'VK_F3' : 114, +\ 'VK_F4' : 115, +\ 'VK_F5' : 116, +\ 'VK_F6' : 117, +\ 'VK_F7' : 118, +\ 'VK_F8' : 119, +\ 'VK_F9' : 120, +\ 'VK_FINAL' : 24, +\ 'VK_HANGEUL' : 21, +\ 'VK_HANGUL' : 21, +\ 'VK_HANJA' : 25, +\ 'VK_HELP' : 47, +\ 'VK_HOME' : 36, +\ 'VK_INSERT' : 45, +\ 'VK_JUNJA' : 23, +\ 'VK_KANA' : 21, +\ 'VK_KANJI' : 25, +\ 'VK_LBUTTON' : 1, +\ 'VK_LCONTROL' : 162, +\ 'VK_LEFT' : 37, +\ 'VK_LEFT_CTL' : '37;1024', +\ 'VK_LMENU' : 164, +\ 'VK_LSHIFT' : 160, +\ 'VK_LWIN' : 91, +\ 'VK_MBUTTON' : 4, +\ 'VK_MEDIA_NEXT_TRACK' : 176, +\ 'VK_MEDIA_PLAY_PAUSE' : 179, +\ 'VK_MEDIA_PREV_TRACK' : 177, +\ 'VK_MENU' : 18, +\ 'VK_MODECHANGE' : 31, +\ 'VK_MULTIPLY' : 106, +\ 'VK_NEXT' : 34, +\ 'VK_NONAME' : 252, +\ 'VK_NONCONVERT' : 29, +\ 'VK_NUMLOCK' : 144, +\ 'VK_NUMPAD0' : 96, +\ 'VK_NUMPAD1' : 97, +\ 'VK_NUMPAD2' : 98, +\ 'VK_NUMPAD3' : 99, +\ 'VK_NUMPAD4' : 100, +\ 'VK_NUMPAD5' : 101, +\ 'VK_NUMPAD6' : 102, +\ 'VK_NUMPAD7' : 103, +\ 'VK_NUMPAD8' : 104, +\ 'VK_NUMPAD9' : 105, +\ 'VK_OEM_CLEAR' : 254, +\ 'VK_PA1' : 253, +\ 'VK_PAUSE' : 19, +\ 'VK_PLAY' : 250, +\ 'VK_PRINT' : 42, +\ 'VK_PRIOR' : 33, +\ 'VK_PROCESSKEY' : 229, +\ 'VK_RBUTTON' : 2, +\ 'VK_RCONTROL' : 163, +\ 'VK_RETURN' : 13, +\ 'VK_RIGHT' : 39, +\ 'VK_RIGHT_CTL' : '39;1024', +\ 'VK_RMENU' : 165, +\ 'VK_RSHIFT' : 161, +\ 'VK_RWIN' : 92, +\ 'VK_SCROLL' : 145, +\ 'VK_SELECT' : 41, +\ 'VK_SEPARATOR' : 108, +\ 'VK_SHIFT' : 16, +\ 'VK_SNAPSHOT' : 44, +\ 'VK_SPACE' : 32, +\ 'VK_SUBTRACT' : 109, +\ 'VK_TAB' : 9, +\ 'VK_UP' : 38, +\ 'VK_UP_CTL' : '38;1024', +\ 'VK_VOLUME_DOWN' : 174, +\ 'VK_VOLUME_MUTE' : 173, +\ 'VK_VOLUME_UP' : 175, +\ 'VK_XBUTTON1' : 5, +\ 'VK_XBUTTON2' : 6, +\ 'VK_ZOOM' : 251 +\ } +" }}} + +" ********************************************************************************************************** +" **** ACTUAL CONQUE FUNCTIONS! *************************************************************************** +" ********************************************************************************************************** + +" {{{ + +" launch conque +function! conque_term#open(...) "{{{ + let command = get(a:000, 0, '') + let vim_startup_commands = get(a:000, 1, []) + let return_to_current = get(a:000, 2, 0) + let is_buffer = get(a:000, 3, 1) + + " dependency check + if !conque_term#dependency_check() + return 0 + endif + + " switch to buffer if needed + if is_buffer && return_to_current + let save_sb = &switchbuf + sil set switchbuf=usetab + let current_buffer = bufname("%") + endif + + " bare minimum validation + if s:py == '' + echohl WarningMsg | echomsg "Conque requires the Python interface to be installed. See :help ConqueTerm for more information." | echohl None + return 0 + endif + if empty(command) + echohl WarningMsg | echomsg "Invalid usage: no program path given. Use :ConqueTerm YOUR PROGRAM, e.g. :ConqueTerm ipython" | echohl None + return 0 + else + let cmd_args = split(command, '[^\\]\@<=\s') + let cmd_args[0] = substitute(cmd_args[0], '\\ ', ' ', 'g') + if !executable(cmd_args[0]) + echohl WarningMsg | echomsg "Not an executable: " . cmd_args[0] | echohl None + return 0 + endif + endif + + " initialize global identifiers + let g:ConqueTerm_Idx += 1 + let g:ConqueTerm_Var = 'ConqueTerm_' . g:ConqueTerm_Idx + let g:ConqueTerm_BufName = substitute(command, ' ', '\\ ', 'g') . "\\ -\\ " . g:ConqueTerm_Idx + + " initialize global mappings if needed + call conque_term#init() + + " set Vim buffer window options + if is_buffer + call conque_term#set_buffer_settings(command, vim_startup_commands) + + let b:ConqueTerm_Idx = g:ConqueTerm_Idx + let b:ConqueTerm_Var = g:ConqueTerm_Var + endif + + " save terminal instance + let t_obj = conque_term#create_terminal_object(g:ConqueTerm_Idx, is_buffer, g:ConqueTerm_BufName, command) + let g:ConqueTerm_Terminals[g:ConqueTerm_Idx] = t_obj + + " required for session support + let g:ConqueTerm_TerminalsString = string(g:ConqueTerm_Terminals) + + " open command + try + let options = {} + let options["TERM"] = g:ConqueTerm_TERM + let options["CODE_PAGE"] = g:ConqueTerm_CodePage + let options["color"] = g:ConqueTerm_Color + let options["offset"] = 0 " g:ConqueTerm_StartMessages * 10 + + if s:platform == 'unix' + execute s:py . ' ' . g:ConqueTerm_Var . ' = Conque()' + execute s:py . ' ' . g:ConqueTerm_Var . ".open()" + else + " find python.exe and communicator + let py_exe = conque_term#find_python_exe() + let py_vim = s:scriptdirpy . 'conque_sole_communicator.py' + execute s:py . ' ' . g:ConqueTerm_Var . ' = ConqueSole()' + execute s:py . ' ' . g:ConqueTerm_Var . ".open()" + + if g:ConqueTerm_ColorMode == 'conceal' + call conque_term#init_conceal_color() + endif + endif + catch + echohl WarningMsg | echomsg "An error occurred: " . command | echohl None + return 0 + endtry + + " set key mappings and auto commands + if is_buffer + call conque_term#set_mappings('start') + endif + + " call user defined functions + call conque_term#call_hooks('after_startup', t_obj) + + " switch to buffer if needed + if is_buffer && return_to_current + sil exe ":sb " . current_buffer + sil exe ":set switchbuf=" . save_sb + elseif is_buffer + startinsert! + endif + + return t_obj + +endfunction "}}} + +" open(), but no buffer +function! conque_term#subprocess(command) " {{{ + + let t_obj = conque_term#open(a:command, [], 0, 0) + if !exists('b:ConqueTerm_Var') + call conque_term#on_blur() + sil exe s:py . ' ' . g:ConqueTerm_Var . '.idle()' + endif + return t_obj + +endfunction " }}} + +" set buffer options +function! conque_term#set_buffer_settings(command, vim_startup_commands) "{{{ + + " optional hooks to execute, e.g. 'split' + for h in a:vim_startup_commands + sil exe h + endfor + sil exe 'edit ++enc=utf-8 ' . g:ConqueTerm_BufName + + " buffer settings + setlocal fileencoding=utf-8 " file encoding, even tho there's no file + setlocal nopaste " conque won't work in paste mode + setlocal buftype=nofile " this buffer is not a file, you can't save it + setlocal nonumber " hide line numbers + if v:version >= 703 + setlocal norelativenumber " hide relative line numbers (VIM >= 7.3) + endif + setlocal foldcolumn=0 " reasonable left margin + setlocal nowrap " default to no wrap (esp with MySQL) + setlocal noswapfile " don't bother creating a .swp file + setlocal scrolloff=0 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal sidescrolloff=0 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal sidescroll=1 " don't use buffer lines. it makes the 'clear' command not work as expected + setlocal foldmethod=manual " don't fold on {{{}}} and stuff + setlocal bufhidden=hide " when buffer is no longer displayed, don't wipe it out + setlocal noreadonly " this is not actually a readonly buffer + if v:version >= 703 + setlocal conceallevel=3 + setlocal concealcursor=nic + endif + if g:ConqueTerm_ReadUnfocused + set cpoptions+=I " Don't remove autoindent when moving cursor up and down + endif + setfiletype conque_term " useful + sil exe "setlocal syntax=" . g:ConqueTerm_Syntax + + " temporary global settings go in here + call conque_term#on_focus(1) + +endfunction " }}} + +" send normal character key press to terminal +function! conque_term#key_press() "{{{ + sil exe s:py . ' ' . b:ConqueTerm_Var . ".write_buffered_ord(" . char2nr(v:char) . ")" + sil let v:char = '' +endfunction " }}} + +" set key mappings and auto commands +function! conque_term#set_mappings(action) "{{{ + + " set action {{{ + if a:action == 'toggle' + if exists('b:conque_on') && b:conque_on == 1 + let l:action = 'stop' + echohl WarningMsg | echomsg "Terminal is paused" | echohl None + else + let l:action = 'start' + echohl WarningMsg | echomsg "Terminal is resumed" | echohl None + endif + else + let l:action = a:action + endif + + " if mappings are being removed, add 'un' + let map_modifier = 'nore' + if l:action == 'stop' + let map_modifier = 'un' + endif + " }}} + + " auto commands {{{ + if l:action == 'stop' + sil exe 'autocmd! ' . b:ConqueTerm_Var + + else + sil exe 'augroup ' . b:ConqueTerm_Var + + " handle unexpected closing of shell, passes HUP to parent and all child processes + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufUnload ' . s:py . ' ' . b:ConqueTerm_Var . '.close()' + + " check for resized/scrolled buffer when entering buffer + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufEnter ' . s:py . ' ' . b:ConqueTerm_Var . '.update_window_size()' + sil exe 'autocmd ' . b:ConqueTerm_Var . ' VimResized ' . s:py . ' ' . b:ConqueTerm_Var . '.update_window_size()' + + " set/reset updatetime on entering/exiting buffer + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufEnter call conque_term#on_focus()' + sil exe 'autocmd ' . b:ConqueTerm_Var . ' BufLeave call conque_term#on_blur()' + + " reposition cursor when going into insert mode + sil exe 'autocmd ' . b:ConqueTerm_Var . ' InsertEnter ' . s:py . ' ' . b:ConqueTerm_Var . '.insert_enter()' + + " poll for more output + sil exe 'autocmd ' . b:ConqueTerm_Var . ' CursorHoldI ' . s:py . ' ' . b:ConqueTerm_Var . '.auto_read()' + endif + " }}} + + " map ASCII 1-31 {{{ + for c in range(1, 31) + " + if c == 27 || c == 3 + continue + endif + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(' . c . ')' + else + sil exe 'i' . map_modifier . 'map ' + endif + endfor + " bonus mapping: send in normal mode to terminal as well for panic interrupts + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(3)' + sil exe 'n' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(3)' + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'n' . map_modifier . 'map ' + endif + + " leave insert mode + if !exists('g:ConqueTerm_EscKey') || g:ConqueTerm_EscKey == '' + " use to send to terminal + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(27)' + else + sil exe 'i' . map_modifier . 'map ' + endif + else + " use to send to terminal + if l:action == 'start' + sil exe 'i' . map_modifier . 'map ' . g:ConqueTerm_EscKey . ' ' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_ord(27)' + else + sil exe 'i' . map_modifier . 'map ' . g:ConqueTerm_EscKey + sil exe 'i' . map_modifier . 'map ' + endif + endif + + " Map in insert mode + if exists('g:ConqueTerm_CWInsert') && g:ConqueTerm_CWInsert == 1 + inoremap + endif + " }}} + + " map 33 and beyond {{{ + if exists('##InsertCharPre') && g:ConqueTerm_InsertCharPre == 1 + if l:action == 'start' + autocmd InsertCharPre call conque_term#key_press() + else + autocmd! InsertCharPre + endif + else + for i in range(33, 127) + " + if i == 124 + if l:action == 'start' + sil exe "i" . map_modifier . "map :" . s:py . ' ' . b:ConqueTerm_Var . ".write_ord(124)" + else + sil exe "i" . map_modifier . "map " + endif + continue + endif + if l:action == 'start' + sil exe "i" . map_modifier . "map " . nr2char(i) . " :" . s:py . ' ' . b:ConqueTerm_Var . ".write_ord(" . i . ")" + else + sil exe "i" . map_modifier . "map " . nr2char(i) + endif + endfor + endif + " }}} + + " Special keys {{{ + if l:action == 'start' + if s:platform == 'unix' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[A"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[B"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[C"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[D"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1bOH"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1bOF"))' + else + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x08"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u(" "))' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_UP . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_DOWN . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_RIGHT . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_LEFT . ')' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_UP_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_DOWN_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_RIGHT_CTL . '")' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk("' . s:windows_vk.VK_LEFT_CTL . '")' + + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_DELETE . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_HOME . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_END . ')' + endif + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + " }}} + + " keys {{{ + if g:ConqueTerm_SendFunctionKeys + if l:action == 'start' + if s:platform == 'unix' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[11~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[12~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("1b[13~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[14~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[15~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[17~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[18~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[19~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[20~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[21~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[23~"))' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write(u("\x1b[24~"))' + else + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F1 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F2 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F3 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F4 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F5 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F6 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F7 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F8 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F9 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F10 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F11 . ')' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_vk(' . s:windows_vk.VK_F12 . ')' + endif + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + endif + " }}} + + " various global mappings {{{ + " don't overwrite existing mappings + if l:action == 'start' + if maparg(g:ConqueTerm_SendVisKey, 'v') == '' + sil exe 'v' . map_modifier . 'map ' . g:ConqueTerm_SendVisKey . ' :call conque_term#send_selected(visualmode())' + endif + if maparg(g:ConqueTerm_SendFileKey, 'n') == '' + sil exe 'n' . map_modifier . 'map ' . g:ConqueTerm_SendFileKey . ' :call conque_term#send_file()' + endif + endif + " }}} + + " remap paste keys {{{ + if l:action == 'start' + sil exe 'n' . map_modifier . 'map p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map P :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map ]p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + sil exe 'n' . map_modifier . 'map [p :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@@")a' + else + sil exe 'n' . map_modifier . 'map p' + sil exe 'n' . map_modifier . 'map P' + sil exe 'n' . map_modifier . 'map ]p' + sil exe 'n' . map_modifier . 'map [p' + endif + if has('gui_running') == 1 + if l:action == 'start' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@+")a' + sil exe 'i' . map_modifier . 'map :' . s:py . ' ' . b:ConqueTerm_Var . '.write_expr("@+")a' + else + sil exe 'i' . map_modifier . 'map ' + sil exe 'i' . map_modifier . 'map ' + endif + endif + " }}} + + " disable other normal mode keys which insert text {{{ + if l:action == 'start' + sil exe 'n' . map_modifier . 'map r :echo "Replace mode disabled in shell."' + sil exe 'n' . map_modifier . 'map R :echo "Replace mode disabled in shell."' + sil exe 'n' . map_modifier . 'map c :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map C :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map s :echo "Change mode disabled in shell."' + sil exe 'n' . map_modifier . 'map S :echo "Change mode disabled in shell."' + else + sil exe 'n' . map_modifier . 'map r' + sil exe 'n' . map_modifier . 'map R' + sil exe 'n' . map_modifier . 'map c' + sil exe 'n' . map_modifier . 'map C' + sil exe 'n' . map_modifier . 'map s' + sil exe 'n' . map_modifier . 'map S' + endif + " }}} + + " set conque as on or off {{{ + if l:action == 'start' + let b:conque_on = 1 + else + let b:conque_on = 0 + endif + " }}} + + " map command to toggle terminal key mappings {{{ + if a:action == 'start' + sil exe 'nnoremap ' . g:ConqueTerm_ToggleKey . ' :call conque_term#set_mappings("toggle")' + endif + " }}} + + " call user defined functions + if l:action == 'start' + call conque_term#call_hooks('after_keymap', conque_term#get_instance()) + endif + +endfunction " }}} + +" Initialize global mappings. Should only be called once per Vim session +function! conque_term#init() " {{{ + + if s:initialized == 1 + return + endif + + augroup ConqueTerm + + " abort any remaining running terminals when Vim exits + autocmd ConqueTerm VimLeave * call conque_term#close_all() + + " read more output when this isn't the current buffer + if g:ConqueTerm_ReadUnfocused == 1 + autocmd ConqueTerm CursorHold * call conque_term#read_all(0) + endif + + let s:initialized = 1 + +endfunction " }}} + +" read from all known conque buffers +function! conque_term#read_all(insert_mode) "{{{ + + for i in range(1, g:ConqueTerm_Idx) + try + if !g:ConqueTerm_Terminals[i].active + continue + endif + + let output = g:ConqueTerm_Terminals[i].read(1) + + if !g:ConqueTerm_Terminals[i].is_buffer && exists('*g:ConqueTerm_Terminals[i].callback') + call g:ConqueTerm_Terminals[i].callback(output) + endif + catch + " probably a deleted buffer + endtry + endfor + + " restart updatetime + if a:insert_mode + "call feedkeys("\f\e", "n") + let p = getpos('.') + if p[1] == 1 + sil exe 'call feedkeys("\\", "n")' + else + sil exe 'call feedkeys("\\", "n")' + endif + call setpos('.', p) + else + call feedkeys("f\e", "n") + endif + +endfunction "}}} + +" close all subprocesses +function! conque_term#close_all() "{{{ + + for i in range(1, g:ConqueTerm_Idx) + try + call g:ConqueTerm_Terminals[i].close() + catch + " probably a deleted buffer + endtry + endfor + +endfunction "}}} + +" gets called when user enters conque buffer. +" Useful for making temp changes to global config +function! conque_term#on_focus(...) " {{{ + + let startup = get(a:000, 0, 0) + + " Disable NeoComplCache. It has global hooks on CursorHold and CursorMoved :-/ + let s:NeoComplCache_WasEnabled = exists(':NeoComplCacheLock') + if s:NeoComplCache_WasEnabled == 2 + NeoComplCacheLock + endif + + if g:ConqueTerm_ReadUnfocused == 1 + autocmd! ConqueTerm CursorHoldI * + autocmd! ConqueTerm CursorHold * + endif + + " set poll interval to 50ms + set updatetime=50 + + " resume subprocess fast polling + if startup == 0 && exists('b:ConqueTerm_Var') + sil exe s:py . ' ' . g:ConqueTerm_Var . '.resume()' + endif + + " call user defined functions + if startup == 0 + call conque_term#call_hooks('buffer_enter', conque_term#get_instance()) + endif + + " if configured, go into insert mode + if g:ConqueTerm_InsertOnEnter == 1 + startinsert! + endif + +endfunction " }}} + +" gets called when user exits conque buffer. +" Useful for resetting changes to global config +function! conque_term#on_blur() " {{{ + " re-enable NeoComplCache if needed + if exists('s:NeoComplCache_WasEnabled') && exists(':NeoComplCacheUnlock') && s:NeoComplCache_WasEnabled == 2 + NeoComplCacheUnlock + endif + + " turn off subprocess fast polling + if exists('b:ConqueTerm_Var') + sil exe s:py . ' ' . b:ConqueTerm_Var . '.idle()' + endif + + " reset poll interval + if g:ConqueTerm_ReadUnfocused == 1 + set updatetime=1000 + autocmd ConqueTerm CursorHoldI * call conque_term#read_all(1) + autocmd ConqueTerm CursorHold * call conque_term#read_all(0) + elseif exists('s:save_updatetime') + exe 'set updatetime=' . s:save_updatetime + else + set updatetime=2000 + endif + + " call user defined functions + call conque_term#call_hooks('buffer_leave', conque_term#get_instance()) + +endfunction " }}} + +" bell event (^G) +function! conque_term#bell() " {{{ + echohl WarningMsg | echomsg "BELL!" | echohl None +endfunction " }}} + +" register function to be called at conque events +function! conque_term#register_function(event, function_name) " {{{ + + if !has_key(s:hooks, a:event) + echomsg 'No such event: ' . a:event + return + endif + + if !exists('*' . a:function_name) + echomsg 'No such function: ' . a:function_name) + return + endif + + " register the function + call add(s:hooks[a:event], function(a:function_name)) + +endfunction " }}} + +" call hooks for an event +function! conque_term#call_hooks(event, t_obj) " {{{ + + for Fu in s:hooks[a:event] + call Fu(a:t_obj) + endfor + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** Windows only functions ****************************************************************************** +" ********************************************************************************************************** + +" {{{ + +" find python.exe in windows +function! conque_term#find_python_exe() " {{{ + + " first check configuration for custom value + if g:ConqueTerm_PyExe != '' && executable(g:ConqueTerm_PyExe) + return g:ConqueTerm_PyExe + endif + + let sys_paths = split($PATH, ';') + + " get exact python version + sil exe ':' . s:py . ' import sys, vim' + sil exe ':' . s:py . ' vim.command("let g:ConqueTerm_PyVersion = " + str(sys.version_info[0]) + str(sys.version_info[1]))' + + " ... and add to path list + call add(sys_paths, 'C:\Python' . g:ConqueTerm_PyVersion) + call reverse(sys_paths) + + " check if python.exe is in paths + for path in sys_paths + let cand = path . '\' . 'python.exe' + if executable(cand) + return cand + endif + endfor + + echohl WarningMsg | echomsg "Unable to find python.exe, see :help ConqueTerm_PythonExe for more information" | echohl None + + return '' + +endfunction " }}} + +" initialize concealed colors +function! conque_term#init_conceal_color() " {{{ + + highlight link ConqueCCBG Normal + + " foreground colors, low intensity + syn region ConqueCCF000 matchgroup=ConqueConceal start="\esf000;" end="\eef000;" concealends contains=ConqueCCBG + syn region ConqueCCF00c matchgroup=ConqueConceal start="\esf00c;" end="\eef00c;" concealends contains=ConqueCCBG + syn region ConqueCCF0c0 matchgroup=ConqueConceal start="\esf0c0;" end="\eef0c0;" concealends contains=ConqueCCBG + syn region ConqueCCF0cc matchgroup=ConqueConceal start="\esf0cc;" end="\eef0cc;" concealends contains=ConqueCCBG + syn region ConqueCCFc00 matchgroup=ConqueConceal start="\esfc00;" end="\eefc00;" concealends contains=ConqueCCBG + syn region ConqueCCFc0c matchgroup=ConqueConceal start="\esfc0c;" end="\eefc0c;" concealends contains=ConqueCCBG + syn region ConqueCCFcc0 matchgroup=ConqueConceal start="\esfcc0;" end="\eefcc0;" concealends contains=ConqueCCBG + syn region ConqueCCFccc matchgroup=ConqueConceal start="\esfccc;" end="\eefccc;" concealends contains=ConqueCCBG + + " foreground colors, high intensity + syn region ConqueCCF000 matchgroup=ConqueConceal start="\esf000;" end="\eef000;" concealends contains=ConqueCCBG + syn region ConqueCCF00f matchgroup=ConqueConceal start="\esf00f;" end="\eef00f;" concealends contains=ConqueCCBG + syn region ConqueCCF0f0 matchgroup=ConqueConceal start="\esf0f0;" end="\eef0f0;" concealends contains=ConqueCCBG + syn region ConqueCCF0ff matchgroup=ConqueConceal start="\esf0ff;" end="\eef0ff;" concealends contains=ConqueCCBG + syn region ConqueCCFf00 matchgroup=ConqueConceal start="\esff00;" end="\eeff00;" concealends contains=ConqueCCBG + syn region ConqueCCFf0f matchgroup=ConqueConceal start="\esff0f;" end="\eeff0f;" concealends contains=ConqueCCBG + syn region ConqueCCFff0 matchgroup=ConqueConceal start="\esfff0;" end="\eefff0;" concealends contains=ConqueCCBG + syn region ConqueCCFfff matchgroup=ConqueConceal start="\esffff;" end="\eeffff;" concealends contains=ConqueCCBG + + " background colors, low intensity + syn region ConqueCCB000 matchgroup=ConqueCCBG start="\esb000;" end="\eeb000;" concealends + syn region ConqueCCB00c matchgroup=ConqueCCBG start="\esb00c;" end="\eeb00c;" concealends + syn region ConqueCCB0c0 matchgroup=ConqueCCBG start="\esb0c0;" end="\eeb0c0;" concealends + syn region ConqueCCB0cc matchgroup=ConqueCCBG start="\esb0cc;" end="\eeb0cc;" concealends + syn region ConqueCCBc00 matchgroup=ConqueCCBG start="\esbc00;" end="\eebc00;" concealends + syn region ConqueCCBc0c matchgroup=ConqueCCBG start="\esbc0c;" end="\eebc0c;" concealends + syn region ConqueCCBcc0 matchgroup=ConqueCCBG start="\esbcc0;" end="\eebcc0;" concealends + syn region ConqueCCBccc matchgroup=ConqueCCBG start="\esbccc;" end="\eebccc;" concealends + + " background colors, high intensity + syn region ConqueCCB000 matchgroup=ConqueCCBG start="\esb000;" end="\eeb000;" concealends + syn region ConqueCCB00f matchgroup=ConqueCCBG start="\esb00f;" end="\eeb00f;" concealends + syn region ConqueCCB0f0 matchgroup=ConqueCCBG start="\esb0f0;" end="\eeb0f0;" concealends + syn region ConqueCCB0ff matchgroup=ConqueCCBG start="\esb0ff;" end="\eeb0ff;" concealends + syn region ConqueCCBf00 matchgroup=ConqueCCBG start="\esbf00;" end="\eebf00;" concealends + syn region ConqueCCBf0f matchgroup=ConqueCCBG start="\esbf0f;" end="\eebf0f;" concealends + syn region ConqueCCBff0 matchgroup=ConqueCCBG start="\esbff0;" end="\eebff0;" concealends + syn region ConqueCCBfff matchgroup=ConqueCCBG start="\esbfff;" end="\eebfff;" concealends + + + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + "highlight link ConqueCCConceal Error + + " foreground colors, low intensity + highlight ConqueCCF000 guifg=#000000 + highlight ConqueCCF00c guifg=#0000cc + highlight ConqueCCF0c0 guifg=#00cc00 + highlight ConqueCCF0cc guifg=#00cccc + highlight ConqueCCFc00 guifg=#cc0000 + highlight ConqueCCFc0c guifg=#cc00cc + highlight ConqueCCFcc0 guifg=#cccc00 + highlight ConqueCCFccc guifg=#cccccc + + " foreground colors, high intensity + highlight ConqueCCF000 guifg=#000000 + highlight ConqueCCF00f guifg=#0000ff + highlight ConqueCCF0f0 guifg=#00ff00 + highlight ConqueCCF0ff guifg=#00ffff + highlight ConqueCCFf00 guifg=#ff0000 + highlight ConqueCCFf0f guifg=#ff00ff + highlight ConqueCCFff0 guifg=#ffff00 + highlight ConqueCCFfff guifg=#ffffff + + " background colors, low intensity + highlight ConqueCCB000 guibg=#000000 + highlight ConqueCCB00c guibg=#0000cc + highlight ConqueCCB0c0 guibg=#00cc00 + highlight ConqueCCB0cc guibg=#00cccc + highlight ConqueCCBc00 guibg=#cc0000 + highlight ConqueCCBc0c guibg=#cc00cc + highlight ConqueCCBcc0 guibg=#cccc00 + highlight ConqueCCBccc guibg=#cccccc + + " background colors, high intensity + highlight ConqueCCB000 guibg=#000000 + highlight ConqueCCB00f guibg=#0000ff + highlight ConqueCCB0f0 guibg=#00ff00 + highlight ConqueCCB0ff guibg=#00ffff + highlight ConqueCCBf00 guibg=#ff0000 + highlight ConqueCCBf0f guibg=#ff00ff + highlight ConqueCCBff0 guibg=#ffff00 + highlight ConqueCCBfff guibg=#ffffff + + " background colors, low intensity + highlight link ConqueCCB000 ConqueCCBG + highlight link ConqueCCB00c ConqueCCBG + highlight link ConqueCCB0c0 ConqueCCBG + highlight link ConqueCCB0cc ConqueCCBG + highlight link ConqueCCBc00 ConqueCCBG + highlight link ConqueCCBc0c ConqueCCBG + highlight link ConqueCCBcc0 ConqueCCBG + highlight link ConqueCCBccc ConqueCCBG + + " background colors, high intensity + highlight link ConqueCCB000 ConqueCCBG + highlight link ConqueCCB00f ConqueCCBG + highlight link ConqueCCB0f0 ConqueCCBG + highlight link ConqueCCB0ff ConqueCCBG + highlight link ConqueCCBf00 ConqueCCBG + highlight link ConqueCCBf0f ConqueCCBG + highlight link ConqueCCBff0 ConqueCCBG + highlight link ConqueCCBfff ConqueCCBG + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** Add-on features ************************************************************************************* +" ********************************************************************************************************** + +" {{{ + +" send selected text from another buffer +function! conque_term#send_selected(type) "{{{ + + " get most recent/relevant terminal + let term = conque_term#get_instance() + + " shove visual text into @@ register + let reg_save = @@ + sil exe "normal! `<" . a:type . "`>y" + let @@ = substitute(@@, '^[\r\n]*', '', '') + let @@ = substitute(@@, '[\r\n]*$', '', '') + + " go to terminal buffer + call term.focus() + + " execute yanked text + call term.write(@@) + + " reset original values + let @@ = reg_save + + " scroll buffer left + startinsert! + normal! 0zH + +endfunction "}}} + +function! conque_term#send_file() "{{{ + + let file_lines = readfile(expand('%:p')) + if type(file_lines) == 3 && len(file_lines) > 0 + let term = conque_term#get_instance() + call term.focus() + + for line in file_lines + call term.writeln(line) + endfor + else + echomsg 'Could not read file: ' . expand('%:p') + endif + +endfunction "}}} + + +function! conque_term#exec_file() "{{{ + + let current_file = expand('%:p') + if !executable(current_file) + echomsg "Could not run " . current_file . ". Not an executable." + return + endif + exe ':ConqueTermSplit ' . current_file + +endfunction "}}} + + +" called on SessionLoadPost event +function! conque_term#resume_session() " {{{ + if g:ConqueTerm_SessionSupport == 1 + + " make sure terminals exist + if !exists('s:saved_terminals') || type(s:saved_terminals) != 4 + return + endif + + " rebuild terminals + for idx in keys(s:saved_terminals) + + " don't recreate inactive terminals + if s:saved_terminals[idx].active == 0 + continue + endif + + " check we're in the right buffer + let bufname = substitute(s:saved_terminals[idx].buffer_name, '\', '', 'g') + if bufname != bufname("%") + continue + endif + + " reopen command + call conque_term#open(s:saved_terminals[idx].command) + + return + endfor + + endif +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** "API" functions ************************************************************************************* +" ********************************************************************************************************** + +" See doc/conque_term.txt for full documentation {{{ + +" Write to a conque terminal buffer +function! s:term_obj.write(...) dict " {{{ + + let text = get(a:000, 0, '') + let jump_to_buffer = get(a:000, 1, 0) + + " if we're not in terminal buffer, pass flag to not position the cursor + sil exe s:py . ' ' . self.var . '.write_expr("text", False, False)' + + " move cursor to conque buffer + if jump_to_buffer + call self.focus() + endif + +endfunction " }}} + +" same as write() but adds a newline +function! s:term_obj.writeln(...) dict " {{{ + + let text = get(a:000, 0, '') + let jump_to_buffer = get(a:000, 1, 0) + + call self.write(text . "\r", jump_to_buffer) + +endfunction " }}} + +" move cursor to terminal buffer +function! s:term_obj.focus() dict " {{{ + + let save_sb = &switchbuf + sil set switchbuf=usetab + exe 'sb ' . self.buffer_name + sil exe ":set switchbuf=" . save_sb + startinsert! + +endfunction " }}} + +" read from terminal buffer and return string +function! s:term_obj.read(...) dict " {{{ + + let read_time = get(a:000, 0, 1) + let update_buffer = get(a:000, 1, self.is_buffer) + + if update_buffer + let up_py = 'True' + else + let up_py = 'False' + endif + + " figure out if we're in the buffer we're updating + if exists('b:ConqueTerm_Var') && b:ConqueTerm_Var == self.var + let in_buffer = 1 + else + let in_buffer = 0 + endif + + let output = '' + + " read! + sil exec s:py . " conque_tmp = " . self.var . ".read(timeout = " . read_time . ", set_cursor = False, return_output = True, update_buffer = " . up_py . ")" + + " ftw! + try + let pycode = "\nif conque_tmp:\n conque_tmp = re.sub('\\\\\\\\', '\\\\\\\\\\\\\\\\', conque_tmp)\n conque_tmp = re.sub('\"', '\\\\\\\\\"', conque_tmp)\n vim.command('let output = \"' + conque_tmp + '\"')\n" + sil exec s:py . pycode + catch + " d'oh + endtry + + return output + +endfunction " }}} + +" set output callback +function! s:term_obj.set_callback(callback_func) dict " {{{ + + let g:ConqueTerm_Terminals[self.idx].callback = function(a:callback_func) + +endfunction " }}} + +" close subprocess with ABORT signal +function! s:term_obj.close() dict " {{{ + + " kill process + try + sil exe s:py . ' ' . self.var . '.abort()' + catch + " probably already dead + endtry + + " delete buffer if option is set + if self.is_buffer + call conque_term#set_mappings('stop') + if exists('g:ConqueTerm_CloseOnEnd') && g:ConqueTerm_CloseOnEnd + sil exe 'bwipeout! ' . self.buffer_name + stopinsert! + endif + endif + + " mark ourselves as inactive + let self.active = 0 + + " rebuild session options + let g:ConqueTerm_TerminalsString = string(g:ConqueTerm_Terminals) + +endfunction " }}} + +" create a new terminal object +function! conque_term#create_terminal_object(...) " {{{ + + " find conque buffer to update + let buf_num = get(a:000, 0, 0) + if buf_num > 0 + let pvar = 'ConqueTerm_' . buf_num + elseif exists('b:ConqueTerm_Var') + let pvar = b:ConqueTerm_Var + let buf_num = b:ConqueTerm_Idx + else + let pvar = g:ConqueTerm_Var + let buf_num = g:ConqueTerm_Idx + endif + + " is ther a buffer? + let is_buffer = get(a:000, 1, 1) + + " the buffer name + let bname = get(a:000, 2, '') + + " the command + let command = get(a:000, 3, '') + + " parse out the program name (not perfect) + let arg_split = split(command, '[^\\]\@<=\s') + let arg_split[0] = substitute(arg_split[0], '\\ ', ' ', 'g') + let slash_split = split(arg_split[0], '[/\\]') + let prg_name = substitute(slash_split[-1], '\(.*\)\..*', '\1', '') + + let l:t_obj = copy(s:term_obj) + let l:t_obj.is_buffer = is_buffer + let l:t_obj.idx = buf_num + let l:t_obj.buffer_name = bname + let l:t_obj.var = pvar + let l:t_obj.command = command + let l:t_obj.program_name = prg_name + + return l:t_obj + +endfunction " }}} + +" get an existing terminal instance +function! conque_term#get_instance(...) " {{{ + + " find conque buffer to update + let buf_num = get(a:000, 0, 0) + + if exists('g:ConqueTerm_Terminals[buf_num]') + + elseif exists('b:ConqueTerm_Var') + let buf_num = b:ConqueTerm_Idx + else + let buf_num = g:ConqueTerm_Idx + endif + + return g:ConqueTerm_Terminals[buf_num] + +endfunction " }}} + +" }}} + +" ********************************************************************************************************** +" **** PYTHON ********************************************************************************************** +" ********************************************************************************************************** + +function! conque_term#load_python() " {{{ + + exec s:py . "file " . s:scriptdirpy . "conque_globals.py" + exec s:py . "file " . s:scriptdirpy . "conque.py" + if s:platform == 'windows' + exec s:py . "file " . s:scriptdirpy . "conque_win32_util.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole_shared_memory.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole.py" + exec s:py . "file " . s:scriptdirpy . "conque_sole_wrapper.py" + else + exec s:py . "file " . s:scriptdirpy . "conque_screen.py" + exec s:py . "file " . s:scriptdirpy . "conque_subprocess.py" + endif + +endfunction " }}} + +" vim:foldmethod=marker diff --git a/.vim/autoload/conque_term/conque.py b/.vim/autoload/conque_term/conque.py new file mode 100644 index 0000000..08c92e4 --- /dev/null +++ b/.vim/autoload/conque_term/conque.py @@ -0,0 +1,1154 @@ +# FILE: autoload/conque_term/conque.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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 terminal emulator. + +This class is the main interface between Vim and the terminal application. It +handles both updating the Vim buffer with new output and accepting new keyboard +input from the Vim user. + +Although this class was originally designed for a Unix terminal environment, it +has been extended by the ConqueSole class for Windows. + +Usage: + term = Conque() + term.open('/bin/bash', {'TERM': 'vt100'}) + term.write("ls -lha\r") + term.read() + term.close() +""" + +import vim +import re +import math +import time # DEBUG + +class Conque: + + # screen object + screen = None + + # subprocess object + proc = None + + # terminal dimensions and scrolling region + columns = 80 # same as $COLUMNS + lines = 24 # same as $LINES + working_columns = 80 # can be changed by CSI ? 3 l/h + working_lines = 24 # can be changed by CSI r + + # top/bottom of the scroll region + top = 1 # relative to top of screen + bottom = 24 # relative to top of screen + + # cursor position + l = 1 # current cursor line + c = 1 # current cursor column + + # autowrap mode + autowrap = True + + # absolute coordinate mode + absolute_coords = True + + # tabstop positions + tabstops = [] + + # enable colors + enable_colors = True + + # color changes + color_changes = {} + + # color history + color_history = {} + + # color highlight cache + highlight_groups = {} + + # prune terminal colors + color_pruning = True + + # don't wrap table output + unwrap_tables = True + + # wrap CUF/CUB around line breaks + wrap_cursor = False + + # do we need to move the cursor? + cursor_set = False + + # current character set, ascii or graphics + character_set = 'ascii' + + # used for auto_read actions + read_count = 0 + + # input buffer, array of ordinals + input_buffer = [] + + def open(self): + """ Start program and initialize this instance. + + Arguments: + command -- Command string to execute, e.g. '/bin/bash --login' + options -- Dictionary of environment vars to set and other options. + + """ + # get arguments + command = vim.eval('command') + options = vim.eval('options') + + # create terminal screen instance + self.screen = ConqueScreen() + + # int vars + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + # offset first line to make room for startup messages + if int(options['offset']) > 0: + self.l = int(options['offset']) + + # init color + self.enable_colors = options['color'] and not CONQUE_FAST_MODE + + # init tabstops + self.init_tabstops() + + # open command + self.proc = ConqueSubprocess() + self.proc.open(command, {'TERM': options['TERM'], 'CONQUE': '1', 'LINES': str(self.lines), 'COLUMNS': str(self.columns)}) + + # send window size signal, in case LINES/COLUMNS is ignored + self.update_window_size(True) + + + def write(self, input, set_cursor=True, read=True): + """ Write a unicode string to the subprocess. + + set_cursor -- Position the cursor in the current buffer when finished + read -- Check program for new output when finished + + """ + # check if window size has changed + if read: + self.update_window_size() + + # write and read + self.proc.write(input) + + # read output immediately + if read: + self.read(1, set_cursor) + + + + def write_ord(self, input, set_cursor=True, read=True): + """ Write a single character to the subprocess, using an unicode ordinal. """ + + if CONQUE_PYTHON_VERSION == 2: + self.write(unichr(input), set_cursor, read) + else: + self.write(chr(input), set_cursor, read) + + + + def write_expr(self, expr, set_cursor=True, read=True): + """ Write the value of a Vim expression to the subprocess. """ + + if CONQUE_PYTHON_VERSION == 2: + try: + val = vim.eval(expr) + self.write(unicode(val, CONQUE_VIM_ENCODING, 'ignore'), set_cursor, read) + except: + + pass + else: + try: + # XXX - Depending on Vim to deal with encoding, sadly + self.write(vim.eval(expr), set_cursor, read) + except: + + pass + + + def write_latin1(self, input, set_cursor=True, read=True): + """ Write latin-1 string to conque. Very ugly, shood be removed. """ + # XXX - this whole method is a hack, to be removed soon + + if CONQUE_PYTHON_VERSION == 2: + try: + input_unicode = input.decode('latin-1', 'ignore') + self.write(input_unicode.encode('utf-8', 'ignore'), set_cursor, read) + except: + return + else: + self.write(input, set_cursor, read) + + + def write_buffered_ord(self, chr): + """ Add character ordinal to input buffer. In case we're not allowed to modify buffer a time of input. """ + self.input_buffer.append(chr) + + + def read(self, timeout=1, set_cursor=True, return_output=False, update_buffer=True): + """ Read new output from the subprocess and update the Vim buffer. + + Arguments: + timeout -- Milliseconds to wait before reading input + set_cursor -- Set the cursor position in the current buffer when finished + return_output -- Return new subprocess STDOUT + STDERR as a string + update_buffer -- Update the current Vim buffer with the new output + + This method goes through the following rough steps: + 1. Get new output from subprocess + 2. Split output string into control codes, escape sequences, or plain text + 3. Loop over and process each chunk, updating the Vim buffer as we go + + """ + output = '' + + # this may not actually work + try: + + # read from subprocess and strip null characters + output = self.proc.read(timeout) + + if output == '': + return + + # for bufferless terminals + if not update_buffer: + return output + + + + # strip null characters. I'm still not sure why they appear + output = output.replace(chr(0), '') + + # split input into individual escape sequences, control codes, and text output + chunks = CONQUE_SEQ_REGEX.split(output) + + + + # if there were no escape sequences, skip processing and treat entire string as plain text + if len(chunks) == 1: + self.plain_text(chunks[0]) + + # loop through and process escape sequences + else: + for s in chunks: + if s == '': + continue + + + + + # Check for control character match + if CONQUE_SEQ_REGEX_CTL.match(s[0]): + + nr = ord(s[0]) + if nr in CONQUE_CTL: + getattr(self, 'ctl_' + CONQUE_CTL[nr])() + else: + + pass + + # check for escape sequence match + elif CONQUE_SEQ_REGEX_CSI.match(s): + + if s[-1] in CONQUE_ESCAPE: + csi = self.parse_csi(s[2:]) + + getattr(self, 'csi_' + CONQUE_ESCAPE[s[-1]])(csi) + else: + + pass + + # check for title match + elif CONQUE_SEQ_REGEX_TITLE.match(s): + + self.change_title(s[2], s[4:-1]) + + # check for hash match + elif CONQUE_SEQ_REGEX_HASH.match(s): + + if s[-1] in CONQUE_ESCAPE_HASH: + getattr(self, 'hash_' + CONQUE_ESCAPE_HASH[s[-1]])() + else: + + pass + + # check for charset match + elif CONQUE_SEQ_REGEX_CHAR.match(s): + + if s[-1] in CONQUE_ESCAPE_CHARSET: + getattr(self, 'charset_' + CONQUE_ESCAPE_CHARSET[s[-1]])() + else: + + pass + + # check for other escape match + elif CONQUE_SEQ_REGEX_ESC.match(s): + + if s[-1] in CONQUE_ESCAPE_PLAIN: + getattr(self, 'esc_' + CONQUE_ESCAPE_PLAIN[s[-1]])() + else: + + pass + + # else process plain text + else: + self.plain_text(s) + + # set cusor position + if set_cursor: + self.screen.set_cursor(self.l, self.c) + + # we need to set the cursor position + self.cursor_set = False + + # redraw screen for immediate feedback + #if not CONQUE_FAST_MODE: + # vim.command('redraw') + + except: + + + pass + + if return_output: + if CONQUE_PYTHON_VERSION == 3: + return output + else: + return output.encode(CONQUE_VIM_ENCODING, 'replace') + + + def auto_read(self): + """ Poll program for more output. + + Since Vim doesn't have a reliable event system that can be triggered when new + output is available, we have to continually poll the subprocess instead. This + method is called many times a second when the terminal buffer is active, so it + needs to be very fast and efficient. + + The feedkeys portion is required to reset Vim's timer system. The timer is used + to execute this command, typically set to go off after 50 ms of inactivity. + + """ + # process buffered input if any + if len(self.input_buffer): + for chr in self.input_buffer: + self.write_ord(chr, set_cursor=False, read=False) + self.input_buffer = [] + self.read(1) + + # check subprocess status, but not every time since it's CPU expensive + if self.read_count % 32 == 0: + if not self.proc.is_alive(): + vim.command('call conque_term#get_instance().close()') + return + + if self.read_count > 512: + self.read_count = 0 + + # trim color history occasionally if desired + if self.enable_colors and self.color_pruning: + self.prune_colors() + + # ++ + self.read_count += 1 + + # read output + self.read(1) + + # reset timer + if self.c == 1: + vim.command('call feedkeys("\\", "n")') + else: + vim.command('call feedkeys("\\", "n")') + + # stop here if cursor doesn't need to be moved + if self.cursor_set: + return + + # otherwise set cursor position + try: + self.set_cursor(self.l, self.c) + except: + + + pass + self.cursor_set = True + + + def plain_text(self, input): + """ Write text output to Vim buffer. + + + This method writes a string of characters without any control characters or escape sequences + to the Vim buffer. In simple terms, it writes the input string to the buffer starting at the + current cursor position, wrapping the text to a new line if needed. It also triggers the + terminal coloring methods if needed. + + + """ + # translate input into graphics character set if needed + if self.character_set == 'graphics': + old_input = input + input = u('') + for i in range(0, len(old_input)): + chrd = ord(old_input[i]) + + + try: + if chrd > 255: + + input = input + old_input[i] + else: + input = input + uchr(CONQUE_GRAPHICS_SET[chrd]) + except: + + pass + + + + # get current line from Vim buffer + current_line = self.screen[self.l] + + # pad current line with spaces, if it's shorter than cursor position + if len(current_line) < self.c: + current_line = current_line + ' ' * (self.c - len(current_line)) + + # if line is wider than screen + if self.c + len(input) - 1 > self.working_columns: + + # Table formatting hack + if self.unwrap_tables and CONQUE_TABLE_OUTPUT.match(input): + self.screen[self.l] = current_line[:self.c - 1] + input + current_line[self.c + len(input) - 1:] + self.apply_color(self.c, self.c + len(input)) + self.c += len(input) + return + + + diff = self.c + len(input) - self.working_columns - 1 + + # if autowrap is enabled + if self.autowrap: + self.screen[self.l] = current_line[:self.c - 1] + input[:-1 * diff] + self.apply_color(self.c, self.working_columns) + self.ctl_nl() + self.ctl_cr() + remaining = input[-1 * diff:] + + self.plain_text(remaining) + else: + self.screen[self.l] = current_line[:self.c - 1] + input[:-1 * diff - 1] + input[-1] + self.apply_color(self.c, self.working_columns) + self.c = self.working_columns + + # no autowrap + else: + self.screen[self.l] = current_line[:self.c - 1] + input + current_line[self.c + len(input) - 1:] + self.apply_color(self.c, self.c + len(input)) + self.c += len(input) + + + + def apply_color(self, start, end, line=0): + """ Apply terminal colors to buffer for a range of characters in a single line. + + When a text attribute escape sequence is encountered during input processing, the + attributes are recorded in the dictionary self.color_changes. After those attributes + have been applied, the changes are recorded in a second dictionary self.color_history. + + + This method inspects both dictionaries to calculate any syntax highlighting + that needs to be executed to render the text attributes in the Vim buffer. + + + """ + + + # stop here if coloration is disabled + if not self.enable_colors: + return + + # allow custom line nr to be passed + if line: + buffer_line = line + else: + buffer_line = self.get_buffer_line(self.l) + + # check for previous overlapping coloration + + to_del = [] + if buffer_line in self.color_history: + for i in range(len(self.color_history[buffer_line])): + syn = self.color_history[buffer_line][i] + + if syn['start'] >= start and syn['start'] < end: + + vim.command('syn clear ' + syn['name']) + to_del.append(i) + # outside + if syn['end'] > end: + + self.exec_highlight(buffer_line, end, syn['end'], syn['highlight']) + elif syn['end'] > start and syn['end'] <= end: + + vim.command('syn clear ' + syn['name']) + to_del.append(i) + # outside + if syn['start'] < start: + + self.exec_highlight(buffer_line, syn['start'], start, syn['highlight']) + + # remove overlapped colors + if len(to_del) > 0: + to_del.reverse() + for di in to_del: + del self.color_history[buffer_line][di] + + # if there are no new colors + if len(self.color_changes) == 0: + return + + # build the color attribute string + highlight = '' + for attr in self.color_changes.keys(): + highlight = highlight + ' ' + attr + '=' + self.color_changes[attr] + + # execute the highlight + self.exec_highlight(buffer_line, start, end, highlight) + + + def exec_highlight(self, buffer_line, start, end, highlight): + """ Execute the Vim commands for a single syntax highlight """ + + syntax_name = 'ConqueHighLightAt_%d_%d_%d_%d' % (self.proc.pid, self.l, start, len(self.color_history) + 1) + syntax_options = 'contains=ALLBUT,ConqueString,MySQLString,MySQLKeyword oneline' + syntax_region = 'syntax match %s /\%%%dl\%%>%dc.\{%d}\%%<%dc/ %s' % (syntax_name, buffer_line, start - 1, end - start, end + 1, syntax_options) + + # check for cached highlight group + hgroup = 'ConqueHL_%d' % (abs(hash(highlight))) + if hgroup not in self.highlight_groups: + syntax_group = 'highlight %s %s' % (hgroup, highlight) + self.highlight_groups[hgroup] = hgroup + vim.command(syntax_group) + + # link this syntax match to existing highlight group + syntax_highlight = 'highlight link %s %s' % (syntax_name, self.highlight_groups[hgroup]) + + + + vim.command(syntax_region) + vim.command(syntax_highlight) + + # add syntax name to history + if not buffer_line in self.color_history: + self.color_history[buffer_line] = [] + + self.color_history[buffer_line].append({'name': syntax_name, 'start': start, 'end': end, 'highlight': highlight}) + + + def prune_colors(self): + """ Remove old syntax highlighting from the Vim buffer + + The kind of syntax highlighting required for terminal colors can make + Conque run slowly. The prune_colors() method will remove old highlight definitions + to keep the maximum number of highlight rules within a reasonable range. + + """ + + + buffer_line = self.get_buffer_line(self.l) + ks = list(self.color_history.keys()) + + for line in ks: + if line < buffer_line - CONQUE_MAX_SYNTAX_LINES: + for syn in self.color_history[line]: + vim.command('syn clear ' + syn['name']) + del self.color_history[line] + + + + + ############################################################################################### + # Control functions + + def ctl_nl(self): + """ Process the newline control character. """ + # if we're in a scrolling region, scroll instead of moving cursor down + if self.lines != self.working_lines and self.l == self.bottom: + del self.screen[self.top] + self.screen.insert(self.bottom, '') + elif self.l == self.bottom: + self.screen.append('') + else: + self.l += 1 + + self.color_changes = {} + + def ctl_cr(self): + """ Process the carriage return control character. """ + self.c = 1 + + self.color_changes = {} + + def ctl_bs(self): + """ Process the backspace control character. """ + if self.c > 1: + self.c += -1 + + def ctl_soh(self): + """ Process the start of heading control character. """ + pass + + def ctl_stx(self): + pass + + def ctl_bel(self): + """ Process the bell control character. """ + vim.command('call conque_term#bell()') + + def ctl_tab(self): + """ Process the tab control character. """ + # default tabstop location + ts = self.working_columns + + # check set tabstops + for i in range(self.c, len(self.tabstops)): + if self.tabstops[i]: + ts = i + 1 + break + + + + self.c = ts + + def ctl_so(self): + """ Process the shift out control character. """ + self.character_set = 'graphics' + + def ctl_si(self): + """ Process the shift in control character. """ + self.character_set = 'ascii' + + + + ############################################################################################### + # CSI functions + + def csi_font(self, csi): + """ Process the text attribute escape sequence. """ + if not self.enable_colors: + return + + # defaults to 0 + if len(csi['vals']) == 0: + csi['vals'] = [0] + + # 256 xterm color foreground + if len(csi['vals']) == 3 and csi['vals'][0] == 38 and csi['vals'][1] == 5: + self.color_changes['ctermfg'] = str(csi['vals'][2]) + self.color_changes['guifg'] = '#' + self.xterm_to_rgb(csi['vals'][2]) + + # 256 xterm color background + elif len(csi['vals']) == 3 and csi['vals'][0] == 48 and csi['vals'][1] == 5: + self.color_changes['ctermbg'] = str(csi['vals'][2]) + self.color_changes['guibg'] = '#' + self.xterm_to_rgb(csi['vals'][2]) + + # 16 colors + else: + for val in csi['vals']: + if val in CONQUE_FONT: + + # ignore starting normal colors + if CONQUE_FONT[val]['normal'] and len(self.color_changes) == 0: + + continue + # clear color changes + elif CONQUE_FONT[val]['normal']: + + self.color_changes = {} + # save these color attributes for next plain_text() call + else: + + for attr in CONQUE_FONT[val]['attributes'].keys(): + if attr in self.color_changes and (attr == 'cterm' or attr == 'gui'): + self.color_changes[attr] += ',' + CONQUE_FONT[val]['attributes'][attr] + else: + self.color_changes[attr] = CONQUE_FONT[val]['attributes'][attr] + + + def csi_clear_line(self, csi): + """ Process the line clear escape sequence. """ + + + # this escape defaults to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + + + + # 0 means cursor right + if csi['val'] == 0: + self.screen[self.l] = self.screen[self.l][0:self.c - 1] + + # 1 means cursor left + elif csi['val'] == 1: + self.screen[self.l] = ' ' * (self.c) + self.screen[self.l][self.c:] + + # clear entire line + elif csi['val'] == 2: + self.screen[self.l] = '' + + # clear colors + if csi['val'] == 2 or (csi['val'] == 0 and self.c == 1): + buffer_line = self.get_buffer_line(self.l) + if buffer_line in self.color_history: + for syn in self.color_history[buffer_line]: + vim.command('syn clear ' + syn['name']) + + + + + + def csi_cursor_right(self, csi): + """ Process the move cursor right escape sequence. """ + # we use 1 even if escape explicitly specifies 0 + if csi['val'] == 0: + csi['val'] = 1 + + + + + if self.wrap_cursor and self.c + csi['val'] > self.working_columns: + self.l += int(math.floor((self.c + csi['val']) / self.working_columns)) + self.c = (self.c + csi['val']) % self.working_columns + return + + self.c = self.bound(self.c + csi['val'], 1, self.working_columns) + + + def csi_cursor_left(self, csi): + """ Process the move cursor left escape sequence. """ + # we use 1 even if escape explicitly specifies 0 + if csi['val'] == 0: + csi['val'] = 1 + + if self.wrap_cursor and csi['val'] >= self.c: + self.l += int(math.floor((self.c - csi['val']) / self.working_columns)) + self.c = self.working_columns - (csi['val'] - self.c) % self.working_columns + return + + self.c = self.bound(self.c - csi['val'], 1, self.working_columns) + + + def csi_cursor_to_column(self, csi): + """ Process the move cursor to column escape sequence. """ + self.c = self.bound(csi['val'], 1, self.working_columns) + + + def csi_cursor_up(self, csi): + """ Process the move cursor up escape sequence. """ + self.l = self.bound(self.l - csi['val'], self.top, self.bottom) + + self.color_changes = {} + + + def csi_cursor_down(self, csi): + """ Process the move cursor down escape sequence. """ + self.l = self.bound(self.l + csi['val'], self.top, self.bottom) + + self.color_changes = {} + + + def csi_clear_screen(self, csi): + """ Process the clear screen escape sequence. """ + # default to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + # 2 == clear entire screen + if csi['val'] == 2: + self.l = 1 + self.c = 1 + self.screen.clear() + + # 0 == clear down + elif csi['val'] == 0: + for l in range(self.bound(self.l + 1, 1, self.lines), self.lines + 1): + self.screen[l] = '' + + # clear end of current line + self.csi_clear_line(self.parse_csi('K')) + + # 1 == clear up + elif csi['val'] == 1: + for l in range(1, self.bound(self.l, 1, self.lines + 1)): + self.screen[l] = '' + + # clear beginning of current line + self.csi_clear_line(self.parse_csi('1K')) + + # clear coloration + if csi['val'] == 2 or csi['val'] == 0: + buffer_line = self.get_buffer_line(self.l) + for line in self.color_history.keys(): + if line >= buffer_line: + for syn in self.color_history[line]: + vim.command('syn clear ' + syn['name']) + + self.color_changes = {} + + + def csi_delete_chars(self, csi): + self.screen[self.l] = self.screen[self.l][:self.c] + self.screen[self.l][self.c + csi['val']:] + + + def csi_add_spaces(self, csi): + self.screen[self.l] = self.screen[self.l][: self.c - 1] + ' ' * csi['val'] + self.screen[self.l][self.c:] + + + def csi_cursor(self, csi): + if len(csi['vals']) == 2: + new_line = csi['vals'][0] + new_col = csi['vals'][1] + else: + new_line = 1 + new_col = 1 + + if self.absolute_coords: + self.l = self.bound(new_line, 1, self.lines) + else: + self.l = self.bound(self.top + new_line - 1, self.top, self.bottom) + + self.c = self.bound(new_col, 1, self.working_columns) + if self.c > len(self.screen[self.l]): + self.screen[self.l] = self.screen[self.l] + ' ' * (self.c - len(self.screen[self.l])) + + + + def csi_set_coords(self, csi): + if len(csi['vals']) == 2: + new_start = csi['vals'][0] + new_end = csi['vals'][1] + else: + new_start = 1 + new_end = vim.current.window.height + + self.top = new_start + self.bottom = new_end + self.working_lines = new_end - new_start + 1 + + # if cursor is outside scrolling region, reset it + if self.l < self.top: + self.l = self.top + elif self.l > self.bottom: + self.l = self.bottom + + self.color_changes = {} + + + def csi_tab_clear(self, csi): + # this escape defaults to 0 + if len(csi['vals']) == 0: + csi['val'] = 0 + + + + if csi['val'] == 0: + self.tabstops[self.c - 1] = False + elif csi['val'] == 3: + for i in range(0, self.columns + 1): + self.tabstops[i] = False + + + def csi_set(self, csi): + # 132 cols + if csi['val'] == 3: + self.csi_clear_screen(self.parse_csi('2J')) + self.working_columns = 132 + + # relative_origin + elif csi['val'] == 6: + self.absolute_coords = False + + # set auto wrap + elif csi['val'] == 7: + self.autowrap = True + + + self.color_changes = {} + + + def csi_reset(self, csi): + # 80 cols + if csi['val'] == 3: + self.csi_clear_screen(self.parse_csi('2J')) + self.working_columns = 80 + + # absolute origin + elif csi['val'] == 6: + self.absolute_coords = True + + # reset auto wrap + elif csi['val'] == 7: + self.autowrap = False + + + self.color_changes = {} + + + + + ############################################################################################### + # ESC functions + + def esc_scroll_up(self): + self.ctl_nl() + + self.color_changes = {} + + + def esc_next_line(self): + self.ctl_nl() + self.c = 1 + + + def esc_set_tab(self): + + if self.c <= len(self.tabstops): + self.tabstops[self.c - 1] = True + + + def esc_scroll_down(self): + if self.l == self.top: + del self.screen[self.bottom] + self.screen.insert(self.top, '') + else: + self.l += -1 + + self.color_changes = {} + + + + + ############################################################################################### + # HASH functions + + def hash_screen_alignment_test(self): + self.csi_clear_screen(self.parse_csi('2J')) + self.working_lines = self.lines + for l in range(1, self.lines + 1): + self.screen[l] = 'E' * self.working_columns + + + + ############################################################################################### + # CHARSET functions + + def charset_us(self): + self.character_set = 'ascii' + + def charset_uk(self): + self.character_set = 'ascii' + + def charset_graphics(self): + self.character_set = 'graphics' + + + + ############################################################################################### + # Random stuff + + def set_cursor(self, line, col): + """ Set cursor position in the Vim buffer. + + Note: the line and column numbers are relative to the top left corner of the + visible screen. Not the line number in the Vim buffer. + + """ + self.screen.set_cursor(line, col) + + def change_title(self, key, val): + """ Change the Vim window title. """ + + + if key == '0' or key == '2': + + vim.command('setlocal statusline=' + re.escape(val)) + try: + vim.command('set titlestring=' + re.escape(val)) + except: + pass + + def update_window_size(self, force=False): + """ Check and save the current buffer dimensions. + + If the buffer size has changed, the update_window_size() method both updates + the Conque buffer size attributes as well as sending the new dimensions to the + subprocess pty. + + """ + # resize if needed + if force or vim.current.window.width != self.columns or vim.current.window.height != self.lines: + + # reset all window size attributes to default + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + # reset screen object attributes + self.l = self.screen.reset_size(self.l) + + # reset tabstops + self.init_tabstops() + + + + # signal process that screen size has changed + self.proc.window_resize(self.lines, self.columns) + + def insert_enter(self): + """ Run commands when user enters insert mode. """ + + # check window size + self.update_window_size() + + # we need to set the cursor position + self.cursor_set = False + + def init_tabstops(self): + """ Intitialize terminal tabstop positions. """ + for i in range(0, self.columns + 1): + if i % 8 == 0: + self.tabstops.append(True) + else: + self.tabstops.append(False) + + def idle(self): + """ Called when this terminal becomes idle. """ + pass + + def resume(self): + """ Called when this terminal is no longer idle. """ + pass + pass + + def close(self): + """ End the process running in the terminal. """ + self.proc.close() + + def abort(self): + """ Forcefully end the process running in the terminal. """ + self.proc.signal(1) + + + + ############################################################################################### + # Utility + + def parse_csi(self, s): + """ Parse an escape sequence into it's meaningful values. """ + + attr = {'key': s[-1], 'flag': '', 'val': 1, 'vals': []} + + if len(s) == 1: + return attr + + full = s[0:-1] + + if full[0] == '?': + full = full[1:] + attr['flag'] = '?' + + if full != '': + vals = full.split(';') + for val in vals: + + val = re.sub("\D", "", val) + + if val != '': + attr['vals'].append(int(val)) + + if len(attr['vals']) == 1: + attr['val'] = int(attr['vals'][0]) + + return attr + + + def bound(self, val, min, max): + """ TODO: This probably exists as a builtin function. """ + if val > max: + return max + + if val < min: + return min + + return val + + + def xterm_to_rgb(self, color_code): + """ Translate a terminal color number into a RGB string. """ + if color_code < 16: + ascii_colors = ['000000', 'CD0000', '00CD00', 'CDCD00', '0000EE', 'CD00CD', '00CDCD', 'E5E5E5', + '7F7F7F', 'FF0000', '00FF00', 'FFFF00', '5C5CFF', 'FF00FF', '00FFFF', 'FFFFFF'] + return ascii_colors[color_code] + + elif color_code < 232: + cc = int(color_code) - 16 + + p1 = "%02x" % (math.floor(cc / 36) * (255 / 5)) + p2 = "%02x" % (math.floor((cc % 36) / 6) * (255 / 5)) + p3 = "%02x" % (math.floor(cc % 6) * (255 / 5)) + + return p1 + p2 + p3 + else: + grey_tone = "%02x" % math.floor((255 / 24) * (color_code - 232)) + return grey_tone + grey_tone + grey_tone + + + + + def get_buffer_line(self, line): + """ Get the buffer line number corresponding to the supplied screen line number. """ + return self.screen.get_buffer_line(line) + + diff --git a/.vim/autoload/conque_term/conque_globals.py b/.vim/autoload/conque_term/conque_globals.py new file mode 100644 index 0000000..d7a8c8f --- /dev/null +++ b/.vim/autoload/conque_term/conque_globals.py @@ -0,0 +1,319 @@ +# FILE: autoload/conque_term/conque_globals.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +"""Common global constants and functions for Conque.""" + +import sys +import re +import os # DEBUG + +import traceback # DEBUG + +# PYTHON VERSION +CONQUE_PYTHON_VERSION = sys.version_info[0] + +# Encoding + +try: + # Vim's character encoding + import vim + CONQUE_VIM_ENCODING = vim.eval('&encoding') + +except: + CONQUE_VIM_ENCODING = 'utf-8' + + +def u(str_val, str_encoding='utf-8', errors='strict'): + """ Foolhardy attempt to make unicode string syntax compatible with both python 2 and 3. """ + + if not str_val: + str_val = '' + + if CONQUE_PYTHON_VERSION == 3: + return str_val + + else: + return unicode(str_val, str_encoding, errors) + +def uchr(str): + """ Foolhardy attempt to make unicode string syntax compatible with both python 2 and 3. """ + + if CONQUE_PYTHON_VERSION == 3: + return chr(str) + + else: + return unichr(str) + + + + + + + + + + + + + + + + + + + +# Unix escape sequence settings + +CONQUE_CTL = { + 1: 'soh', # start of heading + 2: 'stx', # start of text + 7: 'bel', # bell + 8: 'bs', # backspace + 9: 'tab', # tab + 10: 'nl', # new line + 13: 'cr', # carriage return + 14: 'so', # shift out + 15: 'si' # shift in +} +# 11 : 'vt', # vertical tab +# 12 : 'ff', # form feed + +# Escape sequences +CONQUE_ESCAPE = { + 'm': 'font', + 'J': 'clear_screen', + 'K': 'clear_line', + '@': 'add_spaces', + 'A': 'cursor_up', + 'B': 'cursor_down', + 'C': 'cursor_right', + 'D': 'cursor_left', + 'G': 'cursor_to_column', + 'H': 'cursor', + 'P': 'delete_chars', + 'f': 'cursor', + 'g': 'tab_clear', + 'r': 'set_coords', + 'h': 'set', + 'l': 'reset' +} +# 'L': 'insert_lines', +# 'M': 'delete_lines', +# 'd': 'cusor_vpos', + +# Alternate escape sequences, no [ +CONQUE_ESCAPE_PLAIN = { + 'D': 'scroll_up', + 'E': 'next_line', + 'H': 'set_tab', + 'M': 'scroll_down' +} +# 'N': 'single_shift_2', +# 'O': 'single_shift_3', +# '=': 'alternate_keypad', +# '>': 'numeric_keypad', +# '7': 'save_cursor', +# '8': 'restore_cursor', + +# Character set escape sequences, with "(" +CONQUE_ESCAPE_CHARSET = { + 'A': 'uk', + 'B': 'us', + '0': 'graphics' +} + +# Uber alternate escape sequences, with # or ? +CONQUE_ESCAPE_QUESTION = { + '1h': 'new_line_mode', + '3h': '132_cols', + '4h': 'smooth_scrolling', + '5h': 'reverse_video', + '6h': 'relative_origin', + '7h': 'set_auto_wrap', + '8h': 'set_auto_repeat', + '9h': 'set_interlacing_mode', + '1l': 'set_cursor_key', + '2l': 'set_vt52', + '3l': '80_cols', + '4l': 'set_jump_scrolling', + '5l': 'normal_video', + '6l': 'absolute_origin', + '7l': 'reset_auto_wrap', + '8l': 'reset_auto_repeat', + '9l': 'reset_interlacing_mode' +} + +CONQUE_ESCAPE_HASH = { + '8': 'screen_alignment_test' +} +# '3': 'double_height_top', +# '4': 'double_height_bottom', +# '5': 'single_height_single_width', +# '6': 'single_height_double_width', + +CONQUE_GRAPHICS_SET = [ + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, + 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002A, 0x2192, 0x2190, 0x2191, 0x2193, 0x002F, + 0x2588, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x00A0, + 0x25C6, 0x2592, 0x2409, 0x240C, 0x240D, 0x240A, 0x00B0, 0x00B1, + 0x2591, 0x240B, 0x2518, 0x2510, 0x250C, 0x2514, 0x253C, 0xF800, + 0xF801, 0x2500, 0xF803, 0xF804, 0x251C, 0x2524, 0x2534, 0x252C, + 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00B7, 0x007F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, + 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, + 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, + 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, + 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, + 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, + 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, + 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, + 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, + 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, + 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, + 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, + 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF +] + +# Font codes +CONQUE_FONT = { + 0: {'description': 'Normal (default)', 'attributes': {'cterm': 'NONE', 'ctermfg': 'NONE', 'ctermbg': 'NONE', 'gui': 'NONE', 'guifg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 1: {'description': 'Bold', 'attributes': {'cterm': 'BOLD', 'gui': 'BOLD'}, 'normal': False}, + 4: {'description': 'Underlined', 'attributes': {'cterm': 'UNDERLINE', 'gui': 'UNDERLINE'}, 'normal': False}, + 5: {'description': 'Blink (appears as Bold)', 'attributes': {'cterm': 'BOLD', 'gui': 'BOLD'}, 'normal': False}, + 7: {'description': 'Inverse', 'attributes': {'cterm': 'REVERSE', 'gui': 'REVERSE'}, 'normal': False}, + 8: {'description': 'Invisible (hidden)', 'attributes': {'ctermfg': '0', 'ctermbg': '0', 'guifg': '#000000', 'guibg': '#000000'}, 'normal': False}, + 22: {'description': 'Normal (neither bold nor faint)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 24: {'description': 'Not underlined', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 25: {'description': 'Steady (not blinking)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 27: {'description': 'Positive (not inverse)', 'attributes': {'cterm': 'NONE', 'gui': 'NONE'}, 'normal': True}, + 28: {'description': 'Visible (not hidden)', 'attributes': {'ctermfg': 'NONE', 'ctermbg': 'NONE', 'guifg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 30: {'description': 'Set foreground color to Black', 'attributes': {'ctermfg': '16', 'guifg': '#000000'}, 'normal': False}, + 31: {'description': 'Set foreground color to Red', 'attributes': {'ctermfg': '1', 'guifg': '#ff0000'}, 'normal': False}, + 32: {'description': 'Set foreground color to Green', 'attributes': {'ctermfg': '2', 'guifg': '#00ff00'}, 'normal': False}, + 33: {'description': 'Set foreground color to Yellow', 'attributes': {'ctermfg': '3', 'guifg': '#ffff00'}, 'normal': False}, + 34: {'description': 'Set foreground color to Blue', 'attributes': {'ctermfg': '4', 'guifg': '#0000ff'}, 'normal': False}, + 35: {'description': 'Set foreground color to Magenta', 'attributes': {'ctermfg': '5', 'guifg': '#990099'}, 'normal': False}, + 36: {'description': 'Set foreground color to Cyan', 'attributes': {'ctermfg': '6', 'guifg': '#009999'}, 'normal': False}, + 37: {'description': 'Set foreground color to White', 'attributes': {'ctermfg': '7', 'guifg': '#ffffff'}, 'normal': False}, + 39: {'description': 'Set foreground color to default (original)', 'attributes': {'ctermfg': 'NONE', 'guifg': 'NONE'}, 'normal': True}, + 40: {'description': 'Set background color to Black', 'attributes': {'ctermbg': '16', 'guibg': '#000000'}, 'normal': False}, + 41: {'description': 'Set background color to Red', 'attributes': {'ctermbg': '1', 'guibg': '#ff0000'}, 'normal': False}, + 42: {'description': 'Set background color to Green', 'attributes': {'ctermbg': '2', 'guibg': '#00ff00'}, 'normal': False}, + 43: {'description': 'Set background color to Yellow', 'attributes': {'ctermbg': '3', 'guibg': '#ffff00'}, 'normal': False}, + 44: {'description': 'Set background color to Blue', 'attributes': {'ctermbg': '4', 'guibg': '#0000ff'}, 'normal': False}, + 45: {'description': 'Set background color to Magenta', 'attributes': {'ctermbg': '5', 'guibg': '#990099'}, 'normal': False}, + 46: {'description': 'Set background color to Cyan', 'attributes': {'ctermbg': '6', 'guibg': '#009999'}, 'normal': False}, + 47: {'description': 'Set background color to White', 'attributes': {'ctermbg': '7', 'guibg': '#ffffff'}, 'normal': False}, + 49: {'description': 'Set background color to default (original).', 'attributes': {'ctermbg': 'NONE', 'guibg': 'NONE'}, 'normal': True}, + 90: {'description': 'Set foreground color to Black', 'attributes': {'ctermfg': '8', 'guifg': '#000000'}, 'normal': False}, + 91: {'description': 'Set foreground color to Red', 'attributes': {'ctermfg': '9', 'guifg': '#ff0000'}, 'normal': False}, + 92: {'description': 'Set foreground color to Green', 'attributes': {'ctermfg': '10', 'guifg': '#00ff00'}, 'normal': False}, + 93: {'description': 'Set foreground color to Yellow', 'attributes': {'ctermfg': '11', 'guifg': '#ffff00'}, 'normal': False}, + 94: {'description': 'Set foreground color to Blue', 'attributes': {'ctermfg': '12', 'guifg': '#0000ff'}, 'normal': False}, + 95: {'description': 'Set foreground color to Magenta', 'attributes': {'ctermfg': '13', 'guifg': '#990099'}, 'normal': False}, + 96: {'description': 'Set foreground color to Cyan', 'attributes': {'ctermfg': '14', 'guifg': '#009999'}, 'normal': False}, + 97: {'description': 'Set foreground color to White', 'attributes': {'ctermfg': '15', 'guifg': '#ffffff'}, 'normal': False}, + 100: {'description': 'Set background color to Black', 'attributes': {'ctermbg': '8', 'guibg': '#000000'}, 'normal': False}, + 101: {'description': 'Set background color to Red', 'attributes': {'ctermbg': '9', 'guibg': '#ff0000'}, 'normal': False}, + 102: {'description': 'Set background color to Green', 'attributes': {'ctermbg': '10', 'guibg': '#00ff00'}, 'normal': False}, + 103: {'description': 'Set background color to Yellow', 'attributes': {'ctermbg': '11', 'guibg': '#ffff00'}, 'normal': False}, + 104: {'description': 'Set background color to Blue', 'attributes': {'ctermbg': '12', 'guibg': '#0000ff'}, 'normal': False}, + 105: {'description': 'Set background color to Magenta', 'attributes': {'ctermbg': '13', 'guibg': '#990099'}, 'normal': False}, + 106: {'description': 'Set background color to Cyan', 'attributes': {'ctermbg': '14', 'guibg': '#009999'}, 'normal': False}, + 107: {'description': 'Set background color to White', 'attributes': {'ctermbg': '15', 'guibg': '#ffffff'}, 'normal': False} +} + + +# regular expression matching (almost) all control sequences +CONQUE_SEQ_REGEX = re.compile("(\x1b\[?\??#?[0-9;]*[a-zA-Z0-9@=>]|\x1b\][0-9];.*?\x07|[\x01-\x0f]|\x1b\([AB0])") +CONQUE_SEQ_REGEX_CTL = re.compile("^[\x01-\x0f]$") +CONQUE_SEQ_REGEX_CSI = re.compile("^\x1b\[") +CONQUE_SEQ_REGEX_TITLE = re.compile("^\x1b\]") +CONQUE_SEQ_REGEX_HASH = re.compile("^\x1b#") +CONQUE_SEQ_REGEX_ESC = re.compile("^\x1b.$") +CONQUE_SEQ_REGEX_CHAR = re.compile("^\x1b[()]") + +# match table output +CONQUE_TABLE_OUTPUT = re.compile("^\s*\|\s.*\s\|\s*$|^\s*\+[=+-]+\+\s*$") + +# basic terminal colors +CONQUE_COLOR_SEQUENCE = ( + '000', '009', '090', '099', '900', '909', '990', '999', + '000', '00f', '0f0', '0ff', 'f00', 'f0f', 'ff0', 'fff' +) + + +# Windows subprocess constants + +# shared memory size +CONQUE_SOLE_BUFFER_LENGTH = 1000 +CONQUE_SOLE_INPUT_SIZE = 1000 +CONQUE_SOLE_STATS_SIZE = 1000 +CONQUE_SOLE_COMMANDS_SIZE = 255 +CONQUE_SOLE_RESCROLL_SIZE = 255 +CONQUE_SOLE_RESIZE_SIZE = 255 + +# interval of screen redraw +# larger number means less frequent +CONQUE_SOLE_SCREEN_REDRAW = 50 + +# interval of full buffer redraw +# larger number means less frequent +CONQUE_SOLE_BUFFER_REDRAW = 500 + +# interval of full output bucket replacement +# larger number means less frequent, 1 = every time +CONQUE_SOLE_MEM_REDRAW = 1000 + +# maximum number of lines with terminal colors +# ignored if g:ConqueTerm_Color = 2 +CONQUE_MAX_SYNTAX_LINES = 200 + +# windows input splitting on special keys +CONQUE_WIN32_REGEX_VK = re.compile("(\x1b\[[0-9;]+VK)") + +# windows attribute string splitting +CONQUE_WIN32_REGEX_ATTR = re.compile("((.)\\2*)", re.DOTALL) + +# special key attributes +CONQUE_VK_ATTR_CTRL_PRESSED = u('1024') + + diff --git a/.vim/autoload/conque_term/conque_screen.py b/.vim/autoload/conque_term/conque_screen.py new file mode 100644 index 0000000..40db616 --- /dev/null +++ b/.vim/autoload/conque_term/conque_screen.py @@ -0,0 +1,230 @@ +# FILE: autoload/conque_term/conque_screen.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" +ConqueScreen is an extention of the vim.current.buffer object + +Unix terminal escape sequences usually reference line numbers relative to the +top of the visible screen. However the visible portion of the Vim buffer +representing the terminal probably doesn't start at the first line of the +buffer. + +The ConqueScreen class allows access to the Vim buffer with screen-relative +line numbering. And handles a few other related tasks, such as setting the +correct cursor position. + + E.g.: + s = ConqueScreen() + ... + s[5] = 'Set 5th line in terminal to this line' + s.append('Add new line to terminal') + s[5] = 'Since previous append() command scrolled the terminal down, this is a different line than first cb[5] call' + +""" + +import vim + + +class ConqueScreen(object): + + # the buffer + buffer = None + + # screen and scrolling regions + screen_top = 1 + + # screen width + screen_width = 80 + screen_height = 80 + + # char encoding for vim buffer + screen_encoding = 'utf-8' + + + def __init__(self): + """ Initialize screen size and character encoding. """ + + self.buffer = vim.current.buffer + + # initialize screen size + self.screen_top = 1 + self.screen_width = vim.current.window.width + self.screen_height = vim.current.window.height + + # save screen character encoding type + self.screen_encoding = vim.eval('&fileencoding') + + + def __len__(self): + """ Define the len() function for ConqueScreen objects. """ + return len(self.buffer) + + + def __getitem__(self, key): + """ Define value access for ConqueScreen objects. """ + buffer_line = self.get_real_idx(key) + + # if line is past buffer end, add lines to buffer + if buffer_line >= len(self.buffer): + for i in range(len(self.buffer), buffer_line + 1): + self.append(' ') + + return u(self.buffer[buffer_line], 'utf-8') + + + def __setitem__(self, key, value): + """ Define value assignments for ConqueScreen objects. """ + buffer_line = self.get_real_idx(key) + + if CONQUE_PYTHON_VERSION == 2: + val = value.encode(self.screen_encoding) + else: + # XXX / Vim's python3 interface doesn't accept bytes object + val = str(value) + + # if line is past end of screen, append + if buffer_line == len(self.buffer): + self.buffer.append(val) + else: + self.buffer[buffer_line] = val + + + def __delitem__(self, key): + """ Define value deletion for ConqueScreen objects. """ + del self.buffer[self.screen_top + key - 2] + + + def append(self, value): + """ Define value appending for ConqueScreen objects. """ + + if len(self.buffer) > self.screen_top + self.screen_height - 1: + self.buffer[len(self.buffer) - 1] = value + else: + self.buffer.append(value) + + if len(self.buffer) > self.screen_top + self.screen_height - 1: + self.screen_top += 1 + + if vim.current.buffer.number == self.buffer.number: + vim.command('normal! G') + + + def insert(self, line, value): + """ Define value insertion for ConqueScreen objects. """ + + l = self.screen_top + line - 2 + self.buffer.append(value, l) + + + def get_top(self): + """ Get the Vim line number representing the top of the visible terminal. """ + return self.screen_top + + + def get_real_idx(self, line): + """ Get the zero index Vim line number corresponding to the provided screen line. """ + return (self.screen_top + line - 2) + + + def get_buffer_line(self, line): + """ Get the Vim line number corresponding to the provided screen line. """ + return (self.screen_top + line - 1) + + + def set_screen_width(self, width): + """ Set the screen width. """ + self.screen_width = width + + + def clear(self): + """ Clear the screen. Does not clear the buffer, just scrolls down past all text. """ + + self.screen_width = width + self.buffer.append(' ') + vim.command('normal! Gzt') + self.screen_top = len(self.buffer) + + + def set_cursor(self, line, column): + """ Set cursor position. """ + + # figure out line + buffer_line = self.screen_top + line - 1 + if buffer_line > len(self.buffer): + for l in range(len(self.buffer) - 1, buffer_line): + self.buffer.append('') + + # figure out column + real_column = column + if len(self.buffer[buffer_line - 1]) < real_column: + self.buffer[buffer_line - 1] = self.buffer[buffer_line - 1] + ' ' * (real_column - len(self.buffer[buffer_line - 1])) + + if not CONQUE_FAST_MODE: + # set cursor at byte index of real_column'th character + vim.command('call cursor(' + str(buffer_line) + ', byteidx(getline(' + str(buffer_line) + '), ' + str(real_column) + '))') + + else: + # old version + # python version is occasionally grumpy + try: + vim.current.window.cursor = (buffer_line, real_column - 1) + except: + vim.command('call cursor(' + str(buffer_line) + ', ' + str(real_column) + ')') + + + def reset_size(self, line): + """ Change screen size """ + + + + + + # save cursor line number + buffer_line = self.screen_top + line + + # reset screen size + self.screen_width = vim.current.window.width + self.screen_height = vim.current.window.height + self.screen_top = len(self.buffer) - vim.current.window.height + 1 + if self.screen_top < 1: + self.screen_top = 1 + + + # align bottom of buffer to bottom of screen + vim.command('normal! ' + str(self.screen_height) + 'kG') + + # return new relative line number + return (buffer_line - self.screen_top) + + + def align(self): + """ align bottom of buffer to bottom of screen """ + vim.command('normal! ' + str(self.screen_height) + 'kG') + + diff --git a/.vim/autoload/conque_term/conque_sole.py b/.vim/autoload/conque_term/conque_sole.py new file mode 100644 index 0000000..556aee9 --- /dev/null +++ b/.vim/autoload/conque_term/conque_sole.py @@ -0,0 +1,458 @@ +# FILE: autoload/conque_term/conque_sole.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" +Windows Console Emulator + +This is the main interface to the Windows emulator. It reads new output from the background console +and updates the Vim buffer. +""" + +import vim + + +class ConqueSole(Conque): + + window_top = None + window_bottom = None + + color_cache = {} + attribute_cache = {} + color_mode = None + color_conceals = {} + + buffer = None + encoding = None + + # counters for periodic rendering + buffer_redraw_ct = 1 + screen_redraw_ct = 1 + + # line offset, shifts output down + offset = 0 + + + def open(self): + """ Start command and initialize this instance + + Arguments: + command - Command string, e.g. "Powershell.exe" + options - Dictionary of config options + python_exe - Path to the python.exe executable. Usually C:\PythonXX\python.exe + communicator_py - Path to subprocess controller script in user's vimfiles directory + + """ + # get arguments + command = vim.eval('command') + options = vim.eval('options') + python_exe = vim.eval('py_exe') + communicator_py = vim.eval('py_vim') + + # init size + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.window_top = 0 + self.window_bottom = vim.current.window.height - 1 + + # color mode + self.color_mode = vim.eval('g:ConqueTerm_ColorMode') + + # line offset + self.offset = int(options['offset']) + + # init color + self.enable_colors = options['color'] and not CONQUE_FAST_MODE + + # open command + self.proc = ConqueSoleWrapper() + self.proc.open(command, self.lines, self.columns, python_exe, communicator_py, options) + + self.buffer = vim.current.buffer + self.screen_encoding = vim.eval('&fileencoding') + + + def read(self, timeout=1, set_cursor=True, return_output=False, update_buffer=True): + """ Read from console and update Vim buffer. """ + + try: + stats = self.proc.get_stats() + + if not stats: + return + + # disable screen and buffer redraws in fast mode + if not CONQUE_FAST_MODE: + self.buffer_redraw_ct += 1 + self.screen_redraw_ct += 1 + + update_top = 0 + update_bottom = 0 + lines = [] + + # full buffer redraw, our favorite! + #if self.buffer_redraw_ct == CONQUE_SOLE_BUFFER_REDRAW: + # self.buffer_redraw_ct = 0 + # update_top = 0 + # update_bottom = stats['top_offset'] + self.lines + # (lines, attributes) = self.proc.read(update_top, update_bottom) + # if return_output: + # output = self.get_new_output(lines, update_top, stats) + # if update_buffer: + # for i in range(update_top, update_bottom + 1): + # if CONQUE_FAST_MODE: + # self.plain_text(i, lines[i], None, stats) + # else: + # self.plain_text(i, lines[i], attributes[i], stats) + + # full screen redraw + if stats['cursor_y'] + 1 != self.l or stats['top_offset'] != self.window_top or self.screen_redraw_ct >= CONQUE_SOLE_SCREEN_REDRAW: + + self.screen_redraw_ct = 0 + update_top = self.window_top + update_bottom = max([stats['top_offset'] + self.lines + 1, stats['cursor_y']]) + (lines, attributes) = self.proc.read(update_top, update_bottom - update_top + 1) + if return_output: + output = self.get_new_output(lines, update_top, stats) + if update_buffer: + for i in range(update_top, update_bottom + 1): + if CONQUE_FAST_MODE: + self.plain_text(i, lines[i - update_top], None, stats) + else: + self.plain_text(i, lines[i - update_top], attributes[i - update_top], stats) + + + # single line redraw + else: + update_top = stats['cursor_y'] + (lines, attributes) = self.proc.read(update_top, 1) + if return_output: + output = self.get_new_output(lines, update_top, stats) + if update_buffer: + if lines[0].rstrip() != u(self.buffer[update_top].rstrip()): + if CONQUE_FAST_MODE: + self.plain_text(update_top, lines[0], None, stats) + else: + self.plain_text(update_top, lines[0], attributes[0], stats) + + + # reset current position + self.window_top = stats['top_offset'] + self.l = stats['cursor_y'] + 1 + self.c = stats['cursor_x'] + 1 + + # reposition cursor if this seems plausible + if set_cursor: + self.set_cursor(self.l, self.c) + + if return_output: + return output + + except: + + pass + + + def get_new_output(self, lines, update_top, stats): + """ Calculate the "new" output from this read. Fake but useful """ + + if not (stats['cursor_y'] + 1 > self.l or (stats['cursor_y'] + 1 == self.l and stats['cursor_x'] + 1 > self.c)): + return "" + + + + + + + try: + num_to_return = stats['cursor_y'] - self.l + 2 + + lines = lines[self.l - update_top - 1:] + + + new_output = [] + + # first line + new_output.append(lines[0][self.c - 1:].rstrip()) + + # the rest + for i in range(1, num_to_return): + new_output.append(lines[i].rstrip()) + + except: + + pass + + + + return "\n".join(new_output) + + + def plain_text(self, line_nr, text, attributes, stats): + """ Write plain text to Vim buffer. """ + + + + + + # handle line offset + line_nr += self.offset + + self.l = line_nr + 1 + + # remove trailing whitespace + text = text.rstrip() + + # if we're using concealed text for color, then s- is weird + if self.color_mode == 'conceal': + + text = self.add_conceal_color(text, attributes, stats, line_nr) + + + # deal with character encoding + if CONQUE_PYTHON_VERSION == 2: + val = text.encode(self.screen_encoding) + else: + # XXX / Vim's python3 interface doesn't accept bytes object + val = str(text) + + # update vim buffer + if len(self.buffer) <= line_nr: + self.buffer.append(val) + else: + self.buffer[line_nr] = val + + if self.enable_colors and not self.color_mode == 'conceal' and line_nr > self.l - CONQUE_MAX_SYNTAX_LINES: + relevant = attributes[0:len(text)] + if line_nr not in self.attribute_cache or self.attribute_cache[line_nr] != relevant: + self.do_color(attributes=relevant, stats=stats) + self.attribute_cache[line_nr] = relevant + + + def add_conceal_color(self, text, attributes, stats, line_nr): + """ Add 'conceal' color strings to output text """ + + # stop here if coloration is disabled + if not self.enable_colors: + return text + + # if no colors for this line, clear everything out + if len(attributes) == 0 or attributes == u(chr(stats['default_attribute'])) * len(attributes): + return text + + new_text = '' + self.color_conceals[line_nr] = [] + + attribute_chunks = CONQUE_WIN32_REGEX_ATTR.findall(attributes) + offset = 0 + ends = [] + for attr in attribute_chunks: + attr_num = ord(attr[1]) + ends = [] + if attr_num != stats['default_attribute']: + + color = self.translate_color(attr_num) + + new_text += chr(27) + 'sf' + color['fg_code'] + ';' + ends.append(chr(27) + 'ef' + color['fg_code'] + ';') + self.color_conceals[line_nr].append(offset) + + if attr_num > 15: + new_text += chr(27) + 'sb' + color['bg_code'] + ';' + ends.append(chr(27) + 'eb' + color['bg_code'] + ';') + self.color_conceals[line_nr].append(offset) + + new_text += text[offset:offset + len(attr[0])] + + # close color regions + ends.reverse() + for i in range(0, len(ends)): + self.color_conceals[line_nr].append(len(new_text)) + new_text += ends[i] + + offset += len(attr[0]) + + return new_text + + + def do_color(self, start=0, end=0, attributes='', stats=None): + """ Convert Windows console attributes into Vim syntax highlighting """ + + # if no colors for this line, clear everything out + if len(attributes) == 0 or attributes == u(chr(stats['default_attribute'])) * len(attributes): + self.color_changes = {} + self.apply_color(1, len(attributes), self.l) + return + + attribute_chunks = CONQUE_WIN32_REGEX_ATTR.findall(attributes) + offset = 0 + for attr in attribute_chunks: + attr_num = ord(attr[1]) + if attr_num != stats['default_attribute']: + self.color_changes = self.translate_color(attr_num) + self.apply_color(offset + 1, offset + len(attr[0]) + 1, self.l) + offset += len(attr[0]) + + + def translate_color(self, attr): + """ Convert Windows console attributes into RGB colors """ + + # check for cached color + if attr in self.color_cache: + return self.color_cache[attr] + + + + + + + # convert attribute integer to bit string + bit_str = bin(attr) + bit_str = bit_str.replace('0b', '') + + # slice foreground and background portions of bit string + fg = bit_str[-4:].rjust(4, '0') + bg = bit_str[-8:-4].rjust(4, '0') + + # ok, first create foreground #rbg + red = int(fg[1]) * 204 + int(fg[0]) * int(fg[1]) * 51 + green = int(fg[2]) * 204 + int(fg[0]) * int(fg[2]) * 51 + blue = int(fg[3]) * 204 + int(fg[0]) * int(fg[3]) * 51 + fg_str = "#%02x%02x%02x" % (red, green, blue) + fg_code = "%02x%02x%02x" % (red, green, blue) + fg_code = fg_code[0] + fg_code[2] + fg_code[4] + + # ok, first create foreground #rbg + red = int(bg[1]) * 204 + int(bg[0]) * int(bg[1]) * 51 + green = int(bg[2]) * 204 + int(bg[0]) * int(bg[2]) * 51 + blue = int(bg[3]) * 204 + int(bg[0]) * int(bg[3]) * 51 + bg_str = "#%02x%02x%02x" % (red, green, blue) + bg_code = "%02x%02x%02x" % (red, green, blue) + bg_code = bg_code[0] + bg_code[2] + bg_code[4] + + # build value for color_changes + + color = {'guifg': fg_str, 'guibg': bg_str} + + if self.color_mode == 'conceal': + color['fg_code'] = fg_code + color['bg_code'] = bg_code + + self.color_cache[attr] = color + + return color + + + def write_vk(self, vk_code): + """ write virtual key code to shared memory using proprietary escape seq """ + + self.proc.write_vk(vk_code) + + + def update_window_size(self): + """ Resize underlying console if Vim buffer size has changed """ + + if vim.current.window.width != self.columns or vim.current.window.height != self.lines: + + + + # reset all window size attributes to default + self.columns = vim.current.window.width + self.lines = vim.current.window.height + self.working_columns = vim.current.window.width + self.working_lines = vim.current.window.height + self.bottom = vim.current.window.height + + self.proc.window_resize(vim.current.window.height, vim.current.window.width) + + + def set_cursor(self, line, column): + """ Update cursor position in Vim buffer """ + + + + # handle offset + line += self.offset + + # shift cursor position to handle concealed text + if self.enable_colors and self.color_mode == 'conceal': + if line - 1 in self.color_conceals: + for c in self.color_conceals[line - 1]: + if c < column: + column += 7 + else: + break + + + + # figure out line + buffer_line = line + if buffer_line > len(self.buffer): + for l in range(len(self.buffer) - 1, buffer_line): + self.buffer.append('') + + # figure out column + real_column = column + if len(self.buffer[buffer_line - 1]) < real_column: + self.buffer[buffer_line - 1] = self.buffer[buffer_line - 1] + ' ' * (real_column - len(self.buffer[buffer_line - 1])) + + # python version is occasionally grumpy + try: + vim.current.window.cursor = (buffer_line, real_column - 1) + except: + vim.command('call cursor(' + str(buffer_line) + ', ' + str(real_column) + ')') + + + def idle(self): + """ go into idle mode """ + + self.proc.idle() + + + def resume(self): + """ resume from idle mode """ + + self.proc.resume() + + + def close(self): + """ end console subprocess """ + self.proc.close() + + + def abort(self): + """ end subprocess forcefully """ + self.proc.close() + + + def get_buffer_line(self, line): + """ get buffer line """ + return line + + +# vim:foldmethod=marker diff --git a/.vim/autoload/conque_term/conque_sole_communicator.py b/.vim/autoload/conque_term/conque_sole_communicator.py new file mode 100644 index 0000000..e3f7db3 --- /dev/null +++ b/.vim/autoload/conque_term/conque_sole_communicator.py @@ -0,0 +1,183 @@ +# FILE: autoload/conque_term/conque_sole_communicator.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" + +ConqueSoleCommunicator + +This script will create a new Windows console and start the requested program +inside of it. This process is launched independently from the parent Vim +program, so it has no access to the vim module. + +The main loop in this script reads data from the console and syncs it onto +blocks of memory shared with the Vim process. In this way the Vim process +and this script can communicate with each other. + +""" + +import time +import sys + +from conque_globals import * +from conque_win32_util import * +from conque_sole_subprocess import * +from conque_sole_shared_memory import * + +############################################################## +# only run if this file was run directly + +if __name__ == '__main__': + + # attempt to catch ALL exceptions to fend of zombies + try: + + # simple arg validation + + if len(sys.argv) < 5: + + exit() + + # maximum time this thing reads. 0 means no limit. Only for testing. + max_loops = 0 + + # read interval, in seconds + sleep_time = 0.01 + + # idle read interval, in seconds + idle_sleep_time = 0.10 + + # are we idled? + is_idle = False + + # mem key + mem_key = sys.argv[1] + + # console width + console_width = int(sys.argv[2]) + + # console height + console_height = int(sys.argv[3]) + + # code page + code_page = int(sys.argv[4]) + + # code page + fast_mode = int(sys.argv[5]) + + # the actual subprocess to run + cmd_line = " ".join(sys.argv[6:]) + + + # width and height + options = {'LINES': console_height, 'COLUMNS': console_width, 'CODE_PAGE': code_page, 'FAST_MODE': fast_mode} + + + + # set initial idle status + shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + shm_command.create('write') + + cmd = shm_command.read() + if cmd: + + if cmd['cmd'] == 'idle': + is_idle = True + shm_command.clear() + + + ############################################################## + # Create the subprocess + + proc = ConqueSoleSubprocess() + res = proc.open(cmd_line, mem_key, options) + + if not res: + + exit() + + ############################################################## + # main loop! + + loops = 0 + + while True: + + # check for idle/resume + if is_idle or loops % 25 == 0: + + # check process health + if not proc.is_alive(): + + proc.close() + break + + # check for change in buffer focus + cmd = shm_command.read() + if cmd: + + if cmd['cmd'] == 'idle': + is_idle = True + shm_command.clear() + + elif cmd['cmd'] == 'resume': + is_idle = False + shm_command.clear() + + + # sleep between loops if moderation is requested + if sleep_time > 0: + if is_idle: + time.sleep(idle_sleep_time) + else: + time.sleep(sleep_time) + + # write, read, etc + proc.write() + proc.read() + + # increment loops, and exit if max has been reached + loops += 1 + if max_loops and loops >= max_loops: + + break + + ############################################################## + # all done! + + + + proc.close() + + # if an exception was thrown, croak + except: + + proc.close() + + +# vim:foldmethod=marker diff --git a/.vim/autoload/conque_term/conque_sole_shared_memory.py b/.vim/autoload/conque_term/conque_sole_shared_memory.py new file mode 100644 index 0000000..1d4ed3a --- /dev/null +++ b/.vim/autoload/conque_term/conque_sole_shared_memory.py @@ -0,0 +1,210 @@ +# FILE: autoload/conque_term/conque_sole_shared_memory.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" +Wrapper class for shared memory between Windows python processes + +Adds a small amount of functionality to the standard mmap module. + +""" + +import mmap +import sys + +# PYTHON VERSION +CONQUE_PYTHON_VERSION = sys.version_info[0] + +if CONQUE_PYTHON_VERSION == 2: + import cPickle as pickle +else: + import pickle + + +class ConqueSoleSharedMemory(): + + # is the data being stored not fixed length + fixed_length = False + + # maximum number of bytes per character, for fixed width blocks + char_width = 1 + + # fill memory with this character when clearing and fixed_length is true + FILL_CHAR = None + + # serialize and unserialize data automatically + serialize = False + + # size of shared memory, in bytes / chars + mem_size = None + + # size of shared memory, in bytes / chars + mem_type = None + + # unique key, so multiple console instances are possible + mem_key = None + + # mmap instance + shm = None + + # character encoding, dammit + encoding = 'utf-8' + + # pickle terminator + TERMINATOR = None + + + def __init__(self, mem_size, mem_type, mem_key, fixed_length=False, fill_char=' ', serialize=False, encoding='utf-8'): + """ Initialize new shared memory block instance + + Arguments: + mem_size -- Memory size in characters, depends on encoding argument to calcuate byte size + mem_type -- Label to identify what will be stored + mem_key -- Unique, probably random key to identify this block + fixed_length -- If set to true, assume the data stored will always fill the memory size + fill_char -- Initialize memory block with this character, only really helpful with fixed_length blocks + serialize -- Automatically serialize data passed to write. Allows storing non-byte data + encoding -- Character encoding to use when storing character data + + """ + self.mem_size = mem_size + self.mem_type = mem_type + self.mem_key = mem_key + self.fixed_length = fixed_length + self.fill_char = fill_char + self.serialize = serialize + self.encoding = encoding + self.TERMINATOR = str(chr(0)).encode(self.encoding) + + if CONQUE_PYTHON_VERSION == 3: + self.FILL_CHAR = fill_char + else: + self.FILL_CHAR = unicode(fill_char) + + if fixed_length and encoding == 'utf-8': + self.char_width = 4 + + + def create(self, access='write'): + """ Create a new block of shared memory using the mmap module. """ + + if access == 'write': + mmap_access = mmap.ACCESS_WRITE + else: + mmap_access = mmap.ACCESS_READ + + name = "conque_%s_%s" % (self.mem_type, self.mem_key) + + self.shm = mmap.mmap(0, self.mem_size * self.char_width, name, mmap_access) + + if not self.shm: + return False + else: + return True + + + def read(self, chars=1, start=0): + """ Read data from shared memory. + + If this is a fixed length block, read 'chars' characters from memory. + Otherwise read up until the TERMINATOR character (null byte). + If this memory is serialized, unserialize it automatically. + + """ + # go to start position + self.shm.seek(start * self.char_width) + + if self.fixed_length: + chars = chars * self.char_width + else: + chars = self.shm.find(self.TERMINATOR) + + if chars == 0: + return '' + + shm_str = self.shm.read(chars) + + # return unpickled byte object + if self.serialize: + return pickle.loads(shm_str) + + # decode byes in python 3 + if CONQUE_PYTHON_VERSION == 3: + return str(shm_str, self.encoding) + + # encoding + if self.encoding != 'ascii': + shm_str = unicode(shm_str, self.encoding) + + return shm_str + + + def write(self, text, start=0): + """ Write data to memory. + + If memory is fixed length, simply write the 'text' characters at 'start' position. + Otherwise write 'text' characters and append a null character. + If memory is serializable, do so first. + + """ + # simple scenario, let pickle create bytes + if self.serialize: + if CONQUE_PYTHON_VERSION == 3: + tb = pickle.dumps(text, 0) + else: + tb = pickle.dumps(text, 0).encode(self.encoding) + + else: + tb = text.encode(self.encoding, 'replace') + + # write to memory + self.shm.seek(start * self.char_width) + + if self.fixed_length: + self.shm.write(tb) + else: + self.shm.write(tb + self.TERMINATOR) + + + def clear(self, start=0): + """ Clear memory block using self.fill_char. """ + + self.shm.seek(start) + + if self.fixed_length: + self.shm.write(str(self.fill_char * self.mem_size * self.char_width).encode(self.encoding)) + else: + self.shm.write(self.TERMINATOR) + + + def close(self): + """ Close/destroy memory block. """ + + self.shm.close() + + diff --git a/.vim/autoload/conque_term/conque_sole_subprocess.py b/.vim/autoload/conque_term/conque_sole_subprocess.py new file mode 100644 index 0000000..0f205b6 --- /dev/null +++ b/.vim/autoload/conque_term/conque_sole_subprocess.py @@ -0,0 +1,762 @@ +# FILE: autoload/conque_term/conque_sole_subprocess.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" ConqueSoleSubprocess + +Creates a new subprocess with it's own (hidden) console window. + +Mirrors console window text onto a block of shared memory (mmap), along with +text attribute data. Also handles translation of text input into the format +Windows console expects. + +Sample Usage: + + sh = ConqueSoleSubprocess() + sh.open("cmd.exe", "unique_str") + + shm_in = ConqueSoleSharedMemory(mem_key = "unique_str", mem_type = "input", ...) + shm_out = ConqueSoleSharedMemory(mem_key = "unique_str", mem_type = "output", ...) + + output = shm_out.read(...) + shm_in.write("dir\r") + output = shm_out.read(...) + +""" + +import time +import re +import os +import ctypes + +from conque_globals import * +from conque_win32_util import * +from conque_sole_shared_memory import * + + +class ConqueSoleSubprocess(): + + # subprocess handle and pid + handle = None + pid = None + + # input / output handles + stdin = None + stdout = None + + # size of console window + window_width = 160 + window_height = 40 + + # max lines for the console buffer + buffer_width = 160 + buffer_height = 100 + + # keep track of the buffer number at the top of the window + top = 0 + line_offset = 0 + + # buffer height is CONQUE_SOLE_BUFFER_LENGTH * output_blocks + output_blocks = 1 + + # cursor position + cursor_line = 0 + cursor_col = 0 + + # console data, array of lines + data = [] + + # console attribute data, array of array of int + attributes = [] + attribute_cache = {} + + # default attribute + default_attribute = 7 + + # shared memory objects + shm_input = None + shm_output = None + shm_attributes = None + shm_stats = None + shm_command = None + shm_rescroll = None + shm_resize = None + + # are we still a valid process? + is_alive = True + + # running in fast mode + fast_mode = 0 + + # used for periodic execution of screen and memory redrawing + screen_redraw_ct = 0 + mem_redraw_ct = 0 + + + def open(self, cmd, mem_key, options={}): + """ Create subproccess running in hidden console window. """ + + + + self.reset = True + + try: + # if we're already attached to a console, then unattach + try: + ctypes.windll.kernel32.FreeConsole() + except: + pass + + # set buffer height + self.buffer_height = CONQUE_SOLE_BUFFER_LENGTH + + if 'LINES' in options and 'COLUMNS' in options: + self.window_width = options['COLUMNS'] + self.window_height = options['LINES'] + self.buffer_width = options['COLUMNS'] + + # fast mode + self.fast_mode = options['FAST_MODE'] + + # console window options + si = STARTUPINFO() + + # hide window + si.dwFlags |= STARTF_USESHOWWINDOW + si.wShowWindow = SW_HIDE + #si.wShowWindow = SW_MINIMIZE + + # process options + flags = NORMAL_PRIORITY_CLASS | CREATE_NEW_PROCESS_GROUP | CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE + + # created process info + pi = PROCESS_INFORMATION() + + + + # create the process! + res = ctypes.windll.kernel32.CreateProcessW(None, u(cmd), None, None, 0, flags, None, u('.'), ctypes.byref(si), ctypes.byref(pi)) + + + + + + # process info + self.pid = pi.dwProcessId + self.handle = pi.hProcess + + + + + # attach ourselves to the new console + # console is not immediately available + for i in range(10): + time.sleep(0.25) + try: + + res = ctypes.windll.kernel32.AttachConsole(self.pid) + + + + + + + break + except: + + pass + + # get input / output handles + self.stdout = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) + self.stdin = ctypes.windll.kernel32.GetStdHandle(STD_INPUT_HANDLE) + + # set buffer size + size = COORD(self.buffer_width, self.buffer_height) + res = ctypes.windll.kernel32.SetConsoleScreenBufferSize(self.stdout, size) + + + + + + + + # prev set size call needs to process + time.sleep(0.2) + + # set window size + self.set_window_size(self.window_width, self.window_height) + + # set utf-8 code page + if 'CODE_PAGE' in options and options['CODE_PAGE'] > 0: + if ctypes.windll.kernel32.IsValidCodePage(ctypes.c_uint(options['CODE_PAGE'])): + + ctypes.windll.kernel32.SetConsoleCP(ctypes.c_uint(options['CODE_PAGE'])) + ctypes.windll.kernel32.SetConsoleOutputCP(ctypes.c_uint(options['CODE_PAGE'])) + + # init shared memory + self.init_shared_memory(mem_key) + + # init read buffers + self.tc = ctypes.create_unicode_buffer(self.buffer_width) + self.ac = ctypes.create_unicode_buffer(self.buffer_width) + + return True + + except: + + return False + + + def init_shared_memory(self, mem_key): + """ Create shared memory objects. """ + + self.shm_input = ConqueSoleSharedMemory(CONQUE_SOLE_INPUT_SIZE, 'input', mem_key) + self.shm_input.create('write') + self.shm_input.clear() + + self.shm_output = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width, 'output', mem_key, True) + self.shm_output.create('write') + self.shm_output.clear() + + if not self.fast_mode: + buf_info = self.get_buffer_info() + self.shm_attributes = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width, 'attributes', mem_key, True, chr(buf_info.wAttributes), encoding='latin-1') + self.shm_attributes.create('write') + self.shm_attributes.clear() + + self.shm_stats = ConqueSoleSharedMemory(CONQUE_SOLE_STATS_SIZE, 'stats', mem_key, serialize=True) + self.shm_stats.create('write') + self.shm_stats.clear() + + self.shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + self.shm_command.create('write') + self.shm_command.clear() + + self.shm_resize = ConqueSoleSharedMemory(CONQUE_SOLE_RESIZE_SIZE, 'resize', mem_key, serialize=True) + self.shm_resize.create('write') + self.shm_resize.clear() + + self.shm_rescroll = ConqueSoleSharedMemory(CONQUE_SOLE_RESCROLL_SIZE, 'rescroll', mem_key, serialize=True) + self.shm_rescroll.create('write') + self.shm_rescroll.clear() + + return True + + + def check_commands(self): + """ Check for and process commands from Vim. """ + + cmd = self.shm_command.read() + + if cmd: + + # shut it all down + if cmd['cmd'] == 'close': + + # clear command + self.shm_command.clear() + + self.close() + return + + cmd = self.shm_resize.read() + + if cmd: + + # clear command + self.shm_resize.clear() + + # resize console + if cmd['cmd'] == 'resize': + + + + # only change buffer width if it's larger + if cmd['data']['width'] > self.buffer_width: + self.buffer_width = cmd['data']['width'] + + # always change console width and height + self.window_width = cmd['data']['width'] + self.window_height = cmd['data']['height'] + + # reset the console + buf_info = self.get_buffer_info() + self.reset_console(buf_info, add_block=False) + + + def read(self): + """ Read from windows console and update shared memory blocks. """ + + # no point really + if self.screen_redraw_ct == 0 and not self.is_alive(): + stats = {'top_offset': 0, 'default_attribute': 0, 'cursor_x': 0, 'cursor_y': self.cursor_line, 'is_alive': 0} + + self.shm_stats.write(stats) + return + + # check for commands + self.check_commands() + + # get cursor position + buf_info = self.get_buffer_info() + curs_line = buf_info.dwCursorPosition.Y + curs_col = buf_info.dwCursorPosition.X + + # set update range + if curs_line != self.cursor_line or self.top != buf_info.srWindow.Top or self.screen_redraw_ct == CONQUE_SOLE_SCREEN_REDRAW: + self.screen_redraw_ct = 0 + + read_start = self.top + read_end = max([buf_info.srWindow.Bottom + 1, curs_line + 1]) + else: + + read_start = curs_line + read_end = curs_line + 1 + + + + + # vars used in for loop + coord = COORD(0, 0) + chars_read = ctypes.c_int(0) + + # read new data + for i in range(read_start, read_end): + + coord.Y = i + + res = ctypes.windll.kernel32.ReadConsoleOutputCharacterW(self.stdout, ctypes.byref(self.tc), self.buffer_width, coord, ctypes.byref(chars_read)) + if not self.fast_mode: + ctypes.windll.kernel32.ReadConsoleOutputAttribute(self.stdout, ctypes.byref(self.ac), self.buffer_width, coord, ctypes.byref(chars_read)) + + t = self.tc.value + if not self.fast_mode: + a = self.ac.value + + # add data + if i >= len(self.data): + for j in range(len(self.data), i + 1): + self.data.append('') + if not self.fast_mode: + self.attributes.append('') + + self.data[i] = t + if not self.fast_mode: + self.attributes[i] = a + + + + + #for i in range(0, len(t)): + + + + + # write new output to shared memory + try: + if self.mem_redraw_ct == CONQUE_SOLE_MEM_REDRAW: + self.mem_redraw_ct = 0 + + for i in range(0, len(self.data)): + self.shm_output.write(text=self.data[i], start=self.buffer_width * i) + if not self.fast_mode: + self.shm_attributes.write(text=self.attributes[i], start=self.buffer_width * i) + else: + + for i in range(read_start, read_end): + self.shm_output.write(text=self.data[i], start=self.buffer_width * i) + if not self.fast_mode: + self.shm_attributes.write(text=self.attributes[i], start=self.buffer_width * i) + #self.shm_output.write(text=''.join(self.data[read_start:read_end]), start=read_start * self.buffer_width) + #self.shm_attributes.write(text=''.join(self.attributes[read_start:read_end]), start=read_start * self.buffer_width) + + # write cursor position to shared memory + stats = {'top_offset': buf_info.srWindow.Top, 'default_attribute': buf_info.wAttributes, 'cursor_x': curs_col, 'cursor_y': curs_line, 'is_alive': 1} + self.shm_stats.write(stats) + + # adjust screen position + self.top = buf_info.srWindow.Top + self.cursor_line = curs_line + + # check for reset + if curs_line > buf_info.dwSize.Y - 200: + self.reset_console(buf_info) + + except: + + + + + pass + + # increment redraw counters + self.screen_redraw_ct += 1 + self.mem_redraw_ct += 1 + + return None + + + def reset_console(self, buf_info, add_block=True): + """ Extend the height of the current console if the cursor postion gets within 200 lines of the current size. """ + + # sometimes we just want to change the buffer width, + # in which case no need to add another block + if add_block: + self.output_blocks += 1 + + # close down old memory + self.shm_output.close() + self.shm_output = None + + if not self.fast_mode: + self.shm_attributes.close() + self.shm_attributes = None + + # new shared memory key + mem_key = 'mk' + str(time.time()) + + # reallocate memory + self.shm_output = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width * self.output_blocks, 'output', mem_key, True) + self.shm_output.create('write') + self.shm_output.clear() + + # backfill data + if len(self.data[0]) < self.buffer_width: + for i in range(0, len(self.data)): + self.data[i] = self.data[i] + ' ' * (self.buffer_width - len(self.data[i])) + self.shm_output.write(''.join(self.data)) + + if not self.fast_mode: + self.shm_attributes = ConqueSoleSharedMemory(self.buffer_height * self.buffer_width * self.output_blocks, 'attributes', mem_key, True, chr(buf_info.wAttributes), encoding='latin-1') + self.shm_attributes.create('write') + self.shm_attributes.clear() + + # backfill attributes + if len(self.attributes[0]) < self.buffer_width: + for i in range(0, len(self.attributes)): + self.attributes[i] = self.attributes[i] + chr(buf_info.wAttributes) * (self.buffer_width - len(self.attributes[i])) + if not self.fast_mode: + self.shm_attributes.write(''.join(self.attributes)) + + # notify wrapper of new output block + self.shm_rescroll.write({'cmd': 'new_output', 'data': {'blocks': self.output_blocks, 'mem_key': mem_key}}) + + # set buffer size + size = COORD(X=self.buffer_width, Y=self.buffer_height * self.output_blocks) + + res = ctypes.windll.kernel32.SetConsoleScreenBufferSize(self.stdout, size) + + + + + + + # prev set size call needs to process + time.sleep(0.2) + + # set window size + self.set_window_size(self.window_width, self.window_height) + + # init read buffers + self.tc = ctypes.create_unicode_buffer(self.buffer_width) + self.ac = ctypes.create_unicode_buffer(self.buffer_width) + + + + def write(self): + """ Write text to console. + + This function just parses out special sequences for special key events + and passes on the text to the plain or virtual key functions. + + """ + # get input from shared mem + text = self.shm_input.read() + + # nothing to do here + if text == u(''): + return + + + + # clear input queue + self.shm_input.clear() + + # split on VK codes + chunks = CONQUE_WIN32_REGEX_VK.split(text) + + # if len() is one then no vks + if len(chunks) == 1: + self.write_plain(text) + return + + + + # loop over chunks and delegate + for t in chunks: + + if t == '': + continue + + if CONQUE_WIN32_REGEX_VK.match(t): + + self.write_vk(t[2:-2]) + else: + self.write_plain(t) + + + def write_plain(self, text): + """ Write simple text to subprocess. """ + + li = INPUT_RECORD * len(text) + list_input = li() + + for i in range(0, len(text)): + + # create keyboard input + ke = KEY_EVENT_RECORD() + ke.bKeyDown = ctypes.c_byte(1) + ke.wRepeatCount = ctypes.c_short(1) + + cnum = ord(text[i]) + + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum) + ke.wVirtualScanCode = ctypes.c_short(ctypes.windll.user32.MapVirtualKeyW(int(cnum), 0)) + + if cnum > 31: + ke.uChar.UnicodeChar = uchr(cnum) + elif cnum == 3: + ctypes.windll.kernel32.GenerateConsoleCtrlEvent(0, self.pid) + ke.uChar.UnicodeChar = uchr(cnum) + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum + 96) + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + else: + ke.uChar.UnicodeChar = uchr(cnum) + if cnum in CONQUE_WINDOWS_VK_INV: + ke.wVirtualKeyCode = cnum + else: + ke.wVirtualKeyCode = ctypes.windll.user32.VkKeyScanW(cnum + 96) + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + + + + + kc = INPUT_RECORD(KEY_EVENT) + kc.Event.KeyEvent = ke + list_input[i] = kc + + + + # write input array + events_written = ctypes.c_int() + res = ctypes.windll.kernel32.WriteConsoleInputW(self.stdin, list_input, len(text), ctypes.byref(events_written)) + + + + + + + + + def write_vk(self, vk_code): + """ Write special characters to console subprocess. """ + + + + code = None + ctrl_pressed = False + + # this could be made more generic when more attributes + # other than ctrl_pressed are available + vk_attributes = vk_code.split(';') + + for attr in vk_attributes: + if attr == CONQUE_VK_ATTR_CTRL_PRESSED: + ctrl_pressed = True + else: + code = attr + + li = INPUT_RECORD * 1 + + # create keyboard input + ke = KEY_EVENT_RECORD() + ke.uChar.UnicodeChar = uchr(0) + ke.wVirtualKeyCode = ctypes.c_short(int(code)) + ke.wVirtualScanCode = ctypes.c_short(ctypes.windll.user32.MapVirtualKeyW(int(code), 0)) + ke.bKeyDown = ctypes.c_byte(1) + ke.wRepeatCount = ctypes.c_short(1) + + # set enhanced key mode for arrow keys + if code in CONQUE_WINDOWS_VK_ENHANCED: + + ke.dwControlKeyState |= ENHANCED_KEY + + if ctrl_pressed: + ke.dwControlKeyState |= LEFT_CTRL_PRESSED + + kc = INPUT_RECORD(KEY_EVENT) + kc.Event.KeyEvent = ke + list_input = li(kc) + + # write input array + events_written = ctypes.c_int() + res = ctypes.windll.kernel32.WriteConsoleInputW(self.stdin, list_input, 1, ctypes.byref(events_written)) + + + + + + + + def close(self): + """ Close all running subproccesses """ + + # record status + self.is_alive = False + try: + stats = {'top_offset': 0, 'default_attribute': 0, 'cursor_x': 0, 'cursor_y': self.cursor_line, 'is_alive': 0} + self.shm_stats.write(stats) + except: + pass + + pid_list = (ctypes.c_int * 10)() + num = ctypes.windll.kernel32.GetConsoleProcessList(pid_list, 10) + + + + current_pid = os.getpid() + + + + + + # kill subprocess pids + for pid in pid_list[0:num]: + if not pid: + break + + # kill current pid last + if pid == current_pid: + continue + try: + self.close_pid(pid) + except: + + pass + + # kill this process + try: + self.close_pid(current_pid) + except: + + pass + + + def close_pid(self, pid): + """ Terminate a single process. """ + + + handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, 0, pid) + ctypes.windll.kernel32.TerminateProcess(handle, -1) + ctypes.windll.kernel32.CloseHandle(handle) + + + def is_alive(self): + """ Check process health. """ + + status = ctypes.windll.kernel32.WaitForSingleObject(self.handle, 1) + + if status == 0: + + self.is_alive = False + + return self.is_alive + + + def get_screen_text(self): + """ Return screen data as string. """ + + return "\n".join(self.data) + + + def set_window_size(self, width, height): + """ Change Windows console size. """ + + + + # get current window size object + window_size = SMALL_RECT(0, 0, 0, 0) + + # buffer info has maximum window size data + buf_info = self.get_buffer_info() + + + # set top left corner + window_size.Top = 0 + window_size.Left = 0 + + # set bottom right corner + if buf_info.dwMaximumWindowSize.X < width: + + window_size.Right = buf_info.dwMaximumWindowSize.X - 1 + else: + window_size.Right = width - 1 + + if buf_info.dwMaximumWindowSize.Y < height: + + window_size.Bottom = buf_info.dwMaximumWindowSize.Y - 1 + else: + window_size.Bottom = height - 1 + + + + # set the window size! + res = ctypes.windll.kernel32.SetConsoleWindowInfo(self.stdout, ctypes.c_bool(True), ctypes.byref(window_size)) + + + + + + + # reread buffer info to get final console max lines + buf_info = self.get_buffer_info() + + self.window_width = buf_info.srWindow.Right + 1 + self.window_height = buf_info.srWindow.Bottom + 1 + + + def get_buffer_info(self): + """ Retrieve commonly-used buffer information. """ + + buf_info = CONSOLE_SCREEN_BUFFER_INFO() + ctypes.windll.kernel32.GetConsoleScreenBufferInfo(self.stdout, ctypes.byref(buf_info)) + + return buf_info + + + diff --git a/.vim/autoload/conque_term/conque_sole_wrapper.py b/.vim/autoload/conque_term/conque_sole_wrapper.py new file mode 100644 index 0000000..4e4816f --- /dev/null +++ b/.vim/autoload/conque_term/conque_sole_wrapper.py @@ -0,0 +1,278 @@ +# FILE: autoload/conque_term/conque_sole_wrapper.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" + +ConqueSoleSubprocessWrapper + +Subprocess wrapper to deal with Windows insanity. Launches console based python, +which in turn launches originally requested command. Communicates with cosole +python through shared memory objects. + +""" + +import ctypes +import time + + +class ConqueSoleWrapper(): + + # unique key used for shared memory block names + shm_key = '' + + # process info + handle = None + pid = None + + # queue input in this bucket + bucket = None + + # console size + lines = 24 + columns = 80 + + # shared memory objects + shm_input = None + shm_output = None + shm_attributes = None + shm_stats = None + shm_command = None + shm_rescroll = None + shm_resize = None + + # console python process + proc = None + + + def open(self, cmd, lines, columns, python_exe='python.exe', communicator_py='conque_sole_communicator.py', options={}): + """ Launch python.exe subprocess which will in turn launch the user's program. + + Arguments: + cmd -- The user's command to run. E.g. "Powershell.exe" or "C:\Python27\Scripts\ipython.bat" + lines, columns -- The size of the console, also the size of the Vim buffer + python.exe -- The path to the python executable, typically C:\PythonXX\python.exe + communicator_py -- The path to the subprocess controller script in the user's vimfiles directory + options -- optional configuration + + """ + self.lines = lines + self.columns = columns + self.bucket = u('') + + # create a shm key + self.shm_key = 'mk' + str(time.time()) + + # python command + cmd_line = '%s "%s" %s %d %d %d %d %s' % (python_exe, communicator_py, self.shm_key, int(self.columns), int(self.lines), int(options['CODE_PAGE']), int(CONQUE_FAST_MODE), cmd) + + + # console window attributes + flags = NORMAL_PRIORITY_CLASS | DETACHED_PROCESS | CREATE_UNICODE_ENVIRONMENT + si = STARTUPINFO() + pi = PROCESS_INFORMATION() + + # start the stupid process already + try: + res = ctypes.windll.kernel32.CreateProcessW(None, u(cmd_line), None, None, 0, flags, None, u('.'), ctypes.byref(si), ctypes.byref(pi)) + except: + + raise + + # handle + self.pid = pi.dwProcessId + + + + # init shared memory objects + self.init_shared_memory(self.shm_key) + + + def read(self, start_line, num_lines, timeout=0): + """ Read a range of console lines from shared memory. + + Returns a pair of lists containing the console text and console text attributes. + + """ + # emulate timeout by sleeping timeout time + if timeout > 0: + read_timeout = float(timeout) / 1000 + + time.sleep(read_timeout) + + output = [] + attributes = [] + + # get output + for i in range(start_line, start_line + num_lines + 1): + output.append(self.shm_output.read(self.columns, i * self.columns)) + if not CONQUE_FAST_MODE: + attributes.append(self.shm_attributes.read(self.columns, i * self.columns)) + + return (output, attributes) + + + def get_stats(self): + """ Return a dictionary with current console cursor and scrolling information. """ + + try: + rescroll = self.shm_rescroll.read() + if rescroll != '' and rescroll != None: + + + + self.shm_rescroll.clear() + + # close down old memory + self.shm_output.close() + self.shm_output = None + + if not CONQUE_FAST_MODE: + self.shm_attributes.close() + self.shm_attributes = None + + # reallocate memory + + self.shm_output = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns * rescroll['data']['blocks'], 'output', rescroll['data']['mem_key'], True) + self.shm_output.create('read') + + if not CONQUE_FAST_MODE: + self.shm_attributes = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns * rescroll['data']['blocks'], 'attributes', rescroll['data']['mem_key'], True, encoding='latin-1') + self.shm_attributes.create('read') + + stats_str = self.shm_stats.read() + if stats_str != '': + self.stats = stats_str + else: + return False + except: + + return False + + return self.stats + + + def is_alive(self): + """ Get process status. """ + + if not self.shm_stats: + return True + + stats_str = self.shm_stats.read() + if stats_str: + return (stats_str['is_alive']) + else: + return True + + + def write(self, text): + """ Write input to shared memory. """ + + self.bucket += text + + istr = self.shm_input.read() + + if istr == '': + + self.shm_input.write(self.bucket[:500]) + self.bucket = self.bucket[500:] + + + def write_vk(self, vk_code): + """ Write virtual key code to shared memory using proprietary escape sequences. """ + + seq = u("\x1b[") + u(str(vk_code)) + u("VK") + self.write(seq) + + + def idle(self): + """ Write idle command to shared memory block, so subprocess controller can hibernate. """ + + + self.shm_command.write({'cmd': 'idle', 'data': {}}) + + + def resume(self): + """ Write resume command to shared memory block, so subprocess controller can wake up. """ + + self.shm_command.write({'cmd': 'resume', 'data': {}}) + + + def close(self): + """ Shut it all down. """ + + self.shm_command.write({'cmd': 'close', 'data': {}}) + time.sleep(0.2) + + + def window_resize(self, lines, columns): + """ Resize console window. """ + + self.lines = lines + + # we don't shrink buffer width + if columns > self.columns: + self.columns = columns + + self.shm_resize.write({'cmd': 'resize', 'data': {'width': columns, 'height': lines}}) + + + def init_shared_memory(self, mem_key): + """ Create shared memory objects. """ + + self.shm_input = ConqueSoleSharedMemory(CONQUE_SOLE_INPUT_SIZE, 'input', mem_key) + self.shm_input.create('write') + self.shm_input.clear() + + self.shm_output = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns, 'output', mem_key, True) + self.shm_output.create('write') + + if not CONQUE_FAST_MODE: + self.shm_attributes = ConqueSoleSharedMemory(CONQUE_SOLE_BUFFER_LENGTH * self.columns, 'attributes', mem_key, True, encoding='latin-1') + self.shm_attributes.create('write') + + self.shm_stats = ConqueSoleSharedMemory(CONQUE_SOLE_STATS_SIZE, 'stats', mem_key, serialize=True) + self.shm_stats.create('write') + self.shm_stats.clear() + + self.shm_command = ConqueSoleSharedMemory(CONQUE_SOLE_COMMANDS_SIZE, 'command', mem_key, serialize=True) + self.shm_command.create('write') + self.shm_command.clear() + + self.shm_resize = ConqueSoleSharedMemory(CONQUE_SOLE_RESIZE_SIZE, 'resize', mem_key, serialize=True) + self.shm_resize.create('write') + self.shm_resize.clear() + + self.shm_rescroll = ConqueSoleSharedMemory(CONQUE_SOLE_RESCROLL_SIZE, 'rescroll', mem_key, serialize=True) + self.shm_rescroll.create('write') + self.shm_rescroll.clear() + + return True + + +# vim:foldmethod=marker diff --git a/.vim/autoload/conque_term/conque_subprocess.py b/.vim/autoload/conque_term/conque_subprocess.py new file mode 100644 index 0000000..87d93c3 --- /dev/null +++ b/.vim/autoload/conque_term/conque_subprocess.py @@ -0,0 +1,198 @@ +# FILE: autoload/conque_term/conque_subprocess.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" +ConqueSubprocess + +Create and interact with a subprocess through a pty. + +Usage: + + p = ConqueSubprocess() + p.open('bash', {'TERM':'vt100'}) + output = p.read() + p.write('cd ~/vim' + "\r") + p.write('ls -lha' + "\r") + output += p.read(timeout = 500) + p.close() +""" + +import os +import signal +import pty +import tty +import select +import fcntl +import termios +import struct +import shlex + + +class ConqueSubprocess: + + # process id + pid = 0 + + # stdout+stderr file descriptor + fd = None + + + def open(self, command, env={}): + """ Create subprocess using forkpty() """ + + # parse command + command_arr = shlex.split(command) + executable = command_arr[0] + args = command_arr + + # try to fork a new pty + try: + self.pid, self.fd = pty.fork() + + except: + + return False + + # child proc, replace with command after altering terminal attributes + if self.pid == 0: + + # set requested environment variables + for k in env.keys(): + os.environ[k] = env[k] + + # set tty attributes + try: + attrs = tty.tcgetattr(1) + attrs[0] = attrs[0] ^ tty.IGNBRK + attrs[0] = attrs[0] | tty.BRKINT | tty.IXANY | tty.IMAXBEL + attrs[2] = attrs[2] | tty.HUPCL + attrs[3] = attrs[3] | tty.ICANON | tty.ECHO | tty.ISIG | tty.ECHOKE + attrs[6][tty.VMIN] = 1 + attrs[6][tty.VTIME] = 0 + tty.tcsetattr(1, tty.TCSANOW, attrs) + except: + + pass + + # replace this process with the subprocess + os.execvp(executable, args) + + # else master, do nothing + else: + pass + + + def read(self, timeout=1): + """ Read from subprocess and return new output """ + + output = '' + read_timeout = float(timeout) / 1000 + read_ct = 0 + + try: + # read from fd until no more output + while 1: + s_read, s_write, s_error = select.select([self.fd], [], [], read_timeout) + + lines = '' + for s_fd in s_read: + try: + # increase read buffer so huge reads don't slow down + if read_ct < 10: + lines = os.read(self.fd, 32) + elif read_ct < 50: + lines = os.read(self.fd, 512) + else: + lines = os.read(self.fd, 2048) + read_ct += 1 + except: + pass + output = output + lines.decode('utf-8') + + if lines == '' or read_ct > 100: + break + except: + + pass + + return output + + + def write(self, input): + """ Write new input to subprocess """ + + try: + if CONQUE_PYTHON_VERSION == 2: + os.write(self.fd, input.encode('utf-8', 'ignore')) + else: + os.write(self.fd, bytes(input, 'utf-8')) + except: + + pass + + + def signal(self, signum): + """ signal process """ + + try: + os.kill(self.pid, signum) + except: + pass + + + def close(self): + """ close process with sigterm signal """ + + self.signal(15) + + + def is_alive(self): + """ get process status """ + + p_status = True + try: + if os.waitpid(self.pid, os.WNOHANG)[0]: + p_status = False + except: + p_status = False + + return p_status + + + def window_resize(self, lines, columns): + """ update window size in kernel, then send SIGWINCH to fg process """ + + try: + fcntl.ioctl(self.fd, termios.TIOCSWINSZ, struct.pack("HHHH", lines, columns, 0, 0)) + os.kill(self.pid, signal.SIGWINCH) + except: + pass + + +# vim:foldmethod=marker diff --git a/.vim/autoload/conque_term/conque_win32_util.py b/.vim/autoload/conque_term/conque_win32_util.py new file mode 100644 index 0000000..6ae7652 --- /dev/null +++ b/.vim/autoload/conque_term/conque_win32_util.py @@ -0,0 +1,448 @@ +# FILE: autoload/conque_term/conque_win32_util.py +# AUTHOR: Nico Raffo +# WEBSITE: http://conque.googlecode.com +# MODIFIED: 2011-08-12 +# VERSION: 2.2, for Vim 7.0 +# LICENSE: +# Conque - Vim terminal/console emulator +# Copyright (C) 2009-__YEAR__ Nico Raffo +# +# MIT License +# +# 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. + +""" Python constants and structures used for ctypes interaction. """ + +from ctypes import * + +# Constants + +# create process flag constants + +CREATE_BREAKAWAY_FROM_JOB = 0x01000000 +CREATE_DEFAULT_ERROR_MODE = 0x04000000 +CREATE_NEW_CONSOLE = 0x00000010 +CREATE_NEW_PROCESS_GROUP = 0x00000200 +CREATE_NO_WINDOW = 0x08000000 +CREATE_PROTECTED_PROCESS = 0x00040000 +CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 +CREATE_SEPARATE_WOW_VDM = 0x00000800 +CREATE_SHARED_WOW_VDM = 0x00001000 +CREATE_SUSPENDED = 0x00000004 +CREATE_UNICODE_ENVIRONMENT = 0x00000400 +DEBUG_ONLY_THIS_PROCESS = 0x00000002 +DEBUG_PROCESS = 0x00000001 +DETACHED_PROCESS = 0x00000008 +EXTENDED_STARTUPINFO_PRESENT = 0x00080000 +INHERIT_PARENT_AFFINITY = 0x00010000 + + +# process priority constants + +ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 +BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 +HIGH_PRIORITY_CLASS = 0x00000080 +IDLE_PRIORITY_CLASS = 0x00000040 +NORMAL_PRIORITY_CLASS = 0x00000020 +REALTIME_PRIORITY_CLASS = 0x00000100 + + +# startup info constants + +STARTF_FORCEONFEEDBACK = 0x00000040 +STARTF_FORCEOFFFEEDBACK = 0x00000080 +STARTF_PREVENTPINNING = 0x00002000 +STARTF_RUNFULLSCREEN = 0x00000020 +STARTF_TITLEISAPPID = 0x00001000 +STARTF_TITLEISLINKNAME = 0x00000800 +STARTF_USECOUNTCHARS = 0x00000008 +STARTF_USEFILLATTRIBUTE = 0x00000010 +STARTF_USEHOTKEY = 0x00000200 +STARTF_USEPOSITION = 0x00000004 +STARTF_USESHOWWINDOW = 0x00000001 +STARTF_USESIZE = 0x00000002 +STARTF_USESTDHANDLES = 0x00000100 + + +# show window constants + +SW_FORCEMINIMIZE = 11 +SW_HIDE = 0 +SW_MAXIMIZE = 3 +SW_MINIMIZE = 6 +SW_RESTORE = 9 +SW_SHOW = 5 +SW_SHOWDEFAULT = 10 +SW_SHOWMAXIMIZED = 3 +SW_SHOWMINIMIZED = 2 +SW_SHOWMINNOACTIVE = 7 +SW_SHOWNA = 8 +SW_SHOWNOACTIVATE = 4 +SW_SHOWNORMAL = 1 + + +# input event types + +FOCUS_EVENT = 0x0010 +KEY_EVENT = 0x0001 +MENU_EVENT = 0x0008 +MOUSE_EVENT = 0x0002 +WINDOW_BUFFER_SIZE_EVENT = 0x0004 + + +# key event modifiers + +CAPSLOCK_ON = 0x0080 +ENHANCED_KEY = 0x0100 +LEFT_ALT_PRESSED = 0x0002 +LEFT_CTRL_PRESSED = 0x0008 +NUMLOCK_ON = 0x0020 +RIGHT_ALT_PRESSED = 0x0001 +RIGHT_CTRL_PRESSED = 0x0004 +SCROLLLOCK_ON = 0x0040 +SHIFT_PRESSED = 0x0010 + + +# process access + +PROCESS_CREATE_PROCESS = 0x0080 +PROCESS_CREATE_THREAD = 0x0002 +PROCESS_DUP_HANDLE = 0x0040 +PROCESS_QUERY_INFORMATION = 0x0400 +PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 +PROCESS_SET_INFORMATION = 0x0200 +PROCESS_SET_QUOTA = 0x0100 +PROCESS_SUSPEND_RESUME = 0x0800 +PROCESS_TERMINATE = 0x0001 +PROCESS_VM_OPERATION = 0x0008 +PROCESS_VM_READ = 0x0010 +PROCESS_VM_WRITE = 0x0020 + + +# input / output handles + +STD_INPUT_HANDLE = c_ulong(-10) +STD_OUTPUT_HANDLE = c_ulong(-11) +STD_ERROR_HANDLE = c_ulong(-12) + + +CONQUE_WINDOWS_VK = { + 'VK_LBUTTON': 0x0001, + 'VK_RBUTTON': 0x0002, + 'VK_CANCEL': 0x0003, + 'VK_BACK': 0x0008, + 'VK_TAB': 0x0009, + 'VK_CLEAR': 0x000C, + 'VK_RETURN': 0x0D, + 'VK_SHIFT': 0x10, + 'VK_CONTROL': 0x11, + 'VK_MENU': 0x12, + 'VK_PAUSE': 0x0013, + 'VK_CAPITAL': 0x0014, + 'VK_ESCAPE': 0x001B, + 'VK_SPACE': 0x0020, + 'VK_PRIOR': 0x0021, + 'VK_NEXT': 0x0022, + 'VK_END': 0x0023, + 'VK_HOME': 0x0024, + 'VK_LEFT': 0x0025, + 'VK_UP': 0x0026, + 'VK_RIGHT': 0x0027, + 'VK_DOWN': 0x0028, + 'VK_SELECT': 0x0029, + 'VK_PRINT': 0x002A, + 'VK_EXECUTE': 0x002B, + 'VK_SNAPSHOT': 0x002C, + 'VK_INSERT': 0x002D, + 'VK_DELETE': 0x002E, + 'VK_HELP': 0x002F, + 'VK_0': 0x0030, + 'VK_1': 0x0031, + 'VK_2': 0x0032, + 'VK_3': 0x0033, + 'VK_4': 0x0034, + 'VK_5': 0x0035, + 'VK_6': 0x0036, + 'VK_7': 0x0037, + 'VK_8': 0x0038, + 'VK_9': 0x0039, + 'VK_A': 0x0041, + 'VK_B': 0x0042, + 'VK_C': 0x0043, + 'VK_D': 0x0044, + 'VK_E': 0x0045, + 'VK_F': 0x0046, + 'VK_G': 0x0047, + 'VK_H': 0x0048, + 'VK_I': 0x0049, + 'VK_J': 0x004A, + 'VK_K': 0x004B, + 'VK_L': 0x004C, + 'VK_M': 0x004D, + 'VK_N': 0x004E, + 'VK_O': 0x004F, + 'VK_P': 0x0050, + 'VK_Q': 0x0051, + 'VK_R': 0x0052, + 'VK_S': 0x0053, + 'VK_T': 0x0054, + 'VK_U': 0x0055, + 'VK_V': 0x0056, + 'VK_W': 0x0057, + 'VK_X': 0x0058, + 'VK_Y': 0x0059, + 'VK_Z': 0x005A, + 'VK_LWIN': 0x005B, + 'VK_RWIN': 0x005C, + 'VK_APPS': 0x005D, + 'VK_SLEEP': 0x005F, + 'VK_NUMPAD0': 0x0060, + 'VK_NUMPAD1': 0x0061, + 'VK_NUMPAD2': 0x0062, + 'VK_NUMPAD3': 0x0063, + 'VK_NUMPAD4': 0x0064, + 'VK_NUMPAD5': 0x0065, + 'VK_NUMPAD6': 0x0066, + 'VK_NUMPAD7': 0x0067, + 'VK_NUMPAD8': 0x0068, + 'VK_MULTIPLY': 0x006A, + 'VK_ADD': 0x006B, + 'VK_SEPARATOR': 0x006C, + 'VK_SUBTRACT': 0x006D, + 'VK_DECIMAL': 0x006E, + 'VK_DIVIDE': 0x006F, + 'VK_F1': 0x0070, + 'VK_F2': 0x0071, + 'VK_F3': 0x0072, + 'VK_F4': 0x0073, + 'VK_F5': 0x0074, + 'VK_F6': 0x0075, + 'VK_F7': 0x0076, + 'VK_F8': 0x0077, + 'VK_F9': 0x0078, + 'VK_F10': 0x0079, + 'VK_F11': 0x007A, + 'VK_F12': 0x007B, + 'VK_F13': 0x007C, + 'VK_F14': 0x007D, + 'VK_F15': 0x007E, + 'VK_F16': 0x007F, + 'VK_F17': 0x0080, + 'VK_F18': 0x0081, + 'VK_F19': 0x0082, + 'VK_F20': 0x0083, + 'VK_F21': 0x0084, + 'VK_F22': 0x0085, + 'VK_F23': 0x0086, + 'VK_F24': 0x0087, + 'VK_NUMLOCK': 0x0090, + 'VK_SCROLL': 0x0091, + 'VK_LSHIFT': 0x00A0, + 'VK_RSHIFT': 0x00A1, + 'VK_LCONTROL': 0x00A2, + 'VK_RCONTROL': 0x00A3, + 'VK_LMENU': 0x00A4, + 'VK_RMENU': 0x00A5 +} + +CONQUE_WINDOWS_VK_INV = dict([v, k] for k, v in CONQUE_WINDOWS_VK.items()) + +CONQUE_WINDOWS_VK_ENHANCED = { + str(int(CONQUE_WINDOWS_VK['VK_UP'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_DOWN'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_LEFT'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_RIGHT'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_HOME'])): 1, + str(int(CONQUE_WINDOWS_VK['VK_END'])): 1 +} + + +# structures used for CreateProcess + +# Odd types + +LPBYTE = POINTER(c_ubyte) +LPTSTR = POINTER(c_char) + + +class STARTUPINFO(Structure): + _fields_ = [("cb", c_ulong), + ("lpReserved", LPTSTR), + ("lpDesktop", LPTSTR), + ("lpTitle", LPTSTR), + ("dwX", c_ulong), + ("dwY", c_ulong), + ("dwXSize", c_ulong), + ("dwYSize", c_ulong), + ("dwXCountChars", c_ulong), + ("dwYCountChars", c_ulong), + ("dwFillAttribute", c_ulong), + ("dwFlags", c_ulong), + ("wShowWindow", c_short), + ("cbReserved2", c_short), + ("lpReserved2", LPBYTE), + ("hStdInput", c_void_p), + ("hStdOutput", c_void_p), + ("hStdError", c_void_p),] + + def to_str(self): + return '' + + +class PROCESS_INFORMATION(Structure): + _fields_ = [("hProcess", c_void_p), + ("hThread", c_void_p), + ("dwProcessId", c_ulong), + ("dwThreadId", c_ulong),] + + def to_str(self): + return '' + + +class MEMORY_BASIC_INFORMATION(Structure): + _fields_ = [("BaseAddress", c_void_p), + ("AllocationBase", c_void_p), + ("AllocationProtect", c_ulong), + ("RegionSize", c_ulong), + ("State", c_ulong), + ("Protect", c_ulong), + ("Type", c_ulong),] + + def to_str(self): + return '' + + +class SECURITY_ATTRIBUTES(Structure): + _fields_ = [("Length", c_ulong), + ("SecDescriptor", c_void_p), + ("InheritHandle", c_bool)] + + def to_str(self): + return '' + + +class COORD(Structure): + _fields_ = [("X", c_short), + ("Y", c_short)] + + def to_str(self): + return '' + + +class SMALL_RECT(Structure): + _fields_ = [("Left", c_short), + ("Top", c_short), + ("Right", c_short), + ("Bottom", c_short)] + + def to_str(self): + return '' + + +class CONSOLE_SCREEN_BUFFER_INFO(Structure): + _fields_ = [("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", c_short), + ("srWindow", SMALL_RECT), + ("dwMaximumWindowSize", COORD)] + + def to_str(self): + return '' + + +class CHAR_UNION(Union): + _fields_ = [("UnicodeChar", c_wchar), + ("AsciiChar", c_char)] + + def to_str(self): + return '' + + +class CHAR_INFO(Structure): + _fields_ = [("Char", CHAR_UNION), + ("Attributes", c_short)] + + def to_str(self): + return '' + + +class KEY_EVENT_RECORD(Structure): + _fields_ = [("bKeyDown", c_byte), + ("pad2", c_byte), + ('pad1', c_short), + ("wRepeatCount", c_short), + ("wVirtualKeyCode", c_short), + ("wVirtualScanCode", c_short), + ("uChar", CHAR_UNION), + ("dwControlKeyState", c_int)] + + def to_str(self): + return '' + + +class MOUSE_EVENT_RECORD(Structure): + _fields_ = [("dwMousePosition", COORD), + ("dwButtonState", c_int), + ("dwControlKeyState", c_int), + ("dwEventFlags", c_int)] + + def to_str(self): + return '' + + +class WINDOW_BUFFER_SIZE_RECORD(Structure): + _fields_ = [("dwSize", COORD)] + + def to_str(self): + return '' + + +class MENU_EVENT_RECORD(Structure): + _fields_ = [("dwCommandId", c_uint)] + + def to_str(self): + return '' + + +class FOCUS_EVENT_RECORD(Structure): + _fields_ = [("bSetFocus", c_byte)] + + def to_str(self): + return '' + + +class INPUT_UNION(Union): + _fields_ = [("KeyEvent", KEY_EVENT_RECORD), + ("MouseEvent", MOUSE_EVENT_RECORD), + ("WindowBufferSizeEvent", WINDOW_BUFFER_SIZE_RECORD), + ("MenuEvent", MENU_EVENT_RECORD), + ("FocusEvent", FOCUS_EVENT_RECORD)] + + def to_str(self): + return '' + + +class INPUT_RECORD(Structure): + _fields_ = [("EventType", c_short), + ("Event", INPUT_UNION)] + + def to_str(self): + return '' + + diff --git a/.vim/autoload/go/complete.vim b/.vim/autoload/go/complete.vim new file mode 100644 index 0000000..d4ae3b9 --- /dev/null +++ b/.vim/autoload/go/complete.vim @@ -0,0 +1,49 @@ +" Copyright 2011 The Go Authors. All rights reserved. +" Use of this source code is governed by a BSD-style +" license that can be found in the LICENSE file. +" +" This file provides a utility function that performs auto-completion of +" package names, for use by other commands. + +let s:goos = $GOOS +let s:goarch = $GOARCH + +if len(s:goos) == 0 + if exists('g:golang_goos') + let s:goos = g:golang_goos + elseif has('win32') || has('win64') + let s:goos = 'windows' + elseif has('macunix') + let s:goos = 'darwin' + else + let s:goos = '*' + endif +endif + +if len(s:goarch) == 0 + if exists('g:golang_goarch') + let s:goarch = g:golang_goarch + else + let s:goarch = '*' + endif +endif + +function! go#complete#Package(ArgLead, CmdLine, CursorPos) + let goroot = $GOROOT + if len(goroot) == 0 + " should not occur. + return [] + endif + let ret = {} + let root = expand(goroot.'/pkg/'.s:goos.'_'.s:goarch) + for i in split(globpath(root, a:ArgLead.'*'), "\n") + if isdirectory(i) + let i .= '/' + elseif i !~ '\.a$' + continue + endif + let i = substitute(substitute(i[len(root)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g') + let ret[i] = i + endfor + return sort(keys(ret)) +endfunction diff --git a/.vim/autoload/gocomplete.vim b/.vim/autoload/gocomplete.vim new file mode 100644 index 0000000..997b53a --- /dev/null +++ b/.vim/autoload/gocomplete.vim @@ -0,0 +1,73 @@ +if exists('g:loaded_gocode') + finish +endif +let g:loaded_gocode = 1 + +fu! s:gocodeCurrentBuffer() + let buf = getline(1, '$') + if &l:fileformat == 'dos' + " XXX: line2byte() depend on 'fileformat' option. + " so if fileformat is 'dos', 'buf' must include '\r'. + let buf = map(buf, 'v:val."\r"') + endif + let file = tempname() + call writefile(buf, file) + return file +endf + +fu! s:system(str, ...) + return (a:0 == 0 ? system(a:str) : system(a:str, join(a:000))) +endf + +fu! s:gocodeShellescape(arg) + try + let ssl_save = &shellslash + set noshellslash + return shellescape(a:arg) + finally + let &shellslash = ssl_save + endtry +endf + +fu! s:gocodeCommand(cmd, preargs, args) + for i in range(0, len(a:args) - 1) + let a:args[i] = s:gocodeShellescape(a:args[i]) + endfor + for i in range(0, len(a:preargs) - 1) + let a:preargs[i] = s:gocodeShellescape(a:preargs[i]) + endfor + let result = s:system(printf('gocode %s %s %s', join(a:preargs), a:cmd, join(a:args))) + if v:shell_error != 0 + return "[\"0\", []]" + else + return result + endif +endf + +fu! s:gocodeCurrentBufferOpt(filename) + return '-in=' . a:filename +endf + +fu! s:gocodeCursor() + return printf('%d', line2byte(line('.')) + (col('.')-2)) +endf + +fu! s:gocodeAutocomplete() + let filename = s:gocodeCurrentBuffer() + let result = s:gocodeCommand('autocomplete', + \ [s:gocodeCurrentBufferOpt(filename), '-f=vim'], + \ [expand('%:p'), s:gocodeCursor()]) + call delete(filename) + return result +endf + +fu! gocomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart == 1 + execute "silent let g:gocomplete_completions = " . s:gocodeAutocomplete() + return col('.') - g:gocomplete_completions[0] - 1 + "findstart = 0 when we need to return the list of completions + else + return g:gocomplete_completions[1] + endif +endf diff --git a/.vim/autoload/rails.vim b/.vim/autoload/rails.vim new file mode 100644 index 0000000..40948bf --- /dev/null +++ b/.vim/autoload/rails.vim @@ -0,0 +1,4744 @@ +" autoload/rails.vim +" Author: Tim Pope + +" Install this file as autoload/rails.vim. + +if exists('g:autoloaded_rails') || &cp + finish +endif +let g:autoloaded_rails = '4.3' + +let s:cpo_save = &cpo +set cpo&vim + +" Utility Functions {{{1 + +let s:app_prototype = {} +let s:file_prototype = {} +let s:buffer_prototype = {} +let s:readable_prototype = {} + +function! s:add_methods(namespace, method_names) + for name in a:method_names + let s:{a:namespace}_prototype[name] = s:function('s:'.a:namespace.'_'.name) + endfor +endfunction + +function! s:function(name) + return function(substitute(a:name,'^s:',matchstr(expand(''), '\d\+_'),'')) +endfunction + +function! s:sub(str,pat,rep) + return substitute(a:str,'\v\C'.a:pat,a:rep,'') +endfunction + +function! s:gsub(str,pat,rep) + return substitute(a:str,'\v\C'.a:pat,a:rep,'g') +endfunction + +function! s:startswith(string,prefix) + return strpart(a:string, 0, strlen(a:prefix)) ==# a:prefix +endfunction + +function! s:compact(ary) + return s:sub(s:sub(s:gsub(a:ary,'\n\n+','\n'),'\n$',''),'^\n','') +endfunction + +function! s:scrub(collection,item) + " Removes item from a newline separated collection + let col = "\n" . a:collection + let idx = stridx(col,"\n".a:item."\n") + let cnt = 0 + while idx != -1 && cnt < 100 + let col = strpart(col,0,idx).strpart(col,idx+strlen(a:item)+1) + let idx = stridx(col,"\n".a:item."\n") + let cnt += 1 + endwhile + return strpart(col,1) +endfunction + +function! s:escarg(p) + return s:gsub(a:p,'[ !%#]','\\&') +endfunction + +function! s:esccmd(p) + return s:gsub(a:p,'[!%#]','\\&') +endfunction + +function! s:rquote(str) + " Imperfect but adequate for Ruby arguments + if a:str =~ '^[A-Za-z0-9_/.:-]\+$' + return a:str + elseif &shell =~? 'cmd' + return '"'.s:gsub(s:gsub(a:str,'\','\\'),'"','\\"').'"' + else + return "'".s:gsub(s:gsub(a:str,'\','\\'),"'","'\\\\''")."'" + endif +endfunction + +function! s:sname() + return fnamemodify(s:file,':t:r') +endfunction + +function! s:pop_command() + if exists("s:command_stack") && len(s:command_stack) > 0 + exe remove(s:command_stack,-1) + endif +endfunction + +function! s:push_chdir(...) + if !exists("s:command_stack") | let s:command_stack = [] | endif + if exists("b:rails_root") && (a:0 ? getcwd() !=# rails#app().path() : !s:startswith(getcwd(), rails#app().path())) + let chdir = exists("*haslocaldir") && haslocaldir() ? "lchdir " : "chdir " + call add(s:command_stack,chdir.s:escarg(getcwd())) + exe chdir.s:escarg(rails#app().path()) + else + call add(s:command_stack,"") + endif +endfunction + +function! s:app_path(...) dict + return join([self.root]+a:000,'/') +endfunction + +function! s:app_has_file(file) dict + return filereadable(self.path(a:file)) +endfunction + +function! s:app_find_file(name, ...) dict abort + let trim = strlen(self.path())+1 + if a:0 + let path = s:pathjoin(map(s:pathsplit(a:1),'self.path(v:val)')) + else + let path = s:pathjoin([self.path()]) + endif + let suffixesadd = s:pathjoin(get(a:000,1,&suffixesadd)) + let default = get(a:000,2,'') + let oldsuffixesadd = &l:suffixesadd + try + let &suffixesadd = suffixesadd + " Versions before 7.1.256 returned directories from findfile + if type(default) == type(0) && (v:version < 702 || default == -1) + let all = findfile(a:name,path,-1) + if v:version < 702 + call filter(all,'!isdirectory(v:val)') + endif + call map(all,'s:gsub(strpart(fnamemodify(v:val,":p"),trim),"\\\\","/")') + return default < 0 ? all : get(all,default-1,'') + elseif type(default) == type(0) + let found = findfile(a:name,path,default) + else + let i = 1 + let found = findfile(a:name,path) + while v:version < 702 && found != "" && isdirectory(found) + let i += 1 + let found = findfile(a:name,path,i) + endwhile + endif + return found == "" ? default : s:gsub(strpart(fnamemodify(found,':p'),trim),'\\','/') + finally + let &l:suffixesadd = oldsuffixesadd + endtry +endfunction + +call s:add_methods('app',['path','has_file','find_file']) + +" Split a path into a list. From pathogen.vim +function! s:pathsplit(path) abort + if type(a:path) == type([]) | return copy(a:path) | endif + let split = split(a:path,'\\\@' + if matchstr(self.getline(a:lnum+1),'^'.spc) && !matchstr(self.getline(a:lnum+1),'^'.spc.endpat) && matchstr(cline,endpat) + return a:lnum + endif + let endl = a:lnum + while endl <= self.line_count() + let endl += 1 + if self.getline(endl) =~ '^'.spc.endpat + return endl + elseif self.getline(endl) =~ '^=begin\>' + while self.getline(endl) !~ '^=end\>' && endl <= self.line_count() + let endl += 1 + endwhile + let endl += 1 + elseif self.getline(endl) !~ '^'.spc && self.getline(endl) !~ '^\s*\%(#.*\)\=$' + return 0 + endif + endwhile + return 0 +endfunction + +function! s:endof(lnum) + return rails#buffer().end_of(a:lnum) +endfunction + +function! s:readable_last_opening_line(start,pattern,limit) dict abort + let line = a:start + while line > a:limit && self.getline(line) !~ a:pattern + let line -= 1 + endwhile + let lend = self.end_of(line) + if line > a:limit && (lend < 0 || lend >= a:start) + return line + else + return -1 + endif +endfunction + +function! s:lastopeningline(pattern,limit,start) + return rails#buffer().last_opening_line(a:start,a:pattern,a:limit) +endfunction + +function! s:readable_define_pattern() dict abort + if self.name() =~ '\.yml$' + return '^\%(\h\k*:\)\@=' + endif + let define = '^\s*def\s\+\(self\.\)\=' + if self.name() =~# '\.rake$' + let define .= "\\\|^\\s*\\%(task\\\|file\\)\\s\\+[:'\"]" + endif + if self.name() =~# '/schema\.rb$' + let define .= "\\\|^\\s*create_table\\s\\+[:'\"]" + endif + if self.type_name('test') + let define .= '\|^\s*test\s*[''"]' + endif + return define +endfunction + +function! s:readable_last_method_line(start) dict abort + return self.last_opening_line(a:start,self.define_pattern(),0) +endfunction + +function! s:lastmethodline(start) + return rails#buffer().last_method_line(a:start) +endfunction + +function! s:readable_last_method(start) dict abort + let lnum = self.last_method_line(a:start) + let line = self.getline(lnum) + if line =~# '^\s*test\s*\([''"]\).*\1' + let string = matchstr(line,'^\s*\w\+\s*\([''"]\)\zs.*\ze\1') + return 'test_'.s:gsub(string,' +','_') + elseif lnum + return s:sub(matchstr(line,'\%('.self.define_pattern().'\)\zs\h\%(\k\|[:.]\)*[?!=]\='),':$','') + else + return "" + endif +endfunction + +function! s:lastmethod(...) + return rails#buffer().last_method(a:0 ? a:1 : line(".")) +endfunction + +function! s:readable_last_format(start) dict abort + if self.type_name('view') + let format = fnamemodify(self.path(),':r:e') + if format == '' + return get({'rhtml': 'html', 'rxml': 'xml', 'rjs': 'js', 'haml': 'html'},fnamemodify(self.path(),':e'),'') + else + return format + endif + endif + let rline = self.last_opening_line(a:start,'\C^\s*\%(mail\>.*\|respond_to\)\s*\%(\.*\|respond_to\)\s*\%(\ rline + let match = matchstr(self.getline(line),'\C^\s*'.variable.'\s*\.\s*\zs\h\k*') + if match != '' + return match + endif + let line -= 1 + endwhile + endif + return "" +endfunction + +function! s:lastformat(start) + return rails#buffer().last_format(a:start) +endfunction + +function! s:format(...) + let format = rails#buffer().last_format(a:0 > 1 ? a:2 : line(".")) + return format ==# '' && a:0 ? a:1 : format +endfunction + +call s:add_methods('readable',['end_of','last_opening_line','last_method_line','last_method','last_format','define_pattern']) + +let s:view_types = 'rhtml,erb,rxml,builder,rjs,mab,liquid,haml,dryml,mn' + +function! s:viewspattern() + return '\%('.s:gsub(s:view_types,',','\\|').'\)' +endfunction + +function! s:controller(...) + return rails#buffer().controller_name(a:0 ? a:1 : 0) +endfunction + +function! s:readable_controller_name(...) dict abort + let f = self.name() + if has_key(self,'getvar') && self.getvar('rails_controller') != '' + return self.getvar('rails_controller') + elseif f =~ '\ get(self,last_lines_ftime,0) + let self.last_lines = readfile(self.path()) + let self.last_lines_ftime = ftime + endif + return get(self,'last_lines',[]) +endfunction + +function! s:file_getline(lnum,...) dict abort + if a:0 + return self.lines[lnum-1 : a:1-1] + else + return self.lines[lnum-1] + endif +endfunction + +function! s:buffer_lines() dict abort + return self.getline(1,'$') +endfunction + +function! s:buffer_getline(...) dict abort + if a:0 == 1 + return get(call('getbufline',[self.number()]+a:000),0,'') + else + return call('getbufline',[self.number()]+a:000) + endif +endfunction + +function! s:readable_line_count() dict abort + return len(self.lines()) +endfunction + +function! s:environment() + if exists('$RAILS_ENV') + return $RAILS_ENV + else + return "development" + endif +endfunction + +function! s:Complete_environments(...) + return s:completion_filter(rails#app().environments(),a:0 ? a:1 : "") +endfunction + +function! s:warn(str) + echohl WarningMsg + echomsg a:str + echohl None + " Sometimes required to flush output + echo "" + let v:warningmsg = a:str +endfunction + +function! s:error(str) + echohl ErrorMsg + echomsg a:str + echohl None + let v:errmsg = a:str +endfunction + +function! s:debug(str) + if exists("g:rails_debug") && g:rails_debug + echohl Debug + echomsg a:str + echohl None + endif +endfunction + +function! s:buffer_getvar(varname) dict abort + return getbufvar(self.number(),a:varname) +endfunction + +function! s:buffer_setvar(varname, val) dict abort + return setbufvar(self.number(),a:varname,a:val) +endfunction + +call s:add_methods('buffer',['getvar','setvar']) + +" }}}1 +" "Public" Interface {{{1 + +" RailsRoot() is the only official public function + +function! rails#underscore(str) + let str = s:gsub(a:str,'::','/') + let str = s:gsub(str,'(\u+)(\u\l)','\1_\2') + let str = s:gsub(str,'(\l|\d)(\u)','\1_\2') + let str = tolower(str) + return str +endfunction + +function! rails#camelize(str) + let str = s:gsub(a:str,'/(.=)','::\u\1') + let str = s:gsub(str,'%([_-]|<)(.)','\u\1') + return str +endfunction + +function! rails#singularize(word) + " Probably not worth it to be as comprehensive as Rails but we can + " still hit the common cases. + let word = a:word + if word =~? '\.js$' || word == '' + return word + endif + let word = s:sub(word,'eople$','ersons') + let word = s:sub(word,'[aeio]@ 0 && getbufvar(nr,'rails_file_type') != '' + return getbufvar(nr,'rails_file_type') + elseif f =~ '_controller\.rb$' || f =~ '\' + let r = "controller-api" + else + let r = "controller" + endif + elseif f =~ '_api\.rb' + let r = "api" + elseif f =~ '\') + if class == "ActiveResource::Base" + let class = "ares" + let r = "model-ares" + elseif class == 'ActionMailer::Base' + let r = "mailer" + elseif class != '' + let class = tolower(s:gsub(class,'[^A-Z]','')) + let r = "model-".class + elseif f =~ '_mailer\.rb$' + let r = "mailer" + elseif top =~ '\<\%(validates_\w\+_of\|set_\%(table_name\|primary_key\)\|has_one\|has_many\|belongs_to\)\>' + let r = "model-arb" + else + let r = "model" + endif + elseif f =~ '\.*\.' + let r = "view-layout-" . e + elseif f =~ '\<\%(app/views\|components\)/.*/_\k\+\.\k\+\%(\.\k\+\)\=$' + let r = "view-partial-" . e + elseif f =~ '\.*\.' || f =~ '\' + if e == "yml" + let r = "fixtures-yaml" + else + let r = "fixtures" . (e == "" ? "" : "-" . e) + endif + elseif f =~ '\' + let r = "db-migration" + elseif f=~ '\.*\.rb$' + let r = "config-routes" + elseif f =~ '\' + let cmd = 'script/rails '.a:cmd + else + let cmd = 'script/'.a:cmd + endif + return self.ruby_shell_command(cmd) +endfunction + +function! s:app_background_script_command(cmd) dict abort + let cmd = s:esccmd(self.script_shell_command(a:cmd)) + if has_key(self,'options') && has_key(self.options,'gnu_screen') + let screen = self.options.gnu_screen + else + let screen = g:rails_gnu_screen + endif + if has("gui_win32") + if &shellcmdflag == "-c" && ($PATH . &shell) =~? 'cygwin' + silent exe "!cygstart -d ".s:rquote(self.path())." ruby ".a:cmd + else + exe "!start ".cmd + endif + elseif exists("$STY") && !has("gui_running") && screen && executable("screen") + silent exe "!screen -ln -fn -t ".s:sub(s:sub(a:cmd,'\s.*',''),'^%(script|-rcommand)/','rails-').' '.cmd + elseif exists("$TMUX") && !has("gui_running") && screen && executable("tmux") + silent exe '!tmux new-window -d -n "'.s:sub(s:sub(a:cmd,'\s.*',''),'^%(script|-rcommand)/','rails-').'" "'.cmd.'"' + else + exe "!".cmd + endif + return v:shell_error +endfunction + +function! s:app_execute_script_command(cmd) dict abort + exe '!'.s:esccmd(self.script_shell_command(a:cmd)) + return v:shell_error +endfunction + +function! s:app_lightweight_ruby_eval(ruby,...) dict abort + let def = a:0 ? a:1 : "" + if !executable("ruby") + return def + endif + let args = '-e '.s:rquote('begin; require %{rubygems}; rescue LoadError; end; begin; require %{active_support}; rescue LoadError; end; '.a:ruby) + let cmd = self.ruby_shell_command(args) + " If the shell is messed up, this command could cause an error message + silent! let results = system(cmd) + return v:shell_error == 0 ? results : def +endfunction + +function! s:app_eval(ruby,...) dict abort + let def = a:0 ? a:1 : "" + if !executable("ruby") + return def + endif + let args = "-r./config/boot -r ".s:rquote(self.path("config/environment"))." -e ".s:rquote(a:ruby) + let cmd = self.ruby_shell_command(args) + " If the shell is messed up, this command could cause an error message + silent! let results = system(cmd) + return v:shell_error == 0 ? results : def +endfunction + +call s:add_methods('app', ['ruby_shell_command','script_shell_command','execute_script_command','background_script_command','lightweight_ruby_eval','eval']) + +" }}}1 +" Commands {{{1 + +function! s:prephelp() + let fn = fnamemodify(s:file,':h:h').'/doc/' + if filereadable(fn.'rails.txt') + if !filereadable(fn.'tags') || getftime(fn.'tags') <= getftime(fn.'rails.txt') + silent! helptags `=fn` + endif + endif +endfunction + +function! RailsHelpCommand(...) + call s:prephelp() + let topic = a:0 ? a:1 : "" + if topic == "" || topic == "-" + return "help rails" + elseif topic =~ '^g:' + return "help ".topic + elseif topic =~ '^-' + return "help rails".topic + else + return "help rails-".topic + endif +endfunction + +function! s:BufCommands() + call s:BufFinderCommands() + call s:BufNavCommands() + call s:BufScriptWrappers() + command! -buffer -bar -nargs=? -bang -count -complete=customlist,s:Complete_rake Rake :call s:Rake(0,! && ? -1 : ,) + command! -buffer -bar -nargs=? -bang -range -complete=customlist,s:Complete_preview Rpreview :call s:Preview(0,,) + command! -buffer -bar -nargs=? -bang -complete=customlist,s:Complete_environments Rlog :call s:Log(0,) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_set Rset :call s:Set(0,) + command! -buffer -bar -nargs=0 Rtags :call rails#app().tags_command() + " Embedding all this logic directly into the command makes the error + " messages more concise. + command! -buffer -bar -nargs=? -bang Rdoc : + \ if 0 || =~ "^\\([:'-]\\|g:\\)" | + \ exe RailsHelpCommand() | + \ else | call s:Doc(0,) | endif + command! -buffer -bar -nargs=0 -bang Rrefresh :if 0|unlet! g:autoloaded_rails|source `=s:file`|endif|call s:Refresh(0) + if exists(":NERDTree") + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rtree :NERDTree `=rails#app().path()` + elseif exists(":Project") + command! -buffer -bar -nargs=? Rtree :call s:Project(0,) + endif + command! -buffer -bar -nargs=? Rproject :call s:warn("Warning: :Rproject has been deprecated in favor of :Rtree") | Rtree + if exists("g:loaded_dbext") + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_environments Rdbext :call s:BufDatabase(2,)|let b:dbext_buffer_defaulted = 1 + endif + let ext = expand("%:e") + if ext =~ s:viewspattern() + " TODO: complete controller names with trailing slashes here + command! -buffer -bar -bang -nargs=? -range -complete=customlist,s:controllerList Rextract :,call s:Extract(0,) + endif + if RailsFilePath() =~ '\0) + endif +endfunction + +function! s:Doc(bang, string) + if a:string != "" + if exists("g:rails_search_url") + let query = substitute(a:string,'[^A-Za-z0-9_.~-]','\="%".printf("%02X",char2nr(submatch(0)))','g') + let url = printf(g:rails_search_url, query) + else + return s:error("specify a g:rails_search_url with %s for a query placeholder") + endif + elseif isdirectory(rails#app().path("doc/api/classes")) + let url = rails#app().path("/doc/api/index.html") + elseif s:getpidfor("0.0.0.0","8808") > 0 + let url = "http://localhost:8808" + else + let url = "http://api.rubyonrails.org" + endif + call s:initOpenURL() + if exists(":OpenURL") + exe "OpenURL ".s:escarg(url) + else + return s:error("No :OpenURL command found") + endif +endfunction + +function! s:Log(bang,arg) + if a:arg == "" + let lf = "log/".s:environment().".log" + else + let lf = "log/".a:arg.".log" + endif + let size = getfsize(rails#app().path(lf)) + if size >= 1048576 + call s:warn("Log file is ".((size+512)/1024)."KB. Consider :Rake log:clear") + endif + if a:bang + exe "cgetfile ".lf + clast + else + if exists(":Tail") + Tail `=rails#app().path(lf)` + else + pedit `=rails#app().path(lf)` + endif + endif +endfunction + +function! rails#new_app_command(bang,...) + if a:0 == 0 + let msg = "rails.vim ".g:autoloaded_rails + if a:bang && exists('b:rails_root') && rails#buffer().type_name() == '' + echo msg." (Rails)" + elseif a:bang && exists('b:rails_root') + echo msg." (Rails-".rails#buffer().type_name().")" + elseif a:bang + echo msg + else + !rails + endif + return + endif + let dir = "" + if a:1 !~ '^-' && a:1 !=# 'new' + let dir = a:1 + elseif a:{a:0} =~ '[\/]' + let dir = a:{a:0} + else + let dir = a:1 + endif + let str = "" + let c = 1 + while c <= a:0 + let str .= " " . s:rquote(expand(a:{c})) + let c += 1 + endwhile + let dir = expand(dir) + let append = "" + if a:bang + let append .= " --force" + endif + exe "!rails".append.str + if filereadable(dir."/".g:rails_default_file) + edit `=dir.'/'.g:rails_default_file` + endif +endfunction + +function! s:app_tags_command() dict + if exists("g:Tlist_Ctags_Cmd") + let cmd = g:Tlist_Ctags_Cmd + elseif executable("exuberant-ctags") + let cmd = "exuberant-ctags" + elseif executable("ctags-exuberant") + let cmd = "ctags-exuberant" + elseif executable("ctags") + let cmd = "ctags" + elseif executable("ctags.exe") + let cmd = "ctags.exe" + else + return s:error("ctags not found") + endif + exe '!'.cmd.' -f '.s:escarg(self.path("tmp/tags")).' -R --langmap="ruby:+.rake.builder.rjs" '.g:rails_ctags_arguments.' '.s:escarg(self.path()) +endfunction + +call s:add_methods('app',['tags_command']) + +function! s:Refresh(bang) + if exists("g:rubycomplete_rails") && g:rubycomplete_rails && has("ruby") && exists('g:rubycomplete_completions') + silent! ruby ActiveRecord::Base.reset_subclasses if defined?(ActiveRecord) + silent! ruby if defined?(ActiveSupport::Dependencies); ActiveSupport::Dependencies.clear; elsif defined?(Dependencies); Dependencies.clear; end + if a:bang + silent! ruby ActiveRecord::Base.clear_reloadable_connections! if defined?(ActiveRecord) + endif + endif + call rails#app().cache.clear() + silent doautocmd User BufLeaveRails + if a:bang + for key in keys(s:apps) + if type(s:apps[key]) == type({}) + call s:apps[key].cache.clear() + endif + call extend(s:apps[key],filter(copy(s:app_prototype),'type(v:val) == type(function("tr"))'),'force') + endfor + endif + let i = 1 + let max = bufnr('$') + while i <= max + let rr = getbufvar(i,"rails_root") + if rr != "" + call setbufvar(i,"rails_refresh",1) + endif + let i += 1 + endwhile + silent doautocmd User BufEnterRails +endfunction + +function! s:RefreshBuffer() + if exists("b:rails_refresh") && b:rails_refresh + let oldroot = b:rails_root + unlet! b:rails_root + let b:rails_refresh = 0 + call RailsBufInit(oldroot) + unlet! b:rails_refresh + endif +endfunction + +" }}}1 +" Rake {{{1 + +function! s:app_rake_tasks() dict + if self.cache.needs('rake_tasks') + call s:push_chdir() + try + let lines = split(system("rake -T"),"\n") + finally + call s:pop_command() + endtry + if v:shell_error != 0 + return [] + endif + call map(lines,'matchstr(v:val,"^rake\\s\\+\\zs\\S*")') + call filter(lines,'v:val != ""') + call self.cache.set('rake_tasks',lines) + endif + return self.cache.get('rake_tasks') +endfunction + +call s:add_methods('app', ['rake_tasks']) + +let s:efm_backtrace='%D(in\ %f),' + \.'%\\s%#from\ %f:%l:%m,' + \.'%\\s%#from\ %f:%l:,' + \.'%\\s#{RAILS_ROOT}/%f:%l:\ %#%m,' + \.'%\\s%#[%f:%l:\ %#%m,' + \.'%\\s%#%f:%l:\ %#%m,' + \.'%\\s%#%f:%l:,' + \.'%m\ [%f:%l]:' + +function! s:makewithruby(arg,bang,...) + let old_make = &makeprg + try + let &l:makeprg = rails#app().ruby_shell_command(a:arg) + exe 'make'.(a:bang ? '!' : '') + if !a:bang + cwindow + endif + finally + let &l:makeprg = old_make + endtry +endfunction + +function! s:Rake(bang,lnum,arg) + let self = rails#app() + let lnum = a:lnum < 0 ? 0 : a:lnum + let old_makeprg = &l:makeprg + let old_errorformat = &l:errorformat + try + if &l:makeprg !~# 'rake' + let &l:makeprg = 'rake' + endif + let &l:errorformat = s:efm_backtrace + let arg = a:arg + if &filetype == "ruby" && arg == '' && g:rails_modelines + let mnum = s:lastmethodline(lnum) + let str = getline(mnum)."\n".getline(mnum+1)."\n".getline(mnum+2)."\n" + let pat = '\s\+\zs.\{-\}\ze\%(\n\|\s\s\|#{\@!\|$\)' + let mat = matchstr(str,'#\s*rake'.pat) + let mat = s:sub(mat,'\s+$','') + if mat != "" + let arg = mat + endif + endif + if arg == '' + let opt = s:getopt('task','bl') + if opt != '' + let arg = opt + else + let arg = rails#buffer().default_rake_task(lnum) + endif + endif + if !has_key(self,'options') | let self.options = {} | endif + if arg == '-' + let arg = get(self.options,'last_rake_task','') + endif + let self.options['last_rake_task'] = arg + let withrubyargs = '-r ./config/boot -r '.s:rquote(self.path('config/environment')).' -e "puts \%((in \#{Dir.getwd}))" ' + if arg =~# '^notes\>' + let &l:errorformat = '%-P%f:,\ \ *\ [%*[\ ]%l]\ [%t%*[^]]] %m,\ \ *\ [%*[\ ]%l] %m,%-Q' + " %D to chdir is apparently incompatible with %P multiline messages + call s:push_chdir(1) + exe 'make! '.arg + call s:pop_command() + if !a:bang + cwindow + endif + elseif arg =~# '^\%(stats\|routes\|secret\|time:zones\|db:\%(charset\|collation\|fixtures:identify\>.*\|migrate:status\|version\)\)\%([: ]\|$\)' + let &l:errorformat = '%D(in\ %f),%+G%.%#' + exe 'make! '.arg + if !a:bang + copen + endif + elseif arg =~ '^preview\>' + exe (lnum == 0 ? '' : lnum).'R'.s:gsub(arg,':','/') + elseif arg =~ '^runner:' + let arg = s:sub(arg,'^runner:','') + let root = matchstr(arg,'%\%(:\w\)*') + let file = expand(root).matchstr(arg,'%\%(:\w\)*\zs.*') + if file =~ '#.*$' + let extra = " -- -n ".matchstr(file,'#\zs.*') + let file = s:sub(file,'#.*','') + else + let extra = '' + endif + if self.has_file(file) || self.has_file(file.'.rb') + call s:makewithruby(withrubyargs.'-r"'.file.'"'.extra,a:bang,file !~# '_\%(spec\|test\)\%(\.rb\)\=$') + else + call s:makewithruby(withrubyargs.'-e '.s:esccmd(s:rquote(arg)),a:bang) + endif + elseif arg == 'run' || arg == 'runner' + call s:makewithruby(withrubyargs.'-r"'.RailsFilePath().'"',a:bang,RailsFilePath() !~# '_\%(spec\|test\)\%(\.rb\)\=$') + elseif arg =~ '^run:' + let arg = s:sub(arg,'^run:','') + let arg = s:sub(arg,'^\%:h',expand('%:h')) + let arg = s:sub(arg,'^%(\%|$|#@=)',expand('%')) + let arg = s:sub(arg,'#(\w+[?!=]=)$',' -- -n\1') + call s:makewithruby(withrubyargs.'-r'.arg,a:bang,arg !~# '_\%(spec\|test\)\.rb$') + else + exe 'make! '.arg + if !a:bang + cwindow + endif + endif + finally + let &l:errorformat = old_errorformat + let &l:makeprg = old_makeprg + endtry +endfunction + +function! s:readable_default_rake_task(lnum) dict abort + let app = self.app() + let lnum = a:lnum < 0 ? 0 : a:lnum + if self.getvar('&buftype') == 'quickfix' + return '-' + elseif self.getline(lnum) =~# '# rake ' + return matchstr(self.getline(lnum),'\C# rake \zs.*') + elseif self.getline(self.last_method_line(lnum)-1) =~# '# rake ' + return matchstr(self.getline(self.last_method_line(lnum)-1),'\C# rake \zs.*') + elseif self.getline(self.last_method_line(lnum)) =~# '# rake ' + return matchstr(self.getline(self.last_method_line(lnum)),'\C# rake \zs.*') + elseif self.getline(1) =~# '# rake ' && !lnum + return matchstr(self.getline(1),'\C# rake \zs.*') + elseif self.type_name('config-routes') + return 'routes' + elseif self.type_name('fixtures-yaml') && lnum + return "db:fixtures:identify LABEL=".self.last_method(lnum) + elseif self.type_name('fixtures') && lnum == 0 + return "db:fixtures:load FIXTURES=".s:sub(fnamemodify(self.name(),':r'),'^.{-}/fixtures/','') + elseif self.type_name('task') + let mnum = self.last_method_line(lnum) + let line = getline(mnum) + " We can't grab the namespace so only run tasks at the start of the line + if line =~# '^\%(task\|file\)\>' + return self.last_method(a:lnum) + else + return matchstr(self.getline(1),'\C# rake \zs.*') + endif + elseif self.type_name('spec') + if self.name() =~# '\ 0 + return 'spec SPEC="'.self.path().'":'.lnum + else + return 'spec SPEC="'.self.path().'"' + endif + elseif self.type_name('test') + let meth = self.last_method(lnum) + if meth =~ '^test_' + let call = " -n".meth."" + else + let call = "" + endif + if self.type_name('test-unit','test-functional','test-integration') + return s:sub(s:gsub(self.type_name(),'-',':'),'unit$|functional$','&s').' TEST="'.self.path().'"'.s:sub(call,'^ ',' TESTOPTS=') + elseif self.name() =~# '\ 0 + return 'cucumber FEATURE="'.self.path().'":'.lnum + else + return 'cucumber FEATURE="'.self.path().'"' + endif + elseif self.type_name('cucumber') + return 'cucumber' + else + return '' + endif +endfunction + +function! s:Complete_rake(A,L,P) + return s:completion_filter(rails#app().rake_tasks(),a:A) +endfunction + +call s:add_methods('readable',['default_rake_task']) + +" }}}1 +" Preview {{{1 + +function! s:initOpenURL() + if !exists(":OpenURL") + if has("gui_mac") || has("gui_macvim") || exists("$SECURITYSESSIONID") + command -bar -nargs=1 OpenURL :!open + elseif has("gui_win32") + command -bar -nargs=1 OpenURL :!start cmd /cstart /b + elseif executable("sensible-browser") + command -bar -nargs=1 OpenURL :!sensible-browser + endif + endif +endfunction + +function! s:scanlineforuris(line) + let url = matchstr(a:line,"\\v\\C%(%(GET|PUT|POST|DELETE)\\s+|\\w+://[^/]*)/[^ \n\r\t<>\"]*[^] .,;\n\r\t<>\":]") + if url =~ '\C^\u\+\s\+' + let method = matchstr(url,'^\u\+') + let url = matchstr(url,'\s\+\zs.*') + if method !=? "GET" + let url .= (url =~ '?' ? '&' : '?') . '_method='.tolower(method) + endif + endif + if url != "" + return [url] + else + return [] + endif +endfunction + +function! s:readable_preview_urls(lnum) dict abort + let urls = [] + let start = self.last_method_line(a:lnum) - 1 + while start > 0 && self.getline(start) =~ '^\s*\%(\%(-\=\|<%\)#.*\)\=$' + let urls = s:scanlineforuris(self.getline(start)) + urls + let start -= 1 + endwhile + let start = 1 + while start < self.line_count() && self.getline(start) =~ '^\s*\%(\%(-\=\|<%\)#.*\)\=$' + let urls += s:scanlineforuris(self.getline(start)) + let start += 1 + endwhile + if has_key(self,'getvar') && self.getvar('rails_preview') != '' + let url += [self.getvar('rails_preview')] + end + if self.name() =~ '^public/stylesheets/sass/' + let urls = urls + [s:sub(s:sub(self.name(),'^public/stylesheets/sass/','/stylesheets/'),'\.s[ac]ss$','.css')] + elseif self.name() =~ '^public/' + let urls = urls + [s:sub(self.name(),'^public','')] + elseif self.name() =~ '^app/stylesheets/' + let urls = urls + [s:sub(s:sub(self.name(),'^app/stylesheets/','/stylesheets/'),'\.less$','.css')] + elseif self.name() =~ '^app/scripts/' + let urls = urls + [s:sub(s:sub(self.name(),'^app/scripts/','/javascripts/'),'\.coffee$','.js')] + elseif self.controller_name() != '' && self.controller_name() != 'application' + if self.type_name('controller') && self.last_method(a:lnum) != '' + let urls += ['/'.self.controller_name().'/'.self.last_method(a:lnum).'/'] + elseif self.type_name('controller','view-layout','view-partial') + let urls += ['/'.self.controller_name().'/'] + elseif self.type_name('view') + let urls += ['/'.s:controller().'/'.fnamemodify(self.name(),':t:r:r').'/'] + endif + endif + return urls +endfunction + +call s:add_methods('readable',['preview_urls']) + +function! s:Preview(bang,lnum,arg) + let root = s:getopt("root_url") + if root == '' + let root = s:getopt("url") + endif + let root = s:sub(root,'/$','') + if a:arg =~ '://' + let uri = a:arg + elseif a:arg != '' + let uri = root.'/'.s:sub(a:arg,'^/','') + else + let uri = get(rails#buffer().preview_urls(a:lnum),0,'') + let uri = root.'/'.s:sub(s:sub(uri,'^/',''),'/$','') + endif + call s:initOpenURL() + if exists(':OpenURL') && !a:bang + exe 'OpenURL '.uri + else + " Work around bug where URLs ending in / get handled as FTP + let url = uri.(uri =~ '/$' ? '?' : '') + silent exe 'pedit '.url + wincmd w + if &filetype == '' + if uri =~ '\.css$' + setlocal filetype=css + elseif uri =~ '\.js$' + setlocal filetype=javascript + elseif getline(1) =~ '^\s*<' + setlocal filetype=xhtml + endif + endif + call RailsBufInit(rails#app().path()) + map q :bwipe + wincmd p + if !a:bang + call s:warn("Define a :OpenURL command to use a browser") + endif + endif +endfunction + +function! s:Complete_preview(A,L,P) + return rails#buffer().preview_urls(a:L =~ '^\d' ? matchstr(a:L,'^\d\+') : line('.')) +endfunction + +" }}}1 +" Script Wrappers {{{1 + +function! s:BufScriptWrappers() + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_script Rscript :call rails#app().script_command(0,) + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_generate Rgenerate :call rails#app().generate_command(0,) + command! -buffer -bar -nargs=* -complete=customlist,s:Complete_destroy Rdestroy :call rails#app().destroy_command(0,) + command! -buffer -bar -nargs=? -bang -complete=customlist,s:Complete_server Rserver :call rails#app().server_command(0,) + command! -buffer -bang -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rrunner :call rails#app().runner_command(0 ? -2 : (==?:-1),) + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rp :call rails#app().runner_command(==?:-1,'p begin '..' end') + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Rpp :call rails#app().runner_command(==?:-1,'require %{pp}; pp begin '..' end') + command! -buffer -nargs=1 -range=0 -complete=customlist,s:Complete_ruby Ry :call rails#app().runner_command(==?:-1,'y begin '..' end') +endfunction + +function! s:app_generators() dict + if self.cache.needs('generators') + let generators = self.relglob("vendor/plugins/","*/generators/*") + let generators += self.relglob("","lib/generators/*") + call filter(generators,'v:val =~ "/$"') + let generators += split(glob(expand("~/.rails/generators")."/*"),"\n") + call map(generators,'s:sub(v:val,"^.*[\\\\/]generators[\\\\/]\\ze.","")') + call map(generators,'s:sub(v:val,"[\\\\/]$","")') + call self.cache.set('generators',generators) + endif + return sort(split(g:rails_generators,"\n") + self.cache.get('generators')) +endfunction + +function! s:app_script_command(bang,...) dict + let str = "" + let cmd = a:0 ? a:1 : "console" + let c = 2 + while c <= a:0 + let str .= " " . s:rquote(a:{c}) + let c += 1 + endwhile + if cmd ==# "plugin" + call self.cache.clear('generators') + endif + if a:bang || cmd =~# 'console' + return self.background_script_command(cmd.str) + else + return self.execute_script_command(cmd.str) + endif +endfunction + +function! s:app_runner_command(count,args) dict + if a:count == -2 + return self.script_command(a:bang,"runner",a:args) + else + let str = self.ruby_shell_command('-r./config/boot -e "require '."'commands/runner'".'" '.s:rquote(a:args)) + let res = s:sub(system(str),'\n$','') + if a:count < 0 + echo res + else + exe a:count.'put =res' + endif + endif +endfunction + +function! s:getpidfor(bind,port) + if has("win32") || has("win64") + let netstat = system("netstat -anop tcp") + let pid = matchstr(netstat,'\<'.a:bind.':'.a:port.'\>.\{-\}LISTENING\s\+\zs\d\+') + elseif executable('lsof') + let pid = system("lsof -i 4tcp@".a:bind.':'.a:port."|grep LISTEN|awk '{print $2}'") + let pid = s:sub(pid,'\n','') + else + let pid = "" + endif + return pid +endfunction + +function! s:app_server_command(bang,arg) dict + let port = matchstr(a:arg,'\%(-p\|--port=\=\)\s*\zs\d\+') + if port == '' + let port = "3000" + endif + " TODO: Extract bind argument + let bind = "0.0.0.0" + if a:bang && executable("ruby") + let pid = s:getpidfor(bind,port) + if pid =~ '^\d\+$' + echo "Killing server with pid ".pid + if !has("win32") + call system("ruby -e 'Process.kill(:TERM,".pid.")'") + sleep 100m + endif + call system("ruby -e 'Process.kill(9,".pid.")'") + sleep 100m + endif + if a:arg == "-" + return + endif + endif + if has_key(self,'options') && has_key(self.options,'gnu_screen') + let screen = self.options.gnu_screen + else + let screen = g:rails_gnu_screen + endif + if has("win32") || has("win64") || (exists("$STY") && !has("gui_running") && screen && executable("screen")) || (exists("$TMUX") && !has("gui_running") && screen && executable("tmux")) + call self.background_script_command('server '.a:arg) + else + " --daemon would be more descriptive but lighttpd does not support it + call self.execute_script_command('server '.a:arg." -d") + endif + call s:setopt('a:root_url','http://'.(bind=='0.0.0.0'?'localhost': bind).':'.port.'/') +endfunction + +function! s:app_destroy_command(bang,...) dict + if a:0 == 0 + return self.execute_script_command('destroy') + elseif a:0 == 1 + return self.execute_script_command('destroy '.s:rquote(a:1)) + endif + let str = "" + let c = 1 + while c <= a:0 + let str .= " " . s:rquote(a:{c}) + let c += 1 + endwhile + call self.execute_script_command('destroy'.str) + call self.cache.clear('user_classes') +endfunction + +function! s:app_generate_command(bang,...) dict + if a:0 == 0 + return self.execute_script_command('generate') + elseif a:0 == 1 + return self.execute_script_command('generate '.s:rquote(a:1)) + endif + let cmd = join(map(copy(a:000),'s:rquote(v:val)'),' ') + if cmd !~ '-p\>' && cmd !~ '--pretend\>' + let execstr = self.script_shell_command('generate '.cmd.' -p -f') + let res = system(execstr) + let g:res = res + let junk = '\%(\e\[[0-9;]*m\)\=' + let file = matchstr(res,junk.'\s\+\%(create\|force\)'.junk.'\s\+\zs\f\+\.rb\ze\n') + if file == "" + let file = matchstr(res,junk.'\s\+\%(identical\)'.junk.'\s\+\zs\f\+\.rb\ze\n') + endif + else + let file = "" + endif + if !self.execute_script_command('generate '.cmd) && file != '' + call self.cache.clear('user_classes') + call self.cache.clear('features') + if file =~ '^db/migrate/\d\d\d\d' + let file = get(self.relglob('',s:sub(file,'\d+','[0-9]*[0-9]')),-1,file) + endif + edit `=self.path(file)` + endif +endfunction + +call s:add_methods('app', ['generators','script_command','runner_command','server_command','destroy_command','generate_command']) + +function! s:Complete_script(ArgLead,CmdLine,P) + let cmd = s:sub(a:CmdLine,'^\u\w*\s+','') + if cmd !~ '^[ A-Za-z0-9_=:-]*$' + return [] + elseif cmd =~# '^\w*$' + return s:completion_filter(rails#app().relglob("script/","**/*"),a:ArgLead) + elseif cmd =~# '^\%(plugin\)\s\+'.a:ArgLead.'$' + return s:completion_filter(["discover","list","install","update","remove","source","unsource","sources"],a:ArgLead) + elseif cmd =~# '\%(plugin\)\s\+\%(install\|remove\)\s\+'.a:ArgLead.'$' || cmd =~ '\%(generate\|destroy\)\s\+plugin\s\+'.a:ArgLead.'$' + return s:pluginList(a:ArgLead,a:CmdLine,a:P) + elseif cmd =~# '^\%(generate\|destroy\)\s\+'.a:ArgLead.'$' + return s:completion_filter(rails#app().generators(),a:ArgLead) + elseif cmd =~# '^\%(generate\|destroy\)\s\+\w\+\s\+'.a:ArgLead.'$' + let target = matchstr(cmd,'^\w\+\s\+\%(\w\+:\)\=\zs\w\+\ze\s\+') + if target =~# '^\w*controller$' + return filter(s:controllerList(a:ArgLead,"",""),'v:val !=# "application"') + elseif target ==# 'generator' + return s:completion_filter(map(rails#app().relglob('lib/generators/','*'),'s:sub(v:val,"/$","")')) + elseif target ==# 'helper' + return s:helperList(a:ArgLead,"","") + elseif target ==# 'integration_test' || target ==# 'integration_spec' || target ==# 'feature' + return s:integrationtestList(a:ArgLead,"","") + elseif target ==# 'metal' + return s:metalList(a:ArgLead,"","") + elseif target ==# 'migration' || target ==# 'session_migration' + return s:migrationList(a:ArgLead,"","") + elseif target =~# '^\w*\%(model\|resource\)$' || target =~# '\w*scaffold\%(_controller\)\=$' || target ==# 'mailer' + return s:modelList(a:ArgLead,"","") + elseif target ==# 'observer' + let observers = s:observerList("","","") + let models = s:modelList("","","") + if cmd =~# '^destroy\>' + let models = [] + endif + call filter(models,'index(observers,v:val) < 0') + return s:completion_filter(observers + models,a:ArgLead) + else + return [] + endif + elseif cmd =~# '^\%(generate\|destroy\)\s\+scaffold\s\+\w\+\s\+'.a:ArgLead.'$' + return filter(s:controllerList(a:ArgLead,"",""),'v:val !=# "application"') + return s:completion_filter(rails#app().environments()) + elseif cmd =~# '^\%(console\)\s\+\(--\=\w\+\s\+\)\='.a:ArgLead."$" + return s:completion_filter(rails#app().environments()+["-s","--sandbox"],a:ArgLead) + elseif cmd =~# '^\%(server\)\s\+.*-e\s\+'.a:ArgLead."$" + return s:completion_filter(rails#app().environments(),a:ArgLead) + elseif cmd =~# '^\%(server\)\s\+' + if a:ArgLead =~# '^--environment=' + return s:completion_filter(map(copy(rails#app().environments()),'"--environment=".v:val'),a:ArgLead) + else + return filter(["-p","-b","-e","-m","-d","-u","-c","-h","--port=","--binding=","--environment=","--mime-types=","--daemon","--debugger","--charset=","--help"],'s:startswith(v:val,a:ArgLead)') + endif + endif + return "" +endfunction + +function! s:CustomComplete(A,L,P,cmd) + let L = "Rscript ".a:cmd." ".s:sub(a:L,'^\h\w*\s+','') + let P = a:P - strlen(a:L) + strlen(L) + return s:Complete_script(a:A,L,P) +endfunction + +function! s:Complete_server(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"server") +endfunction + +function! s:Complete_console(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"console") +endfunction + +function! s:Complete_generate(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"generate") +endfunction + +function! s:Complete_destroy(A,L,P) + return s:CustomComplete(a:A,a:L,a:P,"destroy") +endfunction + +function! s:Complete_ruby(A,L,P) + return s:completion_filter(rails#app().user_classes()+["ActiveRecord::Base"],a:A) +endfunction + +" }}}1 +" Navigation {{{1 + +function! s:BufNavCommands() + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rcd :cd `=rails#app().path()` + command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rlcd :lcd `=rails#app().path()` + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rfind :call s:Find(,'' ,) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find REfind :call s:Find(,'E',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RSfind :call s:Find(,'S',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RVfind :call s:Find(,'V',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RTfind :call s:Find(,'T',) + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rsfind :RSfind + command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rtabfind :RTfind + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit Redit :call s:Edit(,'' ,) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit REedit :call s:Edit(,'E',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RSedit :call s:Edit(,'S',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RVedit :call s:Edit(,'V',) + command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RTedit :call s:Edit(,'T',) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_edit RDedit :call s:Edit(,'D',) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related A :call s:Alternate('', ,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AE :call s:Alternate('E',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AS :call s:Alternate('S',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AV :call s:Alternate('V',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AT :call s:Alternate('T',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AD :call s:Alternate('D',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AN :call s:Related('' ,,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related R :call s:Related('' ,,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RE :call s:Related('E',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RS :call s:Related('S',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RV :call s:Related('V',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RT :call s:Related('T',,,,) + command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related RD :call s:Related('D',,,,) +endfunction + +function! s:djump(def) + let def = s:sub(a:def,'^[#:]','') + if def =~ '^\d\+$' + exe def + elseif def =~ '^!' + if expand('%') !~ '://' && !isdirectory(expand('%:p:h')) + call mkdir(expand('%:p:h'),'p') + endif + elseif def != '' + let ext = matchstr(def,'\.\zs.*') + let def = matchstr(def,'[^.]*') + let v:errmsg = '' + silent! exe "djump ".def + if ext != '' && (v:errmsg == '' || v:errmsg =~ '^E387') + let rpat = '\C^\s*\%(mail\>.*\|respond_to\)\s*\%(\ 0 + let variable = matchstr(getline(rline),rpat) + let success = search('\C^\s*'.variable.'\s*\.\s*\zs'.ext.'\>','',end) + if !success + silent! exe "djump ".def + endif + endif + endif + endif +endfunction + +function! s:Find(count,cmd,...) + let str = "" + if a:0 + let i = 1 + while i < a:0 + let str .= s:escarg(a:{i}) . " " + let i += 1 + endwhile + let file = a:{i} + let tail = matchstr(file,'[#!].*$\|:\d*\%(:in\>.*\)\=$') + if tail != "" + let file = s:sub(file,'[#!].*$|:\d*%(:in>.*)=$','') + endif + if file != "" + let file = s:RailsIncludefind(file) + endif + else + let file = s:RailsFind() + let tail = "" + endif + call s:findedit((a:count==1?'' : a:count).a:cmd,file.tail,str) +endfunction + +function! s:Edit(count,cmd,...) + if a:0 + let str = "" + let i = 1 + while i < a:0 + let str .= "`=a:".i."` " + let i += 1 + endwhile + let file = a:{i} + call s:findedit(s:editcmdfor(a:cmd),file,str) + else + exe s:editcmdfor(a:cmd) + endif +endfunction + +function! s:fuzzyglob(arg) + return s:gsub(s:gsub(a:arg,'[^/.]','[&]*'),'%(/|^)\.@!|\.','&*') +endfunction + +function! s:Complete_find(ArgLead, CmdLine, CursorPos) + let paths = s:pathsplit(&l:path) + let seen = {} + for path in paths + if s:startswith(path,rails#app().path()) && path !~ '[][*]' + let path = path[strlen(rails#app().path()) + 1 : ] + for file in rails#app().relglob(path == '' ? '' : path.'/',s:fuzzyglob(rails#underscore(a:ArgLead)), a:ArgLead =~# '\u' ? '.rb' : '') + let seen[file] = 1 + endfor + endif + endfor + let results = sort(map(keys(seen),'s:sub(v:val,"[.]rb$","")')) + return s:autocamelize(results,a:ArgLead) +endfunction + +function! s:Complete_edit(ArgLead, CmdLine, CursorPos) + return s:completion_filter(rails#app().relglob("",s:fuzzyglob(a:ArgLead)),a:ArgLead) +endfunction + +function! s:Complete_cd(ArgLead, CmdLine, CursorPos) + let all = rails#app().relglob("",a:ArgLead."*") + call filter(all,'v:val =~ "/$"') + return filter(all,'s:startswith(v:val,a:ArgLead)') +endfunction + +function! RailsIncludeexpr() + " Is this foolproof? + if mode() =~ '[iR]' || expand("") != v:fname + return s:RailsIncludefind(v:fname) + else + return s:RailsIncludefind(v:fname,1) + endif +endfunction + +function! s:linepeak() + let line = getline(line(".")) + let line = s:sub(line,'^(.{'.col(".").'}).*','\1') + let line = s:sub(line,'([:"'."'".']|\%[qQ]=[[({<])=\f*$','') + return line +endfunction + +function! s:matchcursor(pat) + let line = getline(".") + let lastend = 0 + while lastend >= 0 + let beg = match(line,'\C'.a:pat,lastend) + let end = matchend(line,'\C'.a:pat,lastend) + if beg < col(".") && end >= col(".") + return matchstr(line,'\C'.a:pat,lastend) + endif + let lastend = end + endwhile + return "" +endfunction + +function! s:findit(pat,repl) + let res = s:matchcursor(a:pat) + if res != "" + return substitute(res,'\C'.a:pat,a:repl,'') + else + return "" + endif +endfunction + +function! s:findamethod(func,repl) + return s:findit('\s*\<\%('.a:func.'\)\s*(\=\s*[@:'."'".'"]\(\f\+\)\>.\=',a:repl) +endfunction + +function! s:findasymbol(sym,repl) + return s:findit('\s*:\%('.a:sym.'\)\s*=>\s*(\=\s*[@:'."'".'"]\(\f\+\)\>.\=',a:repl) +endfunction + +function! s:findfromview(func,repl) + " ( ) ( ) ( \1 ) ( ) + return s:findit('\s*\%(<%\)\==\=\s*\<\%('.a:func.'\)\s*(\=\s*[@:'."'".'"]\(\f\+\)\>['."'".'"]\=\s*\%(%>\s*\)\=',a:repl) +endfunction + +function! s:RailsFind() + if filereadable(expand("")) + return expand("") + endif + + " UGH + let buffer = rails#buffer() + let format = s:format('html') + + let res = s:findit('\v\s*.=',expand('%:h').'/\1') + if res != ""|return res.(fnamemodify(res,':e') == '' ? '.rb' : '')|endif + + let res = s:findit('\v['."'".'"]=',expand('%:h').'\1') + if res != ""|return res|endif + + let res = rails#underscore(s:findit('\v\s*<%(include|extend)\(=\s*<([[:alnum:]_:]+)>','\1')) + if res != ""|return res.".rb"|endif + + let res = s:findamethod('require','\1') + if res != ""|return res.(fnamemodify(res,':e') == '' ? '.rb' : '')|endif + + let res = s:findamethod('belongs_to\|has_one\|composed_of\|validates_associated\|scaffold','app/models/\1.rb') + if res != ""|return res|endif + + let res = rails#singularize(s:findamethod('has_many\|has_and_belongs_to_many','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = rails#singularize(s:findamethod('create_table\|change_table\|drop_table\|add_column\|rename_column\|remove_column\|add_index','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = rails#singularize(s:findasymbol('through','app/models/\1')) + if res != ""|return res.".rb"|endif + + let res = s:findamethod('fixtures','fixtures/\1') + if res != "" + return RailsFilePath() =~ '\\s*','app/controllers/\1') + if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif + + let res = s:findamethod('\%(match\|get\|put\|post\|delete\|redirect\)\s*(\=\s*[:''"][^''"]*[''"]\=\s*\%(,\s*:to\s*\)\==>\s*','app/controllers/\1') + if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif + + let res = s:findamethod('layout','\=s:findlayout(submatch(1))') + if res != ""|return res|endif + + let res = s:findasymbol('layout','\=s:findlayout(submatch(1))') + if res != ""|return res|endif + + let res = s:findamethod('helper','app/helpers/\1_helper.rb') + if res != ""|return res|endif + + let res = s:findasymbol('controller','app/controllers/\1_controller.rb') + if res != ""|return res|endif + + let res = s:findasymbol('action','\1') + if res != ""|return res|endif + + let res = s:findasymbol('template','app/views/\1') + if res != ""|return res|endif + + let res = s:sub(s:sub(s:findasymbol('partial','\1'),'^/',''),'\k+$','_&') + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:sub(s:sub(s:findfromview('render\s*(\=\s*:partial\s\+=>\s*','\1'),'^/',''),'\k+$','_&') + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:findamethod('render\s*:\%(template\|action\)\s\+=>\s*','\1.'.format.'\n\1') + if res != ""|return res|endif + + let res = s:sub(s:findfromview('render','\1'),'^/','') + if buffer.type_name('view') | let res = s:sub(res,'[^/]+$','_&') | endif + if res != ""|return res."\n".s:findview(res)|endif + + let res = s:findamethod('redirect_to\s*(\=\s*:action\s\+=>\s*','\1') + if res != ""|return res|endif + + let res = s:findfromview('stylesheet_link_tag','public/stylesheets/\1') + if res != '' && fnamemodify(res, ':e') == '' " Append the default extension iff the filename doesn't already contains an extension + let res .= '.css' + end + if res != ""|return res|endif + + let res = s:sub(s:findfromview('javascript_include_tag','public/javascripts/\1'),'/defaults>','/application') + if res != '' && fnamemodify(res, ':e') == '' " Append the default extension iff the filename doesn't already contains an extension + let res .= '.js' + end + if res != ""|return res|endif + + if buffer.type_name('controller') + let contr = s:controller() + let view = s:findit('\s*\(\=','/\1') + let res = s:findview(contr.'/'.view) + if res != ""|return res|endif + endif + + let old_isfname = &isfname + try + set isfname=@,48-57,/,-,_,:,# + " TODO: grab visual selection in visual mode + let cfile = expand("") + finally + let &isfname = old_isfname + endtry + let res = s:RailsIncludefind(cfile,1) + return res +endfunction + +function! s:app_named_route_file(route) dict + call self.route_names() + if self.cache.has("named_routes") && has_key(self.cache.get("named_routes"),a:route) + return self.cache.get("named_routes")[a:route] + endif + return "" +endfunction + +function! s:app_route_names() dict + if self.cache.needs("named_routes") + let exec = "ActionController::Routing::Routes.named_routes.each {|n,r| puts %{#{n} app/controllers/#{r.requirements[:controller]}_controller.rb##{r.requirements[:action]}}}" + let string = self.eval(exec) + let routes = {} + for line in split(string,"\n") + let route = split(line," ") + let name = route[0] + let routes[name] = route[1] + endfor + call self.cache.set("named_routes",routes) + endif + + return keys(self.cache.get("named_routes")) +endfunction + +call s:add_methods('app', ['route_names','named_route_file']) + +function! RailsNamedRoutes() + return rails#app().route_names() +endfunction + +function! s:RailsIncludefind(str,...) + if a:str ==# "ApplicationController" + return "application_controller.rb\napp/controllers/application.rb" + elseif a:str ==# "Test::Unit::TestCase" + return "test/unit/testcase.rb" + endif + let str = a:str + if a:0 == 1 + " Get the text before the filename under the cursor. + " We'll cheat and peak at this in a bit + let line = s:linepeak() + let line = s:sub(line,'([:"'."'".']|\%[qQ]=[[({<])=\f*$','') + else + let line = "" + endif + let str = s:sub(str,'^\s*','') + let str = s:sub(str,'\s*$','') + let str = s:sub(str,'^:=[:@]','') + let str = s:sub(str,':0x\x+$','') " For # style output + let str = s:gsub(str,"[\"']",'') + if line =~# '\<\(require\|load\)\s*(\s*$' + return str + elseif str =~# '^\l\w*#\w\+$' + return 'app/controllers/'.s:sub(str,'#','_controller.rb#') + endif + let str = rails#underscore(str) + let fpat = '\(\s*\%("\f*"\|:\f*\|'."'\\f*'".'\)\s*,\s*\)*' + if a:str =~# '\u' + " Classes should always be in .rb files + let str .= '.rb' + elseif line =~# ':partial\s*=>\s*' + let str = s:sub(str,'([^/]+)$','_\1') + let str = s:findview(str) + elseif line =~# '\\s*' + let str = s:findview(s:sub(str,'^/=','layouts/')) + elseif line =~# ':controller\s*=>\s*' + let str = 'app/controllers/'.str.'_controller.rb' + elseif line =~# '\\s*$' && rails#buffer().type_name('config-routes')) + if line !~# ':as\s*=>\s*$' + let str = s:sub(str,'_%(path|url)$','') + let str = s:sub(str,'^hash_for_','') + endif + let file = rails#app().named_route_file(str) + if file == "" + let str = s:sub(str,'^formatted_','') + if str =~# '^\%(new\|edit\)_' + let str = 'app/controllers/'.s:sub(rails#pluralize(str),'^(new|edit)_(.*)','\2_controller.rb#\1') + elseif str ==# rails#singularize(str) + " If the word can't be singularized, it's probably a link to the show + " method. We should verify by checking for an argument, but that's + " difficult the way things here are currently structured. + let str = 'app/controllers/'.rails#pluralize(str).'_controller.rb#show' + else + let str = 'app/controllers/'.str.'_controller.rb#index' + endif + else + let str = file + endif + elseif str !~ '/' + " If we made it this far, we'll risk making it singular. + let str = rails#singularize(str) + let str = s:sub(str,'_id$','') + endif + if str =~ '^/' && !filereadable(str) + let str = s:sub(str,'^/','') + endif + if str =~# '^lib/' && !filereadable(str) + let str = s:sub(str,'^lib/','') + endif + return str +endfunction + +" }}}1 +" File Finders {{{1 + +function! s:addfilecmds(type) + let l = s:sub(a:type,'^.','\l&') + let cmds = 'ESVTD ' + let cmd = '' + while cmds != '' + let cplt = " -complete=customlist,".s:sid.l."List" + exe "command! -buffer -bar ".(cmd == 'D' ? '-range=0 ' : '')."-nargs=*".cplt." R".cmd.l." :call s:".l.'Edit("'.(cmd == 'D' ? '' : '').cmd.'",)' + let cmd = strpart(cmds,0,1) + let cmds = strpart(cmds,1) + endwhile +endfunction + +function! s:BufFinderCommands() + command! -buffer -bar -nargs=+ Rnavcommand :call s:Navcommand(0,) + call s:addfilecmds("metal") + call s:addfilecmds("model") + call s:addfilecmds("view") + call s:addfilecmds("controller") + call s:addfilecmds("mailer") + call s:addfilecmds("migration") + call s:addfilecmds("observer") + call s:addfilecmds("helper") + call s:addfilecmds("layout") + call s:addfilecmds("fixtures") + call s:addfilecmds("locale") + if rails#app().has('test') || rails#app().has('spec') + call s:addfilecmds("unittest") + call s:addfilecmds("functionaltest") + endif + if rails#app().has('test') || rails#app().has('spec') || rails#app().has('cucumber') + call s:addfilecmds("integrationtest") + endif + if rails#app().has('spec') + call s:addfilecmds("spec") + endif + call s:addfilecmds("stylesheet") + call s:addfilecmds("javascript") + call s:addfilecmds("plugin") + call s:addfilecmds("task") + call s:addfilecmds("lib") + call s:addfilecmds("environment") + call s:addfilecmds("initializer") +endfunction + +function! s:completion_filter(results,A) + let results = sort(type(a:results) == type("") ? split(a:results,"\n") : copy(a:results)) + call filter(results,'v:val !~# "\\~$"') + let filtered = filter(copy(results),'s:startswith(v:val,a:A)') + if !empty(filtered) | return filtered | endif + let regex = s:gsub(a:A,'[^/]','[&].*') + let filtered = filter(copy(results),'v:val =~# "^".regex') + if !empty(filtered) | return filtered | endif + let regex = s:gsub(a:A,'.','[&].*') + let filtered = filter(copy(results),'v:val =~# regex') + return filtered +endfunction + +function! s:autocamelize(files,test) + if a:test =~# '^\u' + return s:completion_filter(map(copy(a:files),'rails#camelize(v:val)'),a:test) + else + return s:completion_filter(a:files,a:test) + endif +endfunction + +function! s:app_relglob(path,glob,...) dict + if exists("+shellslash") && ! &shellslash + let old_ss = &shellslash + let &shellslash = 1 + endif + let path = a:path + if path !~ '^/' && path !~ '^\w:' + let path = self.path(path) + endif + let suffix = a:0 ? a:1 : '' + let full_paths = split(glob(path.a:glob.suffix),"\n") + let relative_paths = [] + for entry in full_paths + if suffix == '' && isdirectory(entry) && entry !~ '/$' + let entry .= '/' + endif + let relative_paths += [entry[strlen(path) : -strlen(suffix)-1]] + endfor + if exists("old_ss") + let &shellslash = old_ss + endif + return relative_paths +endfunction + +call s:add_methods('app', ['relglob']) + +function! s:relglob(...) + return join(call(rails#app().relglob,a:000,rails#app()),"\n") +endfunction + +function! s:helperList(A,L,P) + return s:autocamelize(rails#app().relglob("app/helpers/","**/*","_helper.rb"),a:A) +endfunction + +function! s:controllerList(A,L,P) + let con = rails#app().relglob("app/controllers/","**/*",".rb") + call map(con,'s:sub(v:val,"_controller$","")') + return s:autocamelize(con,a:A) +endfunction + +function! s:mailerList(A,L,P) + return s:autocamelize(rails#app().relglob("app/mailers/","**/*",".rb"),a:A) +endfunction + +function! s:viewList(A,L,P) + let c = s:controller(1) + let top = rails#app().relglob("app/views/",s:fuzzyglob(a:A)) + call filter(top,'v:val !~# "\\~$"') + if c != '' && a:A !~ '/' + let local = rails#app().relglob("app/views/".c."/","*.*[^~]") + return s:completion_filter(local+top,a:A) + endif + return s:completion_filter(top,a:A) +endfunction + +function! s:layoutList(A,L,P) + return s:completion_filter(rails#app().relglob("app/views/layouts/","*"),a:A) +endfunction + +function! s:stylesheetList(A,L,P) + return s:completion_filter(rails#app().relglob("public/stylesheets/","**/*",".css"),a:A) +endfunction + +function! s:javascriptList(A,L,P) + return s:completion_filter(rails#app().relglob("public/javascripts/","**/*",".js"),a:A) +endfunction + +function! s:metalList(A,L,P) + return s:autocamelize(rails#app().relglob("app/metal/","**/*",".rb"),a:A) +endfunction + +function! s:modelList(A,L,P) + let models = rails#app().relglob("app/models/","**/*",".rb") + call filter(models,'v:val !~# "_observer$"') + return s:autocamelize(models,a:A) +endfunction + +function! s:observerList(A,L,P) + return s:autocamelize(rails#app().relglob("app/models/","**/*","_observer.rb"),a:A) +endfunction + +function! s:fixturesList(A,L,P) + return s:completion_filter(rails#app().relglob("test/fixtures/","**/*")+rails#app().relglob("spec/fixtures/","**/*"),a:A) +endfunction + +function! s:localeList(A,L,P) + return s:completion_filter(rails#app().relglob("config/locales/","**/*"),a:A) +endfunction + +function! s:migrationList(A,L,P) + if a:A =~ '^\d' + let migrations = rails#app().relglob("db/migrate/",a:A."[0-9_]*",".rb") + return map(migrations,'matchstr(v:val,"^[0-9]*")') + else + let migrations = rails#app().relglob("db/migrate/","[0-9]*[0-9]_*",".rb") + call map(migrations,'s:sub(v:val,"^[0-9]*_","")') + return s:autocamelize(migrations,a:A) + endif +endfunction + +function! s:unittestList(A,L,P) + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/unit/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/models/","**/*","_spec.rb") + endif + return s:autocamelize(found,a:A) +endfunction + +function! s:functionaltestList(A,L,P) + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/functional/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/controllers/","**/*","_spec.rb") + let found += rails#app().relglob("spec/mailers/","**/*","_spec.rb") + endif + return s:autocamelize(found,a:A) +endfunction + +function! s:integrationtestList(A,L,P) + if a:A =~# '^\u' + return s:autocamelize(rails#app().relglob("test/integration/","**/*","_test.rb"),a:A) + endif + let found = [] + if rails#app().has('test') + let found += rails#app().relglob("test/integration/","**/*","_test.rb") + endif + if rails#app().has('spec') + let found += rails#app().relglob("spec/requests/","**/*","_spec.rb") + let found += rails#app().relglob("spec/integration/","**/*","_spec.rb") + endif + if rails#app().has('cucumber') + let found += rails#app().relglob("features/","**/*",".feature") + endif + return s:completion_filter(found,a:A) +endfunction + +function! s:specList(A,L,P) + return s:completion_filter(rails#app().relglob("spec/","**/*","_spec.rb"),a:A) +endfunction + +function! s:pluginList(A,L,P) + if a:A =~ '/' + return s:completion_filter(rails#app().relglob('vendor/plugins/',matchstr(a:A,'.\{-\}/').'**/*'),a:A) + else + return s:completion_filter(rails#app().relglob('vendor/plugins/',"*","/init.rb"),a:A) + endif +endfunction + +" Task files, not actual rake tasks +function! s:taskList(A,L,P) + let all = rails#app().relglob("lib/tasks/","**/*",".rake") + if RailsFilePath() =~ '\','".name."',\"".prefix."\",".string(suffix).",".string(filter).",".string(default).",)" + let cmd = strpart(cmds,0,1) + let cmds = strpart(cmds,1) + endwhile +endfunction + +function! s:CommandList(A,L,P) + let cmd = matchstr(a:L,'\CR[A-Z]\=\w\+') + exe cmd." &" + let lp = s:last_prefix . "\n" + let res = [] + while lp != "" + let p = matchstr(lp,'.\{-\}\ze\n') + let lp = s:sub(lp,'.{-}\n','') + let res += rails#app().relglob(p,s:last_filter,s:last_suffix) + endwhile + if s:last_camelize + return s:autocamelize(res,a:A) + else + return s:completion_filter(res,a:A) + endif +endfunction + +function! s:CommandEdit(cmd,name,prefix,suffix,filter,default,...) + if a:0 && a:1 == "&" + let s:last_prefix = a:prefix + let s:last_suffix = a:suffix + let s:last_filter = a:filter + let s:last_camelize = (a:suffix =~# '\.rb$') + else + if a:default == "both()" + if s:model() != "" + let default = s:model() + else + let default = s:controller() + endif + elseif a:default == "model()" + let default = s:model(1) + elseif a:default == "controller()" + let default = s:controller(1) + else + let default = a:default + endif + call s:EditSimpleRb(a:cmd,a:name,a:0 ? a:1 : default,a:prefix,a:suffix) + endif +endfunction + +function! s:EditSimpleRb(cmd,name,target,prefix,suffix,...) + let cmd = s:findcmdfor(a:cmd) + if a:target == "" + " Good idea to emulate error numbers like this? + return s:error("E471: Argument required") + endif + let f = a:0 ? a:target : rails#underscore(a:target) + let jump = matchstr(f,'[#!].*\|:\d*\%(:in\)\=$') + let f = s:sub(f,'[#!].*|:\d*%(:in)=$','') + if jump =~ '^!' + let cmd = s:editcmdfor(cmd) + endif + if f == '.' + let f = s:sub(f,'\.$','') + else + let f .= a:suffix.jump + endif + let f = s:gsub(a:prefix,'\n',f.'\n').f + return s:findedit(cmd,f) +endfunction + +function! s:app_migration(file) dict + let arg = a:file + if arg =~ '^0$\|^0\=[#:]' + let suffix = s:sub(arg,'^0*','') + if self.has_file('db/schema.rb') + return 'db/schema.rb'.suffix + elseif self.has_file('db/'.s:environment().'_structure.sql') + return 'db/'.s:environment().'_structure.sql'.suffix + else + return 'db/schema.rb'.suffix + endif + elseif arg =~ '^\d$' + let glob = '00'.arg.'_*.rb' + elseif arg =~ '^\d\d$' + let glob = '0'.arg.'_*.rb' + elseif arg =~ '^\d\d\d$' + let glob = ''.arg.'_*.rb' + elseif arg == '' + let glob = '*.rb' + else + let glob = '*'.rails#underscore(arg).'*rb' + endif + let migr = s:sub(glob(self.path('db/migrate/').glob),'.*\n','') + if s:startswith(migr,self.path()) + let migr = strpart(migr,1+strlen(self.path())) + endif + return migr +endfunction + +call s:add_methods('app', ['migration']) + +function! s:migrationEdit(cmd,...) + let cmd = s:findcmdfor(a:cmd) + let arg = a:0 ? a:1 : '' + let migr = arg == "." ? "db/migrate" : rails#app().migration(arg) + if migr != '' + call s:findedit(cmd,migr) + else + return s:error("Migration not found".(arg=='' ? '' : ': '.arg)) + endif +endfunction + +function! s:fixturesEdit(cmd,...) + if a:0 + let c = rails#underscore(a:1) + else + let c = rails#pluralize(s:model(1)) + endif + if c == "" + return s:error("E471: Argument required") + endif + let e = fnamemodify(c,':e') + let e = e == '' ? e : '.'.e + let c = fnamemodify(c,':r') + let file = get(rails#app().test_suites(),0,'test').'/fixtures/'.c.e + if file =~ '\.\w\+$' && rails#app().find_file(c.e,["test/fixtures","spec/fixtures"]) ==# '' + call s:edit(a:cmd,file) + else + call s:findedit(a:cmd,rails#app().find_file(c.e,["test/fixtures","spec/fixtures"],[".yml",".csv"],file)) + endif +endfunction + +function! s:localeEdit(cmd,...) + let c = a:0 ? a:1 : rails#app().default_locale() + if c =~# '\.' + call s:edit(a:cmd,rails#app().find_file(c,'config/locales',[],'config/locales/'.c)) + else + call s:findedit(a:cmd,rails#app().find_file(c,'config/locales',['.yml','.rb'],'config/locales/'.c)) + endif +endfunction + +function! s:metalEdit(cmd,...) + if a:0 + call s:EditSimpleRb(a:cmd,"metal",a:1,"app/metal/",".rb") + else + call s:EditSimpleRb(a:cmd,"metal",'config/boot',"",".rb") + endif +endfunction + +function! s:modelEdit(cmd,...) + call s:EditSimpleRb(a:cmd,"model",a:0? a:1 : s:model(1),"app/models/",".rb") +endfunction + +function! s:observerEdit(cmd,...) + call s:EditSimpleRb(a:cmd,"observer",a:0? a:1 : s:model(1),"app/models/","_observer.rb") +endfunction + +function! s:viewEdit(cmd,...) + if a:0 && a:1 =~ '^[^!#:]' + let view = matchstr(a:1,'[^!#:]*') + elseif rails#buffer().type_name('controller','mailer') + let view = s:lastmethod(line('.')) + else + let view = '' + endif + if view == '' + return s:error("No view name given") + elseif view == '.' + return s:edit(a:cmd,'app/views') + elseif view !~ '/' && s:controller(1) != '' + let view = s:controller(1) . '/' . view + endif + if view !~ '/' + return s:error("Cannot find view without controller") + endif + let file = "app/views/".view + let found = s:findview(view) + if found != '' + let dir = fnamemodify(rails#app().path(found),':h') + if !isdirectory(dir) + if a:0 && a:1 =~ '!' + call mkdir(dir,'p') + else + return s:error('No such directory') + endif + endif + call s:edit(a:cmd,found) + elseif file =~ '\.\w\+$' + call s:findedit(a:cmd,file) + else + let format = s:format(rails#buffer().type_name('mailer') ? 'text' : 'html') + if glob(rails#app().path(file.'.'.format).'.*[^~]') != '' + let file .= '.' . format + endif + call s:findedit(a:cmd,file) + endif +endfunction + +function! s:findview(name) + let self = rails#buffer() + let name = a:name + let pre = 'app/views/' + if name !~# '/' + let controller = self.controller_name(1) + if controller != '' + let name = controller.'/'.name + endif + endif + if name =~# '\.\w\+\.\w\+$' || name =~# '\.'.s:viewspattern().'$' + return pre.name + else + for format in ['.'.s:format('html'), ''] + for type in split(s:view_types,',') + if self.app().has_file(pre.name.format.'.'.type) + return pre.name.format.'.'.type + endif + endfor + endfor + endif + return '' +endfunction + +function! s:findlayout(name) + return s:findview("layouts/".(a:name == '' ? 'application' : a:name)) +endfunction + +function! s:layoutEdit(cmd,...) + if a:0 + return s:viewEdit(a:cmd,"layouts/".a:1) + endif + let file = s:findlayout(s:controller(1)) + if file == "" + let file = s:findlayout("application") + endif + if file == "" + let file = "app/views/layouts/application.html.erb" + endif + call s:edit(a:cmd,s:sub(file,'^/','')) +endfunction + +function! s:controllerEdit(cmd,...) + let suffix = '.rb' + if a:0 == 0 + let controller = s:controller(1) + if rails#buffer().type_name() =~# '^view\%(-layout\|-partial\)\@!' + let suffix .= '#'.expand('%:t:r') + endif + else + let controller = a:1 + endif + if rails#app().has_file("app/controllers/".controller."_controller.rb") || !rails#app().has_file("app/controllers/".controller.".rb") + let suffix = "_controller".suffix + endif + return s:EditSimpleRb(a:cmd,"controller",controller,"app/controllers/",suffix) +endfunction + +function! s:mailerEdit(cmd,...) + return s:EditSimpleRb(a:cmd,"mailer",a:0? a:1 : s:controller(1),"app/mailers/\napp/models/",".rb") +endfunction + +function! s:helperEdit(cmd,...) + return s:EditSimpleRb(a:cmd,"helper",a:0? a:1 : s:controller(1),"app/helpers/","_helper.rb") +endfunction + +function! s:stylesheetEdit(cmd,...) + let name = a:0 ? a:1 : s:controller(1) + if rails#app().has('sass') && rails#app().has_file('public/stylesheets/sass/'.name.'.sass') + return s:EditSimpleRb(a:cmd,"stylesheet",name,"public/stylesheets/sass/",".sass",1) + elseif rails#app().has('sass') && rails#app().has_file('public/stylesheets/sass/'.name.'.scss') + return s:EditSimpleRb(a:cmd,"stylesheet",name,"public/stylesheets/sass/",".scss",1) + elseif rails#app().has('lesscss') && rails#app().has_file('app/stylesheets/'.name.'.less') + return s:EditSimpleRb(a:cmd,"stylesheet",name,"app/stylesheets/",".less",1) + else + return s:EditSimpleRb(a:cmd,"stylesheet",name,"public/stylesheets/",".css",1) + endif +endfunction + +function! s:javascriptEdit(cmd,...) + let name = a:0 ? a:1 : s:controller(1) + if rails#app().has('coffee') && rails#app().has_file('app/scripts/'.name.'.coffee') + return s:EditSimpleRb(a:cmd,'javascript',name,'app/scripts/','.coffee',1) + elseif rails#app().has('coffee') && rails#app().has_file('app/scripts/'.name.'.js') + return s:EditSimpleRb(a:cmd,'javascript',name,'app/scripts/','.js',1) + else + return s:EditSimpleRb(a:cmd,'javascript',name,'public/javascripts/','.js',1) + endif +endfunction + +function! s:unittestEdit(cmd,...) + let f = rails#underscore(a:0 ? matchstr(a:1,'[^!#:]*') : s:model(1)) + let jump = a:0 ? matchstr(a:1,'[!#:].*') : '' + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let mapping = {'test': ['test/unit/','_test.rb'], 'spec': ['spec/models/','_spec.rb']} + let tests = map(filter(rails#app().test_suites(),'has_key(mapping,v:val)'),'get(mapping,v:val)') + if empty(tests) + let tests = [mapping['test']] + endif + for [prefix, suffix] in tests + if !a:0 && rails#buffer().type_name('model-aro') && f != '' && f !~# '_observer$' + if rails#app().has_file(prefix.f.'_observer'.suffix) + return s:findedit(cmd,prefix.f.'_observer'.suffix.jump) + endif + endif + endfor + for [prefix, suffix] in tests + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + endif + endfor + return s:EditSimpleRb(a:cmd,"unittest",f.jump,tests[0][0],tests[0][1],1) +endfunction + +function! s:functionaltestEdit(cmd,...) + let f = rails#underscore(a:0 ? matchstr(a:1,'[^!#:]*') : s:controller(1)) + let jump = a:0 ? matchstr(a:1,'[!#:].*') : '' + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let mapping = {'test': [['test/functional/'],['_test.rb','_controller_test.rb']], 'spec': [['spec/controllers/','spec/mailers/'],['_spec.rb','_controller_spec.rb']]} + let tests = map(filter(rails#app().test_suites(),'has_key(mapping,v:val)'),'get(mapping,v:val)') + if empty(tests) + let tests = [mapping[tests]] + endif + for [prefixes, suffixes] in tests + for prefix in prefixes + for suffix in suffixes + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + endif + endfor + endfor + endfor + return s:EditSimpleRb(a:cmd,"functionaltest",f.jump,tests[0][0][0],tests[0][1][0],1) +endfunction + +function! s:integrationtestEdit(cmd,...) + if !a:0 + return s:EditSimpleRb(a:cmd,"integrationtest","test/test_helper\nfeatures/support/env\nspec/spec_helper","",".rb") + endif + let f = rails#underscore(matchstr(a:1,'[^!#:]*')) + let jump = matchstr(a:1,'[!#:].*') + if jump =~ '!' + let cmd = s:editcmdfor(a:cmd) + else + let cmd = s:findcmdfor(a:cmd) + endif + let tests = [['test/integration/','_test.rb'], [ 'spec/requests/','_spec.rb'], [ 'spec/integration/','_spec.rb'], [ 'features/','.feature']] + call filter(tests, 'isdirectory(rails#app().path(v:val[0]))') + if empty(tests) + let tests = [['test/integration/','_test.rb']] + endif + for [prefix, suffix] in tests + if rails#app().has_file(prefix.f.suffix) + return s:findedit(cmd,prefix.f.suffix.jump) + elseif rails#app().has_file(prefix.rails#underscore(f).suffix) + return s:findedit(cmd,prefix.rails#underscore(f).suffix.jump) + endif + endfor + return s:EditSimpleRb(a:cmd,"integrationtest",f.jump,tests[0][0],tests[0][1],1) +endfunction + +function! s:specEdit(cmd,...) + if a:0 + return s:EditSimpleRb(a:cmd,"spec",a:1,"spec/","_spec.rb") + else + call s:EditSimpleRb(a:cmd,"spec","spec_helper","spec/",".rb") + endif +endfunction + +function! s:pluginEdit(cmd,...) + let cmd = s:findcmdfor(a:cmd) + let plugin = "" + let extra = "" + if RailsFilePath() =~ '\','split') + let cmd = s:sub(cmd,'find>','edit') + return cmd +endfunction + +function! s:try(cmd) abort + if !exists(":try") + " I've seen at least one weird setup without :try + exe a:cmd + else + try + exe a:cmd + catch + call s:error(s:sub(v:exception,'^.{-}:\zeE','')) + return 0 + endtry + endif + return 1 +endfunction + +function! s:findedit(cmd,files,...) abort + let cmd = s:findcmdfor(a:cmd) + let files = type(a:files) == type([]) ? copy(a:files) : split(a:files,"\n") + if len(files) == 1 + let file = files[0] + else + let file = get(filter(copy(files),'rails#app().has_file(s:sub(v:val,"#.*|:\\d*$",""))'),0,get(files,0,'')) + endif + if file =~ '[#!]\|:\d*\%(:in\)\=$' + let djump = matchstr(file,'!.*\|#\zs.*\|:\zs\d*\ze\%(:in\)\=$') + let file = s:sub(file,'[#!].*|:\d*%(:in)=$','') + else + let djump = '' + endif + if file == '' + let testcmd = "edit" + elseif isdirectory(rails#app().path(file)) + let arg = file == "." ? rails#app().path() : rails#app().path(file) + let testcmd = s:editcmdfor(cmd).' '.(a:0 ? a:1 . ' ' : '').s:escarg(arg) + exe testcmd + return + elseif rails#app().path() =~ '://' || cmd =~ 'edit' || cmd =~ 'split' + if file !~ '^/' && file !~ '^\w:' && file !~ '://' + let file = s:escarg(rails#app().path(file)) + endif + let testcmd = s:editcmdfor(cmd).' '.(a:0 ? a:1 . ' ' : '').file + else + let testcmd = cmd.' '.(a:0 ? a:1 . ' ' : '').file + endif + if s:try(testcmd) + call s:djump(djump) + endif +endfunction + +function! s:edit(cmd,file,...) + let cmd = s:editcmdfor(a:cmd) + let cmd .= ' '.(a:0 ? a:1 . ' ' : '') + let file = a:file + if file !~ '^/' && file !~ '^\w:' && file !~ '://' + exe cmd."`=fnamemodify(rails#app().path(file),':.')`" + else + exe cmd.file + endif +endfunction + +function! s:Alternate(cmd,line1,line2,count,...) + if a:0 + if a:count && a:cmd !~# 'D' + return call('s:Find',[1,a:line1.a:cmd]+a:000) + elseif a:count + return call('s:Edit',[1,a:line1.a:cmd]+a:000) + else + return call('s:Edit',[1,a:cmd]+a:000) + endif + else + let file = s:getopt(a:count ? 'related' : 'alternate', 'bl') + if file == '' + let file = rails#buffer().related(a:count) + endif + if file != '' + call s:findedit(a:cmd,file) + else + call s:warn("No alternate file is defined") + endif + endif +endfunction + +function! s:Related(cmd,line1,line2,count,...) + if a:count == 0 && a:0 == 0 + return s:Alternate(a:cmd,a:line1,a:line1,a:line1) + else + return call('s:Alternate',[a:cmd,a:line1,a:line2,a:count]+a:000) + endif +endfunction + +function! s:Complete_related(A,L,P) + if a:L =~# '^[[:alpha:]]' + return s:Complete_edit(a:A,a:L,a:P) + else + return s:Complete_find(a:A,a:L,a:P) + endif +endfunction + +function! s:readable_related(...) dict abort + let f = self.name() + if a:0 && a:1 + let lastmethod = self.last_method(a:1) + if self.type_name('controller','mailer') && lastmethod != "" + let root = s:sub(s:sub(s:sub(f,'/application%(_controller)=\.rb$','/shared_controller.rb'),'/%(controllers|models|mailers)/','/views/'),'%(_controller)=\.rb$','/'.lastmethod) + let format = self.last_format(a:1) + if format == '' + let format = self.type_name('mailer') ? 'text' : 'html' + endif + if glob(self.app().path().'/'.root.'.'.format.'.*[^~]') != '' + return root . '.' . format + else + return root + endif + elseif f =~ '\ me') + let migration = "db/migrate/".get(candidates,0,migrations[0]).".rb" + endif + return migration . (exists('l:lastmethod') && lastmethod != '' ? '#'.lastmethod : '') + elseif f =~ '\??').'/layout.'.fnamemodify(f,':e') + else + let dest = f + endif + return s:sub(s:sub(dest,' 1 + return s:error("Incorrect number of arguments") + endif + if a:1 =~ '[^a-z0-9_/.]' + return s:error("Invalid partial name") + endif + let rails_root = rails#app().path() + let ext = expand("%:e") + let file = s:sub(a:1,'%(/|^)\zs_\ze[^/]*$','') + let first = a:firstline + let last = a:lastline + let range = first.",".last + if rails#buffer().type_name('view-layout') + if RailsFilePath() =~ '\' + let curdir = 'app/views/shared' + if file !~ '/' + let file = "shared/" .file + endif + else + let curdir = s:sub(RailsFilePath(),'.*]+)'.erub2.'\s*$' + let collection = s:sub(getline(first-1),'^'.fspaces.erub1.'for\s+(\k+)\s+in\s+([^ >]+)'.erub2.'\s*$','\1>\2') + elseif getline(first-1) =~ '\v^'.fspaces.erub1.'([^ %>]+)\.each\s+do\s+\|\s*(\k+)\s*\|'.erub2.'\s*$' + let collection = s:sub(getline(first-1),'^'.fspaces.erub1.'([^ %>]+)\.each\s+do\s+\|\s*(\k+)\s*\|'.erub2.'\s*$','\2>\1') + endif + if collection != '' + let var = matchstr(collection,'^\k\+') + let collection = s:sub(collection,'^\k+\>','') + let first -= 1 + let last += 1 + endif + else + let fspaces = spaces + endif + let renderstr = "render :partial => '".fnamemodify(file,":r:r")."'" + if collection != "" + let renderstr .= ", :collection => ".collection + elseif "@".name != var + let renderstr .= ", :object => ".var + endif + if ext =~? '^\%(rhtml\|erb\|dryml\)$' + let renderstr = "<%= ".renderstr." %>" + elseif ext == "rxml" || ext == "builder" + let renderstr = "xml << ".s:sub(renderstr,"render ","render(").")" + elseif ext == "rjs" + let renderstr = "page << ".s:sub(renderstr,"render ","render(").")" + elseif ext == "haml" + let renderstr = "= ".renderstr + elseif ext == "mn" + let renderstr = "_".renderstr + endif + let buf = @@ + silent exe range."yank" + let partial = @@ + let @@ = buf + let old_ai = &ai + try + let &ai = 0 + silent exe "norm! :".first.",".last."change\".fspaces.renderstr."\.\" + finally + let &ai = old_ai + endtry + if renderstr =~ '<%' + norm ^6w + else + norm ^5w + endif + let ft = &ft + let shortout = fnamemodify(out,':.') + silent split `=shortout` + silent %delete + let &ft = ft + let @@ = partial + silent put + 0delete + let @@ = buf + if spaces != "" + silent! exe '%substitute/^'.spaces.'//' + endif + silent! exe '%substitute?\%(\w\|[@:"'."'".'-]\)\@?'.name.'?g' + 1 +endfunction + +" }}}1 +" Migration Inversion {{{1 + +function! s:mkeep(str) + " Things to keep (like comments) from a migration statement + return matchstr(a:str,' #[^{].*') +endfunction + +function! s:mextargs(str,num) + if a:str =~ '^\s*\w\+\s*(' + return s:sub(matchstr(a:str,'^\s*\w\+\s*\zs(\%([^,)]\+[,)]\)\{,'.a:num.'\}'),',$',')') + else + return s:sub(s:sub(matchstr(a:str,'\w\+\>\zs\s*\%([^,){ ]*[, ]*\)\{,'.a:num.'\}'),'[, ]*$',''),'^\s+',' ') + endif +endfunction + +function! s:migspc(line) + return matchstr(a:line,'^\s*') +endfunction + +function! s:invertrange(beg,end) + let str = "" + let lnum = a:beg + while lnum <= a:end + let line = getline(lnum) + let add = "" + if line == '' + let add = ' ' + elseif line =~ '^\s*\(#[^{].*\)\=$' + let add = line + elseif line =~ '\' + let add = s:migspc(line)."drop_table".s:mextargs(line,1).s:mkeep(line) + let lnum = s:endof(lnum) + elseif line =~ '\' + let add = s:sub(line,'\s*\(=\s*([^,){ ]*).*','create_table \1 do |t|'."\n".matchstr(line,'^\s*').'end').s:mkeep(line) + elseif line =~ '\' + let add = s:migspc(line).'remove_column'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\' + let add = s:sub(line,'','add_column') + elseif line =~ '\' + let add = s:migspc(line).'remove_index'.s:mextargs(line,1) + let mat = matchstr(line,':name\s*=>\s*\zs[^ ,)]*') + if mat != '' + let add = s:sub(add,'\)=$',', :name => '.mat.'&') + else + let mat = matchstr(line,'\[^,]*,\s*\zs\%(\[[^]]*\]\|[:"'."'".']\w*["'."'".']\=\)') + if mat != '' + let add = s:sub(add,'\)=$',', :column => '.mat.'&') + endif + endif + let add .= s:mkeep(line) + elseif line =~ '\' + let add = s:sub(s:sub(line,'\s*','') + elseif line =~ '\' + let add = s:sub(line,'' + let add = s:migspc(line).'change_column'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\' + let add = s:migspc(line).'change_column_default'.s:mextargs(line,2).s:mkeep(line) + elseif line =~ '\.update_all(\(["'."'".']\).*\1)$' || line =~ '\.update_all \(["'."'".']\).*\1$' + " .update_all('a = b') => .update_all('b = a') + let pre = matchstr(line,'^.*\.update_all[( ][}'."'".'"]') + let post = matchstr(line,'["'."'".'])\=$') + let mat = strpart(line,strlen(pre),strlen(line)-strlen(pre)-strlen(post)) + let mat = s:gsub(','.mat.',','%(,\s*)@<=([^ ,=]{-})(\s*\=\s*)([^,=]{-})%(\s*,)@=','\3\2\1') + let add = pre.s:sub(s:sub(mat,'^,',''),',$','').post + elseif line =~ '^s\*\%(if\|unless\|while\|until\|for\)\>' + let lnum = s:endof(lnum) + endif + if lnum == 0 + return -1 + endif + if add == "" + let add = s:sub(line,'^\s*\zs.*','raise ActiveRecord::IrreversibleMigration') + elseif add == " " + let add = "" + endif + let str = add."\n".str + let lnum += 1 + endwhile + let str = s:gsub(str,'(\s*raise ActiveRecord::IrreversibleMigration\n)+','\1') + return str +endfunction + +function! s:Invert(bang) + let err = "Could not parse method" + let src = "up" + let dst = "down" + let beg = search('\%('.&l:define.'\).*'.src.'\>',"w") + let end = s:endof(beg) + if beg + 1 == end + let src = "down" + let dst = "up" + let beg = search('\%('.&l:define.'\).*'.src.'\>',"w") + let end = s:endof(beg) + endif + if !beg || !end + return s:error(err) + endif + let str = s:invertrange(beg+1,end-1) + if str == -1 + return s:error(err) + endif + let beg = search('\%('.&l:define.'\).*'.dst.'\>',"w") + let end = s:endof(beg) + if !beg || !end + return s:error(err) + endif + if foldclosed(beg) > 0 + exe beg."foldopen!" + endif + if beg + 1 < end + exe (beg+1).",".(end-1)."delete _" + endif + if str != '' + exe beg.'put =str' + exe 1+beg + endif +endfunction + +" }}}1 +" Cache {{{1 + +let s:cache_prototype = {'dict': {}} + +function! s:cache_clear(...) dict + if a:0 == 0 + let self.dict = {} + elseif has_key(self,'dict') && has_key(self.dict,a:1) + unlet! self.dict[a:1] + endif +endfunction + +function! rails#cache_clear(...) + if exists('b:rails_root') + return call(rails#app().cache.clear,a:000,rails#app().cache) + endif +endfunction + +function! s:cache_get(...) dict + if a:0 == 1 + return self.dict[a:1] + else + return self.dict + endif +endfunction + +function! s:cache_has(key) dict + return has_key(self.dict,a:key) +endfunction + +function! s:cache_needs(key) dict + return !has_key(self.dict,a:key) +endfunction + +function! s:cache_set(key,value) dict + let self.dict[a:key] = a:value +endfunction + +call s:add_methods('cache', ['clear','needs','has','get','set']) + +let s:app_prototype.cache = s:cache_prototype + +" }}}1 +" Syntax {{{1 + +function! s:resetomnicomplete() + if exists("+completefunc") && &completefunc == 'syntaxcomplete#Complete' + if exists("g:loaded_syntax_completion") + " Ugly but necessary, until we have our own completion + unlet g:loaded_syntax_completion + silent! delfunction syntaxcomplete#Complete + endif + endif +endfunction + +function! s:helpermethods() + return "" + \."atom_feed audio_path audio_tag auto_discovery_link_tag auto_link " + \."button_to button_to_function " + \."cache capture cdata_section check_box check_box_tag collection_select concat content_for content_tag content_tag_for csrf_meta_tag current_cycle cycle " + \."date_select datetime_select debug distance_of_time_in_words distance_of_time_in_words_to_now div_for dom_class dom_id draggable_element draggable_element_js drop_receiving_element drop_receiving_element_js " + \."email_field email_field_tag error_message_on error_messages_for escape_javascript escape_once excerpt " + \."favicon_link_tag field_set_tag fields_for file_field file_field_tag form form_for form_tag " + \."grouped_collection_select grouped_options_for_select " + \."hidden_field hidden_field_tag highlight " + \."image_path image_submit_tag image_tag input " + \."javascript_cdata_section javascript_include_tag javascript_path javascript_tag " + \."l label label_tag link_to link_to_function link_to_if link_to_unless link_to_unless_current localize " + \."mail_to " + \."number_field number_field_tag number_to_currency number_to_human number_to_human_size number_to_percentage number_to_phone number_with_delimiter number_with_precision " + \."option_groups_from_collection_for_select options_for_select options_from_collection_for_select " + \."password_field password_field_tag path_to_audio path_to_image path_to_javascript path_to_stylesheet path_to_video phone_field phone_field_tag pluralize " + \."radio_button radio_button_tag range_field range_field_tag raw remote_function reset_cycle " + \."safe_concat sanitize sanitize_css search_field search_field_tag select select_date select_datetime select_day select_hour select_minute select_month select_second select_tag select_time select_year simple_format sortable_element sortable_element_js strip_links strip_tags stylesheet_link_tag stylesheet_path submit_tag " + \."t tag telephone_field telephone_field_tag text_area text_area_tag text_field text_field_tag time_ago_in_words time_select time_zone_options_for_select time_zone_select translate truncate " + \."update_page update_page_tag url_field url_field_tag url_for url_options " + \."video_path video_tag visual_effect " + \."word_wrap" +endfunction + +function! s:app_user_classes() dict + if self.cache.needs("user_classes") + let controllers = self.relglob("app/controllers/","**/*",".rb") + call map(controllers,'v:val == "application" ? v:val."_controller" : v:val') + let classes = + \ self.relglob("app/models/","**/*",".rb") + + \ controllers + + \ self.relglob("app/helpers/","**/*",".rb") + + \ self.relglob("lib/","**/*",".rb") + call map(classes,'rails#camelize(v:val)') + call self.cache.set("user_classes",classes) + endif + return self.cache.get('user_classes') +endfunction + +function! s:app_user_assertions() dict + if self.cache.needs("user_assertions") + if self.has_file("test/test_helper.rb") + let assertions = map(filter(s:readfile(self.path("test/test_helper.rb")),'v:val =~ "^ def assert_"'),'matchstr(v:val,"^ def \\zsassert_\\w\\+")') + else + let assertions = [] + endif + call self.cache.set("user_assertions",assertions) + endif + return self.cache.get('user_assertions') +endfunction + +call s:add_methods('app', ['user_classes','user_assertions']) + +function! s:BufSyntax() + if (!exists("g:rails_syntax") || g:rails_syntax) + let buffer = rails#buffer() + let s:javascript_functions = "$ $$ $A $F $H $R $w jQuery" + let classes = s:gsub(join(rails#app().user_classes(),' '),'::',' ') + if &syntax == 'ruby' + if classes != '' + exe "syn keyword rubyRailsUserClass ".classes." containedin=rubyClassDeclaration,rubyModuleDeclaration,rubyClass,rubyModule" + endif + if buffer.type_name() == '' + syn keyword rubyRailsMethod params request response session headers cookies flash + endif + if buffer.type_name('api') + syn keyword rubyRailsAPIMethod api_method inflect_names + endif + if buffer.type_name() ==# 'model' || buffer.type_name('model-arb') + syn keyword rubyRailsARMethod default_scope named_scope scope serialize + syn keyword rubyRailsARAssociationMethod belongs_to has_one has_many has_and_belongs_to_many composed_of accepts_nested_attributes_for + syn keyword rubyRailsARCallbackMethod before_create before_destroy before_save before_update before_validation before_validation_on_create before_validation_on_update + syn keyword rubyRailsARCallbackMethod after_create after_destroy after_save after_update after_validation after_validation_on_create after_validation_on_update + syn keyword rubyRailsARCallbackMethod around_create around_destroy around_save around_update + syn keyword rubyRailsARCallbackMethod after_commit after_find after_initialize after_rollback after_touch + syn keyword rubyRailsARClassMethod attr_accessible attr_protected establish_connection set_inheritance_column set_locking_column set_primary_key set_sequence_name set_table_name + syn keyword rubyRailsARValidationMethod validate validates validate_on_create validate_on_update validates_acceptance_of validates_associated validates_confirmation_of validates_each validates_exclusion_of validates_format_of validates_inclusion_of validates_length_of validates_numericality_of validates_presence_of validates_size_of validates_uniqueness_of + syn keyword rubyRailsMethod logger + endif + if buffer.type_name('model-aro') + syn keyword rubyRailsARMethod observe + endif + if buffer.type_name('mailer') + syn keyword rubyRailsMethod logger url_for polymorphic_path polymorphic_url + syn keyword rubyRailsRenderMethod mail render + syn keyword rubyRailsControllerMethod attachments default helper helper_attr helper_method + endif + if buffer.type_name('controller','view','helper') + syn keyword rubyRailsMethod params request response session headers cookies flash + syn keyword rubyRailsRenderMethod render + syn keyword rubyRailsMethod logger polymorphic_path polymorphic_url + endif + if buffer.type_name('helper','view') + exe "syn keyword rubyRailsHelperMethod ".s:gsub(s:helpermethods(),'<%(content_for|select)\s+','') + syn match rubyRailsHelperMethod '\\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!' + syn match rubyRailsHelperMethod '\<\%(content_for?\=\|current_page?\)' + syn match rubyRailsViewMethod '\.\@' + if buffer.type_name('view-partial') + syn keyword rubyRailsMethod local_assigns + endif + elseif buffer.type_name('controller') + syn keyword rubyRailsControllerMethod helper helper_attr helper_method filter layout url_for serialize exempt_from_layout filter_parameter_logging hide_action cache_sweeper protect_from_forgery caches_page cache_page caches_action expire_page expire_action rescue_from + syn keyword rubyRailsRenderMethod head redirect_to render_to_string respond_with + syn match rubyRailsRenderMethod '\?\@!' + syn keyword rubyRailsFilterMethod before_filter append_before_filter prepend_before_filter after_filter append_after_filter prepend_after_filter around_filter append_around_filter prepend_around_filter skip_before_filter skip_after_filter + syn keyword rubyRailsFilterMethod verify + endif + if buffer.type_name('db-migration','db-schema') + syn keyword rubyRailsMigrationMethod create_table change_table drop_table rename_table add_column rename_column change_column change_column_default remove_column add_index remove_index + endif + if buffer.type_name('test') + if !empty(rails#app().user_assertions()) + exe "syn keyword rubyRailsUserMethod ".join(rails#app().user_assertions()) + endif + syn keyword rubyRailsTestMethod add_assertion assert assert_block assert_equal assert_in_delta assert_instance_of assert_kind_of assert_match assert_nil assert_no_match assert_not_equal assert_not_nil assert_not_same assert_nothing_raised assert_nothing_thrown assert_operator assert_raise assert_respond_to assert_same assert_send assert_throws assert_recognizes assert_generates assert_routing flunk fixtures fixture_path use_transactional_fixtures use_instantiated_fixtures assert_difference assert_no_difference assert_valid + syn keyword rubyRailsTestMethod test setup teardown + if !buffer.type_name('test-unit') + syn match rubyRailsTestControllerMethod '\.\@' + syn keyword rubyRailsTestControllerMethod get_via_redirect post_via_redirect put_via_redirect delete_via_redirect request_via_redirect + syn keyword rubyRailsTestControllerMethod assert_response assert_redirected_to assert_template assert_recognizes assert_generates assert_routing assert_dom_equal assert_dom_not_equal assert_select assert_select_rjs assert_select_encoded assert_select_email assert_tag assert_no_tag + endif + elseif buffer.type_name('spec') + syn keyword rubyRailsTestMethod describe context it its specify shared_examples_for it_should_behave_like before after subject fixtures controller_name helper_name + syn match rubyRailsTestMethod '\!\=' + syn keyword rubyRailsTestMethod violated pending expect double mock mock_model stub_model + syn match rubyRailsTestMethod '\.\@!\@!' + if !buffer.type_name('spec-model') + syn match rubyRailsTestControllerMethod '\.\@' + syn keyword rubyRailsTestControllerMethod integrate_views + syn keyword rubyRailsMethod params request response session flash + syn keyword rubyRailsMethod polymorphic_path polymorphic_url + endif + endif + if buffer.type_name('task') + syn match rubyRailsRakeMethod '^\s*\zs\%(task\|file\|namespace\|desc\|before\|after\|on\)\>\%(\s*=\)\@!' + endif + if buffer.type_name('model-awss') + syn keyword rubyRailsMethod member + endif + if buffer.type_name('config-routes') + syn match rubyRailsMethod '\.\zs\%(connect\|named_route\)\>' + syn keyword rubyRailsMethod match get put post delete redirect root resource resources collection member nested scope namespace controller constraints + endif + syn keyword rubyRailsMethod debugger + syn keyword rubyRailsMethod alias_attribute alias_method_chain attr_accessor_with_default attr_internal attr_internal_accessor attr_internal_reader attr_internal_writer delegate mattr_accessor mattr_reader mattr_writer superclass_delegating_accessor superclass_delegating_reader superclass_delegating_writer + syn keyword rubyRailsMethod cattr_accessor cattr_reader cattr_writer class_inheritable_accessor class_inheritable_array class_inheritable_array_writer class_inheritable_hash class_inheritable_hash_writer class_inheritable_option class_inheritable_reader class_inheritable_writer inheritable_attributes read_inheritable_attribute reset_inheritable_attributes write_inheritable_array write_inheritable_attribute write_inheritable_hash + syn keyword rubyRailsInclude require_dependency gem + + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<="+ skip=+\\\\\|\\"+ end=+"+ contains=@rubyStringSpecial,railsOrderSpecial + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<='+ skip=+\\\\\|\\'+ end=+'+ contains=@rubyStringSpecial,railsOrderSpecial + syn match railsOrderSpecial +\c\<\%(DE\|A\)SC\>+ contained + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:conditions\s*=>\s*\[\s*\)\@<="+ skip=+\\\\\|\\"+ end=+"+ contains=@rubyStringSpecial,railsConditionsSpecial + syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:conditions\s*=>\s*\[\s*\)\@<='+ skip=+\\\\\|\\'+ end=+'+ contains=@rubyStringSpecial,railsConditionsSpecial + syn match railsConditionsSpecial +?\|:\h\w*+ contained + syn cluster rubyNotTop add=railsOrderSpecial,railsConditionsSpecial + + " XHTML highlighting inside %Q<> + unlet! b:current_syntax + let removenorend = !exists("g:html_no_rendering") + let g:html_no_rendering = 1 + syn include @htmlTop syntax/xhtml.vim + if removenorend + unlet! g:html_no_rendering + endif + let b:current_syntax = "ruby" + " Restore syn sync, as best we can + if !exists("g:ruby_minlines") + let g:ruby_minlines = 50 + endif + syn sync fromstart + exe "syn sync minlines=" . g:ruby_minlines + syn case match + syn region rubyString matchgroup=rubyStringDelimiter start=+%Q\=<+ end=+>+ contains=@htmlTop,@rubyStringSpecial + syn cluster htmlArgCluster add=@rubyStringSpecial + syn cluster htmlPreProc add=@rubyStringSpecial + + elseif &syntax == 'eruby' || &syntax == 'haml' + syn case match + if classes != '' + exe 'syn keyword '.&syntax.'RailsUserClass '.classes.' contained containedin=@'.&syntax.'RailsRegions' + endif + if &syntax == 'haml' + exe 'syn cluster hamlRailsRegions contains=hamlRubyCodeIncluded,hamlRubyCode,hamlRubyHash,@hamlEmbeddedRuby,rubyInterpolation' + else + exe 'syn cluster erubyRailsRegions contains=erubyOneLiner,erubyBlock,erubyExpression,rubyInterpolation' + endif + exe 'syn keyword '.&syntax.'RailsHelperMethod '.s:gsub(s:helpermethods(),'<%(content_for|select)\s+','').' contained containedin=@'.&syntax.'RailsRegions' + exe 'syn match '.&syntax.'RailsHelperMethod "\\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!" contained containedin=@'.&syntax.'RailsRegions' + exe 'syn match '.&syntax.'RailsHelperMethod "\<\%(content_for?\=\|current_page?\)" contained containedin=@'.&syntax.'RailsRegions' + exe 'syn keyword '.&syntax.'RailsMethod debugger logger polymorphic_path polymorphic_url contained containedin=@'.&syntax.'RailsRegions' + exe 'syn keyword '.&syntax.'RailsMethod params request response session headers cookies flash contained containedin=@'.&syntax.'RailsRegions' + exe 'syn match '.&syntax.'RailsViewMethod "\.\@" contained containedin=@'.&syntax.'RailsRegions' + if buffer.type_name('view-partial') + exe 'syn keyword '.&syntax.'RailsMethod local_assigns contained containedin=@'.&syntax.'RailsRegions' + endif + exe 'syn keyword '.&syntax.'RailsRenderMethod render contained containedin=@'.&syntax.'RailsRegions' + exe 'syn case match' + set isk+=$ + exe 'syn keyword javascriptRailsFunction contained '.s:javascript_functions + exe 'syn cluster htmlJavaScript add=javascriptRailsFunction' + elseif &syntax == "yaml" + syn case match + " Modeled after syntax/eruby.vim + unlet! b:current_syntax + let g:main_syntax = 'eruby' + syn include @rubyTop syntax/ruby.vim + unlet g:main_syntax + syn cluster yamlRailsRegions contains=yamlRailsOneLiner,yamlRailsBlock,yamlRailsExpression + syn region yamlRailsOneLiner matchgroup=yamlRailsDelimiter start="^%%\@!" end="$" contains=@rubyRailsTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend oneline + syn region yamlRailsBlock matchgroup=yamlRailsDelimiter start="<%%\@!" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment + syn region yamlRailsExpression matchgroup=yamlRailsDelimiter start="<%=" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment + syn region yamlRailsComment matchgroup=yamlRailsDelimiter start="<%#" end="%>" contains=rubyTodo,@Spell containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend + syn match yamlRailsMethod '\.\@' contained containedin=@yamlRailsRegions + if classes != '' + exe "syn keyword yamlRailsUserClass ".classes." contained containedin=@yamlRailsRegions" + endif + let b:current_syntax = "yaml" + elseif &syntax == "html" + syn case match + set isk+=$ + exe "syn keyword javascriptRailsFunction contained ".s:javascript_functions + syn cluster htmlJavaScript add=javascriptRailsFunction + elseif &syntax == "javascript" || &syntax == "coffee" + " The syntax file included with Vim incorrectly sets syn case ignore. + syn case match + set isk+=$ + exe "syn keyword javascriptRailsFunction ".s:javascript_functions + + endif + endif + call s:HiDefaults() +endfunction + +function! s:HiDefaults() + hi def link rubyRailsAPIMethod rubyRailsMethod + hi def link rubyRailsARAssociationMethod rubyRailsARMethod + hi def link rubyRailsARCallbackMethod rubyRailsARMethod + hi def link rubyRailsARClassMethod rubyRailsARMethod + hi def link rubyRailsARValidationMethod rubyRailsARMethod + hi def link rubyRailsARMethod rubyRailsMethod + hi def link rubyRailsRenderMethod rubyRailsMethod + hi def link rubyRailsHelperMethod rubyRailsMethod + hi def link rubyRailsViewMethod rubyRailsMethod + hi def link rubyRailsMigrationMethod rubyRailsMethod + hi def link rubyRailsControllerMethod rubyRailsMethod + hi def link rubyRailsFilterMethod rubyRailsMethod + hi def link rubyRailsTestControllerMethod rubyRailsTestMethod + hi def link rubyRailsTestMethod rubyRailsMethod + hi def link rubyRailsRakeMethod rubyRailsMethod + hi def link rubyRailsMethod railsMethod + hi def link rubyRailsInclude rubyInclude + hi def link rubyRailsUserClass railsUserClass + hi def link rubyRailsUserMethod railsUserMethod + hi def link erubyRailsHelperMethod erubyRailsMethod + hi def link erubyRailsViewMethod erubyRailsMethod + hi def link erubyRailsRenderMethod erubyRailsMethod + hi def link erubyRailsMethod railsMethod + hi def link erubyRailsUserMethod railsUserMethod + hi def link erubyRailsUserClass railsUserClass + hi def link hamlRailsHelperMethod hamlRailsMethod + hi def link hamlRailsViewMethod hamlRailsMethod + hi def link hamlRailsRenderMethod hamlRailsMethod + hi def link hamlRailsMethod railsMethod + hi def link hamlRailsUserMethod railsUserMethod + hi def link hamlRailsUserClass railsUserClass + hi def link railsUserMethod railsMethod + hi def link yamlRailsDelimiter Delimiter + hi def link yamlRailsMethod railsMethod + hi def link yamlRailsComment Comment + hi def link yamlRailsUserClass railsUserClass + hi def link yamlRailsUserMethod railsUserMethod + hi def link javascriptRailsFunction railsMethod + hi def link railsUserClass railsClass + hi def link railsMethod Function + hi def link railsClass Type + hi def link railsOrderSpecial railsStringSpecial + hi def link railsConditionsSpecial railsStringSpecial + hi def link railsStringSpecial Identifier +endfunction + +function! rails#log_syntax() + if has('conceal') + syn match railslogEscape '\e\[[0-9;]*m' conceal + syn match railslogEscapeMN '\e\[[0-9;]*m' conceal nextgroup=railslogModelNum,railslogEscapeMN skipwhite contained + syn match railslogEscapeSQL '\e\[[0-9;]*m' conceal nextgroup=railslogSQL,railslogEscapeSQL skipwhite contained + else + syn match railslogEscape '\e\[[0-9;]*m' + syn match railslogEscapeMN '\e\[[0-9;]*m' nextgroup=railslogModelNum,railslogEscapeMN skipwhite contained + syn match railslogEscapeSQL '\e\[[0-9;]*m' nextgroup=railslogSQL,railslogEscapeSQL skipwhite contained + endif + syn match railslogRender '\%(^\s*\%(\e\[[0-9;]*m\)\=\)\@<=\%(Processing\|Rendering\|Rendered\|Redirected\|Completed\)\>' + syn match railslogComment '^\s*# .*' + syn match railslogModel '\%(^\s*\%(\e\[[0-9;]*m\)\=\)\@<=\u\%(\w\|:\)* \%(Load\%( Including Associations\| IDs For Limited Eager Loading\)\=\|Columns\|Count\|Create\|Update\|Destroy\|Delete all\)\>' skipwhite nextgroup=railslogModelNum,railslogEscapeMN + syn match railslogModel '\%(^\s*\%(\e\[[0-9;]*m\)\=\)\@<=SQL\>' skipwhite nextgroup=railslogModelNum,railslogEscapeMN + syn region railslogModelNum start='(' end=')' contains=railslogNumber contained skipwhite nextgroup=railslogSQL,railslogEscapeSQL + syn match railslogSQL '\u[^\e]*' contained + " Destroy generates multiline SQL, ugh + syn match railslogSQL '\%(^ \%(\e\[[0-9;]*m\)\=\)\@<=\%(FROM\|WHERE\|ON\|AND\|OR\|ORDER\) .*$' + syn match railslogNumber '\<\d\+\>%' + syn match railslogNumber '[ (]\@<=\<\d\+\.\d\+\>\.\@!' + syn region railslogString start='"' skip='\\"' end='"' oneline contained + syn region railslogHash start='{' end='}' oneline contains=railslogHash,railslogString + syn match railslogIP '\<\d\{1,3\}\%(\.\d\{1,3}\)\{3\}\>' + syn match railslogTimestamp '\<\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\>' + syn match railslogSessionID '\<\x\{32\}\>' + syn match railslogIdentifier '^\s*\%(Session ID\|Parameters\)\ze:' + syn match railslogSuccess '\<2\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogRedirect '\<3\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogError '\<[45]\d\d \u[A-Za-z0-9 ]*\>' + syn match railslogError '^DEPRECATION WARNING\>' + syn keyword railslogHTTP OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT + syn region railslogStackTrace start=":\d\+:in `\w\+'$" end="^\s*$" keepend fold + hi def link railslogEscapeMN railslogEscape + hi def link railslogEscapeSQL railslogEscape + hi def link railslogEscape Ignore + hi def link railslogComment Comment + hi def link railslogRender Keyword + hi def link railslogModel Type + hi def link railslogSQL PreProc + hi def link railslogNumber Number + hi def link railslogString String + hi def link railslogSessionID Constant + hi def link railslogIdentifier Identifier + hi def link railslogRedirect railslogSuccess + hi def link railslogSuccess Special + hi def link railslogError Error + hi def link railslogHTTP Special +endfunction + +" }}}1 +" Statusline {{{1 + +function! s:addtostatus(letter,status) + let status = a:status + if status !~ 'rails' && g:rails_statusline + let status=substitute(status,'\C%'.tolower(a:letter),'%'.tolower(a:letter).'%{rails#statusline()}','') + if status !~ 'rails' + let status=substitute(status,'\C%'.toupper(a:letter),'%'.toupper(a:letter).'%{rails#STATUSLINE()}','') + endif + endif + return status +endfunction + +function! s:BufInitStatusline() + if g:rails_statusline + if &l:statusline == '' + let &l:statusline = &g:statusline + endif + if &l:statusline == '' + let &l:statusline='%<%f %h%m%r%=' + if &ruler + let &l:statusline .= '%-14.(%l,%c%V%) %P' + endif + endif + let &l:statusline = s:InjectIntoStatusline(&l:statusline) + endif +endfunction + +function! s:InitStatusline() + if g:rails_statusline + if &g:statusline == '' + let &g:statusline='%<%f %h%m%r%=' + if &ruler + let &g:statusline .= '%-16( %l,%c-%v %)%P' + endif + endif + let &g:statusline = s:InjectIntoStatusline(&g:statusline) + endif +endfunction + +function! s:InjectIntoStatusline(status) + let status = a:status + if status !~ 'rails' + let status = s:addtostatus('y',status) + let status = s:addtostatus('r',status) + let status = s:addtostatus('m',status) + let status = s:addtostatus('w',status) + let status = s:addtostatus('h',status) + if status !~ 'rails' + let status=substitute(status,'%=','%{rails#statusline()}%=','') + endif + if status !~ 'rails' && status != '' + let status .= '%{rails#statusline()}' + endif + endif + return status +endfunction + +function! rails#statusline(...) + if exists("b:rails_root") + let t = rails#buffer().type_name() + if t != "" && a:0 && a:1 + return "[Rails-".t."]" + else + return "[Rails]" + endif + else + return "" + endif +endfunction + +function! rails#STATUSLINE(...) + if exists("b:rails_root") + let t = rails#buffer().type_name() + if t != "" && a:0 && a:1 + return ",RAILS-".toupper(t) + else + return ",RAILS" + endif + else + return "" + endif +endfunction + +" }}}1 +" Mappings {{{1 + +function! s:BufMappings() + nnoremap RailsAlternate :A + nnoremap RailsRelated :R + nnoremap RailsFind :REfind + nnoremap RailsSplitFind :RSfind + nnoremap RailsVSplitFind :RVfind + nnoremap RailsTabFind :RTfind + if g:rails_mappings + if !hasmapto("RailsFind") + nmap gf RailsFind + endif + if !hasmapto("RailsSplitFind") + nmap f RailsSplitFind + endif + if !hasmapto("RailsTabFind") + nmap gf RailsTabFind + endif + if !hasmapto("RailsAlternate") + nmap [f RailsAlternate + endif + if !hasmapto("RailsRelated") + nmap ]f RailsRelated + endif + if exists("$CREAM") + imap RailsFind + imap RailsAlternate + imap RailsRelated + endif + endif + " SelectBuf you're a dirty hack + let v:errmsg = "" +endfunction + +" }}}1 +" Project {{{ + +function! s:Project(bang,arg) + let rr = rails#app().path() + exe "Project ".a:arg + let line = search('^[^ =]*="'.s:gsub(rr,'[\/]','[\\/]').'"') + let projname = s:gsub(fnamemodify(rr,':t'),'\=','-') " .'_on_rails' + if line && a:bang + let projname = matchstr(getline('.'),'^[^=]*') + " Most of this would be unnecessary if the project.vim author had just put + " the newlines AFTER each project rather than before. Ugh. + norm zR0"_d% + if line('.') > 2 + delete _ + endif + if line('.') != line('$') + .-2 + endif + let line = 0 + elseif !line + $ + endif + if !line + if line('.') > 1 + append + +. + endif + let line = line('.')+1 + call s:NewProject(projname,rr) + endif + normal! zMzo + if search("^ app=app {","W",line+10) + normal! zo + exe line + endif + normal! 0zt +endfunction + +function! s:NewProject(proj,rr) + let line = line('.')+1 + let template = s:NewProjectTemplate(a:proj,a:rr) + silent put =template + exe line + " Ugh. how else can I force detecting folds? + setlocal foldmethod=manual + norm! $% + silent exe "doautocmd User ".s:escarg(a:rr)."/Rproject" + let newline = line('.') + exe line + norm! $% + if line('.') != newline + call s:warn("Warning: Rproject autocommand failed to leave cursor at end of project") + endif + exe line + setlocal foldmethod=marker + setlocal nomodified + " FIXME: make undo stop here + if !exists("g:maplocalleader") + silent! normal \R + else " Needs to be tested + exe 'silent! normal '.g:maplocalleader.'R' + endif +endfunction + +function! s:NewProjectTemplate(proj,rr) + let str = a:proj.'="'.a:rr."\" CD=. filter=\"*\" {\n" + let str .= " app=app {\n" + for dir in ['apis','controllers','helpers','models','views'] + let str .= s:addprojectdir(a:rr,'app',dir) + endfor + let str .= " }\n" + let str .= " config=config {\n environments=environments {\n }\n }\n" + let str .= " db=db {\n" + let str .= s:addprojectdir(a:rr,'db','migrate') + let str .= " }\n" + let str .= " lib=lib filter=\"* */**/*.rb \" {\n tasks=tasks filter=\"**/*.rake\" {\n }\n }\n" + let str .= " public=public {\n images=images {\n }\n javascripts=javascripts {\n }\n stylesheets=stylesheets {\n }\n }\n" + if isdirectory(a:rr.'/spec') + let str .= " spec=spec {\n" + for dir in ['controllers','fixtures','helpers','models','views'] + let str .= s:addprojectdir(a:rr,'spec',dir) + endfor + let str .= " }\n" + endif + if isdirectory(a:rr.'/test') + let str .= " test=test {\n" + for dir in ['fixtures','functional','integration','mocks','unit'] + let str .= s:addprojectdir(a:rr,'test',dir) + endfor + let str .= " }\n" + end + let str .= "}\n" + return str +endfunction + +function! s:addprojectdir(rr,parentdir,dir) + if isdirectory(a:rr.'/'.a:parentdir.'/'.a:dir) + return ' '.a:dir.'='.a:dir." filter=\"**\" {\n }\n" + else + return '' + endif +endfunction + +" }}}1 +" Database {{{1 + +function! s:extractdbvar(str,arg) + return matchstr("\n".a:str."\n",'\n'.a:arg.'=\zs.\{-\}\ze\n') +endfunction + +function! s:app_dbext_settings(environment) dict + if self.cache.needs('dbext_settings') + call self.cache.set('dbext_settings',{}) + endif + let cache = self.cache.get('dbext_settings') + if !has_key(cache,a:environment) + let dict = {} + if self.has_file("config/database.yml") + let cmdb = 'require %{yaml}; File.open(%q{'.self.path().'/config/database.yml}) {|f| y = YAML::load(f); e = y[%{' + let cmde = '}]; i=0; e=y[e] while e.respond_to?(:to_str) && (i+=1)<16; e.each{|k,v|puts k.to_s+%{=}+v.to_s}}' + let out = self.lightweight_ruby_eval(cmdb.a:environment.cmde) + let adapter = s:extractdbvar(out,'adapter') + let adapter = get({'mysql2': 'mysql', 'postgresql': 'pgsql', 'sqlite3': 'sqlite', 'sqlserver': 'sqlsrv', 'sybase': 'asa', 'oci': 'ora'},adapter,adapter) + let dict['type'] = toupper(adapter) + let dict['user'] = s:extractdbvar(out,'username') + let dict['passwd'] = s:extractdbvar(out,'password') + if dict['passwd'] == '' && adapter == 'mysql' + " Hack to override password from .my.cnf + let dict['extra'] = ' --password=' + else + let dict['extra'] = '' + endif + let dict['dbname'] = s:extractdbvar(out,'database') + if dict['dbname'] == '' + let dict['dbname'] = s:extractdbvar(out,'dbfile') + endif + if dict['dbname'] != '' && dict['dbname'] !~ '^:' && adapter =~? '^sqlite' + let dict['dbname'] = self.path(dict['dbname']) + endif + let dict['profile'] = '' + let dict['srvname'] = s:extractdbvar(out,'host') + let dict['host'] = s:extractdbvar(out,'host') + let dict['port'] = s:extractdbvar(out,'port') + let dict['dsnname'] = s:extractdbvar(out,'dsn') + if dict['host'] =~? '^\cDBI:' + if dict['host'] =~? '\c\' + let dict['integratedlogin'] = 1 + endif + let dict['host'] = matchstr(dict['host'],'\c\<\%(Server\|Data Source\)\s*=\s*\zs[^;]*') + endif + call filter(dict,'v:val != ""') + endif + let cache[a:environment] = dict + endif + return cache[a:environment] +endfunction + +function! s:BufDatabase(...) + if exists("s:lock_database") || !exists('g:loaded_dbext') || !exists('b:rails_root') + return + endif + let self = rails#app() + let s:lock_database = 1 + if (a:0 && a:1 > 1) + call self.cache.clear('dbext_settings') + endif + if (a:0 > 1 && a:2 != '') + let env = a:2 + else + let env = s:environment() + endif + if (!self.cache.has('dbext_settings') || !has_key(self.cache.get('dbext_settings'),env)) && (a:0 ? a:1 : 0) <= 0 + unlet! s:lock_database + return + endif + let dict = self.dbext_settings(env) + for key in ['type', 'profile', 'bin', 'user', 'passwd', 'dbname', 'srvname', 'host', 'port', 'dsnname', 'extra', 'integratedlogin'] + let b:dbext_{key} = get(dict,key,'') + endfor + if b:dbext_type == 'PGSQL' + let $PGPASSWORD = b:dbext_passwd + elseif exists('$PGPASSWORD') + let $PGPASSWORD = '' + endif + unlet! s:lock_database +endfunction + +call s:add_methods('app', ['dbext_settings']) + +" }}}1 +" Abbreviations {{{1 + +function! s:selectiveexpand(pat,good,default,...) + if a:0 > 0 + let nd = a:1 + else + let nd = "" + endif + let c = nr2char(getchar(0)) + let good = a:good + if c == "" " ^] + return s:sub(good.(a:0 ? " ".a:1 : ''),'\s+$','') + elseif c == "\t" + return good.(a:0 ? " ".a:1 : '') + elseif c =~ a:pat + return good.c.(a:0 ? a:1 : '') + else + return a:default.c + endif +endfunction + +function! s:TheCWord() + let l = s:linepeak() + if l =~ '\<\%(find\|first\|last\|all\|paginate\)\>' + return s:selectiveexpand('..',':conditions => ',':c') + elseif l =~ '\\s*' + return s:selectiveexpand('..',':collection => ',':c') + elseif l =~ '\<\%(url_for\|link_to\|form_tag\)\>' || l =~ ':url\s*=>\s*{\s*' + return s:selectiveexpand('..',':controller => ',':c') + else + return s:selectiveexpand('..',':conditions => ',':c') + endif +endfunction + +function! s:AddSelectiveExpand(abbr,pat,expn,...) + let expn = s:gsub(s:gsub(a:expn ,'[\"|]','\\&'),'\<','\\') + let expn2 = s:gsub(s:gsub(a:0 ? a:1 : '','[\"|]','\\&'),'\<','\\') + if a:0 + exe "inoreabbrev ".a:abbr." =selectiveexpand(".string(a:pat).",\"".expn."\",".string(a:abbr).",\"".expn2."\")" + else + exe "inoreabbrev ".a:abbr." =selectiveexpand(".string(a:pat).",\"".expn."\",".string(a:abbr).")" + endif +endfunction + +function! s:AddTabExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'..',a:expn) +endfunction + +function! s:AddBracketExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'[[.]',a:expn) +endfunction + +function! s:AddColonExpand(abbr,expn) + call s:AddSelectiveExpand(a:abbr,'[:.]',a:expn) +endfunction + +function! s:AddParenExpand(abbr,expn,...) + if a:0 + call s:AddSelectiveExpand(a:abbr,'(',a:expn,a:1) + else + call s:AddSelectiveExpand(a:abbr,'(',a:expn,'') + endif +endfunction + +function! s:BufAbbreviations() + command! -buffer -bar -nargs=* -bang Rabbrev :call s:Abbrev(0,) + " Some of these were cherry picked from the TextMate snippets + if g:rails_abbreviations + let buffer = rails#buffer() + " Limit to the right filetypes. But error on the liberal side + if buffer.type_name('controller','view','helper','test-functional','test-integration') + Rabbrev pa[ params + Rabbrev rq[ request + Rabbrev rs[ response + Rabbrev se[ session + Rabbrev hd[ headers + Rabbrev coo[ cookies + Rabbrev fl[ flash + Rabbrev rr( render + Rabbrev ra( render :action\ =>\ + Rabbrev rc( render :controller\ =>\ + Rabbrev rf( render :file\ =>\ + Rabbrev ri( render :inline\ =>\ + Rabbrev rj( render :json\ =>\ + Rabbrev rl( render :layout\ =>\ + Rabbrev rp( render :partial\ =>\ + Rabbrev rt( render :text\ =>\ + Rabbrev rx( render :xml\ =>\ + endif + if buffer.type_name('view','helper') + Rabbrev dotiw distance_of_time_in_words + Rabbrev taiw time_ago_in_words + endif + if buffer.type_name('controller') + Rabbrev re( redirect_to + Rabbrev rea( redirect_to :action\ =>\ + Rabbrev rec( redirect_to :controller\ =>\ + Rabbrev rst( respond_to + endif + if buffer.type_name() ==# 'model' || buffer.type_name('model-arb') + Rabbrev bt( belongs_to + Rabbrev ho( has_one + Rabbrev hm( has_many + Rabbrev habtm( has_and_belongs_to_many + Rabbrev co( composed_of + Rabbrev va( validates_associated + Rabbrev vb( validates_acceptance_of + Rabbrev vc( validates_confirmation_of + Rabbrev ve( validates_exclusion_of + Rabbrev vf( validates_format_of + Rabbrev vi( validates_inclusion_of + Rabbrev vl( validates_length_of + Rabbrev vn( validates_numericality_of + Rabbrev vp( validates_presence_of + Rabbrev vu( validates_uniqueness_of + endif + if buffer.type_name('db-migration','db-schema') + Rabbrev mac( add_column + Rabbrev mrnc( rename_column + Rabbrev mrc( remove_column + Rabbrev mct( create_table + Rabbrev mcht( change_table + Rabbrev mrnt( rename_table + Rabbrev mdt( drop_table + Rabbrev mcc( t.column + endif + if buffer.type_name('test') + Rabbrev ase( assert_equal + Rabbrev asko( assert_kind_of + Rabbrev asnn( assert_not_nil + Rabbrev asr( assert_raise + Rabbrev asre( assert_response + Rabbrev art( assert_redirected_to + endif + Rabbrev :a :action\ =>\ + " hax + Rabbrev :c :co________\ =>\ + inoreabbrev :c =TheCWord() + Rabbrev :i :id\ =>\ + Rabbrev :o :object\ =>\ + Rabbrev :p :partial\ =>\ + Rabbrev logd( logger.debug + Rabbrev logi( logger.info + Rabbrev logw( logger.warn + Rabbrev loge( logger.error + Rabbrev logf( logger.fatal + Rabbrev fi( find + Rabbrev AR:: ActiveRecord + Rabbrev AV:: ActionView + Rabbrev AC:: ActionController + Rabbrev AD:: ActionDispatch + Rabbrev AS:: ActiveSupport + Rabbrev AM:: ActionMailer + Rabbrev AO:: ActiveModel + Rabbrev AE:: ActiveResource + Rabbrev AWS:: ActionWebService + endif +endfunction + +function! s:Abbrev(bang,...) abort + if !exists("b:rails_abbreviations") + let b:rails_abbreviations = {} + endif + if a:0 > 3 || (a:bang && (a:0 != 1)) + return s:error("Rabbrev: invalid arguments") + endif + if a:0 == 0 + for key in sort(keys(b:rails_abbreviations)) + echo key . join(b:rails_abbreviations[key],"\t") + endfor + return + endif + let lhs = a:1 + let root = s:sub(lhs,'%(::|\(|\[)$','') + if a:bang + if has_key(b:rails_abbreviations,root) + call remove(b:rails_abbreviations,root) + endif + exe "iunabbrev ".root + return + endif + if a:0 > 3 || a:0 < 2 + return s:error("Rabbrev: invalid arguments") + endif + let rhs = a:2 + if has_key(b:rails_abbreviations,root) + call remove(b:rails_abbreviations,root) + endif + if lhs =~ '($' + let b:rails_abbreviations[root] = ["(", rhs . (a:0 > 2 ? "\t".a:3 : "")] + if a:0 > 2 + call s:AddParenExpand(root,rhs,a:3) + else + call s:AddParenExpand(root,rhs) + endif + return + endif + if a:0 > 2 + return s:error("Rabbrev: invalid arguments") + endif + if lhs =~ ':$' + call s:AddColonExpand(root,rhs) + elseif lhs =~ '\[$' + call s:AddBracketExpand(root,rhs) + elseif lhs =~ '\w$' + call s:AddTabExpand(lhs,rhs) + else + return s:error("Rabbrev: unimplemented") + endif + let b:rails_abbreviations[root] = [matchstr(lhs,'\W*$'),rhs] +endfunction + +" }}}1 +" Settings {{{1 + +function! s:Set(bang,...) + let c = 1 + let defscope = '' + for arg in a:000 + if arg =~? '^<[abgl]\=>$' + let defscope = (matchstr(arg,'<\zs.*\ze>')) + elseif arg !~ '=' + if defscope != '' && arg !~ '^\w:' + let arg = defscope.':'.opt + endif + let val = s:getopt(arg) + if val == '' && !has_key(s:opts(),arg) + call s:error("No such rails.vim option: ".arg) + else + echo arg."=".val + endif + else + let opt = matchstr(arg,'[^=]*') + let val = s:sub(arg,'^[^=]*\=','') + if defscope != '' && opt !~ '^\w:' + let opt = defscope.':'.opt + endif + call s:setopt(opt,val) + endif + endfor +endfunction + +function! s:getopt(opt,...) + let app = rails#app() + let opt = a:opt + if a:0 + let scope = a:1 + elseif opt =~ '^[abgl]:' + let scope = tolower(matchstr(opt,'^\w')) + let opt = s:sub(opt,'^\w:','') + else + let scope = 'abgl' + endif + let lnum = a:0 > 1 ? a:2 : line('.') + if scope =~ 'l' && &filetype != 'ruby' + let scope = s:sub(scope,'l','b') + endif + if scope =~ 'l' + call s:LocalModelines(lnum) + endif + let var = s:sname().'_'.opt + let lastmethod = s:lastmethod(lnum) + if lastmethod == '' | let lastmethod = ' ' | endif + " Get buffer option + if scope =~ 'l' && exists('b:_'.var) && has_key(b:_{var},lastmethod) + return b:_{var}[lastmethod] + elseif exists('b:'.var) && (scope =~ 'b' || (scope =~ 'l' && lastmethod == ' ')) + return b:{var} + elseif scope =~ 'a' && has_key(app,'options') && has_key(app.options,opt) + return app.options[opt] + elseif scope =~ 'g' && exists("g:".s:sname()."_".opt) + return g:{var} + else + return "" + endif +endfunction + +function! s:setopt(opt,val) + let app = rails#app() + if a:opt =~? '[abgl]:' + let scope = matchstr(a:opt,'^\w') + let opt = s:sub(a:opt,'^\w:','') + else + let scope = '' + let opt = a:opt + endif + let defscope = get(s:opts(),opt,'a') + if scope == '' + let scope = defscope + endif + if &filetype != 'ruby' && (scope ==# 'B' || scope ==# 'l') + let scope = 'b' + endif + let var = s:sname().'_'.opt + if opt =~ '\W' + return s:error("Invalid option ".a:opt) + elseif scope ==# 'B' && defscope == 'l' + if !exists('b:_'.var) | let b:_{var} = {} | endif + let b:_{var}[' '] = a:val + elseif scope =~? 'b' + let b:{var} = a:val + elseif scope =~? 'a' + if !has_key(app,'options') | let app.options = {} | endif + let app.options[opt] = a:val + elseif scope =~? 'g' + let g:{var} = a:val + elseif scope =~? 'l' + if !exists('b:_'.var) | let b:_{var} = {} | endif + let lastmethod = s:lastmethod(lnum) + let b:_{var}[lastmethod == '' ? ' ' : lastmethod] = a:val + else + return s:error("Invalid scope for ".a:opt) + endif +endfunction + +function! s:opts() + return {'alternate': 'b', 'controller': 'b', 'gnu_screen': 'a', 'model': 'b', 'preview': 'l', 'task': 'b', 'related': 'l', 'root_url': 'a'} +endfunction + +function! s:Complete_set(A,L,P) + if a:A =~ '=' + let opt = matchstr(a:A,'[^=]*') + return [opt."=".s:getopt(opt)] + else + let extra = matchstr(a:A,'^[abgl]:') + return filter(sort(map(keys(s:opts()),'extra.v:val')),'s:startswith(v:val,a:A)') + endif + return [] +endfunction + +function! s:BufModelines() + if !g:rails_modelines + return + endif + let lines = getline("$")."\n".getline(line("$")-1)."\n".getline(1)."\n".getline(2)."\n".getline(3)."\n" + let pat = '\s\+\zs.\{-\}\ze\%(\n\|\s\s\|#{\@!\|%>\|-->\|$\)' + let cnt = 1 + let mat = matchstr(lines,'\C\ ".mat + endif + let mat = matchstr(lines,'\C\ ".mat + endif + let mat = matchstr(lines,'\C\ 0 + if !exists("g:RAILS_HISTORY") + let g:RAILS_HISTORY = "" + endif + let path = a:path + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,path) + if has("win32") + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,s:gsub(path,'\\','/')) + endif + let path = fnamemodify(path,':p:~:h') + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,path) + if has("win32") + let g:RAILS_HISTORY = s:scrub(g:RAILS_HISTORY,s:gsub(path,'\\','/')) + endif + let g:RAILS_HISTORY = path."\n".g:RAILS_HISTORY + let g:RAILS_HISTORY = s:sub(g:RAILS_HISTORY,'%(.{-}\n){,'.g:rails_history_size.'}\zs.*','') + endif + call app.source_callback("config/syntax.vim") + if &ft == "mason" + setlocal filetype=eruby + elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:e") =~ '^\%(rjs\|rxml\|builder\|rake\|mab\)$' + setlocal filetype=ruby + elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:t") =~ '^\%(\%(Rake\|Gem\|Cap\)file\|Isolate\)$' + setlocal filetype=ruby + elseif &ft =~ '^\%(liquid\)\=$' && expand("%:e") == "liquid" + setlocal filetype=liquid + elseif &ft =~ '^\%(haml\|x\=html\)\=$' && expand("%:e") == "haml" + setlocal filetype=haml + elseif &ft =~ '^\%(sass\|conf\)\=$' && expand("%:e") == "sass" + setlocal filetype=sass + elseif &ft =~ '^\%(scss\|conf\)\=$' && expand("%:e") == "scss" + setlocal filetype=scss + elseif &ft =~ '^\%(lesscss\|conf\)\=$' && expand("%:e") == "less" + setlocal filetype=lesscss + elseif &ft =~ '^\%(dryml\)\=$' && expand("%:e") == "dryml" + setlocal filetype=dryml + elseif (&ft == "" || v:version < 701) && expand("%:e") =~ '^\%(rhtml\|erb\)$' + setlocal filetype=eruby + elseif (&ft == "" || v:version < 700) && expand("%:e") == 'yml' + setlocal filetype=yaml + elseif &ft =~ '^\%(conf\|yaml\)\=$' && expand("%:t") =~ '\.yml\.example$' + setlocal filetype=yaml + elseif firsttime + " Activate custom syntax + let &syntax = &syntax + endif + if firsttime + call s:BufInitStatusline() + endif + if expand('%:e') == 'log' + nnoremap R :checktime + nnoremap G :checktime$ + nnoremap q :bwipe + setlocal modifiable filetype=railslog noswapfile autoread foldmethod=syntax + if exists('+concealcursor') + setlocal concealcursor=nc conceallevel=2 + else + silent %s/\%(\e\[[0-9;]*m\|\r$\)//ge + endif + setlocal readonly nomodifiable + $ + endif + call s:BufSettings() + call s:BufCommands() + call s:BufAbbreviations() + " snippetsEmu.vim + if exists('g:loaded_snippet') + silent! runtime! ftplugin/rails_snippets.vim + " filetype snippets need to come last for higher priority + exe "silent! runtime! ftplugin/".&filetype."_snippets.vim" + endif + let t = rails#buffer().type_name() + let t = "-".t + let f = '/'.RailsFilePath() + if f =~ '[ !#$%\,]' + let f = '' + endif + runtime! macros/rails.vim + silent doautocmd User Rails + if t != '-' + exe "silent doautocmd User Rails".s:gsub(t,'-','.') + endif + if f != '' + exe "silent doautocmd User Rails".f + endif + call app.source_callback("config/rails.vim") + call s:BufModelines() + call s:BufMappings() + return b:rails_root +endfunction + +function! s:SetBasePath() + let self = rails#buffer() + if self.app().path() =~ '://' + return + endif + let transformed_path = s:pathsplit(s:pathjoin([self.app().path()]))[0] + let add_dot = self.getvar('&path') =~# '^\.\%(,\|$\)' + let old_path = s:pathsplit(s:sub(self.getvar('&path'),'^\.%(,|$)','')) + call filter(old_path,'!s:startswith(v:val,transformed_path)') + + let path = ['app', 'app/models', 'app/controllers', 'app/helpers', 'config', 'lib', 'app/views'] + if self.controller_name() != '' + let path += ['app/views/'.self.controller_name(), 'public'] + endif + if self.app().has('test') + let path += ['test', 'test/unit', 'test/functional', 'test/integration'] + endif + if self.app().has('spec') + let path += ['spec', 'spec/models', 'spec/controllers', 'spec/helpers', 'spec/views', 'spec/lib', 'spec/requests', 'spec/integration'] + endif + let path += ['app/*', 'vendor', 'vendor/plugins/*/lib', 'vendor/plugins/*/test', 'vendor/rails/*/lib', 'vendor/rails/*/test'] + call map(path,'self.app().path(v:val)') + call self.setvar('&path',(add_dot ? '.,' : '').s:pathjoin([self.app().path()],path,old_path)) +endfunction + +function! s:BufSettings() + if !exists('b:rails_root') + return '' + endif + let self = rails#buffer() + call s:SetBasePath() + let rp = s:gsub(self.app().path(),'[ ,]','\\&') + if stridx(&tags,rp.'/tmp/tags') == -1 + let &l:tags = rp . '/tmp/tags,' . &tags . ',' . rp . '/tags' + endif + if has("gui_win32") || has("gui_running") + let code = '*.rb;*.rake;Rakefile' + let templates = '*.'.s:gsub(s:view_types,',',';*.') + let fixtures = '*.yml;*.csv' + let statics = '*.html;*.css;*.js;*.xml;*.xsd;*.sql;.htaccess;README;README_FOR_APP' + let b:browsefilter = "" + \."All Rails Files\t".code.';'.templates.';'.fixtures.';'.statics."\n" + \."Source Code (*.rb, *.rake)\t".code."\n" + \."Templates (*.rhtml, *.rxml, *.rjs)\t".templates."\n" + \."Fixtures (*.yml, *.csv)\t".fixtures."\n" + \."Static Files (*.html, *.css, *.js)\t".statics."\n" + \."All Files (*.*)\t*.*\n" + endif + call self.setvar('&includeexpr','RailsIncludeexpr()') + call self.setvar('&suffixesadd', ".rb,.".s:gsub(s:view_types,',',',.').",.css,.js,.yml,.csv,.rake,.sql,.html,.xml") + let ft = self.getvar('&filetype') + if ft =~ '^\%(e\=ruby\|[yh]aml\|javascript\|css\|s[ac]ss\|lesscss\)$' + call self.setvar('&shiftwidth',2) + call self.setvar('&softtabstop',2) + call self.setvar('&expandtab',1) + if exists('+completefunc') && self.getvar('&completefunc') == '' + call self.setvar('&completefunc','syntaxcomplete#Complete') + endif + endif + if ft == 'ruby' + call self.setvar('&suffixesadd',".rb,.".s:gsub(s:view_types,',',',.').",.yml,.csv,.rake,s.rb") + call self.setvar('&define',self.define_pattern()) + " This really belongs in after/ftplugin/ruby.vim but we'll be nice + if exists('g:loaded_surround') && self.getvar('surround_101') == '' + call self.setvar('surround_5', "\r\nend") + call self.setvar('surround_69', "\1expr: \1\rend") + call self.setvar('surround_101', "\r\nend") + endif + elseif ft == 'yaml' || fnamemodify(self.name(),':e') == 'yml' + call self.setvar('&define',self.define_pattern()) + call self.setvar('&suffixesadd',".yml,.csv,.rb,.".s:gsub(s:view_types,',',',.').",.rake,s.rb") + elseif ft == 'eruby' + call self.setvar('&suffixesadd',".".s:gsub(s:view_types,',',',.').",.rb,.css,.js,.html,.yml,.csv") + if exists("g:loaded_allml") + call self.setvar('allml_stylesheet_link_tag', "<%= stylesheet_link_tag '\r' %>") + call self.setvar('allml_javascript_include_tag', "<%= javascript_include_tag '\r' %>") + call self.setvar('allml_doctype_index', 10) + endif + if exists("g:loaded_ragtag") + call self.setvar('ragtag_stylesheet_link_tag', "<%= stylesheet_link_tag '\r' %>") + call self.setvar('ragtag_javascript_include_tag', "<%= javascript_include_tag '\r' %>") + call self.setvar('ragtag_doctype_index', 10) + endif + elseif ft == 'haml' + if exists("g:loaded_allml") + call self.setvar('allml_stylesheet_link_tag', "= stylesheet_link_tag '\r'") + call self.setvar('allml_javascript_include_tag', "= javascript_include_tag '\r'") + call self.setvar('allml_doctype_index', 10) + endif + if exists("g:loaded_ragtag") + call self.setvar('ragtag_stylesheet_link_tag', "= stylesheet_link_tag '\r'") + call self.setvar('ragtag_javascript_include_tag', "= javascript_include_tag '\r'") + call self.setvar('ragtag_doctype_index', 10) + endif + endif + if ft == 'eruby' || ft == 'yaml' + " surround.vim + if exists("g:loaded_surround") + " The idea behind the || part here is that one can normally define the + " surrounding to omit the hyphen (since standard ERuby does not use it) + " but have it added in Rails ERuby files. Unfortunately, this makes it + " difficult if you really don't want a hyphen in Rails ERuby files. If + " this is your desire, you will need to accomplish it via a rails.vim + " autocommand. + if self.getvar('surround_45') == '' || self.getvar('surround_45') == "<% \r %>" " - + call self.setvar('surround_45', "<% \r -%>") + endif + if self.getvar('surround_61') == '' " = + call self.setvar('surround_61', "<%= \r %>") + endif + if self.getvar("surround_35") == '' " # + call self.setvar('surround_35', "<%# \r %>") + endif + if self.getvar('surround_101') == '' || self.getvar('surround_101')== "<% \r %>\n<% end %>" "e + call self.setvar('surround_5', "<% \r -%>\n<% end -%>") + call self.setvar('surround_69', "<% \1expr: \1 -%>\r<% end -%>") + call self.setvar('surround_101', "<% \r -%>\n<% end -%>") + endif + endif + endif +endfunction + +" }}}1 +" Autocommands {{{1 + +augroup railsPluginAuto + autocmd! + autocmd User BufEnterRails call s:RefreshBuffer() + autocmd User BufEnterRails call s:resetomnicomplete() + autocmd User BufEnterRails call s:BufDatabase(-1) + autocmd User dbextPreConnection call s:BufDatabase(1) + autocmd BufWritePost */config/database.yml call rails#cache_clear("dbext_settings") + autocmd BufWritePost */test/test_helper.rb call rails#cache_clear("user_assertions") + autocmd BufWritePost */config/routes.rb call rails#cache_clear("named_routes") + autocmd BufWritePost */config/environment.rb call rails#cache_clear("default_locale") + autocmd BufWritePost */config/environments/*.rb call rails#cache_clear("environments") + autocmd BufWritePost */tasks/**.rake call rails#cache_clear("rake_tasks") + autocmd BufWritePost */generators/** call rails#cache_clear("generators") + autocmd FileType * if exists("b:rails_root") | call s:BufSettings() | endif + autocmd Syntax ruby,eruby,yaml,haml,javascript,coffee,railslog if exists("b:rails_root") | call s:BufSyntax() | endif + autocmd QuickFixCmdPre make* call s:push_chdir() + autocmd QuickFixCmdPost make* call s:pop_command() +augroup END + +" }}}1 +" Initialization {{{1 + +map xx xx +let s:sid = s:sub(maparg("xx"),'xx$','') +unmap xx +let s:file = expand(':p') + +if !exists('s:apps') + let s:apps = {} +endif + +" }}}1 + +let &cpo = s:cpo_save + +" vim:set sw=2 sts=2: diff --git a/.vim/autoload/rubycomplete.vim b/.vim/autoload/rubycomplete.vim new file mode 100644 index 0000000..574161b --- /dev/null +++ b/.vim/autoload/rubycomplete.vim @@ -0,0 +1,655 @@ +" Vim completion script +" Language: Ruby +" Maintainer: Mark Guzman +" Info: $Id: rubycomplete.vim,v 1.37 2006/09/19 04:10:32 segy Exp $ +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns +" Maintainer Version: 0.7 +" ---------------------------------------------------------------------------- +" +" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) +" ---------------------------------------------------------------------------- + +" {{{ requirement checks +if !has('ruby') + s:ErrMsg( "Error: Required vim compiled with +ruby" ) + finish +endif + +if version < 700 + s:ErrMsg( "Error: Required vim >= 7.0" ) + finish +endif +" }}} requirement checks + +if !exists("g:rubycomplete_rails") + let g:rubycomplete_rails = 0 +endif + +if !exists("g:rubycomplete_classes_in_global") + let g:rubycomplete_classes_in_global = 0 +endif + +if !exists("g:rubycomplete_buffer_loading") + let g:rubycomplete_classes_in_global = 0 +endif + +if !exists("g:rubycomplete_rails_proactive") + let g:rubycomplete_rails_proactive = 0 +endif + +" {{{ vim-side support functions +function! s:ErrMsg(msg) + echohl ErrorMsg + echo a:msg + echohl None +endfunction + +function! s:GetBufferRubyModule(name) + let [snum,enum] = s:GetBufferRubyEntity(a:name, "module") + return snum . '..' . enum +endfunction + +function! s:GetBufferRubyClass(name) + let [snum,enum] = s:GetBufferRubyEntity(a:name, "class") + return snum . '..' . enum +endfunction + +function! s:GetBufferRubySingletonMethods(name) +endfunction + +function! s:GetBufferRubyEntity( name, type ) + let stopline = 1 + let crex = '^\s*' . a:type . '\s*' . a:name . '\s*\(<\s*.*\s*\)\?\n*\(\(\s\|#\).*\n*\)*\n*\s*end$' + let [lnum,lcol] = searchpos( crex, 'nbw') + if lnum == 0 && lcol == 0 + return [0,0] + endif + + let [enum,ecol] = searchpos( crex, 'nebw') + if lnum > enum + let realdef = getline( lnum ) + let crexb = '^' . realdef . '\n*\(\(\s\|#\).*\n*\)*\n*\s*end$' + let [enum,ecol] = searchpos( crexb, 'necw' ) + endif + " we found a the class def + return [lnum,enum] +endfunction + +function! s:IsInClassDef() + return s:IsPosInClassDef( line('.') ) +endfunction + +function! s:IsPosInClassDef(pos) + let [snum,enum] = s:GetBufferRubyEntity( '.*', "class" ) + let ret = 'nil' + + if snum < a:pos && a:pos < enum + let ret = snum . '..' . enum + endif + + return ret +endfunction + +function! s:GetRubyVarType(v) + let stopline = 1 + let vtp = '' + let pos = getpos('.') + let sstr = '^\s*#\s*@var\s*'.a:v.'\>\s\+[^ \t]\+\s*$' + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + call setpos('.',pos) + let str = getline(lnum) + let vtp = substitute(str,sstr,'\1','') + return vtp + endif + call setpos('.',pos) + let ctors = '\(now\|new\|open\|get_instance' + if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1 + let ctors = ctors.'\|find\|create' + else + endif + let ctors = ctors.'\)' + + let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%r{\|[A-Za-z0-9@:\-()\.]\+...\?\)' + let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + let str = matchstr(getline(lnum),fstr,lcol) + let str = substitute(str,'^=\s*','','') + call setpos('.',pos) + if str == '"' || str == '''' + return 'String' + elseif str == '[' + return 'Array' + elseif str == '{' + return 'Hash' + elseif str == '/' || str == '%r{' + return 'Regexp' + elseif strlen(str) >= 4 && stridx(str,'..') != -1 + return 'Range' + elseif strlen(str) > 4 + let l = stridx(str,'.') + return str[0:l-1] + end + return '' + endif + call setpos('.',pos) + return '' +endfunction + +"}}} vim-side support functions + +function! rubycomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart + let line = getline('.') + let idx = col('.') + while idx > 0 + let idx -= 1 + let c = line[idx-1] + if c =~ '\w' + continue + elseif ! c =~ '\.' + idx = -1 + break + else + break + endif + endwhile + + return idx + "findstart = 0 when we need to return the list of completions + else + let g:rubycomplete_completions = [] + execute "ruby VimRubyCompletion.get_completions('" . a:base . "')" + return g:rubycomplete_completions + endif +endfunction + + +function! s:DefRuby() +ruby << RUBYEOF +# {{{ ruby completion + +begin + require 'rubygems' +rescue Exception + #ignore? +end +class VimRubyCompletion + # {{{ constants + @@debug = false + @@ReservedWords = [ + "BEGIN", "END", + "alias", "and", + "begin", "break", + "case", "class", + "def", "defined", "do", + "else", "elsif", "end", "ensure", + "false", "for", + "if", "in", + "module", + "next", "nil", "not", + "or", + "redo", "rescue", "retry", "return", + "self", "super", + "then", "true", + "undef", "unless", "until", + "when", "while", + "yield", + ] + + @@Operators = [ "%", "&", "*", "**", "+", "-", "/", + "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>", + "[]", "[]=", "^", ] + #}}} constants + + + def load_requires + buf = VIM::Buffer.current + enum = buf.line_number + nums = Range.new( 1, enum ) + nums.each do |x| + ln = buf[x] + begin + eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln ) + rescue Exception + #ignore? + end + end + end + + def load_buffer_class(name) + classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")') + return if classdef == nil + + pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef ) + load_buffer_class( $2 ) if pare != nil + + mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef ) + load_buffer_module( $2 ) if mixre != nil + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading class \"%s\", was it already completed?' )" % name ) + end + end + + def load_buffer_module(name) + classdef = get_buffer_entity(name, 's:GetBufferRubyModule("%s")') + return if classdef == nil + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading module \"%s\", was it already completed?' )" % name ) + end + end + + def get_buffer_entity(name, vimfun) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + return nil if loading_allowed != '1' + return nil if /(\"|\')+/.match( name ) + buf = VIM::Buffer.current + nums = eval( VIM::evaluate( vimfun % name ) ) + return nil if nums == nil + return nil if nums.min == nums.max && nums.min == 0 + + cur_line = VIM::Buffer.current.line_number + classdef = "" + nums.each do |x| + if x != cur_line + ln = buf[x] + if /^\s*(module|class|def|include)\s+/.match(ln) + classdef += "%s\n" % ln + classdef += "end\n" if /def\s+/.match(ln) + dprint ln + end + end + end + classdef += "end\n" if classdef.length > 1 + + return classdef + end + + def get_var_type( receiver ) + if /(\"|\')+/.match( receiver ) + "String" + else + VIM::evaluate("s:GetRubyVarType('%s')" % receiver) + end + end + + def dprint( txt ) + print txt if @@debug + end + + def get_buffer_entity_list( type ) + # this will be a little expensive. + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + allow_aggressive_load = VIM::evaluate("exists('g:rubycomplete_classes_in_global') && g:rubycomplete_classes_in_global") + return [] if allow_aggressive_load != '1' || loading_allowed != '1' + + buf = VIM::Buffer.current + eob = buf.length + ret = [] + rg = 1..eob + re = eval( "/^\s*%s\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*/" % type ) + + rg.each do |x| + if re.match( buf[x] ) + next if type == "def" && eval( VIM::evaluate("s:IsPosInClassDef(%s)" % x) ) != nil + ret.push $1 + end + end + + return ret + end + + def get_buffer_modules + return get_buffer_entity_list( "modules" ) + end + + def get_buffer_methods + return get_buffer_entity_list( "def" ) + end + + def get_buffer_classes + return get_buffer_entity_list( "class" ) + end + + + def load_rails + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + return if allow_rails != '1' + + buf_path = VIM::evaluate('expand("%:p")') + file_name = VIM::evaluate('expand("%:t")') + vim_dir = VIM::evaluate('getcwd()') + file_dir = buf_path.gsub( file_name, '' ) + file_dir.gsub!( /\\/, "/" ) + vim_dir.gsub!( /\\/, "/" ) + vim_dir << "/" + dirs = [ vim_dir, file_dir ] + sdirs = [ "", "./", "../", "../../", "../../../", "../../../../" ] + rails_base = nil + + dirs.each do |dir| + sdirs.each do |sub| + trail = "%s%s" % [ dir, sub ] + tcfg = "%sconfig" % trail + + if File.exists?( tcfg ) + rails_base = trail + break + end + end + break if rails_base + end + + return if rails_base == nil + $:.push rails_base unless $:.index( rails_base ) + + rails_config = rails_base + "config/" + rails_lib = rails_base + "lib/" + $:.push rails_config unless $:.index( rails_config ) + $:.push rails_lib unless $:.index( rails_lib ) + + bootfile = rails_config + "boot.rb" + envfile = rails_config + "environment.rb" + if File.exists?( bootfile ) && File.exists?( envfile ) + begin + require bootfile + require envfile + begin + require 'console_app' + require 'console_with_helpers' + rescue Exception + dprint "Rails 1.1+ Error %s" % $! + # assume 1.0 + end + eval( "Rails::Initializer.run" ) + VIM::command('let s:rubycomplete_rails_loaded = 1') + rescue Exception + dprint "Rails Error %s" % $! + VIM::evaluate( "s:ErrMsg('Error loading rails environment')" ) + end + end + end + + def get_rails_helpers + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + path_elm = buf_path.split( "/" ) + i = path_elm.index( "app" ) + + return [] unless i + i += 1 + type = path_elm[i] + type.downcase! + + ret = [] + case type + when "views" + ret += ActionView::Base.instance_methods + ret += ActionView::Base.methods + when "controllers" + ret += ActionController::Base.instance_methods + ret += ActionController::Base.methods + when "models" + ret += ActiveRecord::Base.instance_methods + ret += ActiveRecord::Base.methods + end + + return ret + end + + def add_rails_columns( cls ) + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + begin + eval( "#{cls}.establish_connection" ) + return [] unless eval( "#{cls}.ancestors.include?(ActiveRecord::Base).to_s" ) + col = eval( "#{cls}.column_names" ) + return col if col + rescue + return [] + end + return [] + end + + def clean_sel(sel, msg) + sel.delete_if { |x| x == nil } + sel.uniq! + sel.grep(/^#{Regexp.quote(msg)}/) if msg != nil + end + + def get_rails_view_methods + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + pelm = buf_path.split( "/" ) + idx = pelm.index( "views" ) + + return [] unless idx + idx += 1 + + clspl = pelm[idx].camelize.pluralize + cls = clspl.singularize + + ret = [] + ret += eval( "#{cls}.instance_methods" ) + ret += eval( "#{clspl}Helper.instance_methods" ) + return ret + end + + def self.get_completions(base) + b = VimRubyCompletion.new + b.get_completions base + end + + def get_completions(base) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + if loading_allowed == '1' + load_requires + load_rails + end + + input = VIM::Buffer.current.line + cpos = VIM::Window.current.cursor[1] - 1 + input = input[0..cpos] + input += base + input.sub!(/.*[ \t\n\"\\'`><=;|&{(]/, '') # Readline.basic_word_break_characters + input.sub!(/self\./, '') + + message = nil + receiver = nil + methods = [] + variables = [] + classes = [] + + case input + when /^(\/[^\/]*\/)\.([^.]*)$/ # Regexp + receiver = $1 + message = Regexp.quote($2) + methods = Regexp.instance_methods(true) + + when /^([^\]]*\])\.([^.]*)$/ # Array + receiver = $1 + message = Regexp.quote($2) + methods = Array.instance_methods(true) + + when /^([^\}]*\})\.([^.]*)$/ # Proc or Hash + receiver = $1 + message = Regexp.quote($2) + methods = Proc.instance_methods(true) | Hash.instance_methods(true) + + when /^(:[^:.]*)$/ # Symbol + dprint "symbol" + if Symbol.respond_to?(:all_symbols) + receiver = $1 + message = $1.sub( /:/, '' ) + methods = Symbol.all_symbols.collect{|s| s.id2name} + methods.delete_if { |c| c.match( /'/ ) } + end + + when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods + dprint "const or cls" + receiver = $1 + methods = Object.constants + methods.grep(/^#{receiver}/).collect{|e| "::" + e} + + when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ # Constant or class methods + dprint "const or cls 2" + receiver = $1 + message = Regexp.quote($4) + begin + methods = eval("#{receiver}.constants | #{receiver}.methods") + rescue Exception + methods = [] + end + methods.grep(/^#{message}/).collect{|e| receiver + "::" + e} + + when /^(:[^:.]+)\.([^.]*)$/ # Symbol + receiver = $1 + message = Regexp.quote($2) + methods = Symbol.instance_methods(true) + + when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/ # Numeric + receiver = $1 + message = Regexp.quote($4) + begin + methods = eval(receiver).methods + rescue Exception + methods = [] + end + + when /^(\$[^.]*)$/ #global + methods = global_variables.grep(Regexp.new(Regexp.quote($1))) + + when /^((\.?[^.]+)+)\.([^.]*)$/ # variable + receiver = $1 + message = Regexp.quote($3) + load_buffer_class( receiver ) + + cv = eval("self.class.constants") + vartype = get_var_type( receiver ) + dprint "vartype: %s" % vartype + if vartype != '' + load_buffer_class( vartype ) + + begin + methods = eval("#{vartype}.instance_methods") + variables = eval("#{vartype}.instance_variables") + rescue Exception + dprint "load_buffer_class err: %s" % $! + end + elsif (cv).include?(receiver) + # foo.func and foo is local var. + methods = eval("#{receiver}.methods") + vartype = receiver + elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver + vartype = receiver + # Foo::Bar.func + begin + methods = eval("#{receiver}.methods") + rescue Exception + end + else + # func1.func2 + ObjectSpace.each_object(Module){|m| + next if m.name != "IRB::Context" and + /^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name + methods.concat m.instance_methods(false) + } + end + variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0 + + when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/ + message = $1 + methods = Range.instance_methods(true) + + when /^\.([^.]*)$/ # unknown(maybe String) + message = Regexp.quote($1) + methods = String.instance_methods(true) + + else + inclass = eval( VIM::evaluate("s:IsInClassDef()") ) + + if inclass != nil + classdef = "%s\n" % VIM::Buffer.current[ inclass.min ] + found = /^\s*class\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*\n$/.match( classdef ) + + if found != nil + receiver = $1 + message = input + load_buffer_class( receiver ) + begin + methods = eval( "#{receiver}.instance_methods" ) + methods += get_rails_helpers + variables += add_rails_columns( "#{receiver}" ) + rescue Exception + found = nil + end + end + end + + if inclass == nil || found == nil + methods = get_buffer_methods + methods += get_rails_helpers + methods += get_rails_view_methods + classes = eval("self.class.constants") + classes += get_buffer_classes + classes += get_buffer_modules + message = receiver = input + end + + methods += Kernel.public_methods + end + + methods = clean_sel( methods, message ) + methods = (methods-Object.instance_methods) + variables = clean_sel( variables, message ) + classes = clean_sel( classes, message ) + valid = [] + valid += methods.collect { |m| { :name => m, :type => 'f' } } + valid += variables.collect { |v| { :name => v, :type => 'v' } } + valid += classes.collect { |c| { :name => c, :type => 't' } } + valid.sort! { |x,y| x[:name] <=> y[:name] } + + outp = "" + + rg = 0..valid.length + rg.step(150) do |x| + stpos = 0+x + enpos = 150+x + valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ] } + outp.sub!(/,$/, '') + + VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp) + outp = "" + end + end + +end # VimRubyCompletion +# }}} ruby completion +RUBYEOF +endfunction + +let s:rubycomplete_rails_loaded = 0 + +call s:DefRuby() + + +" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl: diff --git a/.vim/autoload/zencoding.vim b/.vim/autoload/zencoding.vim new file mode 100644 index 0000000..d0f3d4b --- /dev/null +++ b/.vim/autoload/zencoding.vim @@ -0,0 +1,2066 @@ +"============================================================================= +" zencoding.vim +" Author: Yasuhiro Matsumoto +" Last Change: 24-Feb-2011. + +let s:save_cpo = &cpo +set cpo&vim + +function! s:zen_getExpandos(type, key) + let expandos = s:zen_getResource(a:type, 'expandos', {}) + if has_key(expandos, a:key) + return expandos[a:key] + endif + return a:key +endfunction + +function! s:zen_useFilter(filters, filter) + for f in a:filters + if f == a:filter + return 1 + endif + endfor + return 0 +endfunction + +function! s:zen_isExtends(type, extend) + if a:type == a:extend + return 1 + endif + if !has_key(s:zen_settings, a:type) + return 0 + endif + if !has_key(s:zen_settings[a:type], 'extends') + return 0 + endif + let extends = s:zen_settings[a:type].extends + if type(extends) == 1 + let tmp = split(extends, '\s*,\s*') + unlet! extends + let extends = tmp + endif + for ext in extends + if a:extend == ext + return 1 + endif + endfor + return 0 +endfunction + +function! s:zen_parseIntoTree(abbr, type) + let abbr = a:abbr + let type = a:type + if !has_key(s:zen_settings, type) + let type = 'html' + endif + if len(type) == 0 | let type = 'html' | endif + + if has_key(s:zen_settings[type], 'indentation') + let indent = s:zen_settings[type].indentation + else + let indent = s:zen_settings.indentation + endif + + if s:zen_isExtends(type, "html") + let abbr = substitute(abbr, '\([a-zA-Z][a-zA-Z0-9]*\)+\([()]\|$\)', '\="(".s:zen_getExpandos(type, submatch(1)).")".submatch(2)', 'i') + let mx = '\([+>]\|<\+\)\{-}\s*\((*\)\{-}\s*\([@#.]\{-}[a-zA-Z\!][a-zA-Z0-9:\!\-]*\|{[^}]\+}\)\(\%(\%(#{[{}a-zA-Z0-9_\-\$]\+\|#[a-zA-Z0-9_\-\$]\+\)\|\%(\[[^\]]\+\]\)\|\%(\.{[{}a-zA-Z0-9_\-\$]\+\|\.[a-zA-Z0-9_\-\$]\+\)\)*\)\%(\({[^}]\+}\)\)\{0,1}\%(\s*\*\s*\([0-9]\+\)\s*\)\{0,1}\(\%(\s*)\%(\s*\*\s*[0-9]\+\s*\)\{0,1}\)*\)' + else + let mx = '\([+>]\|<\+\)\{-}\s*\((*\)\{-}\s*\([@#.]\{-}[a-zA-Z\!][a-zA-Z0-9:\!\+\-]*\|{[^}]\+}\)\(\%(\%(#{[{}a-zA-Z0-9_\-\$]\+\|#[a-zA-Z0-9_\-\$]\+\)\|\%(\[[^\]]\+\]\)\|\%(\.{[{}a-zA-Z0-9_\-\$]\+\|\.[a-zA-Z0-9_\-\$]\+\)\)*\)\%(\({[^}]\+}\)\)\{0,1}\%(\s*\*\s*\([0-9]\+\)\s*\)\{0,1}\(\%(\s*)\%(\s*\*\s*[0-9]\+\s*\)\{0,1}\)*\)' + endif + let root = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0 } + let parent = root + let last = root + let pos = [] + while len(abbr) + " parse line + let match = matchstr(abbr, mx) + let str = substitute(match, mx, '\0', 'ig') + let operator = substitute(match, mx, '\1', 'ig') + let block_start = substitute(match, mx, '\2', 'ig') + let tag_name = substitute(match, mx, '\3', 'ig') + let attributes = substitute(match, mx, '\4', 'ig') + let value = substitute(match, mx, '\5', 'ig') + let multiplier = 0 + substitute(match, mx, '\6', 'ig') + let block_end = substitute(match, mx, '\7', 'ig') + if len(str) == 0 + break + endif + if tag_name =~ '^#' + let attributes = tag_name . attributes + let tag_name = 'div' + endif + if tag_name =~ '^\.' + let attributes = tag_name . attributes + let tag_name = 'div' + endif + if multiplier <= 0 | let multiplier = 1 | endif + + " make default node + let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0 } + let current.name = tag_name + + " aliases + let aliases = s:zen_getResource(type, 'aliases', {}) + if has_key(aliases, tag_name) + let current.name = aliases[tag_name] + endif + + " snippets + let snippets = s:zen_getResource(type, 'snippets', {}) + if !empty(snippets) && has_key(snippets, tag_name) + let snippet = snippets[tag_name] + let snippet = substitute(snippet, '|', '${cursor}', 'g') + let lines = split(snippet, "\n") + call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", indent, "g")') + let current.snippet = join(lines, "\n") + let current.name = '' + endif + + " default_attributes + let default_attributes = s:zen_getResource(type, 'default_attributes', {}) + if !empty(default_attributes) + for pat in [current.name, tag_name] + if has_key(default_attributes, pat) + if type(default_attributes[pat]) == 4 + let a = default_attributes[pat] + for k in keys(a) + let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' + endfor + else + for a in default_attributes[pat] + for k in keys(a) + let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' + endfor + endfor + endif + if has_key(s:zen_settings.html.default_attributes, current.name) + let current.name = substitute(current.name, ':.*$', '', '') + endif + break + endif + endfor + endif + + " parse attributes + if len(attributes) + let attr = attributes + while len(attr) + let item = matchstr(attr, '\(\%(\%(#[{}a-zA-Z0-9_\-\$]\+\)\|\%(\[[^\]]\+\]\)\|\%(\.[{}a-zA-Z0-9_\-\$]\+\)*\)\)') + if len(item) == 0 + break + endif + if item[0] == '#' + let current.attr.id = item[1:] + endif + if item[0] == '.' + let current.attr.class = substitute(item[1:], '\.', ' ', 'g') + endif + if item[0] == '[' + let atts = item[1:-2] + while len(atts) + let amat = matchstr(atts, '\(\w\+\%(="[^"]*"\|=''[^'']*''\|[^ ''"\]]*\)\{0,1}\)') + if len(amat) == 0 + break + endif + let key = split(amat, '=')[0] + let val = amat[len(key)+1:] + if val =~ '^["'']' + let val = val[1:-2] + endif + let current.attr[key] = val + let atts = atts[stridx(atts, amat) + len(amat):] + endwhile + endif + let attr = substitute(strpart(attr, len(item)), '^\s*', '', '') + endwhile + endif + + " parse text + if tag_name =~ '^{.*}$' + let current.name = '' + let current.value = tag_name + else + let current.value = value + endif + let current.multiplier = multiplier + + " parse step inside/outside + if !empty(last) + if operator =~ '>' + unlet! parent + let parent = last + let current.parent = last + let current.pos = last.pos + 1 + else + let current.parent = parent + let current.pos = last.pos + endif + else + let current.parent = parent + let current.pos = 1 + endif + if operator =~ '<' + for c in range(len(operator)) + let tmp = parent.parent + if empty(tmp) + break + endif + let parent = tmp + endfor + endif + + call add(parent.child, current) + let last = current + + " parse block + if block_start =~ '(' + if operator =~ '>' + let last.pos += 1 + endif + for n in range(len(block_start)) + let pos += [last.pos] + endfor + endif + if block_end =~ ')' + for n in split(substitute(substitute(block_end, ' ', '', 'g'), ')', ',),', 'g'), ',') + if n == ')' + if len(pos) > 0 && last.pos >= pos[-1] + for c in range(last.pos - pos[-1]) + let tmp = parent.parent + if !has_key(tmp, 'parent') + break + endif + let parent = tmp + endfor + if operator =~ '>' + call remove(pos, -1) + endif + let last = parent + let last.pos += 1 + endif + elseif len(n) + let cl = last.child + let cls = [] + for c in range(n[1:]) + let cls += cl + endfor + let last.child = cls + endif + endfor + endif + let abbr = abbr[stridx(abbr, match) + len(match):] + + if g:zencoding_debug > 1 + echo "str=".str + echo "block_start=".block_start + echo "tag_name=".tag_name + echo "operator=".operator + echo "attributes=".attributes + echo "value=".value + echo "multiplier=".multiplier + echo "block_end=".block_end + echo "abbr=".abbr + echo "pos=".string(pos) + echo "\n" + endif + endwhile + return root +endfunction + +function! s:zen_parseTag(tag) + let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0 } + let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\%([^"'' \t]\+\|["''][^"'']*["'']\)\s*\)*\)\(/\{0,1}\)>' + let match = matchstr(a:tag, mx) + let current.name = substitute(match, mx, '\1', 'i') + let attrs = substitute(match, mx, '\2', 'i') + let mx = '\([a-zA-Z0-9]\+\)=["'']\{0,1}\([^"'' \t]*\|[^"'']\+\)["'']\{0,1}' + while len(attrs) > 0 + let match = matchstr(attrs, mx) + if len(match) == 0 + break + endif + let name = substitute(match, mx, '\1', 'i') + let value = substitute(match, mx, '\2', 'i') + let current.attr[name] = value + let attrs = attrs[stridx(attrs, match) + len(match):] + endwhile + return current +endfunction + +function! s:zen_mergeConfig(lhs, rhs) + if type(a:lhs) == 3 && type(a:rhs) == 3 + let a:lhs += a:rhs + if len(a:lhs) + call remove(a:lhs, 0, len(a:lhs)-1) + endif + for rhi in a:rhs + call add(a:lhs, a:rhs[rhi]) + endfor + elseif type(a:lhs) == 4 && type(a:rhs) == 4 + for key in keys(a:rhs) + if type(a:rhs[key]) == 3 + if !has_key(a:lhs, key) + let a:lhs[key] = [] + endif + let a:lhs[key] += a:rhs[key] + elseif type(a:rhs[key]) == 4 + if has_key(a:lhs, key) + call s:zen_mergeConfig(a:lhs[key], a:rhs[key]) + else + let a:lhs[key] = a:rhs[key] + endif + else + let a:lhs[key] = a:rhs[key] + endif + endfor + endif +endfunction + + +function! s:zen_toString_haml(settings, current, type, inline, filters, itemno, indent) + let settings = a:settings + let current = a:current + let type = a:type + let inline = a:inline + let filters = a:filters + let itemno = a:itemno + let indent = a:indent + let str = "" + + let comment_indent = '' + let comment = '' + if len(current.name) > 0 + let str .= '%' . current.name + let tmp = '' + for attr in keys(current.attr) + let val = current.attr[attr] + if current.multiplier > 1 + while val =~ '\$\([^{]\|$\)' + let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') + endwhile + endif + if attr == 'id' + let str .= '#' . val + elseif attr == 'class' + let str .= '.' . substitute(val, ' ', '.', 'g') + else + if len(tmp) > 0 | let tmp .= ',' | endif + let tmp .= ' :' . attr . ' => "' . val . '"' + endif + endfor + if len(tmp) + let str .= '{' . tmp . ' }' + endif + if stridx(','.settings.html.empty_elements.',', ','.current.name.',') != -1 && len(current.value) == 0 + let str .= "/" + endif + + let inner = '' + if len(current.value) > 0 + let lines = split(current.value[1:-2], "\n") + let str .= " " . lines[0] + for line in lines[1:] + let str .= " |\n" . line + endfor + endif + if len(current.child) == 1 && len(current.child[0].name) == 0 + let lines = split(current.child[0].value[1:-2], "\n") + let str .= " " . lines[0] + for line in lines[1:] + let str .= " |\n" . line + endfor + elseif len(current.child) > 0 + for child in current.child + let inner .= s:zen_toString(child, type, inline, filters) + endfor + let inner = substitute(inner, "\n", "\n ", 'g') + let inner = substitute(inner, "\n $", "", 'g') + let str .= "\n " . inner + endif + endif + let str .= "\n" + return str +endfunction + +function! s:zen_toString_html(settings, current, type, inline, filters, itemno, indent) + let settings = a:settings + let current = a:current + let type = a:type + let inline = a:inline + let filters = a:filters + let itemno = a:itemno + let indent = a:indent + let str = "" + + let comment_indent = '' + let comment = '' + if s:zen_useFilter(filters, 'c') + let comment_indent = substitute(str, '^.*\(\s*\)$', '\1', '') + endif + let tmp = '<' . current.name + for attr in keys(current.attr) + if current.name =~ '^\(xsl:with-param\|xsl:variable\)$' && s:zen_useFilter(filters, 'xsl') && len(current.child) && attr == 'select' + continue + endif + let val = current.attr[attr] + if current.multiplier > 1 + while val =~ '\$\([^{]\|$\)' + let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') + endwhile + endif + let tmp .= ' ' . attr . '="' . val . '"' + if s:zen_useFilter(filters, 'c') + if attr == 'id' | let comment .= '#' . val | endif + if attr == 'class' | let comment .= '.' . val | endif + endif + endfor + if len(comment) > 0 + let tmp = "" . (inline ? "" : "\n") . comment_indent . tmp + endif + let str .= tmp + let inner = current.value[1:-2] + if stridx(','.settings.html.inline_elements.',', ','.current.name.',') != -1 + let child_inline = 1 + else + let child_inline = 0 + endif + for child in current.child + let html = s:zen_toString(child, type, child_inline, filters) + if child.name == 'br' + let inner = substitute(inner, '\n\s*$', '', '') + endif + let inner .= html + endfor + if len(current.child) == 1 && current.child[0].name == '' + if stridx(','.settings.html.inline_elements.',', ','.current.name.',') == -1 + let str .= ">" . inner . "\n" + else + let str .= ">" . inner . "" + endif + elseif len(current.child) + if inline == 0 + if stridx(','.settings.html.inline_elements.',', ','.current.name.',') == -1 + if inner =~ "\n$" + let inner = substitute(inner, "\n", "\n" . indent, 'g') + let inner = substitute(inner, indent . "$", "", 'g') + let str .= ">\n" . indent . inner . "\n" + else + let str .= ">\n" . indent . inner . indent . "\n\n" + endif + else + let str .= ">" . inner . "\n" + endif + else + let str .= ">" . inner . "" + endif + else + if inline == 0 + if stridx(','.settings.html.empty_elements.',', ','.current.name.',') != -1 + let str .= " />\n" + else + if stridx(','.settings.html.inline_elements.',', ','.current.name.',') == -1 && len(current.child) + let str .= ">\n" . inner . '${cursor}\n" + else + let str .= ">" . inner . '${cursor}\n" + endif + endif + else + if stridx(','.settings.html.empty_elements.',', ','.current.name.',') != -1 + let str .= " />" + else + let str .= ">" . inner . '${cursor}" + endif + endif + endif + if len(comment) > 0 + let str .= "" . (inline ? "" : "\n") . comment_indent + endif + return str +endfunction + +function! s:zen_toString(...) + let current = a:1 + if a:0 > 1 + let type = a:2 + else + let type = &ft + endif +" if !has_key(s:zen_settings, type) +" let type = 'html' +" endif + if len(type) == 0 | let type = 'html' | endif + if a:0 > 2 + let inline = a:3 + else + let inline = 0 + endif + if a:0 > 3 + if type(a:4) == 1 + let filters = split(a:4, '\s*,\s*') + else + let filters = a:4 + endif + else + let filters = ['html'] + endif + + if has_key(s:zen_settings, type) && has_key(s:zen_settings[type], 'indentation') + let indent = s:zen_settings[type].indentation + else + let indent = s:zen_settings.indentation + endif + let itemno = 0 + let str = '' + while itemno < current.multiplier + if len(current.name) + if exists('*g:zen_toString_'.type) + let str .= function('g:zen_toString_'.type)(s:zen_settings, current, type, inline, filters, itemno, indent) + elseif s:zen_useFilter(filters, 'haml') + let str .= s:zen_toString_haml(s:zen_settings, current, type, inline, filters, itemno, indent) + else + let str .= s:zen_toString_html(s:zen_settings, current, type, inline, filters, itemno, indent) + endif + else + let snippet = current.snippet + if len(current.snippet) == 0 + let snippets = s:zen_getResource(type, 'snippets', {}) + if !empty(snippets) && has_key(snippets, 'zensnippet') + let snippet = snippets['zensnippet'] + endif + endif + if len(snippet) > 0 + let tmp = substitute(snippet, '|', '${cursor}', 'g') + let tmp = substitute(tmp, '\${zenname}', current.name, 'g') + if type == 'css' && s:zen_useFilter(filters, 'fc') + let tmp = substitute(tmp, '^\([^:]\+\):\(.*\)$', '\1: \2', '') + endif + for attr in keys(current.attr) + let val = current.attr[attr] + let tmp = substitute(tmp, '\${' . attr . '}', val, 'g') + endfor + let str .= tmp + else + if len(current.name) + let str .= current.name + endif + if len(current.value) + let str .= current.value[1:-2] + endif + endif + let inner = '' + if len(current.child) + for n in current.child + let inner .= s:zen_toString(n, type, inline, filters) + endfor + let inner = substitute(inner, "\n", "\n" . indent, 'g') + endif + let str = substitute(str, '\${child}', inner, '') + endif + let itemno = itemno + 1 + endwhile + if s:zen_useFilter(filters, 'e') + let str = substitute(str, '&', '\&', 'g') + let str = substitute(str, '<', '\<', 'g') + let str = substitute(str, '>', '\>', 'g') + endif + return str +endfunction + +function! s:zen_getResource(type, name, default) + if !has_key(s:zen_settings, a:type) + return a:default + endif + let ret = a:default + + if has_key(s:zen_settings[a:type], a:name) + call s:zen_mergeConfig(ret, s:zen_settings[a:type][a:name]) + endif + + if has_key(s:zen_settings[a:type], 'extends') + let extends = s:zen_settings[a:type].extends + if type(extends) == 1 + let tmp = split(extends, '\s*,\s*') + unlet! extends + let extends = tmp + endif + for ext in extends + if has_key(s:zen_settings, ext) && has_key(s:zen_settings[ext], a:name) + call s:zen_mergeConfig(ret, s:zen_settings[ext][a:name]) + endif + endfor + endif + return ret +endfunction + +function! s:zen_getFileType() + let type = &ft + if type == 'xslt' | let type = 'xsl' | endif + if type == 'htmldjango' | let type = 'html' | endif + if type == 'html.django_template' | let type = 'html' | endif + if synIDattr(synID(line("."), col("."), 1), "name") =~ '^css' + let type = 'css' + endif + if synIDattr(synID(line("."), col("."), 1), "name") =~ '^html' + let type = 'html' + endif + if synIDattr(synID(line("."), col("."), 1), "name") =~ '^xml' + let type = 'xml' + endif + if synIDattr(synID(line("."), col("."), 1), "name") =~ '^javaScript' + let type = 'javascript' + endif + if len(type) == 0 | let type = 'html' | endif + return type +endfunction + +function! zencoding#expandAbbr(mode) range + let type = s:zen_getFileType() + let expand = '' + let filters = ['html'] + let line = '' + let part = '' + let rest = '' + + if has_key(s:zen_settings, type) && has_key(s:zen_settings[type], 'filters') + let filters = split(s:zen_settings[type].filters, '\s*,\s*') + endif + + if a:mode == 2 + let leader = substitute(input('Tag: ', ''), '^\s*\(.*\)\s*$', '\1', 'g') + if len(leader) == 0 + return + endif + let mx = '|\(\%(html\|haml\|e\|c\|fc\|xsl\)\s*,\{0,1}\s*\)*$' + if leader =~ mx + let filters = split(matchstr(leader, mx)[1:], '\s*,\s*') + let leader = substitute(leader, mx, '', '') + endif + if leader =~ '\*' + let query = substitute(leader, '*', '*' . (a:lastline - a:firstline + 1), '') . '>{$line$}' + let items = s:zen_parseIntoTree(query, type).child + for item in items + let expand .= s:zen_toString(item, type, 0, filters) + endfor + let line = getline(a:firstline) + let part = substitute(line, '^\s*', '', '') + for n in range(a:firstline, a:lastline) + let lline = getline(n) + let lpart = substitute(lline, '^\s*', '', '') + let pos = stridx(expand, "$line$") + if pos != -1 + let expand = expand[:pos-1] . lpart . expand[pos+6:] + endif + endfor + let expand = substitute(expand, '\$line\$', '', 'g') + else + let str = '' + if a:firstline != a:lastline + let line = getline(a:firstline) + let part = substitute(line, '^\s*', '', '') + for n in range(a:firstline, a:lastline) + if len(leader) > 0 + let str .= getline(n) . "\n" + else + let lpart = substitute(getline(n), '^\s*', '', '') + let str .= lpart . "\n" + endif + endfor + if len(leader) + let items = s:zen_parseIntoTree(leader, type).child + let items[0].value = "{\n".str."}" + else + let items = s:zen_parseIntoTree(leader, type).child + let items[0].value = "{".str."}" + endif + else + let str .= getline(a:firstline) + let items = s:zen_parseIntoTree(leader, type).child + let items[0].value = "{".str."}" + endif + for item in items + let expand .= s:zen_toString(item, type, 0, filters) + endfor + endif + silent! exe "normal! gvc" + else + let line = getline('.') + if col('.') < len(line) + let line = matchstr(line, '^\(.*\%'.col('.').'c.\)') + endif + if a:mode == 1 + let part = matchstr(line, '\([a-zA-Z0-9_\@:|]\+\)$') + else + let part = matchstr(line, '\(\S.*\)$') + endif + let rest = getline('.')[len(line):] + let str = part + let mx = '|\(\%(html\|haml\|e\|c\|fc\|xsl\)\s*,\{0,1}\s*\)*$' + if str =~ mx + let filters = split(matchstr(str, mx)[1:], '\s*,\s*') + let str = substitute(str, mx, '', '') + endif + let items = s:zen_parseIntoTree(str, type).child + for item in items + let expand .= s:zen_toString(item, type, 0, filters) + endfor + endif + if len(expand) + if expand !~ '\${cursor}' + if a:mode == 2 | + let expand = '${cursor}' . expand + else + let expand .= '${cursor}' + endif + endif + let expand = substitute(expand, '${lang}', s:zen_settings.lang, 'g') + let expand = substitute(expand, '${charset}', s:zen_settings.charset, 'g') + let expand = substitute(expand, '\${cursor}', '$cursor$', '') + let expand = substitute(expand, '\${cursor}', '', 'g') + if has_key(s:zen_settings, 'timezone') && len(s:zen_settings.timezone) + let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S") . s:zen_settings.timezone, 'g') + else + " TODO: on windows, %z/%Z is 'Tokyo(Standard)' + let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S %z"), 'g') + endif + if line[:-len(part)-1] =~ '^\s\+$' + let indent = line[:-len(part)-1] + else + let indent = '' + endif + let expand = substitute(expand, '\n\s*$', '', 'g') + let expand = line[:-len(part)-1] . substitute(expand, "\n", "\n" . indent, 'g') . rest + let lines = split(expand, '\n') + call setline(line('.'), lines[0]) + if len(lines) > 1 + call append(line('.'), lines[1:]) + endif + endif + silent! exe "normal! ".len(part)."h" + if search('\$cursor\$', 'e') + let oldselection = &selection + let &selection = 'inclusive' + silent! exe "normal! v7h\"_s" + let &selection = oldselection + endif + if g:zencoding_debug > 1 + call getchar() + endif +endfunction + +function! zencoding#moveNextPrev(flag) + if search('><\/\|\(""\)\|^\s*$', a:flag ? 'Wpb' : 'Wp') == 3 + startinsert! + else + silent! normal! l + startinsert + endif +endfunction + +function! zencoding#imageSize() + let img_region = s:search_region('') + if !s:region_is_valid(img_region) || !s:cursor_in_region(img_region) + return + endif + let content = s:get_content(img_region) + if content !~ '^<]\+>$' + return + endif + let current = s:zen_parseTag(content) + let fn = current.attr.src + if fn !~ '^\(/\|http\)' + let fn = simplify(expand('%:h') . '/' . fn) + endif + let [type, width, height] = ['', -1, -1] + + if filereadable(fn) + let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g') + else + let hex = substitute(system('curl -s "'.fn.'" | xxd -p'), '\n', '', 'g') + endif + + if hex =~ '^89504e470d0a1a0a' + let type = 'png' + let width = eval('0x'.hex[32:39]) + let height = eval('0x'.hex[40:47]) + endif + if hex =~ '^ffd8' + let pos = match(hex, 'ffc[02]') + let type = 'jpg' + let height = eval('0x'.hex[pos+10:pos+11])*256 + eval('0x'.hex[pos+12:pos+13]) + let width = eval('0x'.hex[pos+14:pos+15])*256 + eval('0x'.hex[pos+16:pos+17]) + endif + if hex =~ '^47494638' + let type = 'gif' + let width = eval('0x'.hex[14:15].hex[12:13]) + let height = eval('0x'.hex[18:19].hex[16:17]) + endif + + if width == -1 && height == -1 + return + endif + let current.attr.width = width + let current.attr.height = height + let html = s:zen_toString(current, 'html', 1) + call s:change_content(img_region, html) +endfunction + +function! zencoding#toggleComment() + if s:zen_getFileType() == 'css' + let line = getline('.') + let mx = '^\(\s*\)/\*\s*\(.*\)\s*\*/\s*$' + if line =~ mx + let space = substitute(matchstr(line, mx), mx, '\1', '') + let line = substitute(matchstr(line, mx), mx, '\2', '') + let line = space . substitute(line, '^\s*\|\s*$', '\1', 'g') + else + let mx = '^\(\s*\)\(.*\)\s*$' + let line = substitute(line, mx, '\1/* \2 */', '') + endif + call setline('.', line) + return + endif + + let curpos = getpos('.') + while 1 + let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9]*\)[^>]*>' + let pos1 = searchpos(mx, 'bcnW') + let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) + let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9]*\).*$', '\1', '') + let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] + if content[-2:] == '/>' && s:point_in_region(curpos[1:2], block) + let comment_region = s:search_region('') + if !s:region_is_valid(comment_region) || !s:point_in_region(curpos[1:2], comment_region) || !(s:point_in_region(comment_region[0], block) && s:point_in_region(comment_region[1], block)) + let content = '' + call s:change_content(block, content) + else + let content = s:get_content(comment_region) + let content = substitute(content, '^$', '\1', '') + call s:change_content(comment_region, content) + endif + return + else + if tag_name[0] == '/' + let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') + call setpos('.', [0, pos1[0], pos1[1], 0]) + let pos2 = searchpos('', 'cneW') + else + let pos2 = searchpos('', 'cneW') + endif + let block = [pos1, pos2] + if !s:region_is_valid(block) + call setpos('.', curpos) + let block = s:search_region('') + if !s:region_is_valid(block) + return + endif + endif + if s:point_in_region(curpos[1:2], block) + let comment_region = s:search_region('') + if !s:region_is_valid(comment_region) || !s:point_in_region(curpos[1:2], comment_region) || !(s:point_in_region(comment_region[0], block) && s:point_in_region(comment_region[1], block)) + let content = '' + call s:change_content(block, content) + else + let content = s:get_content(comment_region) + let content = substitute(content, '^$', '\1', '') + call s:change_content(comment_region, content) + endif + return + else + if block[0][0] > 0 + call setpos('.', [0, block[0][0]-1, block[0][1], 0]) + else + call setpos('.', curpos) + return + endif + endif + endif + endwhile +endfunction + +function! zencoding#splitJoinTag() + let curpos = getpos('.') + while 1 + let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9]*\)[^>]*>' + let pos1 = searchpos(mx, 'bcnW') + let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) + let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9]*\).*$', '\1', '') + let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] + if content[-2:] == '/>' && s:cursor_in_region(block) + let content = content[:-3] . ">' + call s:change_content(block, content) + call setpos('.', [0, block[0][0], block[0][1], 0]) + return + else + if tag_name[0] == '/' + let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') + call setpos('.', [0, pos1[0], pos1[1], 0]) + let pos2 = searchpos('', 'cneW') + else + let pos2 = searchpos('', 'cneW') + endif + let block = [pos1, pos2] + let content = s:get_content(block) + if s:point_in_region(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' + let content = matchstr(content, mx)[:-2] . '/>' + call s:change_content(block, content) + call setpos('.', [0, block[0][0], block[0][1], 0]) + return + else + if block[0][0] > 0 + call setpos('.', [0, block[0][0]-1, block[0][1], 0]) + else + call setpos('.', curpos) + return + endif + endif + endif + endwhile +endfunction + +function! zencoding#removeTag() + let curpos = getpos('.') + while 1 + let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9]*\)[^>]*>' + let pos1 = searchpos(mx, 'bcnW') + let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) + let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9]*\).*$', '\1', '') + let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] + if content[-2:] == '/>' && s:cursor_in_region(block) + call s:change_content(block, '') + call setpos('.', [0, block[0][0], block[0][1], 0]) + return + else + if tag_name[0] == '/' + let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') + call setpos('.', [0, pos1[0], pos1[1], 0]) + let pos2 = searchpos('', 'cneW') + else + let pos2 = searchpos('', 'cneW') + endif + let block = [pos1, pos2] + let content = s:get_content(block) + if s:point_in_region(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' + call s:change_content(block, '') + call setpos('.', [0, block[0][0], block[0][1], 0]) + return + else + if block[0][0] > 0 + call setpos('.', [0, block[0][0]-1, block[0][1], 0]) + else + call setpos('.', curpos) + return + endif + endif + endif + endwhile +endfunction + +function! zencoding#balanceTag(flag) range + let vblock = s:get_visualblock() + if a:flag == -2 || a:flag == 2 + let curpos = [0, line("'<"), col("'<"), 0] + else + let curpos = getpos('.') + endif + while 1 + let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9]*\)[^>]*>' + let pos1 = searchpos(mx, (a:flag == -2 ? 'nW' : 'bcnW')) + let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) + let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9]*\).*$', '\1', '') + let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] + if !s:region_is_valid(block) + break + endif + if content[-2:] == '/>' && s:point_in_region(curpos[1:2], block) + call s:select_region(block) + return + else + if tag_name[0] == '/' + let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', a:flag == -2 ? 'nW' : 'bcnW') + if pos1[0] == 0 + break + endif + call setpos('.', [0, pos1[0], pos1[1], 0]) + let pos2 = searchpos('', 'cneW') + else + let pos2 = searchpos('', 'cneW') + endif + let block = [pos1, pos2] + if !s:region_is_valid(block) + break + endif + let content = s:get_content(block) + if a:flag == -2 + let check = s:region_in_region(vblock, block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' + else + let check = s:point_in_region(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' + endif + if check + if a:flag < 0 + let l = getline(pos1[0]) + let content = matchstr(l[pos1[1]-1:], mx) + if pos1[1] + len(content) > len(l) + let pos1[0] += 1 + else + let pos1[1] += len(content) + endif + let pos2 = searchpos('\(\n\|.\)', 'cnW') + else + let pos2 = searchpos('', 'cneW') + endif + let block = [pos1, pos2] + call s:select_region(block) + return + else + if s:region_is_valid(block) + if a:flag == -2 + if setpos('.', [0, block[0][0]+1, block[0][1], 0]) == -1 + break + endif + else + if setpos('.', [0, block[0][0]-1, block[0][1], 0]) == -1 + break + endif + endif + else + break + endif + endif + endif + endwhile + if a:flag == -2 || a:flag == 2 + silent! exe "normal! gv" + else + call setpos('.', curpos) + endif +endfunction + +function! zencoding#anchorizeURL(flag) + let mx = 'https\=:\/\/[-!#$%&*+,./:;=?@0-9a-zA-Z_~]\+' + let pos1 = searchpos(mx, 'bcnW') + let url = matchstr(getline(pos1[0])[pos1[1]-1:], mx) + let block = [pos1, [pos1[0], pos1[1] + len(url) - 1]] + if !s:cursor_in_region(block) + return + endif + + let content = s:get_content_from_url(url) + let content = substitute(content, '\n', '', 'g') + let content = substitute(content, '\n\s*\n', '\n', 'g') + let head = strpart(content, 0, stridx(content, '')) + let title = substitute(head, '.*]*>\([^<]\+\)<\/title[^>]*>.*', '\1', 'g') + + if a:flag == 0 + let a = s:zen_parseTag('') + let a.attr.href = url + let a.value = '{' . title . '}' + let expand = s:zen_toString(a, 'html', 0, []) + let expand = substitute(expand, '\${cursor}', '', 'g') + else + let body = s:get_text_from_html(content) + let body = '{' . substitute(body, '^\(.\{0,100}\).*', '\1', '') . '...}' + + let blockquote = s:zen_parseTag('
') + let a = s:zen_parseTag('') + let a.attr.href = url + let a.value = '{' . title . '}' + call add(blockquote.child, a) + call add(blockquote.child, s:zen_parseTag('
')) + let p = s:zen_parseTag('

') + let p.value = body + call add(blockquote.child, p) + let cite = s:zen_parseTag('') + let cite.value = '{' . url . '}' + call add(blockquote.child, cite) + let expand = s:zen_toString(blockquote, 'html', 0, []) + let expand = substitute(expand, '\${cursor}', '', 'g') + let indent = substitute(getline('.'), '^\(\s*\).*', '\1', '') + let expand = substitute(expand, "\n", "\n" . indent, 'g') + endif + call s:change_content(block, expand) +endfunction + +"============================================================================== +" html utils +"============================================================================== +function! s:get_content_from_url(url) + silent! new + silent! exec '0r!curl -s -L "'.substitute(a:url, '#.*', '', '').'"' + let ret = join(getline(1, '$'), "\n") + silent! bw! + return ret +endfunction + +function! s:get_text_from_html(buf) + let threshold_len = 100 + let threshold_per = 0.1 + let buf = a:buf + + let buf = substitute(buf, '', '', 'g') + let buf = strpart(buf, stridx(buf, '')) + let buf = substitute(buf, ']*>.\{-}', '', 'g') + let buf = substitute(buf, ']*>.\{-}', '', 'g') + let res = '' + let max = 0 + let mx = '\(]\{-}>\)\|\(<\/td>\)\|\(]\{-}>\)\|\(<\/div>\)' + let m = split(buf, mx) + for str in m + let c = split(str, '<[^>]*?>') + let str = substitute(str, '<[^>]\{-}>', '', 'g') + let str = substitute(str, '>', '>', 'g') + let str = substitute(str, '<', '<', 'g') + let str = substitute(str, '"', '"', 'g') + let str = substitute(str, ''', "'", 'g') + let str = substitute(str, ' ', ' ', 'g') + let str = substitute(str, '¥', '\¥', 'g') + let str = substitute(str, '&', '\&', 'g') + let str = substitute(str, '^\s*\(.*\)\s*$', '\1', '') + let str = substitute(str, '\s\+', ' ', 'g') + let l = len(str) + if l > threshold_len + let per = len(c) / l + if max < l && per < threshold_per + let max = l + let res = str + endif + endif + endfor + let res = substitute(res, '^\s*\(.*\)\s*$', '\1', 'g') + return res +endfunction +"============================================================================== + +"============================================================================== +" region utils +"============================================================================== +" delete_content : delete content in region +" if region make from between '' and '' +" -------------------- +" begin: +" :end +" -------------------- +" this function make the content as following +" -------------------- +" begin::end +" -------------------- +function! s:delete_content(region) + let lines = getline(a:region[0][0], a:region[1][0]) + call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) + silent! exe "delete ".(a:region[1][0] - a:region[0][0]) + call setline(line('.'), lines[0][:a:region[0][1]-2] . lines[-1][a:region[1][1]]) +endfunction + +" change_content : change content in region +" if region make from between '' and '' +" -------------------- +" begin: +" :end +" -------------------- +" and content is +" -------------------- +" foo +" bar +" baz +" -------------------- +" this function make the content as following +" -------------------- +" begin:foo +" bar +" baz:end +" -------------------- +function! s:change_content(region, content) + let newlines = split(a:content, '\n') + let oldlines = getline(a:region[0][0], a:region[1][0]) + call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) + silent! exe "delete ".(a:region[1][0] - a:region[0][0]) + if len(newlines) == 0 + let tmp = '' + if a:region[0][1] > 1 + let tmp = oldlines[0][:a:region[0][1]-2] + endif + if a:region[1][1] > 1 + let tmp .= oldlines[-1][a:region[1][1]:] + endif + call setline(line('.'), tmp) + elseif len(newlines) == 1 + if a:region[0][1] > 1 + let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] + endif + if a:region[1][1] > 1 + let newlines[0] .= oldlines[-1][a:region[1][1]:] + endif + call setline(line('.'), newlines[0]) + else + if a:region[0][1] > 1 + let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] + endif + if a:region[1][1] > 1 + let newlines[-1] .= oldlines[-1][a:region[1][1]:] + endif + call setline(line('.'), newlines[0]) + call append(line('.'), newlines[1:]) + endif +endfunction + +" select_region : select region +" this function make a selection of region +function! s:select_region(region) + call setpos('.', [0, a:region[1][0], a:region[1][1], 0]) + normal! v + call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) +endfunction + +" point_in_region : check point is in the region +" this function return 0 or 1 +function! s:point_in_region(point, region) + if !s:region_is_valid(a:region) | return 0 | endif + if a:region[0][0] > a:point[0] | return 0 | endif + if a:region[1][0] < a:point[0] | return 0 | endif + if a:region[0][0] == a:point[0] && a:region[0][1] > a:point[1] | return 0 | endif + if a:region[1][0] == a:point[0] && a:region[1][1] < a:point[1] | return 0 | endif + return 1 +endfunction + +" cursor_in_region : check cursor is in the region +" this function return 0 or 1 +function! s:cursor_in_region(region) + if !s:region_is_valid(a:region) | return 0 | endif + let cur = getpos('.')[1:2] + return s:point_in_region(cur, a:region) +endfunction + +" region_is_valid : check region is valid +" this function return 0 or 1 +function! s:region_is_valid(region) + if a:region[0][0] == 0 || a:region[1][0] == 0 | return 0 | endif + return 1 +endfunction + +" search_region : make region from pattern which is composing start/end +" this function return array of position +function! s:search_region(start, end) + return [searchpos(a:start, 'bcnW'), searchpos(a:end, 'cneW')] +endfunction + +" get_content : get content in region +" this function return string in region +function! s:get_content(region) + if !s:region_is_valid(a:region) + return '' + endif + let lines = getline(a:region[0][0], a:region[1][0]) + if a:region[0][0] == a:region[1][0] + let lines[0] = lines[0][a:region[0][1]-1:a:region[1][1]-1] + else + let lines[0] = lines[0][a:region[0][1]-1:] + let lines[-1] = lines[-1][:a:region[1][1]-1] + endif + return join(lines, "\n") +endfunction + +" region_in_region : check region is in the region +" this function return 0 or 1 +function! s:region_in_region(outer, inner) + if !s:region_is_valid(a:inner) || !s:region_is_valid(a:outer) + return 0 + endif + return s:point_in_region(a:inner[0], a:outer) && s:point_in_region(a:inner[1], a:outer) +endfunction + +" get_visualblock : get region of visual block +" this function return region of visual block +function! s:get_visualblock() + return [[line("'<"), col("'<")], [line("'>"), col("'>")]] +endfunction +"============================================================================== + +function! zencoding#ExpandWord(abbr, type, orig) + let mx = '|\(\%(html\|haml\|e\|c\|fc\|xsl\)\s*,\{0,1}\s*\)*$' + let str = a:abbr + let type = a:type + + if len(type) == 0 | let type = 'html' | endif + if str =~ mx + let filters = split(matchstr(str, mx)[1:], '\s*,\s*') + let str = substitute(str, mx, '', '') + elseif has_key(s:zen_settings[a:type], 'filters') + let filters = split(s:zen_settings[a:type].filters, '\s*,\s*') + else + let filters = ['html'] + endif + let items = s:zen_parseIntoTree(str, a:type).child + let expand = '' + for item in items + let expand .= s:zen_toString(item, a:type, 0, filters) + endfor + if a:orig == 0 + let expand = substitute(expand, '\${lang}', s:zen_settings.lang, 'g') + let expand = substitute(expand, '\${charset}', s:zen_settings.charset, 'g') + let expand = substitute(expand, '\${cursor}', '', 'g') + endif + return expand +endfunction + +function! zencoding#CompleteTag(findstart, base) + if a:findstart + let line = getline('.') + let start = col('.') - 1 + while start > 0 && line[start - 1] =~ '[a-zA-Z0-9:\@]' + let start -= 1 + endwhile + return start + else + let type = s:zen_getFileType() + let res = [] + + let snippets = s:zen_getResource(type, 'snippets', {}) + for item in keys(snippets) + if stridx(item, a:base) != -1 + call add(res, substitute(item, '\${cursor}\||', '', 'g')) + endif + endfor + let aliases = s:zen_getResource(type, 'aliases', {}) + for item in values(aliases) + if stridx(item, a:base) != -1 + call add(res, substitute(item, '\${cursor}\||', '', 'g')) + endif + endfor + return res + endif +endfunction + +unlet! s:zen_settings +let s:zen_settings = { +\ 'indentation': "\t", +\ 'lang': "en", +\ 'charset': "UTF-8", +\ 'css': { +\ 'snippets': { +\ '@i': '@import url(|);', +\ '@m': "@media print {\n\t|\n}", +\ '@f': "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}", +\ '!': '!important', +\ 'pos': 'position:|;', +\ 'pos:s': 'position:static;', +\ 'pos:a': 'position:absolute;', +\ 'pos:r': 'position:relative;', +\ 'pos:f': 'position:fixed;', +\ 't': 'top:|;', +\ 't:a': 'top:auto;', +\ 'r': 'right:|;', +\ 'r:a': 'right:auto;', +\ 'b': 'bottom:|;', +\ 'b:a': 'bottom:auto;', +\ 'l': 'left:|;', +\ 'l:a': 'left:auto;', +\ 'z': 'z-index:|;', +\ 'z:a': 'z-index:auto;', +\ 'fl': 'float:|;', +\ 'fl:n': 'float:none;', +\ 'fl:l': 'float:left;', +\ 'fl:r': 'float:right;', +\ 'cl': 'clear:|;', +\ 'cl:n': 'clear:none;', +\ 'cl:l': 'clear:left;', +\ 'cl:r': 'clear:right;', +\ 'cl:b': 'clear:both;', +\ 'd': 'display:|;', +\ 'd:n': 'display:none;', +\ 'd:b': 'display:block;', +\ 'd:i': 'display:inline;', +\ 'd:ib': 'display:inline-block;', +\ 'd:li': 'display:list-item;', +\ 'd:ri': 'display:run-in;', +\ 'd:cp': 'display:compact;', +\ 'd:tb': 'display:table;', +\ 'd:itb': 'display:inline-table;', +\ 'd:tbcp': 'display:table-caption;', +\ 'd:tbcl': 'display:table-column;', +\ 'd:tbclg': 'display:table-column-group;', +\ 'd:tbhg': 'display:table-header-group;', +\ 'd:tbfg': 'display:table-footer-group;', +\ 'd:tbr': 'display:table-row;', +\ 'd:tbrg': 'display:table-row-group;', +\ 'd:tbc': 'display:table-cell;', +\ 'd:rb': 'display:ruby;', +\ 'd:rbb': 'display:ruby-base;', +\ 'd:rbbg': 'display:ruby-base-group;', +\ 'd:rbt': 'display:ruby-text;', +\ 'd:rbtg': 'display:ruby-text-group;', +\ 'v': 'visibility:|;', +\ 'v:v': 'visibility:visible;', +\ 'v:h': 'visibility:hidden;', +\ 'v:c': 'visibility:collapse;', +\ 'ov': 'overflow:|;', +\ 'ov:v': 'overflow:visible;', +\ 'ov:h': 'overflow:hidden;', +\ 'ov:s': 'overflow:scroll;', +\ 'ov:a': 'overflow:auto;', +\ 'ovx': 'overflow-x:|;', +\ 'ovx:v': 'overflow-x:visible;', +\ 'ovx:h': 'overflow-x:hidden;', +\ 'ovx:s': 'overflow-x:scroll;', +\ 'ovx:a': 'overflow-x:auto;', +\ 'ovy': 'overflow-y:|;', +\ 'ovy:v': 'overflow-y:visible;', +\ 'ovy:h': 'overflow-y:hidden;', +\ 'ovy:s': 'overflow-y:scroll;', +\ 'ovy:a': 'overflow-y:auto;', +\ 'ovs': 'overflow-style:|;', +\ 'ovs:a': 'overflow-style:auto;', +\ 'ovs:s': 'overflow-style:scrollbar;', +\ 'ovs:p': 'overflow-style:panner;', +\ 'ovs:m': 'overflow-style:move;', +\ 'ovs:mq': 'overflow-style:marquee;', +\ 'zoo': 'zoom:1;', +\ 'cp': 'clip:|;', +\ 'cp:a': 'clip:auto;', +\ 'cp:r': 'clip:rect(|);', +\ 'bxz': 'box-sizing:|;', +\ 'bxz:cb': 'box-sizing:content-box;', +\ 'bxz:bb': 'box-sizing:border-box;', +\ 'bxsh': 'box-shadow:|;', +\ 'bxsh:n': 'box-shadow:none;', +\ 'bxsh:w': '-webkit-box-shadow:0 0 0 #000;', +\ 'bxsh:m': '-moz-box-shadow:0 0 0 0 #000;', +\ 'm': 'margin:|;', +\ 'm:a': 'margin:auto;', +\ 'm:0': 'margin:0;', +\ 'm:2': 'margin:0 0;', +\ 'm:3': 'margin:0 0 0;', +\ 'm:4': 'margin:0 0 0 0;', +\ 'mt': 'margin-top:|;', +\ 'mt:a': 'margin-top:auto;', +\ 'mr': 'margin-right:|;', +\ 'mr:a': 'margin-right:auto;', +\ 'mb': 'margin-bottom:|;', +\ 'mb:a': 'margin-bottom:auto;', +\ 'ml': 'margin-left:|;', +\ 'ml:a': 'margin-left:auto;', +\ 'p': 'padding:|;', +\ 'p:0': 'padding:0;', +\ 'p:2': 'padding:0 0;', +\ 'p:3': 'padding:0 0 0;', +\ 'p:4': 'padding:0 0 0 0;', +\ 'pt': 'padding-top:|;', +\ 'pr': 'padding-right:|;', +\ 'pb': 'padding-bottom:|;', +\ 'pl': 'padding-left:|;', +\ 'w': 'width:|;', +\ 'w:a': 'width:auto;', +\ 'h': 'height:|;', +\ 'h:a': 'height:auto;', +\ 'maw': 'max-width:|;', +\ 'maw:n': 'max-width:none;', +\ 'mah': 'max-height:|;', +\ 'mah:n': 'max-height:none;', +\ 'miw': 'min-width:|;', +\ 'mih': 'min-height:|;', +\ 'o': 'outline:|;', +\ 'o:n': 'outline:none;', +\ 'oo': 'outline-offset:|;', +\ 'ow': 'outline-width:|;', +\ 'os': 'outline-style:|;', +\ 'oc': 'outline-color:#000;', +\ 'oc:i': 'outline-color:invert;', +\ 'bd': 'border:|;', +\ 'bd+': 'border:1px solid #000;', +\ 'bd:n': 'border:none;', +\ 'bdbk': 'border-break:|;', +\ 'bdbk:c': 'border-break:close;', +\ 'bdcl': 'border-collapse:|;', +\ 'bdcl:c': 'border-collapse:collapse;', +\ 'bdcl:s': 'border-collapse:separate;', +\ 'bdc': 'border-color:#000;', +\ 'bdi': 'border-image:url(|);', +\ 'bdi:n': 'border-image:none;', +\ 'bdi:w': '-webkit-border-image:url(|) 0 0 0 0 stretch stretch;', +\ 'bdi:m': '-moz-border-image:url(|) 0 0 0 0 stretch stretch;', +\ 'bdti': 'border-top-image:url(|);', +\ 'bdti:n': 'border-top-image:none;', +\ 'bdri': 'border-right-image:url(|);', +\ 'bdri:n': 'border-right-image:none;', +\ 'bdbi': 'border-bottom-image:url(|);', +\ 'bdbi:n': 'border-bottom-image:none;', +\ 'bdli': 'border-left-image:url(|);', +\ 'bdli:n': 'border-left-image:none;', +\ 'bdci': 'border-corner-image:url(|);', +\ 'bdci:n': 'border-corner-image:none;', +\ 'bdci:c': 'border-corner-image:continue;', +\ 'bdtli': 'border-top-left-image:url(|);', +\ 'bdtli:n': 'border-top-left-image:none;', +\ 'bdtli:c': 'border-top-left-image:continue;', +\ 'bdtri': 'border-top-right-image:url(|);', +\ 'bdtri:n': 'border-top-right-image:none;', +\ 'bdtri:c': 'border-top-right-image:continue;', +\ 'bdbri': 'border-bottom-right-image:url(|);', +\ 'bdbri:n': 'border-bottom-right-image:none;', +\ 'bdbri:c': 'border-bottom-right-image:continue;', +\ 'bdbli': 'border-bottom-left-image:url(|);', +\ 'bdbli:n': 'border-bottom-left-image:none;', +\ 'bdbli:c': 'border-bottom-left-image:continue;', +\ 'bdf': 'border-fit:|;', +\ 'bdf:c': 'border-fit:clip;', +\ 'bdf:r': 'border-fit:repeat;', +\ 'bdf:sc': 'border-fit:scale;', +\ 'bdf:st': 'border-fit:stretch;', +\ 'bdf:ow': 'border-fit:overwrite;', +\ 'bdf:of': 'border-fit:overflow;', +\ 'bdf:sp': 'border-fit:space;', +\ 'bdl': 'border-left:|;', +\ 'bdl:a': 'border-length:auto;', +\ 'bdsp': 'border-spacing:|;', +\ 'bds': 'border-style:|;', +\ 'bds:n': 'border-style:none;', +\ 'bds:h': 'border-style:hidden;', +\ 'bds:dt': 'border-style:dotted;', +\ 'bds:ds': 'border-style:dashed;', +\ 'bds:s': 'border-style:solid;', +\ 'bds:db': 'border-style:double;', +\ 'bds:dtds': 'border-style:dot-dash;', +\ 'bds:dtdtds': 'border-style:dot-dot-dash;', +\ 'bds:w': 'border-style:wave;', +\ 'bds:g': 'border-style:groove;', +\ 'bds:r': 'border-style:ridge;', +\ 'bds:i': 'border-style:inset;', +\ 'bds:o': 'border-style:outset;', +\ 'bdw': 'border-width:|;', +\ 'bdt': 'border-top:|;', +\ 'bdt+': 'border-top:1px solid #000;', +\ 'bdt:n': 'border-top:none;', +\ 'bdtw': 'border-top-width:|;', +\ 'bdts': 'border-top-style:|;', +\ 'bdts:n': 'border-top-style:none;', +\ 'bdtc': 'border-top-color:#000;', +\ 'bdr': 'border-right:|;', +\ 'bdr+': 'border-right:1px solid #000;', +\ 'bdr:n': 'border-right:none;', +\ 'bdrw': 'border-right-width:|;', +\ 'bdrs': 'border-right-style:|;', +\ 'bdrs:n': 'border-right-style:none;', +\ 'bdrc': 'border-right-color:#000;', +\ 'bdb': 'border-bottom:|;', +\ 'bdb+': 'border-bottom:1px solid #000;', +\ 'bdb:n': 'border-bottom:none;', +\ 'bdbw': 'border-bottom-width:|;', +\ 'bdbs': 'border-bottom-style:|;', +\ 'bdbs:n': 'border-bottom-style:none;', +\ 'bdbc': 'border-bottom-color:#000;', +\ 'bdln': 'border-length:|;', +\ 'bdl+': 'border-left:1px solid #000;', +\ 'bdl:n': 'border-left:none;', +\ 'bdlw': 'border-left-width:|;', +\ 'bdls': 'border-left-style:|;', +\ 'bdls:n': 'border-left-style:none;', +\ 'bdlc': 'border-left-color:#000;', +\ 'bdrus': 'border-radius:|;', +\ 'bdtrrs': 'border-top-right-radius:|;', +\ 'bdtlrs': 'border-top-left-radius:|;', +\ 'bdbrrs': 'border-bottom-right-radius:|;', +\ 'bdblrs': 'border-bottom-left-radius:|;', +\ 'bg': 'background:|;', +\ 'bg+': 'background:#FFF url(|) 0 0 no-repeat;', +\ 'bg:n': 'background:none;', +\ 'bg:ie': 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=''|x.png'');', +\ 'bgc': 'background-color:#FFF;', +\ 'bgi': 'background-image:url(|);', +\ 'bgi:n': 'background-image:none;', +\ 'bgr': 'background-repeat:|;', +\ 'bgr:n': 'background-repeat:no-repeat;', +\ 'bgr:x': 'background-repeat:repeat-x;', +\ 'bgr:y': 'background-repeat:repeat-y;', +\ 'bga': 'background-attachment:|;', +\ 'bga:f': 'background-attachment:fixed;', +\ 'bga:s': 'background-attachment:scroll;', +\ 'bgp': 'background-position:0 0;', +\ 'bgpx': 'background-position-x:|;', +\ 'bgpy': 'background-position-y:|;', +\ 'bgbk': 'background-break:|;', +\ 'bgbk:bb': 'background-break:bounding-box;', +\ 'bgbk:eb': 'background-break:each-box;', +\ 'bgbk:c': 'background-break:continuous;', +\ 'bgcp': 'background-clip:|;', +\ 'bgcp:bb': 'background-clip:border-box;', +\ 'bgcp:pb': 'background-clip:padding-box;', +\ 'bgcp:cb': 'background-clip:content-box;', +\ 'bgcp:nc': 'background-clip:no-clip;', +\ 'bgo': 'background-origin:|;', +\ 'bgo:pb': 'background-origin:padding-box;', +\ 'bgo:bb': 'background-origin:border-box;', +\ 'bgo:cb': 'background-origin:content-box;', +\ 'bgz': 'background-size:|;', +\ 'bgz:a': 'background-size:auto;', +\ 'bgz:ct': 'background-size:contain;', +\ 'bgz:cv': 'background-size:cover;', +\ 'c': 'color:#000;', +\ 'tbl': 'table-layout:|;', +\ 'tbl:a': 'table-layout:auto;', +\ 'tbl:f': 'table-layout:fixed;', +\ 'cps': 'caption-side:|;', +\ 'cps:t': 'caption-side:top;', +\ 'cps:b': 'caption-side:bottom;', +\ 'ec': 'empty-cells:|;', +\ 'ec:s': 'empty-cells:show;', +\ 'ec:h': 'empty-cells:hide;', +\ 'lis': 'list-style:|;', +\ 'lis:n': 'list-style:none;', +\ 'lisp': 'list-style-position:|;', +\ 'lisp:i': 'list-style-position:inside;', +\ 'lisp:o': 'list-style-position:outside;', +\ 'list': 'list-style-type:|;', +\ 'list:n': 'list-style-type:none;', +\ 'list:d': 'list-style-type:disc;', +\ 'list:c': 'list-style-type:circle;', +\ 'list:s': 'list-style-type:square;', +\ 'list:dc': 'list-style-type:decimal;', +\ 'list:dclz': 'list-style-type:decimal-leading-zero;', +\ 'list:lr': 'list-style-type:lower-roman;', +\ 'list:ur': 'list-style-type:upper-roman;', +\ 'lisi': 'list-style-image:|;', +\ 'lisi:n': 'list-style-image:none;', +\ 'q': 'quotes:|;', +\ 'q:n': 'quotes:none;', +\ 'q:ru': 'quotes:''\00AB'' ''\00BB'' ''\201E'' ''\201C'';', +\ 'q:en': 'quotes:''\201C'' ''\201D'' ''\2018'' ''\2019'';', +\ 'ct': 'content:|;', +\ 'ct:n': 'content:normal;', +\ 'ct:oq': 'content:open-quote;', +\ 'ct:noq': 'content:no-open-quote;', +\ 'ct:cq': 'content:close-quote;', +\ 'ct:ncq': 'content:no-close-quote;', +\ 'ct:a': 'content:attr(|);', +\ 'ct:c': 'content:counter(|);', +\ 'ct:cs': 'content:counters(|);', +\ 'coi': 'counter-increment:|;', +\ 'cor': 'counter-reset:|;', +\ 'va': 'vertical-align:|;', +\ 'va:sup': 'vertical-align:super;', +\ 'va:t': 'vertical-align:top;', +\ 'va:tt': 'vertical-align:text-top;', +\ 'va:m': 'vertical-align:middle;', +\ 'va:bl': 'vertical-align:baseline;', +\ 'va:b': 'vertical-align:bottom;', +\ 'va:tb': 'vertical-align:text-bottom;', +\ 'va:sub': 'vertical-align:sub;', +\ 'ta': 'text-align:|;', +\ 'ta:l': 'text-align:left;', +\ 'ta:c': 'text-align:center;', +\ 'ta:r': 'text-align:right;', +\ 'tal': 'text-align-last:|;', +\ 'tal:a': 'text-align-last:auto;', +\ 'tal:l': 'text-align-last:left;', +\ 'tal:c': 'text-align-last:center;', +\ 'tal:r': 'text-align-last:right;', +\ 'td': 'text-decoration:|;', +\ 'td:n': 'text-decoration:none;', +\ 'td:u': 'text-decoration:underline;', +\ 'td:o': 'text-decoration:overline;', +\ 'td:l': 'text-decoration:line-through;', +\ 'te': 'text-emphasis:|;', +\ 'te:n': 'text-emphasis:none;', +\ 'te:ac': 'text-emphasis:accent;', +\ 'te:dt': 'text-emphasis:dot;', +\ 'te:c': 'text-emphasis:circle;', +\ 'te:ds': 'text-emphasis:disc;', +\ 'te:b': 'text-emphasis:before;', +\ 'te:a': 'text-emphasis:after;', +\ 'th': 'text-height:|;', +\ 'th:a': 'text-height:auto;', +\ 'th:f': 'text-height:font-size;', +\ 'th:t': 'text-height:text-size;', +\ 'th:m': 'text-height:max-size;', +\ 'ti': 'text-indent:|;', +\ 'ti:-': 'text-indent:-9999px;', +\ 'tj': 'text-justify:|;', +\ 'tj:a': 'text-justify:auto;', +\ 'tj:iw': 'text-justify:inter-word;', +\ 'tj:ii': 'text-justify:inter-ideograph;', +\ 'tj:ic': 'text-justify:inter-cluster;', +\ 'tj:d': 'text-justify:distribute;', +\ 'tj:k': 'text-justify:kashida;', +\ 'tj:t': 'text-justify:tibetan;', +\ 'to': 'text-outline:|;', +\ 'to+': 'text-outline:0 0 #000;', +\ 'to:n': 'text-outline:none;', +\ 'tr': 'text-replace:|;', +\ 'tr:n': 'text-replace:none;', +\ 'tt': 'text-transform:|;', +\ 'tt:n': 'text-transform:none;', +\ 'tt:c': 'text-transform:capitalize;', +\ 'tt:u': 'text-transform:uppercase;', +\ 'tt:l': 'text-transform:lowercase;', +\ 'tw': 'text-wrap:|;', +\ 'tw:n': 'text-wrap:normal;', +\ 'tw:no': 'text-wrap:none;', +\ 'tw:u': 'text-wrap:unrestricted;', +\ 'tw:s': 'text-wrap:suppress;', +\ 'tsh': 'text-shadow:|;', +\ 'tsh+': 'text-shadow:0 0 0 #000;', +\ 'tsh:n': 'text-shadow:none;', +\ 'lh': 'line-height:|;', +\ 'whs': 'white-space:|;', +\ 'whs:n': 'white-space:normal;', +\ 'whs:p': 'white-space:pre;', +\ 'whs:nw': 'white-space:nowrap;', +\ 'whs:pw': 'white-space:pre-wrap;', +\ 'whs:pl': 'white-space:pre-line;', +\ 'whsc': 'white-space-collapse:|;', +\ 'whsc:n': 'white-space-collapse:normal;', +\ 'whsc:k': 'white-space-collapse:keep-all;', +\ 'whsc:l': 'white-space-collapse:loose;', +\ 'whsc:bs': 'white-space-collapse:break-strict;', +\ 'whsc:ba': 'white-space-collapse:break-all;', +\ 'wob': 'word-break:|;', +\ 'wob:n': 'word-break:normal;', +\ 'wob:k': 'word-break:keep-all;', +\ 'wob:l': 'word-break:loose;', +\ 'wob:bs': 'word-break:break-strict;', +\ 'wob:ba': 'word-break:break-all;', +\ 'wos': 'word-spacing:|;', +\ 'wow': 'word-wrap:|;', +\ 'wow:nm': 'word-wrap:normal;', +\ 'wow:n': 'word-wrap:none;', +\ 'wow:u': 'word-wrap:unrestricted;', +\ 'wow:s': 'word-wrap:suppress;', +\ 'lts': 'letter-spacing:|;', +\ 'f': 'font:|;', +\ 'f+': 'font:1em Arial,sans-serif;', +\ 'fw': 'font-weight:|;', +\ 'fw:n': 'font-weight:normal;', +\ 'fw:b': 'font-weight:bold;', +\ 'fw:br': 'font-weight:bolder;', +\ 'fw:lr': 'font-weight:lighter;', +\ 'fs': 'font-style:|;', +\ 'fs:n': 'font-style:normal;', +\ 'fs:i': 'font-style:italic;', +\ 'fs:o': 'font-style:oblique;', +\ 'fv': 'font-variant:|;', +\ 'fv:n': 'font-variant:normal;', +\ 'fv:sc': 'font-variant:small-caps;', +\ 'fz': 'font-size:|;', +\ 'fza': 'font-size-adjust:|;', +\ 'fza:n': 'font-size-adjust:none;', +\ 'ff': 'font-family:|;', +\ 'ff:s': 'font-family:serif;', +\ 'ff:ss': 'font-family:sans-serif;', +\ 'ff:c': 'font-family:cursive;', +\ 'ff:f': 'font-family:fantasy;', +\ 'ff:m': 'font-family:monospace;', +\ 'fef': 'font-effect:|;', +\ 'fef:n': 'font-effect:none;', +\ 'fef:eg': 'font-effect:engrave;', +\ 'fef:eb': 'font-effect:emboss;', +\ 'fef:o': 'font-effect:outline;', +\ 'fem': 'font-emphasize:|;', +\ 'femp': 'font-emphasize-position:|;', +\ 'femp:b': 'font-emphasize-position:before;', +\ 'femp:a': 'font-emphasize-position:after;', +\ 'fems': 'font-emphasize-style:|;', +\ 'fems:n': 'font-emphasize-style:none;', +\ 'fems:ac': 'font-emphasize-style:accent;', +\ 'fems:dt': 'font-emphasize-style:dot;', +\ 'fems:c': 'font-emphasize-style:circle;', +\ 'fems:ds': 'font-emphasize-style:disc;', +\ 'fsm': 'font-smooth:|;', +\ 'fsm:a': 'font-smooth:auto;', +\ 'fsm:n': 'font-smooth:never;', +\ 'fsm:aw': 'font-smooth:always;', +\ 'fst': 'font-stretch:|;', +\ 'fst:n': 'font-stretch:normal;', +\ 'fst:uc': 'font-stretch:ultra-condensed;', +\ 'fst:ec': 'font-stretch:extra-condensed;', +\ 'fst:c': 'font-stretch:condensed;', +\ 'fst:sc': 'font-stretch:semi-condensed;', +\ 'fst:se': 'font-stretch:semi-expanded;', +\ 'fst:e': 'font-stretch:expanded;', +\ 'fst:ee': 'font-stretch:extra-expanded;', +\ 'fst:ue': 'font-stretch:ultra-expanded;', +\ 'op': 'opacity:|;', +\ 'op:ie': 'filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);', +\ 'op:ms': '-ms-filter:''progid:DXImageTransform.Microsoft.Alpha(Opacity=100)'';', +\ 'rz': 'resize:|;', +\ 'rz:n': 'resize:none;', +\ 'rz:b': 'resize:both;', +\ 'rz:h': 'resize:horizontal;', +\ 'rz:v': 'resize:vertical;', +\ 'cur': 'cursor:|;', +\ 'cur:a': 'cursor:auto;', +\ 'cur:d': 'cursor:default;', +\ 'cur:c': 'cursor:crosshair;', +\ 'cur:ha': 'cursor:hand;', +\ 'cur:he': 'cursor:help;', +\ 'cur:m': 'cursor:move;', +\ 'cur:p': 'cursor:pointer;', +\ 'cur:t': 'cursor:text;', +\ 'pgbb': 'page-break-before:|;', +\ 'pgbb:au': 'page-break-before:auto;', +\ 'pgbb:al': 'page-break-before:always;', +\ 'pgbb:l': 'page-break-before:left;', +\ 'pgbb:r': 'page-break-before:right;', +\ 'pgbi': 'page-break-inside:|;', +\ 'pgbi:au': 'page-break-inside:auto;', +\ 'pgbi:av': 'page-break-inside:avoid;', +\ 'pgba': 'page-break-after:|;', +\ 'pgba:au': 'page-break-after:auto;', +\ 'pgba:al': 'page-break-after:always;', +\ 'pgba:l': 'page-break-after:left;', +\ 'pgba:r': 'page-break-after:right;', +\ 'orp': 'orphans:|;', +\ 'wid': 'widows:|;' +\ }, +\ 'filters': 'fc' +\ }, +\ 'html': { +\ 'snippets': { +\ 'cc:ie6': "", +\ 'cc:ie': "", +\ 'cc:noie': "\n\t${child}|\n", +\ 'html:4t': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."", +\ 'html:4s': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."", +\ 'html:xt': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."", +\ 'html:xs': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."", +\ 'html:xxs': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."", +\ 'html:5': "\n" +\ ."\n" +\ ."\n" +\ ." \n" +\ ." \n" +\ ."\n" +\ ."\n\t${child}|\n\n" +\ ."" +\ }, +\ 'default_attributes': { +\ 'a': {'href': ''}, +\ 'a:link': {'href': 'http://|'}, +\ 'a:mail': {'href': 'mailto:|'}, +\ 'abbr': {'title': ''}, +\ 'acronym': {'title': ''}, +\ 'base': {'href': ''}, +\ 'bdo': {'dir': ''}, +\ 'bdo:r': {'dir': 'rtl'}, +\ 'bdo:l': {'dir': 'ltr'}, +\ 'del': {'datetime': '${datetime}'}, +\ 'ins': {'datetime': '${datetime}'}, +\ 'link:css': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|style.css'}, {'media': 'all'}], +\ 'link:print': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|print.css'}, {'media': 'print'}], +\ 'link:favicon': [{'rel': 'shortcut icon'}, {'type': 'image/x-icon'}, {'href': '|favicon.ico'}], +\ 'link:touch': [{'rel': 'apple-touch-icon'}, {'href': '|favicon.png'}], +\ 'link:rss': [{'rel': 'alternate'}, {'type': 'application/rss+xml'}, {'title': 'RSS'}, {'href': '|rss.xml'}], +\ 'link:atom': [{'rel': 'alternate'}, {'type': 'application/atom+xml'}, {'title': 'Atom'}, {'href': 'atom.xml'}], +\ 'meta:utf': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=UTF-8'}], +\ 'meta:win': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=Win-1251'}], +\ 'meta:compat': [{'http-equiv': 'X-UA-Compatible'}, {'content': 'IE=7'}], +\ 'style': {'type': 'text/css'}, +\ 'script': {'type': 'text/javascript'}, +\ 'script:src': [{'type': 'text/javascript'}, {'src': ''}], +\ 'img': [{'src': ''}, {'alt': ''}], +\ 'iframe': [{'src': ''}, {'frameborder': '0'}], +\ 'embed': [{'src': ''}, {'type': ''}], +\ 'object': [{'data': ''}, {'type': ''}], +\ 'param': [{'name': ''}, {'value': ''}], +\ 'map': {'name': ''}, +\ 'area': [{'shape': ''}, {'coords': ''}, {'href': ''}, {'alt': ''}], +\ 'area:d': [{'shape': 'default'}, {'href': ''}, {'alt': ''}], +\ 'area:c': [{'shape': 'circle'}, {'coords': ''}, {'href': ''}, {'alt': ''}], +\ 'area:r': [{'shape': 'rect'}, {'coords': ''}, {'href': ''}, {'alt': ''}], +\ 'area:p': [{'shape': 'poly'}, {'coords': ''}, {'href': ''}, {'alt': ''}], +\ 'link': [{'rel': 'stylesheet'}, {'href': ''}], +\ 'form': {'action': ''}, +\ 'form:get': {'action': '', 'method': 'get'}, +\ 'form:post': {'action': '', 'method': 'post'}, +\ 'form:upload': {'action': '', 'method': 'post', 'enctype': 'multipart/form-data'}, +\ 'label': {'for': ''}, +\ 'input': {'type': ''}, +\ 'input:hidden': [{'type': 'hidden'}, {'name': ''}], +\ 'input:h': [{'type': 'hidden'}, {'name': ''}], +\ 'input:text': [{'type': 'text'}, {'name': ''}, {'id': ''}], +\ 'input:t': [{'type': 'text'}, {'name': ''}, {'id': ''}], +\ 'input:search': [{'type': 'search'}, {'name': ''}, {'id': ''}], +\ 'input:email': [{'type': 'email'}, {'name': ''}, {'id': ''}], +\ 'input:url': [{'type': 'url'}, {'name': ''}, {'id': ''}], +\ 'input:password': [{'type': 'password'}, {'name': ''}, {'id': ''}], +\ 'input:p': [{'type': 'password'}, {'name': ''}, {'id': ''}], +\ 'input:datetime': [{'type': 'datetime'}, {'name': ''}, {'id': ''}], +\ 'input:date': [{'type': 'date'}, {'name': ''}, {'id': ''}], +\ 'input:datetime-local': [{'type': 'datetime-local'}, {'name': ''}, {'id': ''}], +\ 'input:month': [{'type': 'month'}, {'name': ''}, {'id': ''}], +\ 'input:week': [{'type': 'week'}, {'name': ''}, {'id': ''}], +\ 'input:time': [{'type': 'time'}, {'name': ''}, {'id': ''}], +\ 'input:number': [{'type': 'number'}, {'name': ''}, {'id': ''}], +\ 'input:color': [{'type': 'color'}, {'name': ''}, {'id': ''}], +\ 'input:checkbox': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], +\ 'input:c': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], +\ 'input:radio': [{'type': 'radio'}, {'name': ''}, {'id': ''}], +\ 'input:r': [{'type': 'radio'}, {'name': ''}, {'id': ''}], +\ 'input:range': [{'type': 'range'}, {'name': ''}, {'id': ''}], +\ 'input:file': [{'type': 'file'}, {'name': ''}, {'id': ''}], +\ 'input:f': [{'type': 'file'}, {'name': ''}, {'id': ''}], +\ 'input:submit': [{'type': 'submit'}, {'value': ''}], +\ 'input:s': [{'type': 'submit'}, {'value': ''}], +\ 'input:image': [{'type': 'image'}, {'src': ''}, {'alt': ''}], +\ 'input:i': [{'type': 'image'}, {'src': ''}, {'alt': ''}], +\ 'input:reset': [{'type': 'reset'}, {'value': ''}], +\ 'input:button': [{'type': 'button'}, {'value': ''}], +\ 'input:b': [{'type': 'button'}, {'value': ''}], +\ 'select': [{'name': ''}, {'id': ''}], +\ 'option': {'value': ''}, +\ 'textarea': [{'name': ''}, {'id': ''}, {'cols': '30'}, {'rows': '10'}], +\ 'menu:context': {'type': 'context'}, +\ 'menu:c': {'type': 'context'}, +\ 'menu:toolbar': {'type': 'toolbar'}, +\ 'menu:t': {'type': 'toolbar'}, +\ 'video': {'src': ''}, +\ 'audio': {'src': ''}, +\ 'html:xml': [{'xmlns': 'http://www.w3.org/1999/xhtml'}, {'xml:lang': '${lang}'}] +\ }, +\ 'aliases': { +\ 'link:*': 'link', +\ 'meta:*': 'meta', +\ 'area:*': 'area', +\ 'bdo:*': 'bdo', +\ 'form:*': 'form', +\ 'input:*': 'input', +\ 'script:*': 'script', +\ 'html:*': 'html', +\ 'a:*': 'a', +\ 'menu:*': 'menu', +\ 'bq': 'blockquote', +\ 'acr': 'acronym', +\ 'fig': 'figure', +\ 'ifr': 'iframe', +\ 'emb': 'embed', +\ 'obj': 'object', +\ 'src': 'source', +\ 'cap': 'caption', +\ 'colg': 'colgroup', +\ 'fst': 'fieldset', +\ 'btn': 'button', +\ 'optg': 'optgroup', +\ 'opt': 'option', +\ 'tarea': 'textarea', +\ 'leg': 'legend', +\ 'sect': 'section', +\ 'art': 'article', +\ 'hdr': 'header', +\ 'ftr': 'footer', +\ 'adr': 'address', +\ 'dlg': 'dialog', +\ 'str': 'strong', +\ 'sty': 'style', +\ 'prog': 'progress', +\ 'fset': 'fieldset', +\ 'datag': 'datagrid', +\ 'datal': 'datalist', +\ 'kg': 'keygen', +\ 'out': 'output', +\ 'det': 'details', +\ 'cmd': 'command' +\ }, +\ 'expandos': { +\ 'ol': 'ol>li', +\ 'ul': 'ul>li', +\ 'dl': 'dl>dt+dd', +\ 'map': 'map>area', +\ 'table': 'table>tr>td', +\ 'colgroup': 'colgroup>col', +\ 'colg': 'colgroup>col', +\ 'tr': 'tr>td', +\ 'select': 'select>option', +\ 'optgroup': 'optgroup>option', +\ 'optg': 'optgroup>option' +\ }, +\ 'empty_elements': 'area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,keygen,command', +\ 'block_elements': 'address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6,style', +\ 'inline_elements': 'a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,small,span,strike,strong,sub,sup,textarea,tt,u,var', +\ }, +\ 'xsl': { +\ 'extends': 'html', +\ 'default_attributes': { +\ 'tmatch': [{'match': ''}, {'mode': ''}], +\ 'tname': [{'name': ''}], +\ 'xsl:when': {'test': ''}, +\ 'var': [{'name': ''}, {'select': ''}], +\ 'vari': {'name': ''}, +\ 'if': {'test': ''}, +\ 'call': {'name': ''}, +\ 'attr': {'name': ''}, +\ 'wp': [{'name': ''}, {'select': ''}], +\ 'par': [{'name': ''}, {'select': ''}], +\ 'val': {'select': ''}, +\ 'co': {'select': ''}, +\ 'each': {'select': ''}, +\ 'ap': [{'select': ''}, {'mode': ''}] +\ }, +\ 'aliases': { +\ 'tmatch': 'xsl:template', +\ 'tname': 'xsl:template', +\ 'var': 'xsl:variable', +\ 'vari': 'xsl:variable', +\ 'if': 'xsl:if', +\ 'call': 'xsl:call-template', +\ 'wp': 'xsl:with-param', +\ 'par': 'xsl:param', +\ 'val': 'xsl:value-of', +\ 'attr': 'xsl:attribute', +\ 'co' : 'xsl:copy-of', +\ 'each' : 'xsl:for-each', +\ 'ap' : 'xsl:apply-templates' +\ }, +\ 'expandos': { +\ 'choose': 'xsl:choose>xsl:when+xsl:otherwise' +\ } +\ }, +\ 'haml': { +\ 'extends': 'html' +\ }, +\ 'xhtml': { +\ 'extends': 'html' +\ }, +\ 'mustache': { +\ 'extends': 'html' +\ } +\} + +if exists('g:user_zen_settings') + call s:zen_mergeConfig(s:zen_settings, g:user_zen_settings) +endif + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim:set et: diff --git a/.vim/colors/256-grayvim.vim b/.vim/colors/256-grayvim.vim new file mode 100644 index 0000000..fc81da0 --- /dev/null +++ b/.vim/colors/256-grayvim.vim @@ -0,0 +1,46 @@ +" Vim color file +" Maintainer: Piotr HusiatyÅ„ski + +set background=dark +set t_Co=256 +let g:colors_name="256-grayvim" + +let python_highlight_all = 1 +let c_gnu = 1 + + +hi Normal ctermfg=253 ctermbg=235 cterm=None +hi Cursor ctermfg=Red ctermbg=None cterm=None +hi SpecialKey ctermfg=87 ctermbg=None cterm=Bold +hi Directory ctermfg=76 ctermbg=None cterm=None +hi ErrorMsg ctermfg=124 ctermbg=White cterm=None +hi PreProc ctermfg=246 ctermbg=None cterm=Bold +hi Search ctermfg=160 ctermbg=232 cterm=Bold +hi Type ctermfg=75 ctermbg=None cterm=Bold +hi Statement ctermfg=75 ctermbg=None cterm=None +hi Comment ctermfg=244 ctermbg=None cterm=None +hi Identifier ctermfg=111 ctermbg=None cterm=Bold +hi DiffText ctermfg=88 ctermbg=250 cterm=None +hi Constant ctermfg=208 ctermbg=None cterm=None +hi Todo ctermfg=233 ctermbg=118 cterm=Bold +hi Error ctermfg=233 ctermbg=124 cterm=Bold +hi Special ctermfg=160 ctermbg=None cterm=Bold +hi Ignore ctermfg=220 ctermbg=None cterm=Bold +hi Underline ctermfg=244 ctermbg=None cterm=None + +hi FoldColumn ctermfg=247 ctermbg=None cterm=Bold +hi StatusLineNC ctermfg=247 ctermbg=234 cterm=None +hi StatusLine ctermfg=247 ctermbg=233 cterm=Bold +hi VertSplit ctermfg=247 ctermbg=234 cterm=Bold + +hi LineNr ctermfg=238 ctermbg=244 cterm=Bold +hi LineNr ctermfg=247 ctermbg=235 cterm=Bold +hi NonText ctermfg=87 ctermbg=None cterm=Bold + + +hi Pmenu ctermfg=White ctermbg=DarkGray cterm=None +hi PmenuSel ctermfg=None ctermbg=Gray cterm=Bold +hi PmenuSbar ctermfg=DarkGray ctermbg=DarkGray cterm=None +hi PmenuThumb ctermfg=Gray ctermbg=Gray cterm=None + +"vim: sw=4 diff --git a/.vim/colors/adaryn.vim b/.vim/colors/adaryn.vim new file mode 100644 index 0000000..1b17f22 --- /dev/null +++ b/.vim/colors/adaryn.vim @@ -0,0 +1,72 @@ +" Vim color file +" Maintainer: Glenn T. Norton +" Last Change: 2003-04-11 + +" adaryn - A color scheme named after my daughter, Adaryn. (A-da-rin) +" I like deep, sharp colors and this scheme is inspired by +" Bohdan Vlasyuk's darkblue. +" The cterm background is black since the dark blue was just too light. +" Also the cterm colors are very close to an old Borland C++ color setup. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "adaryn" + +hi Normal guifg=#fffff0 guibg=#00003F ctermfg=white ctermbg=Black +hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=red +hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=blue ctermbg=fg cterm=reverse + +hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline + +hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue + +hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline + +hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=#BDD094 gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none +hi ModeMsg guifg=#22cce2 ctermfg=lightblue +hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=#0030ff ctermfg=darkblue + +hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none + +hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold + +hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold + +hi LineNr guifg=#90f020 ctermfg=green cterm=none + +hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan +hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red + +hi Cursor guifg=#000020 guibg=#ffaf38 ctermfg=bg ctermbg=brown +hi lCursor guifg=#ffffff guibg=#000000 ctermfg=bg ctermbg=darkgreen + + +hi Comment guifg=yellow ctermfg=Yellow +hi Constant ctermfg=green guifg=green cterm=none +hi Special ctermfg=White guifg=#FFFFFF cterm=none gui=none +hi Identifier ctermfg=DarkRed guifg=#BDD094 cterm=none +hi Statement ctermfg=LightCyan cterm=none guifg=#A9A900 gui=none +hi PreProc ctermfg=DarkRed guifg=#ffffff gui=none cterm=none +hi type ctermfg=LightCyan guifg=LightBlue gui=none cterm=none +hi Underlined cterm=underline term=underline +hi Ignore guifg=bg ctermfg=bg + + diff --git a/.vim/colors/adrian.vim b/.vim/colors/adrian.vim new file mode 100644 index 0000000..ba830cd --- /dev/null +++ b/.vim/colors/adrian.vim @@ -0,0 +1,97 @@ +" Vim colorscheme file +" Maintainer: Adrian Nagle +" Last Change: 2001-09-25 07:48:15 Mountain Daylight Time +" URL: http://www.naglenet.org/vim/syntax/adrian.vim +" MAIN URL: http://www.naglenet.org/vim + +" This is my custom syntax file to override the defaults provided with Vim. +" This file should be located in $HOME/vimfiles/colors. + +" This file should automatically be sourced by $RUNTIMEPATH. + +" NOTE(S): +" *(1) +" The color definitions assumes and is intended for a black or dark +" background. + +" *(2) +" This file is specifically in Unix style EOL format so that I can simply +" copy this file between Windows and Unix systems. VIM can source files in +" with the UNIX EOL format (only instead of for DOS) in any +" operating system if the 'fileformats' is not empty and there is no +" just before the on the first line. See ':help :source_crnl' and +" ':help fileformats'. +" +" *(3) +" Move this file to adrian.vim for vim6.0aw. +" + + + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "adrian" + +" Normal is for the normal (unhighlighted) text and background. +" NonText is below the last line (~ lines). +highlight Normal guibg=Black guifg=Green +highlight Cursor guibg=Grey70 guifg=White +highlight NonText guibg=Grey80 +highlight StatusLine gui=bold guibg=DarkGrey guifg=Orange +highlight StatusLineNC guibg=DarkGrey guifg=Orange + +highlight Comment term=bold ctermfg=LightGrey guifg=#d1ddff +highlight Constant term=underline ctermfg=White guifg=#ffa0a0 +"highlight Number term=underline ctermfg=Yellow guifg=Yellow +highlight Identifier term=underline ctermfg=Cyan guifg=#40ffff +highlight Statement term=bold ctermfg=Yellow gui=bold guifg=#ffff60 +highlight PreProc term=underline ctermfg=Blue guifg=#ff4500 +highlight Type term=underline ctermfg=DarkGrey gui=bold guifg=#7d96ff +highlight Special term=bold ctermfg=Magenta guifg=Orange +highlight Ignore ctermfg=black guifg=bg +highlight Error ctermfg=White ctermbg=Red guifg=White guibg=Red +highlight Todo ctermfg=Blue ctermbg=Yellow guifg=Blue guibg=Yellow + +" Change the highlight of search matches (for use with :set hls). +highlight Search ctermfg=Black ctermbg=Yellow guifg=Black guibg=Yellow + +" Change the highlight of visual highlight. +highlight Visual cterm=NONE ctermfg=Black ctermbg=LightGrey gui=NONE guifg=Black guibg=Grey70 + +highlight Float ctermfg=Blue guifg=#88AAEE +highlight Exception ctermfg=Red ctermbg=White guifg=Red guibg=White +highlight Typedef ctermfg=White ctermbg=Blue gui=bold guifg=White guibg=Blue +highlight SpecialChar ctermfg=Black ctermbg=White guifg=Black guibg=White +highlight Delimiter ctermfg=White ctermbg=Black guifg=White guibg=Black +highlight SpecialComment ctermfg=Black ctermbg=Green guifg=Black guibg=Green + +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +highlight link String Constant +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Statement +"highlight link Float Number +highlight link Function Identifier +highlight link Conditional Type +highlight link Repeat Type +highlight link Label Type +highlight link Operator Type +highlight link Keyword Type +"highlight link Exception Type +highlight link Include PreProc +highlight link Define PreProc +highlight link Macro PreProc +highlight link PreCondit PreProc +highlight link StorageClass Type +highlight link Structure Type +"highlight link Typedef Type +"highlight link SpecialChar Special +highlight link Tag Special +"highlight link Delimiter Special +"highlight link SpecialComment Special +highlight link Debug Special + diff --git a/.vim/colors/aiseered.vim b/.vim/colors/aiseered.vim new file mode 100644 index 0000000..7e71108 --- /dev/null +++ b/.vim/colors/aiseered.vim @@ -0,0 +1,37 @@ +" gVim color file for working with files in GDL/VCG format. +" Works nice in conjunction with gdl.vim +" (see www.vim.org or www.aisee.com) +" Works fine for C/C++, too. + +" Author : Alexander A. Evstyugov-Babaev +" Version: 0.2 for gVim/Linux, +" tested with gVim 6.3.25 under Ubuntu Linux (Warty) +" by Jo Vermeulen +" Date : January 25th 2005 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="aiseered" + +hi Normal guifg=lightred guibg=#600000 +hi Cursor guifg=bg guibg=fg +hi ErrorMsg guibg=red ctermfg=1 +hi Search term=reverse ctermfg=darkred ctermbg=lightred guibg=lightred guifg=#060000 + +hi Comment guifg=#ffffff +hi Constant guifg=#88ddee +hi String guifg=#ffcc88 +hi Character guifg=#ffaa00 +hi Number guifg=#88ddee +hi Identifier guifg=#cfcfcf +hi Statement guifg=#eeff99 gui=bold +hi PreProc guifg=firebrick1 gui=italic +hi Type guifg=#88ffaa gui=none +hi Special guifg=#ffaa00 +hi SpecialChar guifg=#ffaa00 +hi StorageClass guifg=#ddaacc +hi Error guifg=red guibg=white diff --git a/.vim/colors/anotherdark.vim b/.vim/colors/anotherdark.vim new file mode 100644 index 0000000..72a3341 --- /dev/null +++ b/.vim/colors/anotherdark.vim @@ -0,0 +1,108 @@ +" Vim color file +" Maintainer: Hans Fugal +" Last Change: $Date: 2003/05/06 16:37:49 $ +" Last Change: $Date: 2003/06/02 19:40:21 $ +" URL: http://hans.fugal.net/vim/colors/desert.vim +" Version: $Id: desert.vim,v 1.6 2003/06/02 19:40:21 fugalh Exp $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="anotherdark" + +hi Normal guifg=White guibg=grey20 + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=grey30 +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guifg=khaki guibg=olivedrab +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=orange +hi Constant guifg=#ffa0a0 +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=indianred +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=lightblue +hi Constant ctermfg=darkred +hi Special ctermfg=red +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/.vim/colors/aqua.vim b/.vim/colors/aqua.vim new file mode 100644 index 0000000..483b6ac --- /dev/null +++ b/.vim/colors/aqua.vim @@ -0,0 +1,44 @@ +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 6 Apr 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="aqua" + +hi Normal guibg=steelblue guifg=linen +hi Cursor guibg=lightblue3 guifg=black gui=bold +hi VertSplit guifg=white guibg=navyblue gui=none +hi Folded guibg=darkblue guifg=white +hi FoldColumn guibg=lightgray guifg=navyblue +hi ModeMsg guifg=black guibg=steelblue1 +hi MoreMsg guifg=black guibg=steelblue1 +hi NonText guifg=white guibg=steelblue4 gui=none +hi Question guifg=snow +hi Search guibg=#FFFFFF guifg=midnightblue gui=bold +hi SpecialKey guifg=navyblue +hi StatusLine guibg=skyblue3 guifg=black gui=none +hi StatusLineNC guibg=skyblue1 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guifg=white guibg=royalblue4 gui=none +hi WarningMsg guifg=salmon4 guibg=gray60 gui=bold +hi Comment guifg=lightskyblue +hi Constant guifg=turquoise gui=bold +hi Identifier guifg=lightcyan +hi Statement guifg=royalblue4 +hi PreProc guifg=black gui=bold +hi Type guifg=lightgreen +hi Special guifg=navajowhite +hi Ignore guifg=grey29 +hi Todo guibg=black guifg=white +hi WildMenu guibg=aquamarine diff --git a/.vim/colors/astronaut.vim b/.vim/colors/astronaut.vim new file mode 100644 index 0000000..8caec73 --- /dev/null +++ b/.vim/colors/astronaut.vim @@ -0,0 +1,164 @@ +" astronaut.vim: a colorscheme +" Maintainer: Charles E. Campbell, Jr. +" Date: Feb 21, 2006 +" Version: 7 +" +" Usage: +" Put into your <.vimrc> file: +" color astronaut +" +" Optional Modifiers: +" let g:astronaut_bold=1 : term, cterm, and gui receive bold modifier +" let g:astronaut_dark=1 : dark colors used (otherwise some terminals +" make everything bold, which can be all one +" color) +" let g:astronaut_underline=1 : assume that underlining works on your terminal +" let g:astronaut_italic=1 : allows italic to be used in gui +" Examples: +" iris : let astronaut_dark=1 +" Linux xterm: no modifiers needed +" +" GetLatestVimScripts: 122 1 :AutoInstall: astronaut.vim + +set background=dark +hi clear +if exists( "syntax_on" ) + syntax reset +endif +let g:colors_name = "astronaut" +let g:loaded_astronaut = "v7" + +" --------------------------------------------------------------------- +" Default option values +if !exists("g:astronaut_bold") + " on some machines, notably SGIs, a bold qualifier means everything is + " one color (SGIs: yellow) + let g:astronaut_bold= 0 +endif +if !exists("g:astronaut_dark") + " this option, if true, means darkcolor (ex. darkred, darkmagenta, etc) + " is understood and wanted + let g:astronaut_dark= 0 +endif +if !exists("g:astronaut_underline") + let g:astronaut_underline= 1 +endif +if !exists("g:astronaut_italic") + let g:astronaut_italic= 0 +endif + +" --------------------------------------------------------------------- +" Settings based on options +if g:astronaut_bold != 0 + let s:bold=",bold" +else + let s:bold="" +endif + +if g:astronaut_italic != 0 + let s:italic= ",italic" +else + let s:italic= "" +endif + +if g:astronaut_dark != 0 + let s:black = "black" + let s:red = "darkred" + let s:green = "darkgreen" + let s:yellow = "darkyellow" + let s:blue = "darkblue" + let s:magenta = "darkmagenta" + let s:cyan = "darkcyan" + let s:white = "white" +else + let s:black = "black" + let s:red = "red" + let s:green = "green" + let s:yellow = "yellow" + let s:blue = "blue" + let s:magenta = "magenta" + let s:cyan = "cyan" + let s:white = "white" +endif + +if g:astronaut_underline != 0 + let s:underline= ",underline" + let s:ulbg = "" +else + let s:underline= "none" + if exists("g:astronaut_dark") + let s:ulbg = "ctermbg=darkmagenta guibg=magenta4" + else + let s:ulbg = "ctermbg=magenta guibg=magenta" + endif +endif + +" --------------------------------------------------------------------- +exe "hi Blue start= stop= ctermfg=".s:blue." guifg=blue guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Comment start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Conceal ctermfg=".s:blue." ctermbg=".s:black." guifg=Blue guibg=Black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Constant start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Cursor guifg=blue guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Cyan start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Debug start= stop= ctermfg=".s:magenta." ctermbg=".s:black." guifg=magenta guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Delimiter start= stop= ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffAdd ctermfg=".s:white." ctermbg=".s:magenta." guifg=White guibg=Magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffChange ctermfg=".s:yellow." ctermbg=".s:blue." guifg=Yellow guibg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffDelete ctermfg=".s:white." ctermbg=".s:blue." guifg=White guibg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi DiffText ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Directory start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Error start= stop= ctermfg=".s:white." ctermbg=".s:red." guifg=white guibg=red term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi ErrorMsg ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi FoldColumn start= stop= ctermfg=".s:cyan." ctermbg=".s:black." guifg=Cyan guibg=Brown term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Folded start= stop= ctermfg=".s:magenta." ctermbg=".s:black." guifg=magenta guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Function start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Green start= stop= ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Identifier start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Ignore ctermfg=".s:black ." guifg=bg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi IncSearch start= stop= ctermfg=".s:black ." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi LineNr ctermfg=".s:yellow." ".s:ulbg." guifg=Yellow term=none".s:underline.s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Magenta start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Menu guifg=black guibg=gray75 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi ModeMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi MoreMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi NonText ctermfg=".s:blue." guifg=Blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Normal start= stop= ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi PreProc start= stop= ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue3 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Question start= stop= ctermfg=".s:yellow." guifg=yellow term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Red start= stop= ctermfg=".s:red." guifg=red guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Scrollbar guifg=gray80 guibg=gray70 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Search start= stop= ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Special start= stop= ctermfg=".s:green." ctermbg=".s:blue." guifg=green guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi SpecialKey start= stop= ctermfg=".s:black." ctermbg=".s:magenta." guifg=black guibg=magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Statement start= stop= ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi StatusLine start= stop= ctermfg=".s:black." ctermbg=".s:cyan." guifg=black guibg=cyan term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi StatusLineNC start= stop= ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi String start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Subtitle start= stop= ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +if v:version >= 700 + exe "hi TabLine start= stop= ctermfg=".s:black." ctermbg=".s:blue." guifg=black guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:underline.s:italic + exe "hi TabLineSel start= stop= ctermfg=".s:green." ctermbg=".s:blue." guifg=green guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:underline.s:italic + exe "hi TabLineFill start= stop= ctermfg=".s:blue." ctermbg=".s:blue." guifg=blue guibg=blue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +endif +exe "hi Tags start= stop= ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue3 term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Title start= stop= ctermfg=".s:white." guifg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Todo start= stop= ctermfg=".s:white." ctermbg=".s:magenta." guifg=white guibg=magenta term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Type start= stop= ctermfg=".s:green." ".s:ulbg." guifg=seagreen1 term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi Underlined ctermfg=".s:green." ".s:ulbg." guifg=green term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi Unique start= stop= ctermfg=".s:blue." ctermbg=".s:white." guifg=blue3 guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltUnique start= stop= ctermfg=".s:magenta." ctermbg=".s:white." guifg=magenta guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltAltUnique start= stop= ctermfg=".s:black." ctermbg=".s:white." guifg=black guibg=white term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi VertSplit start= stop= ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Visual start= stop= ctermfg=black ctermbg=green guifg=Grey guibg=fg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi VisualNOS ".s:ulbg." term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline +exe "hi WarningMsg start= stop= ctermfg=".s:black." ctermbg=".s:yellow." guifg=black guibg=yellow term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi White start= stop= ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi WildMenu ctermfg=".s:black." ctermbg=".s:yellow." guifg=Black guibg=Yellow term=standout".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi Yellow start= stop= ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi lCursor guifg=bg guibg=fg term=none".s:bold." cterm=none".s:bold." gui=none".s:bold +exe "hi AltConstant start= stop= ctermfg=".s:yellow." ctermbg=".s:black." guifg=yellow guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:italic +exe "hi AltFunction start= stop= ctermfg=".s:green." ctermbg=".s:black." guifg=green guibg=black term=none".s:bold." cterm=none".s:bold." gui=none".s:bold.s:italic +exe "hi AltType start= stop= ctermfg=".s:green." ctermbg=".s:black." guifg=seagreen1 guibg=black term=none".s:underline.s:bold." cterm=none".s:bold.s:underline." gui=none".s:bold.s:underline.s:italic +exe "hi User1 ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue" +exe "hi User2 ctermfg=".s:cyan." ctermbg=".s:blue." guifg=cyan guibg=blue" +" vim: nowrap diff --git a/.vim/colors/asu1dark.vim b/.vim/colors/asu1dark.vim new file mode 100644 index 0000000..ce5f90f --- /dev/null +++ b/.vim/colors/asu1dark.vim @@ -0,0 +1,59 @@ +" Vim color file +" Maintainer: A. Sinan Unur +" Last Change: 2001/10/04 + +" Dark color scheme + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="asu1dark" + +" Console Color Scheme +hi Normal term=NONE cterm=NONE ctermfg=LightGray ctermbg=Black +hi NonText term=NONE cterm=NONE ctermfg=Brown ctermbg=Black +hi Function term=NONE cterm=NONE ctermfg=DarkCyan ctermbg=Black +hi Statement term=BOLD cterm=BOLD ctermfg=DarkBlue ctermbg=Black +hi Special term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi SpecialChar term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi Constant term=NONE cterm=NONE ctermfg=Blue ctermbg=Black +hi Comment term=NONE cterm=NONE ctermfg=DarkGray ctermbg=Black +hi Preproc term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi Type term=NONE cterm=NONE ctermfg=DarkMagenta ctermbg=Black +hi Identifier term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi StatusLine term=BOLD cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Visual term=NONE cterm=NONE ctermfg=White ctermbg=DarkCyan +hi Search term=NONE cterm=NONE ctermbg=Yellow ctermfg=DarkBlue +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=Black +hi WarningMsg term=NONE cterm=NONE ctermfg=Blue ctermbg=Yellow +hi Error term=NONE cterm=NONE ctermfg=DarkRed ctermbg=Gray +hi Cursor ctermfg=Black ctermbg=Cyan +hi LineNr term=NONE cterm=NONE ctermfg=Red ctermbg=Black + +" GUI Color Scheme +hi Normal gui=NONE guifg=White guibg=#110022 +hi NonText gui=NONE guifg=#ff9999 guibg=#444444 +hi Function gui=NONE guifg=#7788ff guibg=#110022 +hi Statement gui=BOLD guifg=Yellow guibg=#110022 +hi Special gui=NONE guifg=Cyan guibg=#110022 +hi Constant gui=NONE guifg=#ff9900 guibg=#110022 +hi Comment gui=NONE guifg=#99cc99 guibg=#110022 +hi Preproc gui=NONE guifg=#33ff66 guibg=#110022 +hi Type gui=NONE guifg=#ff5577 guibg=#110022 +hi Identifier gui=NONE guifg=Cyan guibg=#110022 +hi StatusLine gui=BOLD guifg=White guibg=#336600 +hi StatusLineNC gui=NONE guifg=Black guibg=#cccccc +hi Visual gui=NONE guifg=White guibg=#00aa33 +hi Search gui=BOLD guibg=Yellow guifg=DarkBlue +hi VertSplit gui=NONE guifg=White guibg=#666666 +hi Directory gui=NONE guifg=Green guibg=#110022 +hi WarningMsg gui=STANDOUT guifg=#0000cc guibg=Yellow +hi Error gui=NONE guifg=White guibg=Red +hi Cursor guifg=White guibg=#00ff33 +hi LineNr gui=NONE guifg=#cccccc guibg=#334444 +hi ModeMsg gui=NONE guifg=Blue guibg=White +hi Question gui=NONE guifg=#66ff99 guibg=#110022 diff --git a/.vim/colors/autumn.vim b/.vim/colors/autumn.vim new file mode 100644 index 0000000..f269b35 --- /dev/null +++ b/.vim/colors/autumn.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/14 Mon 16:41. +" version: 1.0 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal guifg=#404040 guibg=#fff4e8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#e0e040 +hi Search gui=NONE guifg=#544060 guibg=#f0c0ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi WarningMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi ModeMsg gui=NONE guifg=#d06000 guibg=NONE +hi MoreMsg gui=NONE guifg=#0090a0 guibg=NONE +hi Question gui=NONE guifg=#8000ff guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#904838 +hi StatusLineNC gui=BOLD guifg=#c0b0a0 guibg=#904838 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#904838 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff3030 + +" Diff +hi DiffText gui=NONE guifg=#2850a0 guibg=#c0d0f0 +hi DiffChange gui=NONE guifg=#208040 guibg=#c0f0d0 +hi DiffDelete gui=NONE guifg=#ff2020 guibg=#eaf2b0 +hi DiffAdd gui=NONE guifg=#ff2020 guibg=#eaf2b0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#0080f0 +hi lCursor gui=NONE guifg=#ffffff guibg=#8040ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8040ff + +" Fold +hi Folded gui=NONE guifg=#804030 guibg=#ffc0a0 +hi FoldColumn gui=NONE guifg=#a05040 guibg=#f8d8c4 + +" Other +hi Directory gui=NONE guifg=#7050ff guibg=NONE +hi LineNr gui=NONE guifg=#e0b090 guibg=NONE +hi NonText gui=BOLD guifg=#a05040 guibg=#ffe4d4 +hi SpecialKey gui=NONE guifg=#0080ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#804020 guibg=#ffc0a0 +" hi VisualNOS gui=NONE guifg=#604040 guibg=#e8dddd + +" Syntax group +hi Comment gui=NONE guifg=#ff5050 guibg=NONE +hi Constant gui=NONE guifg=#00884c guibg=NONE +hi Error gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi Identifier gui=NONE guifg=#b07800 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#0090a0 guibg=NONE +hi Special gui=NONE guifg=#8040f0 guibg=NONE +hi Statement gui=BOLD guifg=#80a030 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#0080f0 guibg=NONE +hi Type gui=BOLD guifg=#b06c58 guibg=NONE +hi Underlined gui=UNDERLINE guifg=blue guibg=NONE diff --git a/.vim/colors/autumn2.vim b/.vim/colors/autumn2.vim new file mode 100644 index 0000000..22a5ef0 --- /dev/null +++ b/.vim/colors/autumn2.vim @@ -0,0 +1,88 @@ +" Vim colour file +" Maintainer: Antony Scriven +" Last Change: 2003-06-12 +" +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal term=none cterm=none ctermfg=black ctermbg=White gui=none guifg=Black guibg=#f0f2f0 +hi Cursor term=none cterm=none ctermfg=white ctermbg=darkgrey gui=none guifg=black guibg=red +hi DiffAdd term=bold cterm=none ctermfg=white ctermbg=DarkBlue gui=none guifg=#aaeeaa guibg=#447744 +hi DiffChange term=bold cterm=none ctermfg=white ctermbg=DarkMagenta gui=none guifg=lightyellow guibg=#ddbb55 +hi DiffDelete term=bold cterm=none ctermfg=blue ctermbg=darkcyan gui=none guifg=#336633 guibg=#aaccaa +hi difftext term=reverse cterm=bold ctermfg=white ctermbg=red gui=none guifg=lightyellow guibg=#cc7733 +hi Directory term=none cterm=none ctermfg=Red ctermbg=white gui=none guifg=Red guibg=bg +hi ErrorMsg term=standout cterm=none ctermfg=white ctermbg=DarkRed gui=none guifg=white guibg=DarkRed +hi Folded term=reverse cterm=none ctermfg=darkblue ctermbg=lightgrey gui=none guifg=darkblue guibg=lightgrey +"8 col term +hi FoldColumn term=reverse cterm=none ctermfg=darkblue ctermbg=grey gui=none guifg=darkblue guibg=grey +hi IncSearch term=reverse cterm=none ctermfg=yellow ctermbg=darkgreen gui=none guifg=yellow guibg=#449944 +hi lCursor term=reverse cterm=none ctermfg=black ctermbg=cyan gui=none guifg=black guibg=Cyan +hi LineNr term=reverse cterm=none ctermfg=darkred ctermbg=grey gui=none guifg=brown guibg=lightgrey +hi ModeMsg term=bold cterm=none ctermfg=green ctermbg=darkgreen gui=none guifg=#007700 guibg=#aaccaa +hi MoreMsg term=bold cterm=none ctermfg=darkGreen ctermbg=white gui=none guifg=darkgreen guibg=bg +hi Question term=bold cterm=none ctermfg=darkGreen ctermbg=white gui=none guifg=darkgreen guibg=bg +hi Search term=reverse cterm=none ctermfg=black ctermbg=yellow gui=none guifg=black guibg=yellow +hi SpecialKey term=italic cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=lightblue guibg=bg +hi NonText term=bold cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=#c6c6c6 guibg=bg +hi StatusLine term=reverse cterm=none ctermfg=white ctermbg=black gui=none guifg=#80624d guibg=#ddd9b8 +hi Title term=bold cterm=none ctermfg=DarkMagenta ctermbg=white gui=none guifg=DarkMagenta guibg=bg +if has("gui_running") || &t_Co > 8 + hi Visual term=reverse cterm=none ctermfg=black ctermbg=lightgrey gui=none guifg=black guibg=lightgreen + hi VertSplit term=reverse cterm=none ctermfg=darkgrey ctermbg=darkgrey gui=none guifg=#c7c7c2 guibg=#d7d7d2 + hi StatusLineNC term=reverse cterm=none ctermfg=white ctermbg=darkgrey gui=none guifg=darkgrey guibg=#d7d7d2 + hi Comment term=italic cterm=none ctermfg=grey ctermbg=white gui=none guifg=#ccaaaa guibg=bg +else + hi Visual term=reverse cterm=none ctermfg=green ctermbg=darkgreen gui=none guifg=black guibg=lightgreen + hi VertSplit term=reverse cterm=none ctermfg=darkcyan ctermbg=darkblue gui=none guifg=darkgrey guibg=darkgrey + hi StatusLineNC term=reverse cterm=none ctermfg=white ctermbg=darkblue gui=none guifg=white guibg=darkgrey + hi Comment term=italic cterm=none ctermfg=darkcyan ctermbg=white gui=none guifg=#ccaaaa guibg=bg +endif +hi VisualNOS term=bold cterm=none ctermfg=grey ctermbg=black gui=none guifg=grey guibg=black +hi WarningMsg term=standout cterm=none ctermfg=Red ctermbg=white gui=none guifg=Red guibg=bg +hi WildMenu term=bold cterm=none ctermfg=darkblue ctermbg=yellow gui=none guifg=black guibg=lightyellow + +hi Constant term=underline cterm=none ctermfg=darkred ctermbg=bg gui=none guifg=#bb6666 guibg=bg +hi Special term=bold cterm=none ctermfg=darkcyan ctermbg=white gui=none guifg=darkcyan guibg=bg +hi identifier term=underline cterm=none ctermfg=darkmagenta ctermbg=white gui=none guifg=darkcyan guibg=bg +hi statement term=bold cterm=none ctermfg=darkgreen ctermbg=white gui=none guifg=#44aa44 guibg=bg +hi preproc term=underline cterm=none ctermfg=darkgrey ctermbg=white gui=none guifg=darkgrey guibg=bg +hi type term=none cterm=none ctermfg=brown ctermbg=white gui=none guifg=#bb9900 guibg=bg +hi underlined term=underline cterm=underline ctermfg=darkmagenta ctermbg=white gui=underline guifg=darkmagenta guibg=bg +hi Ignore term=italic cterm=none ctermfg=lightgrey ctermbg=white gui=none guifg=grey guibg=bg +"hi todo term=underline cterm=bold ctermfg=yellow ctermbg=brown gui=none guifg=#333333 guibg=#ddee33 +hi todo term=bold cterm=none ctermfg=yellow ctermbg=brown gui=bold guifg=#229900 guibg=#ddd9b8 +hi function term=bold cterm=none ctermfg=blue ctermbg=white gui=none guifg=#0055cc guibg=bg + +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +hi link vimfunction function + + +" vim: set ts=8 sw=8 et sts=8 tw=72 fo-=t ff=unix : diff --git a/.vim/colors/autumnleaf.vim b/.vim/colors/autumnleaf.vim new file mode 100644 index 0000000..f7af59f --- /dev/null +++ b/.vim/colors/autumnleaf.vim @@ -0,0 +1,154 @@ +" Vim color file +" Maintainer: Anders Korte +" Last Change: 17 Oct 2004 + +" AutumnLeaf color scheme 1.0 + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name="AutumnLeaf" + + +" Colors for the User Interface. + +hi Cursor guibg=#aa7733 guifg=#ffeebb gui=bold +hi Normal guibg=#fffdfa guifg=black gui=none +hi NonText guibg=#eafaea guifg=#000099 gui=bold +hi Visual guibg=#fff8cc guifg=black gui=none +" hi VisualNOS + +hi Linenr guibg=bg guifg=#999999 gui=none + +" Uncomment these if you use Diff...?? +" hi DiffText guibg=#cc0000 guifg=white gui=none +" hi DiffAdd guibg=#0000cc guifg=white gui=none +" hi DiffChange guibg=#990099 guifg=white gui=none +" hi DiffDelete guibg=#888888 guifg=#333333 gui=none + +hi Directory guibg=bg guifg=#337700 gui=none + +hi IncSearch guibg=#c8e8ff guifg=black gui=none +hi Search guibg=#c8e8ff guifg=black gui=none +hi SpecialKey guibg=bg guifg=fg gui=none +hi Titled guibg=bg guifg=fg gui=none + +hi ErrorMsg guibg=bg guifg=#cc0000 gui=bold +hi ModeMsg guibg=bg guifg=#003399 gui=none +hi link MoreMsg ModeMsg +hi link Question ModeMsg +hi WarningMsg guibg=bg guifg=#cc0000 gui=bold + +hi StatusLine guibg=#ffeebb guifg=black gui=bold +hi StatusLineNC guibg=#aa8866 guifg=#f8e8cc gui=none +hi VertSplit guibg=#aa8866 guifg=#ffe0bb gui=none + +" hi Folded +" hi FoldColumn +" hi SignColumn + + +" Colors for Syntax Highlighting. + +hi Comment guibg=#ddeedd guifg=#002200 gui=none + +hi Constant guibg=bg guifg=#003399 gui=bold +hi String guibg=bg guifg=#003399 gui=italic +hi Character guibg=bg guifg=#003399 gui=italic +hi Number guibg=bg guifg=#003399 gui=bold +hi Boolean guibg=bg guifg=#003399 gui=bold +hi Float guibg=bg guifg=#003399 gui=bold + +hi Identifier guibg=bg guifg=#003399 gui=none +hi Function guibg=bg guifg=#0055aa gui=bold +hi Statement guibg=bg guifg=#003399 gui=none + +hi Conditional guibg=bg guifg=#aa7733 gui=bold +hi Repeat guibg=bg guifg=#aa5544 gui=bold +hi link Label Conditional +hi Operator guibg=bg guifg=#aa7733 gui=bold +hi link Keyword Statement +hi Exception guibg=bg guifg=#228877 gui=bold + +hi PreProc guibg=bg guifg=#aa7733 gui=bold +hi Include guibg=bg guifg=#558811 gui=bold +hi link Define Include +hi link Macro Include +hi link PreCondit Include + +hi Type guibg=bg guifg=#007700 gui=bold +hi link StorageClass Type +hi link Structure Type +hi Typedef guibg=bg guifg=#009900 gui=italic + +hi Special guibg=bg guifg=fg gui=none +hi SpecialChar guibg=bg guifg=fg gui=bold +hi Tag guibg=bg guifg=#003399 gui=bold +hi link Delimiter Special +hi SpecialComment guibg=#dddddd guifg=#aa0000 gui=none +hi link Debug Special + +hi Underlined guibg=bg guifg=blue gui=underline + +hi Title guibg=bg guifg=fg gui=bold +hi Ignore guibg=bg guifg=#999999 gui=none +hi Error guibg=red guifg=white gui=none +hi Todo guibg=bg guifg=#aa0000 gui=none + + + +" The same in cterm colors. +hi Cursor ctermbg=6 ctermfg=14 +hi Normal ctermbg=15 ctermfg=0 +hi NonText ctermbg=10 ctermfg=1 +hi Visual ctermbg=14 ctermfg=0 +" hi VisualNOS +hi Linenr ctermbg=bg ctermfg=7 +" hi DiffText ctermbg=4 ctermfg=15 +" hi DiffAdd ctermbg=1 ctermfg=15 +" hi DiffChange ctermbg=5 ctermfg=15 +" hi DiffDelete ctermbg=7 ctermfg=8 +hi Directory ctermbg=bg ctermfg=2 +hi IncSearch ctermbg=9 ctermfg=0 +hi Search ctermbg=9 ctermfg=0 +hi SpecialKey ctermbg=bg ctermfg=fg +hi Titled ctermbg=bg ctermfg=fg +hi ErrorMsg ctermbg=bg ctermfg=12 +hi ModeMsg ctermbg=bg ctermfg=9 +hi WarningMsg ctermbg=bg ctermfg=12 +hi StatusLine ctermbg=14 ctermfg=0 +hi StatusLineNC ctermbg=6 ctermfg=14 +hi VertSplit ctermbg=6 ctermfg=14 +" hi Folded +" hi FoldColumn +" hi SignColumn +hi Comment ctermbg=10 ctermfg=2 +hi Constant ctermbg=bg ctermfg=9 +hi String ctermbg=bg ctermfg=9 cterm=italic +hi Character ctermbg=bg ctermfg=9 cterm=italic +hi Number ctermbg=bg ctermfg=9 cterm=bold +hi Boolean ctermbg=bg ctermfg=9 cterm=bold +hi Float ctermbg=bg ctermfg=9 cterm=bold +hi Function ctermbg=bg ctermfg=9 cterm=bold +hi Statement ctermbg=bg ctermfg=9 cterm=bold +hi Conditional ctermbg=bg ctermfg=6 cterm=bold +hi Repeat ctermbg=bg ctermfg=6 cterm=bold +hi Operator ctermbg=bg ctermfg=6 cterm=bold +hi Exception ctermbg=bg ctermfg=2 cterm=bold +hi PreProc ctermbg=bg ctermfg=6 +hi Include ctermbg=bg ctermfg=2 cterm=bold +hi Type ctermbg=bg ctermfg=2 cterm=bold +hi Typedef ctermbg=bg ctermfg=2 cterm=italic +hi Special ctermbg=bg ctermfg=fg cterm=bold +hi Tag ctermbg=bg ctermfg=9 cterm=bold +hi SpecialComment ctermbg=7 ctermfg=4 +hi Underlined ctermbg=bg ctermfg=9 cterm=underline +hi Title ctermbg=bg ctermfg=fg cterm=bold +hi Ignore ctermbg=bg ctermfg=7 +hi Error ctermbg=12 ctermfg=15 +hi Todo ctermbg=bg ctermfg=15 diff --git a/.vim/colors/baycomb.vim b/.vim/colors/baycomb.vim new file mode 100644 index 0000000..1311e72 --- /dev/null +++ b/.vim/colors/baycomb.vim @@ -0,0 +1,319 @@ +" Vim color file +" baycomb v2.4 +" http://www.vim.org/scripts/script.php?script_id=1454 +" +" Maintainer: Shawn Axsom +" +" * Place :colo baycomb in your VimRC/GVimRC file +" * Also add :set background=dark or :setbackground=light +" depending on your preference. +" +" - Thanks to Desert and OceanDeep for their color scheme +" file layouts +" - Thanks to Raimon Grau and Bob Lied for their feedback + +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="baycomb" + +if &background == "dark" +hi Normal guifg=#a0b4e0 guibg=#11121a "1a1823 +hi NonText guifg=#382920 guibg=bg + +hi Folded guibg=#232235 guifg=grey +hi FoldColumn guibg=#0a0a18 guifg=#dbcaa5 +hi LineNr guibg=#101124 guifg=#206aa9 +hi StatusLine guibg=#354070 guifg=#6880ea gui=none +hi StatusLineNC guibg=#2c3054 guifg=#5c6dbe gui=none +hi VertSplit guibg=#22253c guifg=#223355 gui=none + +hi tablinesel guibg=#515a71 guifg=#50aae5 gui=none +hi tabline guibg=#4d4d5f guifg=#5b7098 gui=none +hi tablinefill guibg=#2d2d3f guifg=#aaaaaa gui=none + +"hi SpellBad +"hi SpellCap +"hi SpellLocal +"hi SpellRare + +hi MatchParen guibg=#7b5a55 guifg=#001122 + +" syntax highlighting """""""""""""""""""""""""""""""""""""""" + + +hi Comment guifg=#349d58 guibg=bg +hi Title guifg=#e5e5ca gui=none +hi Underlined guifg=#bac5ba gui=none + +hi Statement guifg=#fca8ad gui=none "a080aa +hi Type guifg=#0490e8 gui=bold +hi Constant guifg=#5c78f0 "guibg=#111a2a +hi Number guifg=#4580b4 "guibg=#111a2a +hi PreProc guifg=#ba75cf +hi Special guifg=#aaaaca +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +hi Error guibg=#b03452 +hi Function guifg=#bab588 guibg=bg gui=bold +hi Identifier guifg=#5094c4 +"""""this section borrowed from OceanDeep/Midnight""""" +highlight Conditional gui=None guifg=#d0688d guibg=bg +highlight Repeat gui=None guifg=#e06070 guibg=bg +"hi Label gui=None guifg=LightGreen guibg=bg +highlight Operator gui=None guifg=#e8cdc0 guibg=bg +highlight Keyword gui=bold guifg=grey guibg=bg +highlight Exception gui=bold guifg=#d0a8ad guibg=bg +""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"end syntax highlighting """"""""""""""""""""""""""""""""""""" + +" highlight groups +"hi CursorIM +hi Directory guifg=#bbd0df +hi DiffText guibg=#004335 +hi DiffChange guibg=#685b5c +hi DiffAdd guibg=#0a4b8c +hi DiffDelete guifg=#300845 guibg=#200845 +hi ErrorMsg guibg=#ff4545 + +hi Cursor guibg=#cad5c0 guifg=#0000aa + + +hi Search guibg=darkyellow guifg=black +hi IncSearch guifg=#babeaa guibg=#3a4520 + +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi Question guifg=#AABBCC +hi SpecialKey guifg=#90dcb0 +hi Visual guifg=#102030 guibg=#80a0f0 +hi VisualNOS guifg=#201a30 guibg=#a3a5FF +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + + +" new Vim 7.0 items +hi Pmenu guibg=#3a6595 guifg=#9aadd5 +hi PmenuSel guibg=#4a85ba guifg=#b0d0f0 + + + + + +" color terminal definitions +hi Cursor ctermfg=black ctermbg=white +hi Normal ctermfg=grey ctermbg=black +hi Number ctermfg=darkgreen +highlight Operator ctermfg=yellow +highlight Conditional ctermfg=darkred +highlight Repeat ctermfg=darkred +hi Exception ctermfg=darkred +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkgrey +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE +hi Search ctermfg=black ctermbg=darkyellow cterm=NONE +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=darkcyan ctermbg=black +hi Question ctermfg=green +hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE +hi StatusLineNC ctermfg=grey ctermbg=darkblue cterm=NONE +hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE +hi Title ctermfg=yellow cterm=NONE +hi Visual ctermbg=grey ctermfg=blue cterm=NONE +hi VisualNOS ctermbg=grey ctermfg=blue cterm=NONE +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgreen ctermbg=darkblue cterm=NONE +hi FoldColumn ctermfg=yellow ctermbg=black +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkgreen ctermbg=black +hi Identifier ctermfg=cyan + +"set comments to grey on non-Windows OS's to make sure +"it is readable +if &term == "builtin_gui" || &term == "win32" + hi function ctermfg=grey + hi Type ctermfg=darkyellow ctermbg=darkblue + hi IncSearch ctermfg=black ctermbg=grey cterm=NONE + hi Search ctermfg=black ctermbg=darkgrey cterm=NONE +else + hi function ctermfg=white + hi Type ctermfg=grey + hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE + hi Search ctermfg=black ctermbg=darkyellow cterm=NONE +endif +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +hi Constant ctermfg=darkcyan +hi Special ctermfg=white +hi Statement ctermfg=yellow +hi PreProc ctermfg=darkred +hi Underlined ctermfg=cyan cterm=NONE +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + +" new Vim 7.0 items +hi Pmenu ctermbg=darkblue ctermfg=lightgrey +hi PmenuSel ctermbg=lightblue ctermfg=white + +hi tablinesel ctermfg=cyan ctermbg=blue +hi tabline ctermfg=black ctermbg=blue +hi tablinefill ctermfg=green ctermbg=darkblue +"vim: sw=4 +" +hi MatchParen ctermfg=black ctermbg=green + + +elseif &background == "light" + +hi Normal guifg=#003255 guibg=#e8ebf0 "greyish blue2 +hi NonText guifg=#382920 guibg=#152555 + +" syntax highlighting """""""""""""""""""""""""""""""""""""""" + +"set comments to grey on non-Windows OS's to make sure +"it is readable +if &term == "builtin_gui" || &term == "win32" + hi Comment guifg=#daddb8 guibg=#308ae5 +else + hi Comment guifg=darkyellow guibg=#207ada +endif +"""""""""""""""""""""""""""""""""""""""""""""""""""""" + +hi Title guifg=#857540 gui=none +hi Underlined guifg=#8a758a + +hi Statement guifg=#da302a gui=none +hi Type guifg=#307aca gui=none +hi Constant guifg=#3a40aa gui=none +hi PreProc guifg=#9570b5 +hi Identifier guifg=#856075 "gui=bold +hi Special guifg=#652a7a +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +hi Error guibg=#b03452 +"""""this section borrowed from OceanDeep/Midnight""""" +hi Number guifg=#006bcd +hi Function gui=None guifg=#d06d50 "or green 50b3b0 +highlight Conditional gui=None guifg=#a50a4a +highlight Repeat gui=None guifg=#700d8a +"hi Label gui=None guifg=LightGreen guibg=bg +highlight Operator gui=None guifg=#e0b045 +highlight Keyword gui=bold guifg=grey guibg=bg +highlight Exception gui=none guifg=#ea5460 +""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"end syntax highlighting """"""""""""""""""""""""""""""""""""" + +" highlight groups +"hi CursorIM +hi Directory guifg=#bbd0df +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=#ff4545 + +hi Cursor guibg=#cadaca guifg=#05293d + +hi FoldColumn guibg=#409ae0 guifg=darkgrey +"hi FoldColumn guibg=#83a5cd guifg=#70459F +hi LineNr guibg=#409ae0 guifg=darkblue gui=bold +"hi LineNr guibg=#081c30 guifg=#80a0dA +hi StatusLine guibg=#20b5fd guifg=#0a150d gui=none +hi StatusLineNC guibg=#0580da guifg=#302d34 gui=none + +hi Search guibg=#babdad guifg=#3a4520 +hi IncSearch guifg=#dadeca guibg=#3a4520 + +hi VertSplit guibg=#525f95 guifg=grey50 gui=none +hi Folded guibg=#252f5d guifg=#BBDDCC +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi Question guifg=#AABBCC +hi SpecialKey guifg=#308c70 +hi Visual guifg=#008FBF guibg=#33DFEF +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + + +" new Vim 7.0 items +hi Pmenu guibg=#3a6595 guifg=#9aadd5 +hi PmenuSel guibg=#4a85ba guifg=#b0d0f0 + + + + + +" color terminal definitions +hi Normal ctermfg=black ctermbg=white +hi Number ctermfg=blue +highlight Operator ctermfg=yellow +highlight Conditional ctermfg=magenta +highlight Repeat ctermfg=magenta +hi Exception ctermfg=red +hi function ctermfg=darkyellow +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkgrey ctermbg=grey +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch ctermfg=yellow ctermbg=darkyellow cterm=NONE +hi Search ctermfg=white ctermbg=darkyellow cterm=NONE +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=black ctermbg=blue +hi Question ctermfg=green +hi StatusLine ctermfg=cyan ctermbg=blue cterm=NONE +hi StatusLineNC ctermfg=grey ctermbg=darkblue cterm=NONE +hi VertSplit ctermfg=black ctermbg=black cterm=NONE +hi Title ctermfg=darkyellow ctermbg=white +hi Visual ctermbg=darkcyan ctermfg=cyan cterm=NONE +hi VisualNOS ctermbg=darkcyan ctermfg=white cterm=NONE +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=black ctermbg=white cterm=NONE +hi FoldColumn ctermfg=green ctermbg=blue +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 + +hi Comment ctermfg=grey ctermbg=blue + +hi Constant ctermfg=darkblue +hi Special ctermfg=darkmagenta +hi Identifier ctermfg=darkyellow cterm=NONE +hi Statement ctermfg=red +hi PreProc ctermfg=magenta +hi Type ctermfg=darkcyan "or darkcyan +hi Underlined ctermfg=black ctermbg=white +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + +" new Vim 7.0 items +hi Pmenu ctermbg=darkblue ctermfg=lightgrey +hi PmenuSel ctermbg=lightblue ctermfg=white + +"vim: sw=4 + +endif diff --git a/.vim/colors/bclear.vim b/.vim/colors/bclear.vim new file mode 100644 index 0000000..60a9cac --- /dev/null +++ b/.vim/colors/bclear.vim @@ -0,0 +1,67 @@ +" Vim colorscheme +" Name: bclear +" Maintainer: Ricky Cintron 'borosai' [borosai at gmail dot com] +" Last Change: 2009-08-04 + +hi clear +set background=light +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "bclear" + +"---GUI settings +hi SpecialKey guifg=#000000 guibg=#ffcde6 +hi NonText guifg=#969696 guibg=#f0f0f0 gui=none +hi Directory guifg=#78681a +hi ErrorMsg guifg=#ffffff guibg=#a01010 +hi IncSearch guifg=#ffffff guibg=#ff8000 gui=none +hi Search guifg=#000000 guibg=#ffd073 +hi MoreMsg guifg=#ffffff guibg=#3c960f gui=none +hi ModeMsg guifg=#323232 gui=none +hi LineNr guifg=#969696 guibg=#f0f0f0 +hi Question guifg=#000000 guibg=#ffde37 gui=none +hi StatusLine guifg=#ffffff guibg=#323232 gui=none +hi StatusLineNC guifg=#f0f0f0 guibg=#646464 gui=none +hi VertSplit guifg=#f0f0f0 guibg=#646464 gui=none +hi Title guifg=#323232 gui=none +hi Visual guifg=#ffffff guibg=#1994d1 +hi VisualNOS guifg=#000000 guibg=#1994d1 gui=none +hi WarningMsg guifg=#c8c8c8 guibg=#a01010 +hi WildMenu guifg=#ffffff guibg=#1994d1 +hi Folded guifg=#969696 guibg=#f0f0f0 +hi FoldColumn guifg=#969696 guibg=#f0f0f0 +hi DiffAdd guibg=#deffcd +hi DiffChange guibg=#dad7ff +hi DiffDelete guifg=#c8c8c8 guibg=#ffffff gui=none +hi DiffText guifg=#ffffff guibg=#767396 gui=none +hi SignColumn guifg=#969696 guibg=#f0f0f0 +hi SpellBad guifg=#000000 guibg=#fff5c3 guisp=#f01818 gui=undercurl +hi SpellCap guifg=#000000 guibg=#fff5c3 guisp=#14b9c8 gui=undercurl +hi SpellRare guifg=#000000 guibg=#fff5c3 guisp=#4cbe13 gui=undercurl +hi SpellLocal guifg=#000000 guibg=#fff5c3 guisp=#000000 gui=undercurl +hi Pmenu guifg=#ffffff guibg=#323232 +hi PmenuSel guifg=#ffffff guibg=#1994d1 +hi PmenuSbar guifg=#323232 guibg=#323232 +hi PmenuThumb guifg=#646464 guibg=#646464 gui=none +hi TabLine guifg=#f0f0f0 guibg=#646464 gui=none +hi TabLineSel guifg=#ffffff guibg=#323232 gui=none +hi TabLineFill guifg=#646464 guibg=#646464 gui=none +hi CursorColumn guibg=#e1f5ff +hi CursorLine guibg=#e1f5ff gui=none +hi Cursor guifg=#ffffff guibg=#323232 +hi lCursor guifg=#ffffff guibg=#004364 +hi MatchParen guifg=#ffffff guibg=#f00078 +hi Normal guifg=#323232 guibg=#ffffff +hi Comment guifg=#969696 +hi Constant guifg=#1094a0 +hi Special guifg=#dc6816 +hi Identifier guifg=#3c960f +hi Statement guifg=#3b6ac8 gui=none +hi PreProc guifg=#294a8c +hi Type guifg=#a00050 gui=none +hi Underlined guifg=#323232 gui=underline +hi Ignore guifg=#c8c8c8 +hi Error guifg=#ffffff guibg=#c81414 +hi Todo guifg=#c81414 guibg=#ffffff + diff --git a/.vim/colors/biogoo.vim b/.vim/colors/biogoo.vim new file mode 100644 index 0000000..e99dd14 --- /dev/null +++ b/.vim/colors/biogoo.vim @@ -0,0 +1,115 @@ +" Vim color File +" Name: biogoo +" Maintainer: Benjamin Esham +" Last Change: 2006-11-20 +" Version: 1.5 +" +" Colorful text on a light gray background. It's pretty easy on the eyes in +" my opinion. Any feedback is greatly appreciated! +" +" Installation: +" Copy to ~/.vim/colors; do :color biogoo +" +" Customization Options: +" Use a 'normal' cursor color: +" let g:biogoo_normal_cursor = 1 +" +" Props: +" Jani Nurminen's zenburn.vim as an example file. +" Scott F. and Matt F. for feature suggestions. +" Bill McCarthy for his Vim mailing list post about Vim 7 support. +" +" Version History: +" 1.5: should fully support Vim 7 now +" 1.4: more support for Vim 7: added the `MatchParen' group for ()[]{} matching +" 1.3: added support for Vim 7: added groups for the new spellchecking, and +" added a conditional to display Visual mode correctly in any version. +" 1.2: added `SpellErrors' group for use with vimspell. +" 1.1: added `IncSearch' group for improved visibility in incremental searches. +" 1.0: minor tweaks +" 0.95: initial release +" +" TODO: Add new groups as needed. E-mail me with any suggestions! + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "biogoo" + +hi Comment guifg=#0000c3 +hi Constant guifg=#0000ff +hi CursorColumn guibg=#ffffff +hi CursorLine guibg=#ffffff +hi Delimiter guifg=#00007f +hi DiffAdd guifg=#007f00 guibg=#e5e5e5 +hi DiffChange guifg=#00007f guibg=#e5e5e5 +hi DiffDelete guifg=#7f0000 guibg=#e5e5e5 +hi DiffText guifg=#ee0000 guibg=#e5e5e5 +hi Directory guifg=#b85d00 +hi Error guifg=#d6d6d6 guibg=#7f0000 +hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=bold +hi Float guifg=#b85d00 +hi FoldColumn guifg=#00007f guibg=#e5e5e5 +hi Folded guifg=#00007f guibg=#e5e5e5 +hi Function guifg=#7f0000 +hi Identifier guifg=#004000 +hi Include guifg=#295498 gui=bold +hi IncSearch guifg=#ffffff guibg=#0000ff gui=bold +hi LineNr guifg=#303030 guibg=#e5e5e5 gui=underline +hi Keyword guifg=#00007f +hi Macro guifg=#295498 +hi MatchParen guifg=#ffffff guibg=#00a000 +hi ModeMsg guifg=#00007f +hi MoreMsg guifg=#00007f +hi NonText guifg=#007f00 +hi Normal guifg=#000000 guibg=#d6d6d6 +hi Number guifg=#b85d00 +hi Operator guifg=#00007f +hi Pmenu guifg=#000000 guibg=#cc9999 +hi PmenuSel guifg=#ffffff guibg=#993333 +hi PmenuSbar guibg=#99cc99 +hi PmenuThumb guifg=#339933 +hi PreCondit guifg=#295498 gui=bold +hi PreProc guifg=#0c3b6b gui=bold +hi Question guifg=#00007f +hi Search guibg=#ffff00 +hi Special guifg=#007f00 +hi SpecialKey guifg=#00007f +hi SpellBad guifg=#ffffff guibg=#7f0000 gui=undercurl guisp=#d6d6d6 +hi SpellCap guifg=#ffffff guibg=#7f007f gui=undercurl guisp=#d6d6d6 +hi SpellLocal guifg=#ffffff guibg=#007f7f gui=undercurl guisp=#d6d6d6 +hi SpellRare guifg=#ffffff guibg=#b85d00 gui=undercurl guisp=#d6d6d6 +hi Statement guifg=#00007f gui=none +hi StatusLine guifg=#00007f guibg=#ffffff +hi StatusLineNC guifg=#676767 guibg=#ffffff +hi String guifg=#d10000 +hi TabLine guifg=#222222 guibg=#d6d6d6 +hi TabLineFill guifg=#d6d6d6 +hi TabLineSel guifg=#00007f guibg=#eeeeee gui=bold +hi Title guifg=#404040 gui=bold +hi Todo guifg=#00007f guibg=#e5e5e5 gui=underline +hi Type guifg=#540054 gui=bold +hi Underlined guifg=#b85d00 +hi VertSplit guifg=#676767 guibg=#ffffff +if version < 700 + hi Visual guifg=#7f7f7f guibg=#ffffff +else + hi Visual guifg=#ffffff guibg=#7f7f7f +endif +hi VisualNOS guifg=#007f00 guibg=#e5e5e5 +hi WarningMsg guifg=#500000 +hi WildMenu guifg=#540054 + +" Non-standard highlighting (e.g. for plugins) + +" vimspell +hi SpellErrors guifg=#ffffff guibg=#7f0000 gui=undercurl guisp=#d6d6d6 + +if !exists("g:biogoo_normal_cursor") + " use a gray-on-blue cursor + hi Cursor guifg=#ffffff guibg=#00007f +endif + +" vim:noet:ts=4 sw=4 diff --git a/.vim/colors/blacksea.vim b/.vim/colors/blacksea.vim new file mode 100644 index 0000000..a98b7ca --- /dev/null +++ b/.vim/colors/blacksea.vim @@ -0,0 +1,37 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2007 Jun 13 + +" This is a dark version/opposite of "seashell". The cterm version of this is +" very similar to "evening". +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "BlackSea" + +hi Normal guibg=Black guifg=seashell ctermfg=White +hi NonText guifg=LavenderBlush ctermfg=LightMagenta +hi DiffDelete guibg=DarkRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=Gray30 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=LightBlue +hi PreProc ctermfg=Magenta +hi StatusLine guibg=#1f001f guifg=DarkSeaGreen cterm=NONE ctermfg=White ctermbg=DarkGreen +hi StatusLineNC guifg=Gray +hi VertSplit guifg=Gray +hi Type gui=NONE +hi Identifier guifg=Cyan +hi Statement guifg=brown3 ctermfg=DarkRed +hi Search guibg=Gold3 ctermfg=White +hi Folded guibg=gray20 +hi FoldColumn guibg=gray10 + +" Original values: +"hi Constant guifg=DeepPink +"hi PreProc guifg=Magenta ctermfg=Magenta diff --git a/.vim/colors/bluegreen.vim b/.vim/colors/bluegreen.vim new file mode 100644 index 0000000..fd32bfe --- /dev/null +++ b/.vim/colors/bluegreen.vim @@ -0,0 +1,50 @@ +" Vim color file +" Maintainer: +" Last Change: +" URL: + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mine" + +hi Normal guifg=White guibg=#061A3E + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guibg=#FFC0C0 guifg=black +hi FoldColumn guibg=#800080 guifg=tan +"hi IncSearch cterm=none ctermbg=blue ctermfg=grey guifg=slategrey guibg=khaki +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E +hi Search guibg=fg guifg=bg +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#004443 guifg=#c0ffff gui=none +hi StatusLineNC guibg=#067C7B guifg=#004443 gui=bold +hi Title guifg=#8DB8C3 +hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=#DABEA2 +hi Constant guifg=#72A5E4 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=#7E75B5 +hi PreProc guifg=#14F07C +hi Type guifg=#A9EE8A +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A + +"vim: ts=4 diff --git a/.vim/colors/borland.vim b/.vim/colors/borland.vim new file mode 100644 index 0000000..c39c101 --- /dev/null +++ b/.vim/colors/borland.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Yegappan Lakshmanan +" Last Change: 2001 Sep 9 + +" Color settings similar to that used in Borland IDE's. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="borland" + +hi Normal term=NONE cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi Normal gui=NONE guifg=Yellow guibg=DarkBlue +hi NonText term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi NonText gui=NONE guifg=White guibg=DarkBlue + +hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Statement gui=NONE guifg=White guibg=DarkBlue +hi Special term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Special gui=NONE guifg=Cyan guibg=DarkBlue +hi Constant term=NONE cterm=NONE ctermfg=Magenta ctermbg=DarkBlue +hi Constant gui=NONE guifg=Magenta guibg=DarkBlue +hi Comment term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Comment gui=NONE guifg=Gray guibg=DarkBlue +hi Preproc term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Preproc gui=NONE guifg=Green guibg=DarkBlue +hi Type term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Type gui=NONE guifg=White guibg=DarkBlue +hi Identifier term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Identifier gui=NONE guifg=White guibg=DarkBlue + +hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White +hi StatusLine gui=bold guifg=Black guibg=White + +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi StatusLineNC gui=NONE guifg=Black guibg=White + +hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan +hi Visual gui=NONE guifg=Black guibg=DarkCyan + +hi Search term=NONE cterm=NONE ctermbg=Gray +hi Search gui=NONE guibg=Gray + +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi VertSplit gui=NONE guifg=Black guibg=White + +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Directory gui=NONE guifg=Green guibg=DarkBlue + +hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue +hi WarningMsg gui=standout guifg=Red guibg=DarkBlue + +hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red +hi Error gui=NONE guifg=White guibg=Red + +hi Cursor ctermfg=Black ctermbg=Yellow +hi Cursor guifg=Black guibg=Yellow + diff --git a/.vim/colors/breeze.vim b/.vim/colors/breeze.vim new file mode 100644 index 0000000..21cf417 --- /dev/null +++ b/.vim/colors/breeze.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:08. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "breeze" + +hi Normal guifg=#ffffff guibg=#005c70 + +" Search +hi IncSearch gui=UNDERLINE guifg=#60ffff guibg=#6060ff +hi Search gui=NONE guifg=#ffffff guibg=#6060ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi ModeMsg gui=NONE guifg=#60ffff guibg=NONE +hi MoreMsg gui=NONE guifg=#ffc0ff guibg=NONE +hi Question gui=NONE guifg=#ffff60 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#00c8f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0088c0 +" hi Folded gui=NONE guifg=#ffffff guibg=#2080d0 +hi FoldColumn gui=NONE guifg=#60e0e0 guibg=#006c7f + +" Other +hi Directory gui=NONE guifg=#00e0ff guibg=NONE +hi LineNr gui=NONE guifg=#60a8bc guibg=NONE +hi NonText gui=BOLD guifg=#00c0c0 guibg=#006276 +hi SpecialKey gui=NONE guifg=#e0a0ff guibg=NONE +hi Title gui=BOLD guifg=#ffffff guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060d0 +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060d0 + +" Syntax group +hi Comment gui=NONE guifg=#c8d0d0 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi Identifier gui=NONE guifg=#cacaff guibg=NONE +hi Ignore gui=NONE guifg=#006074 guibg=NONE +hi PreProc gui=NONE guifg=#ffc0ff guibg=NONE +hi Special gui=NONE guifg=#ffd074 guibg=NONE +hi Statement gui=NONE guifg=#ffff80 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffb0b0 guibg=NONE +hi Type gui=NONE guifg=#80ffa0 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#ffffff guibg=NONE diff --git a/.vim/colors/brookstream.vim b/.vim/colors/brookstream.vim new file mode 100644 index 0000000..ee907c6 --- /dev/null +++ b/.vim/colors/brookstream.vim @@ -0,0 +1,83 @@ +"-------------------------------------------------------------------- +" Name Of File: brookstream.vim. +" Description: Gvim colorscheme, works best with version 6.1 GUI . +" Maintainer: Peter Bäckström. +" Creator: Peter Bäckström. +" URL: http://www.brookstream.org (Swedish). +" Credits: Inspiration from the darkdot scheme. +" Last Change: Friday, April 13, 2003. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="brookstream" + +"-------------------------------------------------------------------- + +hi Normal gui=none guibg=#000000 guifg=#bbbbbb +hi Cursor guibg=#44ff44 guifg=#000000 +hi Directory guifg=#44ffff +hi DiffAdd guibg=#080808 guifg=#ffff00 +hi DiffDelete guibg=#080808 guifg=#444444 +hi DiffChange guibg=#080808 guifg=#ffffff +hi DiffText guibg=#080808 guifg=#bb0000 +hi ErrorMsg guibg=#880000 guifg=#ffffff +hi Folded guifg=#000088 +hi IncSearch guibg=#000000 guifg=#bbcccc +hi LineNr guibg=#050505 guifg=#4682b4 +hi ModeMsg guifg=#ffffff +hi MoreMsg guifg=#44ff44 +hi NonText guifg=#4444ff +hi Question guifg=#ffff00 +hi SpecialKey guifg=#4444ff +hi StatusLine gui=none guibg=#2f4f4f guifg=#ffffff +hi StatusLineNC gui=none guibg=#bbbbbb guifg=#000000 +hi Title guifg=#ffffff +hi Visual gui=none guibg=#bbbbbb guifg=#000000 +hi WarningMsg guifg=#ffff00 + +" syntax highlighting groups ---------------------------------------- + +hi Comment guifg=#696969 +hi Constant guifg=#00aaaa +hi Identifier guifg=#00e5ee +hi Statement guifg=#00ffff +hi PreProc guifg=#8470ff +hi Type guifg=#ffffff +hi Special gui=none guifg=#87cefa +hi Underlined gui=bold guifg=#4444ff +hi Ignore guifg=#444444 +hi Error guibg=#000000 guifg=#bb0000 +hi Todo guibg=#aa0006 guifg=#fff300 +hi Operator gui=none guifg=#00bfff +hi Function guifg=#1e90ff +hi String gui=None guifg=#4682b4 +hi Boolean guifg=#9bcd9b + +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +"hi link Float Number +"hi link Conditional Statement +"hi link Label Statement +"hi link Keyword Statement +"hi link Exception Statement +"hi link Repeat Statement +"hi link Include PreProc +"hi link Define PreProc +"hi link Macro PreProc +"hi link PreCondit PreProc +"hi link StorageClass Type +"hi link Structure Type +"hi link Typedef Type +"hi link Tag Special +"hi link Delimiter Special +"hi link SpecialComment Special +"hi link Debug Special +"hi link FoldColumn Folded + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/buttercream.vim b/.vim/colors/buttercream.vim new file mode 100644 index 0000000..05931f8 --- /dev/null +++ b/.vim/colors/buttercream.vim @@ -0,0 +1,59 @@ +" Vim color file +" vim: tw=0 ts=8 sw=4 +" Scriptname: buttercream +" Maintainer: Håkan Wikström +" Version: 1.1 +" Last Change: 20060413 +" As of now only gui is supported +" Based on the theme fog theme by Thomas R. Kimpton + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "buttercream" + +" Highlight Foreground Background Extras + +hi Normal guifg=#213a58 guibg=#ffffde +hi NonText guifg=LightBlue guibg=#eee9bf gui=bold +hi Comment guifg=#2f8e99 +hi Constant guifg=#7070a0 +hi Statement guifg=DarkGreen gui=bold +hi identifier guifg=DarkGreen +hi preproc guifg=#408040 +hi type guifg=DarkBlue +hi label guifg=#c06000 +hi operator guifg=DarkGreen gui=bold +hi StorageClass guifg=#a02060 gui=bold +hi Number guifg=Blue +hi Special guifg=#aa8822 +hi Cursor guifg=LightGrey guibg=#880088 +hi lCursor guifg=Black guibg=Cyan +hi ErrorMsg guifg=White guibg=DarkRed +hi DiffText guibg=DarkRed gui=bold +hi Directory guifg=DarkGrey gui=underline +hi LineNr guifg=#ccaa22 +hi MoreMsg guifg=SeaGreen gui=bold +hi Question guifg=DarkGreen gui=bold +hi Search guifg=Black guibg=#887722 +hi SpecialKey guifg=Blue +hi SpecialChar guifg=DarkGrey gui=bold +hi Title guifg=DarkMagenta gui=underline +hi WarningMsg guifg=DarkBlue guibg=#9999cc +hi WildMenu guifg=Black guibg=Yellow gui=underline +hi Folded guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBLue guibg=Grey +hi DiffAdd guibg=DarkBlue +hi DiffChange guibg=DarkMagenta +hi DiffDelete guifg=Blue guibg=DarkCyan gui=bold +hi Ignore guifg=grey90 +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual guifg=LightGrey gui=reverse +hi VisualNOS gui=underline,bold +hi Todo guibg=#ccaa22 gui=bold,underline diff --git a/.vim/colors/calmar256-dark.vim b/.vim/colors/calmar256-dark.vim new file mode 100644 index 0000000..7c823fb --- /dev/null +++ b/.vim/colors/calmar256-dark.vim @@ -0,0 +1,247 @@ +" Vim color file: calmar256-dark.vim +" Last Change: 21. Aug 2007 +" License: public domain +" Maintainer:: calmar +" +" for a 256 color capable terminal like xterm-256color, ... or gvim as well +" "{{{ +" it only works in such a terminal and when you have: +" set t_Co=256 +" in your vimrc"}}} + +" {{{ t_Co=256 is set - check +if &t_Co != 256 && ! has("gui_running") + echomsg "" + echomsg "write 'set t_Co=256' in your .vimrc or this file won't load" + echomsg "" + finish +endif +" }}} +" {{{ reset colors and set colors_name and store cpo setting +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "calmar256-dark" + +let s:save_cpo = &cpo +set cpo&vim +" }}} + +" FORMAT:"{{{ +" +" \ ["color-group", "term-style", "foreground-color", "background-color", "gui-style", "under-curl-color" ], +" +" 'term-style'/'gui-style' can be: +" bold, underline, undercurl, reverse, inverse, italic, standout, NONE +" +" if gui-style is empty, the term-style value is used for the gui +" +" (Note: not everything is supported by a terminal nor the gui) +" +" besides empty values defaults to 'NONE" +" +" may also check: :help highlight-groups +" :help hl- " +" +" for the Color numbers (0-255) for the foreground/background and under-curl-colors: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html + +"}}} +"============================================================ +" EDIT/ADD your style/colors below +"------------------------------------------------------------ + +" Format: \ ["color-group", +" "term-style", +" "foreground-color", +" "background-color", +" "gui-style", +" "under-curl-color" ], + +let s:colors256 = [ + \ ["Normal", "", "41", "232", "", "" ], + \ ["Cursor", "", "255", "33", "", "" ], + \ ["CursorLine", "", "", "233", "", "" ], + \ ["CursorColumn", "", "", "223", "", "" ], + \ ["Incsearch", "bold", "195", "124", "", "" ], + \ ["Search", "", "", "52", "", "" ], + \ ["ErrorMsg", "bold", "16", "202", "", "" ], + \ ["WarningMsg", "bold", "16", "190", "", "" ], + \ ["ModeMsg", "bold", "226", "18", "", "" ], + \ ["MoreMsg", "bold", "16", "154", "", "" ], + \ ["Question", "bold", "70", "", "", "" ], + \ ["StatusLine", "", "190", "22", "", "" ], + \ ["StatusLineNC", "", "84", "234", "", "" ], + \ ["User1", "bold", "28", "", "", "" ], + \ ["User2", "bold", "39", "", "", "" ], + \ ["VertSplit", "", "84", "22", "", "" ], + \ ["WildMenu", "bold", "87", "35", "", "" ], + \ ["DiffText", "", "16", "190", "", "" ], + \ ["DiffChange", "", "18", "83", "", "" ], + \ ["DiffDelete", "", "79", "124", "", "" ], + \ ["DiffAdd", "", "79", "21", "", "" ], + \ ["Folded", "bold", "38", "234", "", "" ], + \ ["FoldedColumn", "", "39", "190", "", "" ], + \ ["FoldColumn", "", "38", "234", "", "" ], + \ ["Directory", "", "28", "", "", "" ], + \ ["LineNr", "", "28", "16", "", "" ], + \ ["NonText", "", "244", "16", "", "" ], + \ ["SpecialKey", "", "190", "", "", "" ], + \ ["Title", "bold", "98", "", "", "" ], + \ ["Visual", "", "", "238", "", "" ], + \ ["Comment", "", "37", "", "", "" ], + \ ["Costant", "", "73", "", "", "" ], + \ ["String", "", "190", "", "", "" ], + \ ["Error", "", "69", "", "", "" ], + \ ["Identifier", "", "81", "", "", "" ], + \ ["Ignore", "", "", "", "", "" ], + \ ["Number", "bold", "50", "", "", "" ], + \ ["PreProc", "", "178", "", "", "" ], + \ ["Special", "", "15", "234", "", "" ], + \ ["SpecialChar", "", "155", "", "", "" ], + \ ["Statement", "", "36", "", "", "" ], + \ ["Todo", "bold", "16", "148", "", "" ], + \ ["Type", "", "71", "", "", "" ], + \ ["Underlined", "bold", "77", "", "", "" ], + \ ["TaglistTagName","bold", "48", "124", "", "" ]] + +let s:colorvim7 = [ + \ ["Pmenu", "", "228", "236", "", "" ], + \ ["PmenuSel", "bold", "226", "232", "", "" ], + \ ["PmenuSbar", "", "119", "16", "", "" ], + \ ["PmenuThumb", "", "11", "16", "", "" ], + \ ["SpellBad", "underline", "","", "undercurl","160"], + \ ["SpellRare", "", "82", "233", "", "" ], + \ ["SpellLocal", "", "227", "234", "", "" ], + \ ["SpellCap", "", "46", "236", "", "" ], + \ ["MatchParen", "bold", "15", "22", "", "" ], + \ ["TabLine", "", "253", "30", "", "" ], + \ ["TabLineSel", "bold", "247", "16", "", "" ], + \ ["TabLineFill", "", "247", "16", "", "" ]] + +"============================================================ +" * NO NEED * to edit below (unless bugfixing) +"============================================================ +" +" {{{ change empty fields to "NONE" + +for s:col in s:colors256 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor + +for s:col in s:colorvim7 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor +" }}} +" {{{ check args helper function +function! s:checkargs(arg) + if a:arg+0 == 0 && a:arg != "0" "its a string + return a:arg + else + return s:cmap[a:arg+0] "get rgb color based on the number + endif +endfunction +" }}} +" {{{ guisetcolor helper function +" +function! s:guisetcolor(colarg) + " if gui-style is empty use (c)term-style also for gui + if a:colarg[4] == "" + let guival = a:colarg[1] + else + let guival = a:colarg[4] + endif + + let fg = s:checkargs(a:colarg[2]) + let bg = s:checkargs(a:colarg[3]) + let sp = s:checkargs(a:colarg[5]) + + exec "hi ".a:colarg[0]." gui=".guival." guifg=".fg." guibg=".bg." guisp=".sp +endfunction +" }}} +" {{{ color setup for terminal +if ! has("gui_running") + for s:col in s:colors256 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + if v:version >= 700 + for s:col in s:colorvim7 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + endif +else +" }}} + " color-mapping array {{{ + " number of vim colors and #html colors equivalent for gui + let s:cmap = [ + \ "#000000", "#800000", "#008000", "#808000", + \ "#000080", "#800080", "#008080", "#c0c0c0", + \ "#808080", "#ff0000", "#00ff00", "#ffff00", + \ "#0000ff", "#ff00ff", "#00ffff", "#ffffff", + \ + \ "#000000", "#00005f", "#000087", "#0000af", "#0000d7", "#0000ff", + \ "#005f00", "#005f5f", "#005f87", "#005faf", "#005fd7", "#005fff", + \ "#008700", "#00875f", "#008787", "#0087af", "#0087d7", "#0087ff", + \ "#00af00", "#00af5f", "#00af87", "#00afaf", "#00afd7", "#00afff", + \ "#00d700", "#00d75f", "#00d787", "#00d7af", "#00d7d7", "#00d7ff", + \ "#00ff00", "#00ff5f", "#00ff87", "#00ffaf", "#00ffd7", "#00ffff", + \ "#5f0000", "#5f005f", "#5f0087", "#5f00af", "#5f00d7", "#5f00ff", + \ "#5f5f00", "#5f5f5f", "#5f5f87", "#5f5faf", "#5f5fd7", "#5f5fff", + \ "#5f8700", "#5f875f", "#5f8787", "#5f87af", "#5f87d7", "#5f87ff", + \ "#5faf00", "#5faf5f", "#5faf87", "#5fafaf", "#5fafd7", "#5fafff", + \ "#5fd700", "#5fd75f", "#5fd787", "#5fd7af", "#5fd7d7", "#5fd7ff", + \ "#5fff00", "#5fff5f", "#5fff87", "#5fffaf", "#5fffd7", "#5fffff", + \ "#870000", "#87005f", "#870087", "#8700af", "#8700d7", "#8700ff", + \ "#875f00", "#875f5f", "#875f87", "#875faf", "#875fd7", "#875fff", + \ "#878700", "#87875f", "#878787", "#8787af", "#8787d7", "#8787ff", + \ "#87af00", "#87af5f", "#87af87", "#87afaf", "#87afd7", "#87afff", + \ "#87d700", "#87d75f", "#87d787", "#87d7af", "#87d7d7", "#87d7ff", + \ "#87ff00", "#87ff5f", "#87ff87", "#87ffaf", "#87ffd7", "#87ffff", + \ "#af0000", "#af005f", "#af0087", "#af00af", "#af00d7", "#af00ff", + \ "#af5f00", "#af5f5f", "#af5f87", "#af5faf", "#af5fd7", "#af5fff", + \ "#af8700", "#af875f", "#af8787", "#af87af", "#af87d7", "#af87ff", + \ "#afaf00", "#afaf5f", "#afaf87", "#afafaf", "#afafd7", "#afafff", + \ "#afd700", "#afd75f", "#afd787", "#afd7af", "#afd7d7", "#afd7ff", + \ "#afff00", "#afff5f", "#afff87", "#afffaf", "#afffd7", "#afffff", + \ "#d70000", "#d7005f", "#d70087", "#d700af", "#d700d7", "#d700ff", + \ "#d75f00", "#d75f5f", "#d75f87", "#d75faf", "#d75fd7", "#d75fff", + \ "#d78700", "#d7875f", "#d78787", "#d787af", "#d787d7", "#d787ff", + \ "#d7af00", "#d7af5f", "#d7af87", "#d7afaf", "#d7afd7", "#d7afff", + \ "#d7d700", "#d7d75f", "#d7d787", "#d7d7af", "#d7d7d7", "#d7d7ff", + \ "#d7ff00", "#d7ff5f", "#d7ff87", "#d7ffaf", "#d7ffd7", "#d7ffff", + \ "#ff0000", "#ff005f", "#ff0087", "#ff00af", "#ff00d7", "#ff00ff", + \ "#ff5f00", "#ff5f5f", "#ff5f87", "#ff5faf", "#ff5fd7", "#ff5fff", + \ "#ff8700", "#ff875f", "#ff8787", "#ff87af", "#ff87d7", "#ff87ff", + \ "#ffaf00", "#ffaf5f", "#ffaf87", "#ffafaf", "#ffafd7", "#ffafff", + \ "#ffd700", "#ffd75f", "#ffd787", "#ffd7af", "#ffd7d7", "#ffd7ff", + \ "#ffff00", "#ffff5f", "#ffff87", "#ffffaf", "#ffffd7", "#ffffff", + \ + \ "#080808", "#121212", "#1c1c1c", "#262626", "#303030", "#3a3a3a", + \ "#444444", "#4e4e4e", "#585858", "#606060", "#666666", "#767676", + \ "#808080", "#8a8a8a", "#949494", "#9e9e9e", "#a8a8a8", "#b2b2b2", + \ "#bcbcbc", "#c6c6c6", "#d0d0d0", "#dadada", "#e4e4e4", "#eeeeee" ] + " }}} +" {{{ color setup for gvim + for s:col in s:colors256 + call s:guisetcolor(s:col) + endfor + if v:version >= 700 + for s:col in s:colorvim7 + call s:guisetcolor(s:col) + endfor + endif +endif +" }}} +let &cpo = s:save_cpo " restoring &cpo value +" vim: set fdm=marker fileformat=unix: diff --git a/.vim/colors/calmar256-light.vim b/.vim/colors/calmar256-light.vim new file mode 100644 index 0000000..941f8ea --- /dev/null +++ b/.vim/colors/calmar256-light.vim @@ -0,0 +1,247 @@ +" Vim color file: calmar256-dark.vim +" Last Change: 21. Aug 2007 +" License: public domain +" Maintainer:: calmar +" +" for a 256 color capable terminal like xterm-256color, ... or gvim as well +" "{{{ +" it only works in such a terminal and when you have: +" set t_Co=256 +" in your vimrc"}}} + +" {{{ t_Co=256 is set - check +if &t_Co != 256 && ! has("gui_running") + echomsg "" + echomsg "write 'set t_Co=256' in your .vimrc or this file won't load" + echomsg "" + finish +endif +" }}} +" {{{ reset colors and set colors_name and store cpo setting +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "calmar256-light" + +let s:save_cpo = &cpo +set cpo&vim +" }}} + +" FORMAT:"{{{ +" +" \ ["color-group", "term-style", "foreground-color", "background-color", "gui-style", "under-curl-color" ], +" +" 'term-style'/'gui-style' can be: +" bold, underline, undercurl, reverse, inverse, italic, standout, NONE +" +" if gui-style is empty, the term-style value is used for the gui +" +" (Note: not everything is supported by a terminal nor the gui) +" +" besides empty values defaults to 'NONE" +" +" may also check: :help highlight-groups +" :help hl- " +" +" for the Color numbers (0-255) for the foreground/background and under-curl-colors: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html + +"}}} +"============================================================ +" EDIT/ADD your style/colors below +"------------------------------------------------------------ + +" Format: \ ["color-group", +" "term-style", +" "foreground-color", +" "background-color", +" "gui-style", +" "under-curl-color" ], + +let s:colors256 = [ + \ ["Normal", "", "17", "230", "", "" ], + \ ["Cursor", "", "", "226", "", "" ], + \ ["CursorLine", "", "", "222", "", "" ], + \ ["CursorColumn", "", "", "223", "", "" ], + \ ["Incsearch", "bold", "195", "28", "", "" ], + \ ["Search", "", "", "119", "", "" ], + \ ["ErrorMsg", "bold", "16", "202", "", "" ], + \ ["WarningMsg", "bold", "16", "190", "", "" ], + \ ["ModeMsg", "bold", "16", "51", "", "" ], + \ ["MoreMsg", "bold", "16", "154", "", "" ], + \ ["Question", "bold", "27", "", "", "" ], + \ ["StatusLine", "", "231", "30", "", "" ], + \ ["StatusLineNC", "", "20", "250", "", "" ], + \ ["User1", "bold", "28", "", "", "" ], + \ ["User2", "bold", "39", "", "", "" ], + \ ["VertSplit", "", "84", "22", "", "" ], + \ ["WildMenu", "bold", "87", "35", "", "" ], + \ ["DiffText", "", "16", "190", "", "" ], + \ ["DiffChange", "", "16", "83", "", "" ], + \ ["DiffDelete", "", "79", "124", "", "" ], + \ ["DiffAdd", "", "79", "21", "", "" ], + \ ["Folded", "bold", "19", "115", "", "" ], + \ ["FoldedColumn", "", "39", "190", "", "" ], + \ ["FoldColumn", "", "19", "115", "", "" ], + \ ["Directory", "", "28", "", "", "" ], + \ ["LineNr", "", "63", "228", "", "" ], + \ ["NonText", "", "243", "229", "", "" ], + \ ["SpecialKey", "", "190", "", "", "" ], + \ ["Title", "bold", "18", "", "", "" ], + \ ["Visual", "", "", "220", "", "" ], + \ ["Comment", "", "21", "255", "", "" ], + \ ["Costant", "", "58", "", "", "" ], + \ ["String", "", "160", "", "", "" ], + \ ["Error", "", "130", "", "", "" ], + \ ["Identifier", "", "31", "", "", "" ], + \ ["Ignore", "", "", "", "", "" ], + \ ["Number", "bold", "23", "", "", "" ], + \ ["PreProc", "", "26", "255", "", "" ], + \ ["Special", "", "", "229", "", "" ], + \ ["SpecialChar", "", "22", "", "", "" ], + \ ["Statement", "", "36", "", "", "" ], + \ ["Todo", "", "", "229", "", "" ], + \ ["Type", "", "20", "", "", "" ], + \ ["Underlined", "bold", "25", "", "", "" ], + \ ["TaglistTagName","bold", "29", "118", "", "" ]] + +let s:colorvim7 = [ + \ ["Pmenu", "", "229", "29", "", "" ], + \ ["PmenuSel", "bold", "232", "226", "", "" ], + \ ["PmenuSbar", "", "16", "119", "", "" ], + \ ["PmenuThumb", "", "16", "11", "", "" ], + \ ["SpellBad", "undercurl", "","", "undercurl","160" ], + \ ["SpellRare", "", "", "228", "", "" ], + \ ["SpellLocal", "", "", "224", "", "" ], + \ ["SpellCap", "", "", "247", "", "" ], + \ ["MatchParen", "bold", "15", "22", "", "" ], + \ ["TabLine", "", "252", "22", "", "" ], + \ ["TabLineSel", "bold", "253", "30", "", "" ], + \ ["TabLineFill", "", "247", "16", "", "" ]] + +"============================================================ +" * NO NEED * to edit below (unless bugfixing) +"============================================================ +" +" {{{ change empty fields to "NONE" + +for s:col in s:colors256 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor + +for s:col in s:colorvim7 + for i in [1, 2, 3, 4, 5] + if s:col[i] == "" + let s:col[i] = "NONE" + endif + endfor +endfor +" }}} +" {{{ check args helper function +function! s:checkargs(arg) + if a:arg+0 == 0 && a:arg != "0" "its a string + return a:arg + else + return s:cmap[a:arg+0] "get rgb color based on the number + endif +endfunction +" }}} +" {{{ guisetcolor helper function +" +function! s:guisetcolor(colarg) + " if gui-style is empty use (c)term-style also for gui + if a:colarg[4] == "" + let guival = a:colarg[1] + else + let guival = a:colarg[4] + endif + + let fg = s:checkargs(a:colarg[2]) + let bg = s:checkargs(a:colarg[3]) + let sp = s:checkargs(a:colarg[5]) + + exec "hi ".a:colarg[0]." gui=".guival." guifg=".fg." guibg=".bg." guisp=".sp +endfunction +" }}} +" {{{ color setup for terminal +if ! has("gui_running") + for s:col in s:colors256 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + if v:version >= 700 + for s:col in s:colorvim7 + exec "hi ".s:col[0]." cterm=".s:col[1]." ctermfg=".s:col[2]." ctermbg=".s:col[3] + endfor + endif +else +" }}} + " color-mapping array {{{ + " number of vim colors and #html colors equivalent for gui + let s:cmap = [ + \ "#000000", "#800000", "#008000", "#808000", + \ "#000080", "#800080", "#008080", "#c0c0c0", + \ "#808080", "#ff0000", "#00ff00", "#ffff00", + \ "#0000ff", "#ff00ff", "#00ffff", "#ffffff", + \ + \ "#000000", "#00005f", "#000087", "#0000af", "#0000d7", "#0000ff", + \ "#005f00", "#005f5f", "#005f87", "#005faf", "#005fd7", "#005fff", + \ "#008700", "#00875f", "#008787", "#0087af", "#0087d7", "#0087ff", + \ "#00af00", "#00af5f", "#00af87", "#00afaf", "#00afd7", "#00afff", + \ "#00d700", "#00d75f", "#00d787", "#00d7af", "#00d7d7", "#00d7ff", + \ "#00ff00", "#00ff5f", "#00ff87", "#00ffaf", "#00ffd7", "#00ffff", + \ "#5f0000", "#5f005f", "#5f0087", "#5f00af", "#5f00d7", "#5f00ff", + \ "#5f5f00", "#5f5f5f", "#5f5f87", "#5f5faf", "#5f5fd7", "#5f5fff", + \ "#5f8700", "#5f875f", "#5f8787", "#5f87af", "#5f87d7", "#5f87ff", + \ "#5faf00", "#5faf5f", "#5faf87", "#5fafaf", "#5fafd7", "#5fafff", + \ "#5fd700", "#5fd75f", "#5fd787", "#5fd7af", "#5fd7d7", "#5fd7ff", + \ "#5fff00", "#5fff5f", "#5fff87", "#5fffaf", "#5fffd7", "#5fffff", + \ "#870000", "#87005f", "#870087", "#8700af", "#8700d7", "#8700ff", + \ "#875f00", "#875f5f", "#875f87", "#875faf", "#875fd7", "#875fff", + \ "#878700", "#87875f", "#878787", "#8787af", "#8787d7", "#8787ff", + \ "#87af00", "#87af5f", "#87af87", "#87afaf", "#87afd7", "#87afff", + \ "#87d700", "#87d75f", "#87d787", "#87d7af", "#87d7d7", "#87d7ff", + \ "#87ff00", "#87ff5f", "#87ff87", "#87ffaf", "#87ffd7", "#87ffff", + \ "#af0000", "#af005f", "#af0087", "#af00af", "#af00d7", "#af00ff", + \ "#af5f00", "#af5f5f", "#af5f87", "#af5faf", "#af5fd7", "#af5fff", + \ "#af8700", "#af875f", "#af8787", "#af87af", "#af87d7", "#af87ff", + \ "#afaf00", "#afaf5f", "#afaf87", "#afafaf", "#afafd7", "#afafff", + \ "#afd700", "#afd75f", "#afd787", "#afd7af", "#afd7d7", "#afd7ff", + \ "#afff00", "#afff5f", "#afff87", "#afffaf", "#afffd7", "#afffff", + \ "#d70000", "#d7005f", "#d70087", "#d700af", "#d700d7", "#d700ff", + \ "#d75f00", "#d75f5f", "#d75f87", "#d75faf", "#d75fd7", "#d75fff", + \ "#d78700", "#d7875f", "#d78787", "#d787af", "#d787d7", "#d787ff", + \ "#d7af00", "#d7af5f", "#d7af87", "#d7afaf", "#d7afd7", "#d7afff", + \ "#d7d700", "#d7d75f", "#d7d787", "#d7d7af", "#d7d7d7", "#d7d7ff", + \ "#d7ff00", "#d7ff5f", "#d7ff87", "#d7ffaf", "#d7ffd7", "#d7ffff", + \ "#ff0000", "#ff005f", "#ff0087", "#ff00af", "#ff00d7", "#ff00ff", + \ "#ff5f00", "#ff5f5f", "#ff5f87", "#ff5faf", "#ff5fd7", "#ff5fff", + \ "#ff8700", "#ff875f", "#ff8787", "#ff87af", "#ff87d7", "#ff87ff", + \ "#ffaf00", "#ffaf5f", "#ffaf87", "#ffafaf", "#ffafd7", "#ffafff", + \ "#ffd700", "#ffd75f", "#ffd787", "#ffd7af", "#ffd7d7", "#ffd7ff", + \ "#ffff00", "#ffff5f", "#ffff87", "#ffffaf", "#ffffd7", "#ffffff", + \ + \ "#080808", "#121212", "#1c1c1c", "#262626", "#303030", "#3a3a3a", + \ "#444444", "#4e4e4e", "#585858", "#606060", "#666666", "#767676", + \ "#808080", "#8a8a8a", "#949494", "#9e9e9e", "#a8a8a8", "#b2b2b2", + \ "#bcbcbc", "#c6c6c6", "#d0d0d0", "#dadada", "#e4e4e4", "#eeeeee" ] + " }}} +" {{{ color setup for gvim + for s:col in s:colors256 + call s:guisetcolor(s:col) + endfor + if v:version >= 700 + for s:col in s:colorvim7 + call s:guisetcolor(s:col) + endfor + endif +endif +" }}} +let &cpo = s:save_cpo " restoring &cpo value +" vim: set fdm=marker fileformat=unix: diff --git a/.vim/colors/camo.vim b/.vim/colors/camo.vim new file mode 100644 index 0000000..059af42 --- /dev/null +++ b/.vim/colors/camo.vim @@ -0,0 +1,76 @@ +" Vim color file +" Maintainer: Tim Aldrich +" Last Change: 19 January 2002 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="camo" +hi Normal guifg=bisque guibg=grey15 +hi Cursor guifg=snow guibg=bisque3 +hi CursorIM guifg=OliveDrab4 guibg=bisque +hi Directory guifg=OliveDrab4 guibg=grey15 +hi DiffAdd guifg=DarkOliveGreen1 guibg=grey15 +hi DiffChange guifg=PaleGreen guibg=grey15 +hi DiffDelete guifg=red guibg=grey15 +hi DiffText guifg=grey15 guibg=red +hi ErrorMsg guifg=snow guibg=red +hi VertSplit guifg=bisque4 guibg=DarkOliveGreen1 +hi Folded guifg=DarkOliveGreen2 guibg=grey30 +hi FoldColumn guifg=DarkOliveGreen2 guibg=grey30 +hi IncSearch guifg=bisque guibg=red +hi LineNr guifg=OliveDrab4 guibg=grey15 +hi ModeMsg guifg=khaki3 guibg=grey15 +hi MoreMsg guifg=khaki3 guibg=grey15 +hi NonText guifg=DarkSalmon guibg=grey10 +hi Question guifg=IndianRed guibg=grey10 +hi Search guifg=DarkSalmon guibg=grey15 +hi SpecialKey guifg=yellow guibg=grey15 +hi StatusLine guifg=bisque4 guibg=DarkOliveGreen1 +hi StatusLineNC guifg=bisque4 guibg=DarkOliveGreen3 +hi Title guifg=IndianRed guibg=grey15 +hi Visual guifg=OliveDrab4 guibg=bisque1 +hi WarningMsg guifg=bisque guibg=red +hi WildMenu guifg=LightBlue guibg=DarkViolet + + +"Syntax hilight groups + +hi Comment guifg=tan +hi Constant guifg=khaki +hi String guifg=moccasin +hi Character guifg=chocolate +hi Number guifg=chocolate +hi Boolean guifg=OliveDrab3 +hi Float guifg=chocolate +hi Identifier guifg=khaki4 +hi Function guifg=OliveDrab4 +hi Statement guifg=khaki +hi Conditional guifg=khaki +hi Repeat guifg=khaki +hi Label guifg=khaki +hi Operator guifg=DarkKhaki +hi Keyword guifg=DarkKhaki +hi Exception guifg=khaki +hi PreProc guifg=khaki4 +hi Include guifg=khaki4 +hi Define guifg=khaki1 +hi Macro guifg=khaki2 +hi PreCondit guifg=khaki3 +hi Type guifg=khaki3 +hi StorageClass guifg=tan +hi Structure guifg=DarkGoldenrod +hi Typedef guifg=khaki3 +hi Special guifg=IndianRed +hi SpecialChar guifg=DarkGoldenrod +hi Tag guifg=DarkKhaki +hi Delimiter guifg=DarkGoldenrod +hi SpecialComment guifg=cornsilk +hi Debug guifg=brown +hi Underlined guifg=IndianRed +hi Ignore guifg=grey30 +hi Error guifg=bisque guibg=red +hi Todo guifg=red guibg=bisque + diff --git a/.vim/colors/candy.vim b/.vim/colors/candy.vim new file mode 100644 index 0000000..545ff7c --- /dev/null +++ b/.vim/colors/candy.vim @@ -0,0 +1,78 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/04/28 Sun 19:35. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "candy" + +hi Normal guifg=#f0f0f8 guibg=#000000 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#f0f0f8 guibg=#0060c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#40f0d0 guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#008070 +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#707080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#000000 guibg=#a0a0ff + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#00ffff guibg=#008070 +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#005080 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#00305c + +" Other +hi Directory gui=NONE guifg=#40f0d0 guibg=NONE +hi LineNr gui=NONE guifg=#9090a0 guibg=NONE +hi NonText gui=BOLD guifg=#4080ff guibg=NONE +hi SpecialKey gui=BOLD guifg=#8080ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#e0e0f0 guibg=#707080 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0d0 guibg=NONE +hi Constant gui=NONE guifg=#90d0ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff0088 +hi Identifier gui=NONE guifg=#40f0f0 guibg=NONE +hi Ignore gui=NONE guifg=#000000 guibg=NONE +hi PreProc gui=NONE guifg=#40f0a0 guibg=NONE +hi Special gui=NONE guifg=#e0e080 guibg=NONE +hi Statement gui=NONE guifg=#ffa0ff guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffa0a0 guibg=NONE +hi Type gui=NONE guifg=#ffc864 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#f0f0f8 guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/.vim/colors/candycode.vim b/.vim/colors/candycode.vim new file mode 100644 index 0000000..3800d9d --- /dev/null +++ b/.vim/colors/candycode.vim @@ -0,0 +1,174 @@ +" Vim color file -- candycode +" Maintainer: Justin Constantino +" Last Change: 2006 Aug 12 + +set background=dark +highlight clear +let g:colors_name="candycode" + +let save_cpo = &cpo +set cpo&vim + +" basic highlight groups (:help highlight-groups) {{{ + +" text {{{ + +hi Normal guifg=#ffffff guibg=#050505 gui=NONE + \ ctermfg=white ctermbg=black cterm=NONE + +hi Folded guifg=#c2bfa5 guibg=#050505 gui=underline + \ ctermfg=lightgray ctermbg=black cterm=underline + +hi LineNr guifg=#928c75 guibg=NONE gui=NONE + \ ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi Directory guifg=#00bbdd guibg=NONE gui=NONE + \ ctermfg=cyan ctermbg=NONE cterm=NONE +hi NonText guifg=#77ff22 guibg=NONE gui=bold + \ ctermfg=yellow ctermbg=NONE cterm=NONE +hi SpecialKey guifg=#559933 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE + +hi SpellBad guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkred guisp=#ff0011 +hi SpellCap guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkblue guisp=#0044ff +hi SpellLocal guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=black ctermbg=cyan guisp=#00dd99 +hi SpellRare guifg=NONE guibg=NONE gui=undercurl + \ ctermfg=white ctermbg=darkmagenta guisp=#ff22ee + +hi DiffAdd guifg=#ffffff guibg=#126493 gui=NONE + \ ctermfg=white ctermbg=darkblue cterm=NONE +hi DiffChange guifg=#000000 guibg=#976398 gui=NONE + \ ctermfg=black ctermbg=darkmagenta cterm=NONE +hi DiffDelete guifg=#000000 guibg=#be1923 gui=bold + \ ctermfg=black ctermbg=red cterm=bold +hi DiffText guifg=#ffffff guibg=#976398 gui=bold + \ ctermfg=white ctermbg=green cterm=bold + +" }}} +" borders / separators / menus {{{ + +hi FoldColumn guifg=#c8bcb9 guibg=#786d65 gui=bold + \ ctermfg=lightgray ctermbg=darkgray cterm=NONE +hi SignColumn guifg=#c8bcb9 guibg=#786d65 gui=bold + \ ctermfg=lightgray ctermbg=darkgray cterm=NONE + +hi Pmenu guifg=#000000 guibg=#a6a190 gui=NONE + \ ctermfg=white ctermbg=darkgray cterm=NONE +hi PmenuSel guifg=#ffffff guibg=#133293 gui=NONE + \ ctermfg=white ctermbg=lightblue cterm=NONE +hi PmenuSbar guifg=NONE guibg=#555555 gui=NONE + \ ctermfg=black ctermbg=black cterm=NONE +hi PmenuThumb guifg=NONE guibg=#cccccc gui=NONE + \ ctermfg=gray ctermbg=gray cterm=NONE + +hi StatusLine guifg=#000000 guibg=#c2bfa5 gui=bold + \ ctermfg=black ctermbg=white cterm=bold +hi StatusLineNC guifg=#444444 guibg=#c2bfa5 gui=NONE + \ ctermfg=darkgray ctermbg=white cterm=NONE +hi WildMenu guifg=#ffffff guibg=#133293 gui=bold + \ ctermfg=white ctermbg=darkblue cterm=bold +hi VertSplit guifg=#c2bfa5 guibg=#c2bfa5 gui=NONE + \ ctermfg=white ctermbg=white cterm=NONE + +hi TabLine guifg=#000000 guibg=#c2bfa5 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi TabLineFill guifg=#000000 guibg=#c2bfa5 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi TabLineSel guifg=#ffffff guibg=#133293 gui=NONE + \ ctermfg=white ctermbg=black cterm=NONE + +"hi Menu +"hi Scrollbar +"hi Tooltip + +" }}} +" cursor / dynamic / other {{{ + +hi Cursor guifg=#000000 guibg=#ffff99 gui=NONE + \ ctermfg=black ctermbg=white cterm=NONE +hi CursorIM guifg=#000000 guibg=#aaccff gui=NONE + \ ctermfg=black ctermbg=white cterm=reverse +hi CursorLine guifg=NONE guibg=#1b1b1b gui=NONE + \ ctermfg=NONE ctermbg=NONE cterm=NONE +hi CursorColumn guifg=NONE guibg=#1b1b1b gui=NONE + \ ctermfg=NONE ctermbg=NONE cterm=NONE + +hi Visual guifg=#ffffff guibg=#606070 gui=NONE + \ ctermfg=white ctermbg=lightblue cterm=NONE + +hi IncSearch guifg=#000000 guibg=#eedd33 gui=bold + \ ctermfg=white ctermbg=yellow cterm=NONE +hi Search guifg=#efefd0 guibg=#937340 gui=NONE + \ ctermfg=white ctermbg=darkgreen cterm=NONE + +hi MatchParen guifg=NONE guibg=#3377aa gui=NONE + \ ctermfg=white ctermbg=blue cterm=NONE + +"hi VisualNOS + +" }}} +" listings / messages {{{ + +hi ModeMsg guifg=#eecc18 guibg=NONE gui=NONE + \ ctermfg=yellow ctermbg=NONE cterm=NONE +hi Title guifg=#dd4452 guibg=NONE gui=bold + \ ctermfg=red ctermbg=NONE cterm=bold +hi Question guifg=#66d077 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE +hi MoreMsg guifg=#39d049 guibg=NONE gui=NONE + \ ctermfg=green ctermbg=NONE cterm=NONE + +hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=bold + \ ctermfg=white ctermbg=red cterm=bold +hi WarningMsg guifg=#ccae22 guibg=NONE gui=bold + \ ctermfg=yellow ctermbg=NONE cterm=bold + +" }}} + +" }}} +" syntax highlighting groups (:help group-name) {{{ + +hi Comment guifg=#ff9922 guibg=NONE gui=NONE + \ ctermfg=brown ctermbg=NONE cterm=NONE + +hi Constant guifg=#ff6050 guibg=NONE gui=NONE + \ ctermfg=red ctermbg=NONE cterm=NONE +hi Boolean guifg=#ff6050 guibg=NONE gui=bold + \ ctermfg=red ctermbg=NONE cterm=bold + +hi Identifier guifg=#eecc44 guibg=NONE gui=NONE + \ ctermfg=yellow ctermbg=NONE cterm=NONE + +hi Statement guifg=#66d077 guibg=NONE gui=bold + \ ctermfg=green ctermbg=NONE cterm=bold + +hi PreProc guifg=#bb88dd guibg=NONE gui=NONE + \ ctermfg=darkmagenta ctermbg=NONE cterm=NONE + +hi Type guifg=#4093cc guibg=NONE gui=bold + \ ctermfg=lightblue ctermbg=NONE cterm=bold + +hi Special guifg=#9999aa guibg=NONE gui=bold + \ ctermfg=lightgray ctermbg=NONE cterm=bold + +hi Underlined guifg=#80a0ff guibg=NONE gui=underline + \ ctermfg=NONE ctermbg=NONE cterm=underline + \ term=underline + +hi Ignore guifg=#888888 guibg=NONE gui=NONE + \ ctermfg=darkgray ctermbg=NONE cterm=NONE + +hi Error guifg=#ffffff guibg=#ff0000 gui=NONE + \ ctermfg=white ctermbg=red cterm=NONE + +hi Todo guifg=#ffffff guibg=#ee7700 gui=bold + \ ctermfg=black ctermbg=yellow cterm=bold + +" }}} + +let &cpo = save_cpo + +" vim: fdm=marker fdl=0 diff --git a/.vim/colors/carvedwood.vim b/.vim/colors/carvedwood.vim new file mode 100644 index 0000000..f83243a --- /dev/null +++ b/.vim/colors/carvedwood.vim @@ -0,0 +1,118 @@ +" Vim color file +" carvedwood v0.7c +" Maintainer: Shawn Axsom +" [axs221.1l.com] + +" carvedwood - +" a color scheme modified from my desertocean scheme into a brown +" and green scheme, easier on the eyes and optimized for more important syntax +" to stand out the most (eg comments and values are dark and dull while +" statements are bright). + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="carvedwood" + +hi Normal guifg=#dac0cd guibg=#1f2221 + +" syntax highlighting +hi Comment guifg=#5a6a6d +hi Title guifg=#60b0ea +hi Underlined guifg=#80aae0 +hi Statement guifg=#fac5ba +hi Type guifg=#cd9a8a +hi PreProc guifg=#ba857a gui=none +hi Constant guifg=#9a757d +hi Identifier guifg=#bd7560 +hi Special guifg=#cab0a5 +hi Ignore guifg=grey40 +hi Todo guifg=orangered guibg=yellow2 +hi Error guibg=#e04462 +"end syntax highlighting + +" highlight groups +hi Cursor guibg=#205a50 guifg=#7ab0aa +"hi CursorIM +hi Directory guifg=#bbd0df +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2b0a5 guifg=grey50 gui=none +hi Folded guibg=#4a4f4d guifg=#BBDDCC +hi FoldColumn guibg=#4c3e3b guifg=#00CCFF +hi LineNr guifg=#D0C5CA guibg=#594540 +hi ModeMsg guifg=#00AACC +hi MoreMsg guifg=SeaGreen +hi NonText guifg=#382920 guibg=#1b1f1f +hi Question guifg=#AABBCC +hi Search guibg=#5a6d7d guifg=#bac5d0 +hi IncSearch guifg=#50606d guibg=#cddaf0 +hi SpecialKey guifg=#90703B +hi StatusLine guibg=#c99f93 guifg=#102015 gui=none +hi StatusLineNC guibg=#937b7a guifg=#373334 gui=none +hi Visual guifg=#008FBF guibg=#33DFEF +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar guibg=grey30 guifg=tan +"hi Tooltip + + +" color terminal definitions +hi Normal ctermfg=white +hi SpecialKey ctermfg=darkyellow +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=white ctermbg=brown +hi Question ctermfg=green +hi StatusLine cterm=none ctermbg=white ctermfg=darkgreen +hi StatusLineNC cterm=none ctermbg=white ctermfg=black +hi VertSplit cterm=none ctermbg=darkgreen +hi Title ctermfg=blue +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=white ctermbg=darkcyan +hi FoldColumn ctermfg=darkcyan ctermbg=grey +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Special ctermfg=white +hi Identifier ctermfg=brown +hi Statement ctermfg=yellow +hi PreProc ctermfg=red +hi Type ctermfg=brown +hi Constant ctermfg=grey +hi Underlined cterm=none ctermfg=blue ctermbg=darkgrey +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 +hi Function ctermfg=yellow + + +"vim: sw=4 + diff --git a/.vim/colors/chela_light.vim b/.vim/colors/chela_light.vim new file mode 100644 index 0000000..3cde34d --- /dev/null +++ b/.vim/colors/chela_light.vim @@ -0,0 +1,110 @@ +" Vim color file +" +" Maintainer: Stefan Karlsson +" Last Change: 8 August 2006 + + +set background=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="chela_light" + + +"Syntax Groups ============================================= + +hi comment guibg=#fafafa guifg=#339900 gui=none + +hi constant guibg=#fafafa guifg=#cc2222 gui=none + +hi identifier guibg=#fafafa guifg=#2222ff gui=none + +hi statement guibg=#fafafa guifg=#2222ff gui=none + +hi preproc guibg=#fafafa guifg=#2222ff gui=none +hi precondit guibg=#fafafa guifg=#cc00cc gui=none + +hi type guibg=#fafafa guifg=#2222ff gui=none + +hi special guibg=#fafafa guifg=#cc00cc gui=none +hi specialchar guibg=#fafafa guifg=#cc2222 gui=underline + +hi underlined guibg=#fafafa guifg=#2222ff gui=underline + +hi error guibg=#ff2222 guifg=#ffffff gui=none + +hi todo guibg=#339933 guifg=#ffffff gui=none + + +"General Groups ============================================ + +hi cursor guibg=#000000 guifg=#ffffff gui=none +" cursorim? +hi cursorcolumn guibg=#eeeeee gui=none +hi cursorline guibg=#eeeeee gui=none + +hi directory guibg=#fafafa guifg=#2222ff gui=none + +hi diffadd guibg=#66ff66 guifg=#000000 gui=none +hi diffchange guibg=#ffff00 guifg=#cccc99 gui=none +hi diffdelete guibg=#ff6666 guifg=#ff6666 gui=none +hi difftext guibg=#ffff00 guifg=#000000 gui=none + +hi errormsg guibg=#ff2222 guifg=#ffffff gui=none + +hi vertsplit guibg=#2222ff guifg=#2222ff gui=none + +hi folded guibg=#eeeeee guifg=#2222ff gui=none +hi foldcolumn guibg=#eeeeee guifg=#999999 gui=none + +" signcolumn? + +hi incsearch guibg=#ffbb00 guifg=#000000 gui=none + +hi linenr guibg=#fafafa guifg=#cccccc gui=none + +hi matchparen guibg=#cccccc gui=none + +hi modemsg guibg=#fafafa guifg=#999999 gui=none + +hi moremsg guibg=#339900 guifg=#ffffff gui=none + +hi nontext guibg=#fafafa guifg=#999999 gui=none + +hi normal guibg=#fafafa guifg=#222222 gui=none + +hi pmenu guibg=#cccccc guifg=#222222 gui=none +hi pmenusel guibg=#2222ff guifg=#ffffff gui=none +" pmenusbar? +" pmenuthumb? + +hi question guibg=#339900 guifg=#ffffff gui=none + +hi search guibg=#ffff00 guifg=#000000 gui=none + +hi specialkey guibg=#fafafa guifg=#cc00cc gui=none + +hi spellbad gui=undercurl guisp=#ff2222 +hi spellcap gui=undercurl guisp=#ff2222 +hi spelllocal gui=undercurl guisp=#cc2222 +hi spellrare gui=undercurl guisp=#22cc22 + +hi statusline guibg=#2222ff guifg=#ffffff gui=none +hi statuslinenc guibg=#2222ff guifg=#999999 gui=none + +hi tabline guibg=#cccccc guifg=#222222 gui=none +hi tablinesel guibg=#2222ff guifg=#ffffff gui=none +hi tablinefill guibg=#aaaaaa guifg=#aaaaaa gui=none + +hi title guibg=#fafafa guifg=#6666ff gui=none + +hi visual guibg=#cccccc guifg=#333333 gui=none +" visualnos? + +hi warningmsg guibg=#fafafa guifg=#ff0000 gui=none + +hi wildmenu guibg=#339900 guifg=#ffffff gui=none + diff --git a/.vim/colors/chocolateliquor.vim b/.vim/colors/chocolateliquor.vim new file mode 100644 index 0000000..9dfa712 --- /dev/null +++ b/.vim/colors/chocolateliquor.vim @@ -0,0 +1,36 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2007 Jun 13 + +" This started as a dark version (perhaps opposite is a better term) of +" PapayaWhip, but took on a life of its own. Easy on the eyes, but still has +" good contrast. Not bad on a color terminal, either (especially if yours +" default to PapayaWhip text on a ChocolateLiquor/#3f1f1f background). +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ChocolateLiquor" + +hi Normal guibg=#3f1f1f guifg=PapayaWhip ctermfg=White +hi NonText guibg=#1f0f0f guifg=Brown2 ctermfg=Brown ctermbg=Black +hi LineNr guibg=#1f0f0f guifg=Brown2 +hi DiffDelete guibg=DarkRed guifg=White ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen guifg=White ctermbg=DarkGreen ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan guifg=Yellow ctermbg=DarkCyan ctermfg=Yellow +hi DiffChange guibg=DarkCyan guifg=White ctermbg=DarkCyan ctermfg=White +hi Constant ctermfg=Red +hi Comment guifg=LightBlue3 +hi PreProc guifg=Plum ctermfg=Magenta +hi StatusLine guibg=White guifg=Sienna4 cterm=NONE ctermfg=Black ctermbg=Brown +hi StatusLineNC gui=NONE guifg=Black guibg=Gray ctermbg=Black ctermfg=Gray +hi VertSplit guifg=Gray +hi Search guibg=Gold3 ctermfg=Blue +hi Type gui=NONE guifg=DarkSeaGreen2 +hi Statement gui=NONE guifg=Gold3 +hi FoldColumn guibg=#1f0f0f ctermfg=Cyan ctermbg=Black +hi Folded guibg=grey20 ctermfg=Cyan ctermbg=Black diff --git a/.vim/colors/clarity.vim b/.vim/colors/clarity.vim new file mode 100644 index 0000000..3440ba3 --- /dev/null +++ b/.vim/colors/clarity.vim @@ -0,0 +1,52 @@ +" Vim color - Clarity +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="clarity" + +highlight Normal gui=NONE guifg=LightBlue2 guibg=#1F3055 +highlight Comment gui=NONE guifg=Grey62 guibg=bg +highlight PreProc gui=NONE guifg=Salmon guibg=bg +highlight Precondit gui=NONE guifg=Khaki3 guibg=bg +highlight Identifier gui=NONE guifg=Khaki3 guibg=bg +highlight Type gui=BOLD guifg=Orange guibg=bg +highlight StorageClass gui=BOLD guifg=Cornsilk2 guibg=bg +highlight Todo gui=BOLD guifg=#1F3055 guibg=White +highlight NonText gui=NONE guifg=#334C51 guibg=SteelBlue4 +highlight LineNr gui=NONE guifg=HoneyDew2 guibg=Grey25 +highlight StatusLineNC gui=NONE guifg=Grey80 guibg=LightBlue4 +highlight StatusLine gui=NONE guifg=DarkBlue guibg=#FFFFCA +highlight IncSearch gui=NONE guifg=Black guibg=#FFE568 +highlight Search gui=UNDERLINE,BOLD guifg=#FFE568 guibg=bg +highlight Cursor gui=NONE guifg=Grey50 guibg=#FFE568 +highlight CursorIM gui=NONE guifg=Grey50 guibg=#FFE568 +highlight Title gui=BOLD guifg=OliveDrab3 guibg=bg +highlight WarningMsg gui=BOLD guifg=White guibg=Red4 +highlight String gui=NONE guifg=Grey80 guibg=bg +highlight Number gui=NONE guifg=OliveDrab2 guibg=bg +highlight Constant gui=NONE guifg=#ACEDAB guibg=bg +highlight Visual gui=BOLD guifg=White guibg=bg +highlight Directory gui=NONE guifg=PeachPuff guibg=bg +highlight DiffAdd gui=NONE guifg=white guibg=SeaGreen +highlight DiffChange gui=BOLD guifg=white guibg=Blue +highlight DiffDelete gui=NONE guifg=Grey40 guibg=Grey20 +highlight DiffText gui=BOLD guifg=HoneyDew1 guibg=FireBrick +highlight Typedef gui=NONE guifg=Cornsilk guibg=bg +highlight Define gui=NONE guifg=White guibg=bg +highlight Tag gui=NONE guifg=LightBlue2 guibg=bg +highlight Debug gui=BOLD guifg=Green guibg=bg +highlight Special gui=NONE guifg=NavajoWhite guibg=bg +highlight SpecialChar gui=NONE guifg=NavajoWhite guibg=bg +highlight Delimiter gui=NONE guifg=NavajoWhite guibg=bg +highlight SpecialComment gui=NONE guifg=NavajoWhite3 guibg=bg +highlight Conditional gui=BOLD guifg=Wheat2 guibg=bg +highlight Statement gui=BOLD guifg=Pink3 guibg=bg +highlight WildMenu gui=NONE guifg=White guibg=FireBrick +highlight browseSuffixes gui=NONE guifg=Cornsilk3 guibg=bg + + + diff --git a/.vim/colors/cleanphp.vim b/.vim/colors/cleanphp.vim new file mode 100644 index 0000000..c0af691 --- /dev/null +++ b/.vim/colors/cleanphp.vim @@ -0,0 +1,81 @@ +" Vim color file +" Maintainer: Billy McIntosh +" Last Change: June 24, 2003 +" Licence: Public Domain + +" This package offers a eye-catching color scheme for PHP syntax + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "cleanphp" + +hi Normal guifg=#008000 guibg=#d3e4f8 + +hi ErrorMsg guibg=#d3e4f8 guifg=Red +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=#c0c0c0 guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Black guifg=NONE +hi lCursor guibg=Black guifg=NONE +hi Directory guifg=#ff8040 +hi LineNr guifg=#008000 +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=#ff8040 guibg=#d3e4f8 +hi Question gui=bold guifg=Black +hi Search guibg=#008000 guifg=NONE +hi SpecialKey guifg=#ff8040 +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Cyan guifg=#d3e4f8 +hi Folded guibg=White guifg=Darkblue +hi FoldColumn guibg=#c0c0c0 guifg=Darkblue +hi DiffAdd guibg=Lightblue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=#ff8040 guibg=LightCyan + +hi Comment guifg=#ff8040 guibg=#d3e4f8 +hi Constant guifg=#BB0000 guibg=#d3e4f8 +hi PreProc guifg=#008080 guibg=#d3e4f8 +hi Statement gui=NONE guifg=#008000 guibg=#d3e4f8 +hi Special guifg=#008080 guibg=#d3e4f8 +hi Ignore guifg=#c0c0c0 +hi Identifier guifg=#000080 guibg=#d3e4f8 +hi Type guifg=#00BB00 guibg=#d3e4f8 + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + +" vim: sw=2 \ No newline at end of file diff --git a/.vim/colors/colorer.vim b/.vim/colors/colorer.vim new file mode 100644 index 0000000..30e1277 --- /dev/null +++ b/.vim/colors/colorer.vim @@ -0,0 +1,79 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Sergey V. Beduev +" Last Change: Sun Mar 28 11:19:38 EEST 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "colorer" + +hi Normal ctermfg=Gray guifg=DarkGray guibg=black +hi Visual ctermfg=DarkCyan guibg=black guifg=DarkCyan +hi Comment ctermfg=Brown guifg=#B46918 gui=NONE +hi PerlPOD ctermfg=Brown guifg=#B86A18 gui=NONE +hi Constant ctermfg=White guifg=White gui=NONE +hi Charachter ctermfg=Yellow guifg=Yellow gui=NONE +hi String ctermfg=Yellow guifg=Yellow gui=NONE +hi Number ctermfg=White guifg=White gui=NONE +hi Boolean ctermfg=Cyan guifg=DarkGray gui=NONE +hi Special ctermfg=DarkMagenta guifg=Red gui=NONE +hi Define ctermfg=LightMagenta guifg=Magenta gui=NONE +hi Identifier ctermfg=Green guifg=Green gui=NONE +hi Exception ctermfg=White guifg=White gui=NONE +hi Statement ctermfg=White guifg=White gui=NONE +hi Label ctermfg=White guifg=White gui=NONE +hi Keyword ctermfg=White guifg=White gui=NONE +hi PreProc ctermfg=Green guifg=Green gui=NONE +hi Type ctermfg=LightGreen guifg=Green gui=NONE +hi Function ctermfg=White guifg=White gui=NONE +hi Repeat ctermfg=White guifg=White gui=NONE +hi Operator ctermfg=White guifg=White gui=NONE +hi Ignore ctermfg=black guifg=bg +hi Folded ctermbg=LightBlue ctermfg=Gray guibg=DarkBlue guifg=DarkGray gui=NONE +hi Error term=reverse ctermbg=Red ctermfg=White guibg=darkRed guifg=White gui=NONE +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Black guibg=#AD5500 gui=NONE +hi Done term=standout ctermbg=Gray ctermfg=White guifg=White guibg=Gray gui=NONE + +hi SpellErrors ctermfg=DarkRed guifg=Black gui=NONE + +hi MailQ ctermfg=darkcyan guibg=black gui=NONE +hi MailQu ctermfg=darkgreen guibg=black gui=NONE +hi MyDiffNew ctermfg=magenta guifg=red gui=NONE +hi MyDiffCommLine ctermfg=white ctermbg=red guifg=white guibg=darkred gui=NONE +hi MyDiffRemoved ctermfg=LightRed guifg=red gui=NONE +hi MyDiffSubName ctermfg=DarkCyan guifg=Cyan gui=NONE +hi MyDiffNormal ctermbg=White ctermfg=black guibg=White guifg=black gui=NONE +hi MoreMsg gui=NONE +hi ModeMsg gui=NONE +hi Title gui=NONE +hi NonText gui=NONE +hi DiffDelete gui=NONE +hi DiffText gui=NONE +hi StatusLine guifg=black guibg=gray gui=NONE +hi Question gui=NONE +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +"hi link String Constant +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +hi link Float Number +hi link Conditional Repeat +hi link Include PreProc +hi link Structure Define +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Normal +hi link SpecialComment Special +hi link Debug Special + diff --git a/.vim/colors/dante.vim b/.vim/colors/dante.vim new file mode 100644 index 0000000..f584889 --- /dev/null +++ b/.vim/colors/dante.vim @@ -0,0 +1,83 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" File: "/home/caciano/.vim/dante.vim" +" Created: "Thu, 23 May 2002 00:12:20 -0300 (caciano)" +" Updated: "Sat, 24 Aug 2002 14:04:21 -0300 (caciano)" +" Copyright (C) 2002, Caciano Machado +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Colorscheme Option: +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +hi clear +if exists("syntax on") + syntax reset +endif +let g:colors_name = "dante" + +" General colors +hi Normal ctermfg=gray guifg=peachpuff3 guibg=black +hi Directory term=bold ctermfg=blue guifg=royalblue +hi ErrorMsg term=standout ctermfg=white ctermbg=red guifg=white guibg=red3 +hi NonText term=bold ctermfg=darkgray guibg=gray3 guifg=gray20 +hi SpecialKey term=bold ctermfg=darkgray guifg=gray30 +hi LineNr term=underline ctermfg=darkgray guifg=ivory4 guibg=gray4 +hi IncSearch term=reverse cterm=reverse gui=reverse,bold guifg=darkgoldenrod2 +hi Search term=reverse ctermfg=black ctermbg=yellow guifg=gray10 guibg=gold2 +hi Visual term=bold,reverse cterm=bold,reverse ctermfg=gray ctermbg=black gui=bold,reverse guifg=gray40 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +hi MoreMsg term=bold ctermfg=green gui=bold guifg=olivedrab1 +hi ModeMsg term=bold cterm=bold gui=bold +hi Question term=standout ctermfg=green gui=bold guifg=olivedrab1 +hi WarningMsg term=standout ctermfg=red gui=bold guifg=red3 +hi WildMenu term=standout ctermfg=black ctermbg=yellow guifg=black guibg=gold2 +hi Folded term=standout ctermfg=blue ctermbg=white guifg=royalblue1 guibg=white +hi FoldColumn term=standout ctermfg=blue ctermbg=white guifg=royalblue3 guibg=white +hi DiffAdd term=bold ctermbg=blue guibg=royalblue2 +hi DiffChange term=bold ctermbg=darkmagenta guibg=maroon +hi DiffDelete term=bold cterm=bold ctermfg=lightblue ctermbg=cyan gui=bold guifg=lightblue guibg=cyan4 +hi DiffText term=reverse cterm=bold ctermbg=red gui=bold guibg=red3 +hi Cursor guifg=bg guibg=fg +hi lCursor guifg=bg guibg=fg +hi StatusLine term=reverse cterm=reverse gui=reverse guifg=gray60 +hi StatusLineNC term=reverse cterm=reverse gui=reverse guifg=gray40 +hi VertSplit term=reverse cterm=reverse gui=bold,reverse guifg=gray40 +hi Title term=bold ctermfg=magenta gui=bold guifg=aquamarine + +" syntax hi colors +hi Comment term=bold ctermfg=darkcyan guifg=cyan4 +hi PreProc term=underline ctermfg=darkblue guifg=dodgerblue4 +hi Constant term=underline ctermfg=darkred guifg=firebrick3 +hi Type term=underline ctermfg=darkgreen gui=none guifg=chartreuse3 +hi Statement term=bold ctermfg=darkyellow gui=none guifg=gold3 +hi Identifier term=underline ctermfg=darkgreen guifg=darkolivegreen4 +hi Ignore term=bold ctermfg=darkgray guifg=gray45 +hi Special term=underline ctermfg=brown guifg=sienna +hi Error term=reverse ctermfg=gray ctermbg=red guifg=gray guibg=red3 +hi Todo term=standout ctermfg=black ctermbg=yellow gui=bold guifg=gray10 guibg=yellow4 +hi Underlined term=underline cterm=underline ctermfg=darkblue gui=underline guifg=slateblue +hi Number term=underline ctermfg=darkred guifg=red2 +" syntax hi links +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Number Constant +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Operator Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/.vim/colors/dark-ruby.vim b/.vim/colors/dark-ruby.vim new file mode 100644 index 0000000..732dfb8 --- /dev/null +++ b/.vim/colors/dark-ruby.vim @@ -0,0 +1,291 @@ +" Vim color file +" Maintainer: Priit Tamboom +" Last Change: Alfa version +" URL: http://priit.mx.ee/dark-ruby + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dark-ruby" + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +" highlight Normal guibg=#EDE9E3 +" hi Cursor ctermfg=red guifg=lightgray +" hi CursorIM ctermfg=red guifg=lightgray +" hi Directory ctermfg=red guifg=lightgray +" hi DiffAdd ctermfg=red guifg=lightgray +" hi DiffChange ctermfg=red guifg=lightgray +" hi DiffDelete ctermfg=red guifg=lightgray +" hi DiffText ctermfg=red guifg=lightgray +" hi ErrorMsg ctermfg=red guifg=lightgray +" hi VertSplit ctermfg=red guifg=lightgray +" hi Folded ctermfg=red guifg=lightgray +" hi FoldColumn ctermfg=red guifg=lightgray +" hi IncSearch ctermfg=red guifg=lightgray +" hi ModeMsg ctermfg=red guifg=lightgray +" hi MoreMsg ctermfg=red guifg=lightgray +" hi NonText ctermfg=red guifg=lightgray +" hi Question ctermfg=red guifg=lightgray +" hi Search ctermfg=red guifg=lightgray +" hi SpecialKey ctermfg=red guifg=lightgray +" hi StatusLine ctermfg=red guifg=lightgray +" hi StatusLineNC ctermfg=red guifg=lightgray +" hi Title ctermfg=red guifg=lightgray +" hi Visual ctermfg=red guifg=lightgray +" hi VisualNOS ctermfg=red guifg=lightgray +" hi WarningMsg ctermfg=red guifg=lightgray +" hi WildMenu ctermfg=red guifg=lightgray +" hi Menu ctermfg=red guifg=lightgray +" hi Scrollbar ctermfg=red guifg=lightgray +" hi Tooltip ctermfg=red guifg=lightgray + +" syntax highlighting groups +hi LineNr ctermfg=252 guifg=252 +hi Comment ctermfg=28 guifg=28 +hi Constant ctermfg=185 guifg=185 +hi Identifier ctermfg=252 guifg=252 +hi Statement ctermfg=32 guifg=32 +hi PreProc ctermfg=252 guifg=252 +hi Type ctermfg=167 guifg=167 +hi Special ctermfg=252 guifg=252 +hi Underlined ctermfg=red guifg=red +hi Ignore ctermfg=red guifg=red +hi Error ctermfg=red guifg=red +hi Todo ctermfg=red guifg=red + +" Alfa version notes: color 'red' means I haven't set color yet + +hi rubyEscape ctermfg=252 guifg=252 +hi rubyInterpolationDelimiter ctermfg=252 guifg=252 +hi rubyInterpolation ctermfg=252 guifg=252 +hi rubyPredefinedVariable ctermfg=red guifg=red +hi rubyInstanceVariable ctermfg=66 guifg=66 +hi rubyClassVariable ctermfg=red guifg=red +hi rubyGlobalVariable ctermfg=red guifg=red +hi rubyPredefinedVariable ctermfg=red guifg=red +hi rubyNoInterpolation ctermfg=red guifg=red +hi rubyDelimEscape ctermfg=red guifg=red +hi rubyNestedParentheses ctermfg=red guifg=red +hi rubyNestedCurlyBraces ctermfg=red guifg=red +hi rubyNestedAngleBrackets ctermfg=red guifg=red +hi rubyNestedSquareBrackets ctermfg=red guifg=red +hi rubyASCIICode ctermfg=red guifg=red +hi rubyInteger ctermfg=185 guifg=185 +hi rubyFloat ctermfg=185 guifg=185 +hi rubyLocalVariableOrMethod ctermfg=red guifg=red +hi rubyBlockArgument ctermfg=red guifg=red +hi rubyConstant ctermfg=252 guifg=252 +hi rubySymbol ctermfg=167 guifg=167 +hi rubyStringSpecial ctermfg=red guifg=red +hi rubyBlockParameter ctermfg=252 guifg=252 +hi rubyPredefinedConstant ctermfg=red guifg=red +hi rubyRegexp ctermfg=167 guifg=167 +hi rubyString ctermfg=185 guifg=185 +hi rubyBoolean ctermfg=252 guifg=252 +hi rubyPseudoVariable ctermfg=252 guifg=252 +hi rubyMethodDeclaration ctermfg=red guifg=red +hi rubyClassDeclaration ctermfg=red guifg=red +hi rubyModuleDeclaration ctermfg=red guifg=red +hi rubyFunction ctermfg=252 guifg=252 +hi rubyDefine ctermfg=32 guifg=32 +hi rubyClass ctermfg=25 guifg=25 +hi rubyModule ctermfg=25 guifg=25 +hi rubyBlock ctermfg=252 guifg=252 +hi rubyConditional ctermfg=81 guifg=81 +hi rubyRepeat ctermfg=81 guifg=81 +hi rubyControl ctermfg=81 guifg=81 +hi rubyKeyword ctermfg=red guifg=red +hi rubyOperator ctermfg=red guifg=red +hi rubyBeginEnd ctermfg=red guifg=red +hi rubyAccess ctermfg=32 guifg=32 +hi rubyAttribute ctermfg=252 guifg=252 +hi rubyEval ctermfg=red guifg=red +hi rubyException ctermfg=red guifg=red +hi rubyInclude ctermfg=252 guifg=252 +hi rubySharpBang ctermfg=red guifg=red +hi rubyTodo ctermfg=34 guifg=34 +hi rubyComment ctermfg=28 guifg=28 +hi rubyDocumentation ctermfg=red guifg=red +hi rubyData ctermfg=red guifg=red + +hi railsMethod ctermfg=107 guifg=107 +hi railsUserClass ctermfg=107 guifg=107 +hi railsUserMethod ctermfg=107 guifg=107 + +" hi rubyRailsError ctermfg=lightgray guifg=lightgray +" hi rubyRailsDeprecatedMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsRenderMethod ctermfg=lightgray guifg=lightgray +" hi erubyRailsHelperMethod ctermfg=lightgray guifg=lightgray +"hi javascriptRailsClass ctermfg=lightgray guifg=lightgray +"hi javascriptRailsFunction ctermfg=lightgray guifg=lightgray +"hi htmlError ctermfg=lightgray guifg=lightgray +"hi htmlSpecialChar ctermfg=lightgray guifg=lightgray +"hi javaScriptExpression ctermfg=lightgray guifg=lightgray +"hi htmlString ctermfg=lightgray guifg=lightgray +"hi htmlValue ctermfg=lightgray guifg=lightgray +"hi htmlTagN ctermfg=lightgray guifg=lightgray +"hi htmlTagError ctermfg=lightgray guifg=lightgray +hi htmlEndTag ctermfg=25 guifg=25 +"hi htmlArg ctermfg=lightgray guifg=lightgray +"hi htmlEvent ctermfg=lightgray guifg=lightgray +"hi htmlCssDefinition ctermfg=lightgray guifg=lightgray +hi htmlTag ctermfg=25 guifg=25 +hi htmlTagName ctermfg=25 guifg=25 +"hi htmlSpecialTagName ctermfg=lightgray guifg=lightgray +"hi htmlCommentPart ctermfg=lightgray guifg=lightgray +"hi htmlCommentError ctermfg=lightgray guifg=lightgray +"hi htmlComment ctermfg=lightgray guifg=lightgray +"hi htmlPreStmt ctermfg=lightgray guifg=lightgray +"hi htmlPreError ctermfg=lightgray guifg=lightgray +"hi htmlPreAttr ctermfg=lightgray guifg=lightgray +"hi htmlPreProc ctermfg=lightgray guifg=lightgray +"hi htmlPreProcAttrError ctermfg=lightgray guifg=lightgray +"hi htmlPreProcAttrName ctermfg=lightgray guifg=lightgray +"hi htmlLink ctermfg=lightgray guifg=lightgray +"hi javaScript ctermfg=lightgray guifg=lightgray +"hi htmlBoldUnderline ctermfg=lightgray guifg=lightgray +"hi htmlBoldItalic ctermfg=lightgray guifg=lightgray +"hi htmlBold ctermfg=lightgray guifg=lightgray +"hi htmlBoldUnderlineItalic ctermfg=lightgray guifg=lightgray +"hi htmlBoldItalicUnderline ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineBold ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineItalic ctermfg=lightgray guifg=lightgray +"hi htmlUnderline ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineBoldItalic ctermfg=lightgray guifg=lightgray +"hi htmlUnderlineItalicBold ctermfg=lightgray guifg=lightgray +"hi htmlItalicBold ctermfg=lightgray guifg=lightgray +"hi htmlItalicUnderline ctermfg=lightgray guifg=lightgray +"hi htmlItalic ctermfg=lightgray guifg=lightgray +"hi htmlItalicBoldUnderline ctermfg=lightgray guifg=lightgray +"hi htmlItalicUnderlineBold ctermfg=lightgray guifg=lightgray +hi htmlH1 ctermfg=25 guifg=25 +"hi htmlH2 ctermfg=lightgray guifg=lightgray +"hi htmlH3 ctermfg=lightgray guifg=lightgray +"hi htmlH4 ctermfg=lightgray guifg=lightgray +"hi htmlH5 ctermfg=lightgray guifg=lightgray +"hi htmlH6 ctermfg=lightgray guifg=lightgray +"hi htmlTitle ctermfg=lightgray guifg=lightgray +"hi cssStyle ctermfg=lightgray guifg=lightgray +"hi htmlHead ctermfg=lightgray guifg=lightgray +"hi javaScriptCommentTodo ctermfg=lightgray guifg=lightgray +"hi javaScriptLineComment ctermfg=lightgray guifg=lightgray +"hi javaScriptCommentSkip ctermfg=lightgray guifg=lightgray +"hi javaScriptComment ctermfg=lightgray guifg=lightgray +"hi javaScriptSpecial ctermfg=lightgray guifg=lightgray +"hi javaScriptStringD ctermfg=lightgray guifg=lightgray +"hi javaScriptStringS ctermfg=lightgray guifg=lightgray +"hi javaScriptSpecialCharacter ctermfg=lightgray guifg=lightgray +"hi javaScriptNumber ctermfg=lightgray guifg=lightgray +"hi javaScriptRegexpString ctermfg=lightgray guifg=lightgray +"hi javaScriptConditional ctermfg=lightgray guifg=lightgray +"hi javaScriptRepeat ctermfg=lightgray guifg=lightgray +"hi javaScriptBranch ctermfg=lightgray guifg=lightgray +"hi javaScriptOperator ctermfg=lightgray guifg=lightgray +"hi javaScriptType ctermfg=lightgray guifg=lightgray +"hi javaScriptStatement ctermfg=lightgray guifg=lightgray +"hi javaScriptBoolean ctermfg=lightgray guifg=lightgray +"hi javaScriptNull ctermfg=lightgray guifg=lightgray +"hi javaScriptIdentifier ctermfg=lightgray guifg=lightgray +"hi javaScriptLabel ctermfg=lightgray guifg=lightgray +"hi javaScriptException ctermfg=lightgray guifg=lightgray +"hi javaScriptMessage ctermfg=lightgray guifg=lightgray +"hi javaScriptDeprecated ctermfg=lightgray guifg=lightgray +"hi javaScriptReserved ctermfg=lightgray guifg=lightgray +"hi javaScriptFunction ctermfg=lightgray guifg=lightgray +"hi javaScriptBraces ctermfg=lightgray guifg=lightgray +"hi javaScriptBraces ctermfg=lightgray guifg=lightgray +"hi javaScriptParens ctermfg=lightgray guifg=lightgray +"hi htmlCssStyleComment ctermfg=lightgray guifg=lightgray +"hi htmlScriptTag ctermfg=lightgray guifg=lightgray +"hi htmlEventTag ctermfg=lightgray guifg=lightgray +"hi htmlEventSQ ctermfg=lightgray guifg=lightgray +"hi htmlEventDQ ctermfg=lightgray guifg=lightgray +"hi vbStatement ctermfg=lightgray guifg=lightgray +"hi vbFunction ctermfg=lightgray guifg=lightgray +"hi vbMethods ctermfg=lightgray guifg=lightgray +"hi vbEvents ctermfg=lightgray guifg=lightgray +"hi vbTypes ctermfg=lightgray guifg=lightgray +"hi vbOperator ctermfg=lightgray guifg=lightgray +"hi vbConst ctermfg=lightgray guifg=lightgray +"hi vbTodo ctermfg=lightgray guifg=lightgray +"hi vbNumber ctermfg=lightgray guifg=lightgray +"hi vbString ctermfg=lightgray guifg=lightgray +"hi vbComment ctermfg=lightgray guifg=lightgray +"hi vbLineNumber ctermfg=lightgray guifg=lightgray +"hi vbTypeSpecifier ctermfg=lightgray guifg=lightgray +"hi cssTagName ctermfg=lightgray guifg=lightgray +"hi cssDefinition ctermfg=lightgray guifg=lightgray +"hi cssSelectorOp ctermfg=lightgray guifg=lightgray +"hi cssSelectorOp2 ctermfg=lightgray guifg=lightgray +"hi cssUnicodeEscape ctermfg=lightgray guifg=lightgray +"hi cssStringQ ctermfg=lightgray guifg=lightgray +"hi cssStringQQ ctermfg=lightgray guifg=lightgray +"hi cssIdentifier ctermfg=lightgray guifg=lightgray +"hi cssMediaType ctermfg=lightgray guifg=lightgray +"hi cssMedia ctermfg=lightgray guifg=lightgray +"hi cssMediaComma ctermfg=lightgray guifg=lightgray +"hi cssMediaBlock ctermfg=lightgray guifg=lightgray +"hi cssBraces ctermfg=lightgray guifg=lightgray +"hi cssError ctermfg=lightgray guifg=lightgray +"hi cssComment ctermfg=lightgray guifg=lightgray +"hi cssURL ctermfg=lightgray guifg=lightgray +"hi cssValueInteger ctermfg=lightgray guifg=lightgray +"hi cssValueNumber ctermfg=lightgray guifg=lightgray +"hi cssValueLength ctermfg=lightgray guifg=lightgray +"hi cssValueAngle ctermfg=lightgray guifg=lightgray +"hi cssValueTime ctermfg=lightgray guifg=lightgray +"hi cssValueFrequency ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptor ctermfg=lightgray guifg=lightgray +"hi cssFontProp ctermfg=lightgray guifg=lightgray +"hi cssFontAttr ctermfg=lightgray guifg=lightgray +"hi cssCommonAttr ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptorProp ctermfg=lightgray guifg=lightgray +"hi cssFontDescriptorFunction ctermfg=lightgray guifg=lightgray +"hi cssUnicodeRange ctermfg=lightgray guifg=lightgray +"hi cssColor ctermfg=lightgray guifg=lightgray +"hi cssFunction ctermfg=lightgray guifg=lightgray +"hi cssImportant ctermfg=lightgray guifg=lightgray +"hi cssColorProp ctermfg=lightgray guifg=lightgray +"hi cssColorAttr ctermfg=lightgray guifg=lightgray +"hi cssTextProp ctermfg=lightgray guifg=lightgray +"hi cssTextAttr ctermfg=lightgray guifg=lightgray +"hi cssBoxProp ctermfg=lightgray guifg=lightgray +"hi cssBoxAttr ctermfg=lightgray guifg=lightgray +"hi cssGeneratedContentProp ctermfg=lightgray guifg=lightgray +"hi cssGeneratedContentAttr ctermfg=lightgray guifg=lightgray +"hi cssAurlAttr ctermfg=lightgray guifg=lightgray +"hi cssPagingProp ctermfg=lightgray guifg=lightgray +"hi cssPagingAttr ctermfg=lightgray guifg=lightgray +"hi cssUIProp ctermfg=lightgray guifg=lightgray +"hi cssUIAttr ctermfg=lightgray guifg=lightgray +"hi cssRenderAttr ctermfg=lightgray guifg=lightgray +"hi cssRenderProp ctermfg=lightgray guifg=lightgray +"hi cssAuralProp ctermfg=lightgray guifg=lightgray +"hi cssTableProp ctermfg=lightgray guifg=lightgray +"hi cssTableAttr ctermfg=lightgray guifg=lightgray +"hi cssInclude ctermfg=lightgray guifg=lightgray +"hi cssBraceError ctermfg=lightgray guifg=lightgray +"hi cssPreudoClassId ctermfg=lightgray guifg=lightgray +"hi cssPseudoClass ctermfg=lightgray guifg=lightgray +"hi cssPseudoClassLang ctermfg=lightgray guifg=lightgray +"hi cssSpecialCharQQ ctermfg=lightgray guifg=lightgray +"hi cssSpecialCharQ ctermfg=lightgray guifg=lightgray +"hi erubyOneLiner ctermfg=lightgray guifg=lightgray +"hi erubyBlock ctermfg=lightgray guifg=lightgray +"hi erubyExpression ctermfg=lightgray guifg=lightgray +"hi erubyComment ctermfg=lightgray guifg=lightgray diff --git a/.vim/colors/darkZ.vim b/.vim/colors/darkZ.vim new file mode 100644 index 0000000..246f69a --- /dev/null +++ b/.vim/colors/darkZ.vim @@ -0,0 +1,91 @@ +" Vim color file +" Create by Andy +" QQ24375048 + +set background=dark +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="darkZ" + +hi Normal guifg=#DFD6C1 guibg=gray14 gui=none + +" highlight groups +hi Cursor guifg=black guibg=yellow gui=none +hi ErrorMsg guifg=white guibg=red gui=none +hi VertSplit guifg=gray40 guibg=gray40 gui=none +hi Folded guifg=DarkSlateGray3 guibg=grey30 gui=none +hi FoldColumn guifg=tan guibg=grey30 gui=none +hi IncSearch guifg=#b0ffff guibg=#2050d0 +hi LineNr guifg=burlywood3 gui=none +hi ModeMsg guifg=SkyBlue gui=none +hi MoreMsg guifg=SeaGreen gui=none +hi NonText guifg=cyan gui=none +hi Question guifg=springgreen gui=none +hi Search guifg=gray80 guibg=#445599 gui=none +hi SpecialKey guifg=cyan gui=none +hi StatusLine guifg=black guibg=Pink gui=bold +hi StatusLineNC guifg=grey guibg=gray40 gui=none +hi Title guifg=#ff4400 gui=none gui=bold +hi Visual guifg=gray17 guibg=tan1 gui=none +hi WarningMsg guifg=salmon gui=none +hi Pmenu guifg=white guibg=#445599 gui=none +hi PmenuSel guifg=#445599 guibg=gray +hi WildMenu guifg=gray guibg=gray17 gui=none +hi MatchParen guifg=cyan guibg=#6C6C6C gui=bold +hi DiffAdd guifg=black guibg=wheat1 +hi DiffChange guifg=black guibg=skyblue1 +hi DiffText guifg=black guibg=hotpink1 gui=none +hi DiffDelete guibg=gray45 guifg=black gui=none + +" syntax highlighting groups +hi Comment guifg=gray50 gui=italic +hi Constant guifg=#FF77FF gui=none +hi Identifier guifg=#6FDEF8 gui=none +hi Function guifg=#82EF2A gui=none +hi Statement guifg=#FCFC63 gui=none +hi PreProc guifg=#82EF2A gui=none +hi Type guifg=#33AFF3 gui=none +hi Special guifg=orange gui=none +hi Ignore guifg=red gui=none +hi Todo guifg=red guibg=yellow2 gui=none + +" color terminal definitions +hi SpecialKey ctermfg=red +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=white ctermbg=grey +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + diff --git a/.vim/colors/darkblue2.vim b/.vim/colors/darkblue2.vim new file mode 100644 index 0000000..eee2cc7 --- /dev/null +++ b/.vim/colors/darkblue2.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Datila Carvalho +" Last Change: May, 19, 2005 +" Version: 0.2 + +" This is a VIM's version of the emacs color theme +" _Dark Blue2_ created by Chris McMahan. + +""" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkblue2" + + +""" Colors + +" GUI colors +hi Cursor guifg=#233b5a guibg=Yellow +hi CursorIM guifg=NONE guibg=Yellow +hi Directory gui=bold guifg=cyan +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +hi DiffText guibg=grey50 +hi ErrorMsg gui=bold guifg=White guibg=gray85 +hi VertSplit gui=bold guifg=NONE guibg=gray80 +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr gui=bold guifg=lightsteelblue guibg=#132b4a +hi ModeMsg gui=bold +"hi MoreMsg +"hi NonText +hi Normal guibg=#233b5a guifg=#fff8dc +"hi Question +hi Search gui=bold guifg=#233b5a guibg=lightgoldenrod +"hi SpecialKey +hi StatusLine guifg=steelblue4 guibg=lightgray +hi StatusLineNC guifg=royalblue4 guibg=lightsteelblue +"hi Title +hi Visual guifg=steelblue guibg=fg +hi VisualNOS gui=bold guifg=steelblue guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +hi User2 guifg=lightskyblue guibg=#021a39 gui=bold + +" If using Motif/Athena +hi Menu guibg=#233b5a guifg=#fff8dc +hi Scrollbar guibg=bg + +" Colors for syntax highlighting +hi Comment gui=italic guifg=mediumaquamarine + +hi Constant gui=bold guifg=lightgoldenrod1 + hi String guifg=aquamarine + hi Character guifg=aquamarine + hi Number gui=bold guifg=lightgoldenrod1 + hi Boolean gui=bold guifg=lightgoldenrod1 + hi Float gui=bold guifg=lightgoldenrod1 + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=lightskyblue + +hi Statement gui=bold guifg=cyan + hi Conditional gui=bold guifg=cyan + hi Repeat gui=bold guifg=cyan + hi Label guifg=cyan + hi Operator guifg=cyan + "hi Keyword + "hi Exception + +hi PreProc guifg=lightsteelblue + hi Include gui=bold guifg=lightsteelblue + hi Define guifg=lightsteelblue + hi Macro guifg=lightsteelblue + hi PreCondit guifg=lightsteelblue + +hi Type gui=bold guifg=palegreen + hi StorageClass gui=bold guifg=lightgoldenrod1 + hi Structure gui=bold guifg=lightgoldenrod1 + hi Typedef gui=bold guifg=lightgoldenrod1 + +"hi Special + ""Underline Character + "hi SpecialChar + "hi Tag + ""Statement + "hi Delimiter + ""Bold comment (in Java at least) + "hi SpecialComment + "hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/.vim/colors/darkbone.vim b/.vim/colors/darkbone.vim new file mode 100644 index 0000000..a97c8fe --- /dev/null +++ b/.vim/colors/darkbone.vim @@ -0,0 +1,102 @@ +" Name: darkbone.vim +" Maintainer: Kojo Sugita +" Last Change: 2008-11-22 +" Revision: 1.1 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'darkbone' + +"default colors +hi Normal guifg=#a0a0c0 guibg=#000000 +hi NonText guifg=#606080 guibg=#101020 gui=none +hi SpecialKey guifg=#404060 +hi Cursor guifg=#000000 guibg=#a0a0c0 +hi CursorLine guibg=#303050 +hi CursorColumn guibg=#303050 +hi lCursor guifg=#000000 guibg=#a0a0c0 +hi CursorIM guifg=#000000 guibg=#a0a0c0 + +" Directory +hi Directory guifg=#e0e0ff guibg=#000000 gui=bold + +" Diff +hi DiffAdd guifg=#8090f0 guibg=#000000 gui=none +hi DiffChange guifg=#8090f0 guibg=#000000 gui=none +hi DiffDelete guifg=#8090f0 guibg=#000000 gui=none +hi DiffText guifg=#8090f0 guibg=#000000 gui=bold + +" Message +hi ModeMsg guifg=#a0a0c0 guibg=#000000 +hi MoreMsg guifg=#a0a0c0 guibg=#000000 +hi ErrorMsg guifg=#ee1111 guibg=#000000 +hi WarningMsg guifg=#ee1111 guibg=#000000 + +hi VertSplit guifg=#606080 guibg=#606080 + +" Folds +hi Folded guifg=#a0a0c0 guibg=#000000 +hi FoldColumn guifg=#a0a0c0 guibg=#102010 + +" Search +hi Search guifg=#000000 guibg=#c0c0ff gui=none +hi IncSearch guifg=#000000 guibg=#c0c0ff gui=none + +hi LineNr guifg=#606080 guibg=#000000 gui=none +hi Question guifg=#a0a0c0 guibg=#000000 + +"\n, \0, %d, %s, etc... +" hi Special guifg=#d0e080 guibg=#000000 gui=none +hi Special guifg=#808080 guibg=#000000 gui=none + +" status line +hi StatusLine guifg=#c0c0ff guibg=#000000 gui=bold,underline +hi StatusLineNC guifg=#606080 guibg=#000000 gui=bold,underline +hi WildMenu guifg=#000000 guibg=#c0c0ff + +hi Title guifg=#c0c0ff guibg=#000000 gui=bold +hi Visual guifg=#000000 guibg=#707090 gui=none +hi VisualNOS guifg=#a0a0c0 guibg=#000000 + +hi Number guifg=#d0e080 guibg=#000000 +hi Char guifg=#d0e080 guibg=#000000 +hi String guifg=#d0e080 guibg=#000000 + +hi Boolean guifg=#d0e080 guibg=#000000 +hi Comment guifg=#606080 +hi Constant guifg=#f0a0b0 guibg=#000000 gui=none +hi Identifier guifg=#8090f0 +hi Statement guifg=#8090f0 gui=none + +"Procedure name +hi Function guifg=#f0b040 + +"Define, def +" hi PreProc guifg=#f0a0b0 gui=none +hi PreProc guifg=#e0e0ff gui=none + +hi Type guifg=#e0e0ff gui=none +hi Underlined guifg=#a0a0c0 gui=underline +hi Error guifg=#ee1111 guibg=#000000 +hi Todo guifg=#8090f0 guibg=#000000 gui=none +hi SignColumn guibg=#000000 + +" Matches +hi MatchParen guifg=#a0a0c0 guibg=#404080 gui=none + +if version >= 700 + " Pmenu + hi Pmenu guibg=#202040 + hi PmenuSel guibg=#404080 guifg=#a0a0c0 + hi PmenuSbar guibg=#202040 + + " Tab + hi TabLine guifg=#606080 guibg=black gui=underline + hi TabLineFill guifg=#a0a0c0 guibg=black gui=none + hi TabLineSel guifg=#c0c0ff guibg=#606080 gui=bold +endif + +" vim:set ts=8 sts=2 sw=2 tw=0: diff --git a/.vim/colors/darkslategray.vim b/.vim/colors/darkslategray.vim new file mode 100644 index 0000000..b36aef0 --- /dev/null +++ b/.vim/colors/darkslategray.vim @@ -0,0 +1,117 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Tuomas Susi +" Last Change: 2004 October 05 +" Version: 1.7 + +" Emacs in RedHat Linux used to have (still does?) a kind of 'Wheat on +" DarkSlateGray' color scheme by default. This color scheme is created in the +" same spirit. +" +" Darkslategray is intended to be nice to your eyes (low contrast) and to take +" advantage of syntax hilighting as much as possible. +" +" This color scheme is for the GUI only, I'm happy with default console colors. +" Needs at least vim 6.0. + + +" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkslategray" + + +" GUI colors + +hi Cursor guifg=fg guibg=#da70d6 +hi CursorIM guifg=NONE guibg=#ff83fa +hi Directory guifg=#e0ffff +hi DiffAdd guibg=#528b8b +hi DiffChange guibg=#8b636c +hi DiffDelete gui=bold guifg=fg guibg=#000000 +hi DiffText gui=bold guibg=#6959cd +hi ErrorMsg gui=bold guifg=#ffffff guibg=#ff0000 +hi VertSplit gui=bold guifg=#bdb76b guibg=#000000 +hi Folded guifg=#000000 guibg=#bdb76b +hi FoldColumn guifg=#000000 guibg=#bdb76b +hi SignColumn gui=bold guifg=#bdb76b guibg=#20b2aa +hi IncSearch gui=bold guifg=#000000 guibg=#ffffff +hi LineNr gui=bold guifg=#bdb76b guibg=#528b8b +hi ModeMsg gui=bold +hi MoreMsg gui=bold guifg=#20b2aa +hi NonText gui=bold guifg=#ffffff +hi Normal guibg=#2f4f4f guifg=#f5deb3 +hi Question gui=bold guifg=#ff6347 +hi Search gui=bold guifg=#000000 guibg=#ffd700 +hi SpecialKey guifg=#00ffff +hi StatusLine gui=bold guifg=#f0e68c guibg=#000000 +hi StatusLineNC guibg=#bdb76b guifg=#404040 +hi Title gui=bold guifg=#ff6347 +hi Visual guifg=#000000 guibg=fg +hi VisualNOS gui=bold guifg=#000000 guibg=fg +hi WarningMsg guifg=#ffffff guibg=#ff6347 +hi WildMenu gui=bold guifg=#000000 guibg=#ffff00 + + +" I use GTK and don't wanna change these +"hi Menu foobar +"hi Scrollbar foobar +"hi Tooltip foobar + + +" Colors for syntax highlighting +hi Comment guifg=#da70d6 + +hi Constant guifg=#cdcd00 + hi String guifg=#7fffd4 + hi Character guifg=#7fffd4 + hi Number guifg=#ff6347 + hi Boolean guifg=#cdcd00 + hi Float guifg=#ff6347 + +hi Identifier guifg=#afeeee + hi Function guifg=#ffffff + +hi Statement gui=bold guifg=#4682b4 + hi Conditional gui=bold guifg=#4682b4 + hi Repeat gui=bold guifg=#4682b4 + hi Label gui=bold guifg=#4682b4 + hi Operator gui=bold guifg=#4682b4 + hi Keyword gui=bold guifg=#4682b4 + hi Exception gui=bold guifg=#4682b4 + +hi PreProc guifg=#cdcd00 + hi Include guifg=#ffff00 + hi Define guifg=#cdcd00 + hi Macro guifg=#cdcd00 + hi PreCondit guifg=#cdcd00 + +hi Type gui=bold guifg=#98fb98 + hi StorageClass guifg=#00ff00 + hi Structure guifg=#20b2aa + hi Typedef guifg=#00ff7f + +hi Special guifg=#ff6347 + "Underline Character + hi SpecialChar gui=underline guifg=#7fffd4 + hi Tag guifg=#ff6347 + "Statement + hi Delimiter gui=bold guifg=#b0c4de + "Bold comment (in Java at least) + hi SpecialComment gui=bold guifg=#da70d6 + hi Debug gui=bold guifg=#ff0000 + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=#ffffff guibg=#ff0000 + +hi Todo gui=bold guifg=#000000 guibg=#ff83fa + diff --git a/.vim/colors/darkspectrum.vim b/.vim/colors/darkspectrum.vim new file mode 100644 index 0000000..26ed7f3 --- /dev/null +++ b/.vim/colors/darkspectrum.vim @@ -0,0 +1,130 @@ +" Vim color file +" +" Author: Brian Mock +" +" Note: Based on Oblivion color scheme for gedit (gtk-source-view) +" +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +hi clear + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="darkspectrum" + +hi Normal guifg=#efefef guibg=#2A2A2A + +" highlight groups +hi Cursor guibg=#ffffff guifg=#000000 +hi CursorLine guibg=#000000 +"hi CursorLine guibg=#3e4446 +hi CursorColumn guibg=#464646 + +"hi DiffText guibg=#4e9a06 guifg=#FFFFFF gui=bold +"hi DiffChange guibg=#4e9a06 guifg=#FFFFFF gui=bold +"hi DiffAdd guibg=#204a87 guifg=#FFFFFF gui=bold +"hi DiffDelete guibg=#5c3566 guifg=#FFFFFF gui=bold + +hi DiffAdd guifg=#ffcc7f guibg=#a67429 gui=none +hi DiffChange guifg=#7fbdff guibg=#425c78 gui=none +hi DiffText guifg=#8ae234 guibg=#4e9a06 gui=none +"hi DiffDelete guifg=#252723 guibg=#000000 gui=none +hi DiffDelete guifg=#000000 guibg=#000000 gui=none +"hi ErrorMsg + +hi Number guifg=#fce94f + +hi Folded guibg=#000000 guifg=#FFFFFF gui=bold +hi vimFold guibg=#000000 guifg=#FFFFFF gui=bold +hi FoldColumn guibg=#000000 guifg=#FFFFFF gui=bold + +hi LineNr guifg=#535353 guibg=#202020 +hi NonText guifg=#535353 guibg=#202020 +hi Folded guifg=#535353 guibg=#202020 gui=bold +hi FoldeColumn guifg=#535353 guibg=#202020 gui=bold +"hi VertSplit guibg=#ffffff guifg=#ffffff gui=none + +hi VertSplit guibg=#3C3C3C guifg=#3C3C3C gui=none +hi StatusLine guifg=#FFFFFF guibg=#3C3C3C gui=none +hi StatusLineNC guifg=#808080 guibg=#3C3C3C gui=none + +hi ModeMsg guifg=#fce94f +hi MoreMsg guifg=#fce94f +hi Visual guifg=#FFFFFF guibg=#3465a4 gui=none +hi VisualNOS guifg=#FFFFFF guibg=#204a87 gui=none +hi IncSearch guibg=#FFFFFF guifg=#ef5939 +hi Search guibg=#ad7fa8 guifg=#FFFFFF +hi SpecialKey guifg=#8ae234 + +hi Title guifg=#ef5939 +hi WarningMsg guifg=#ef5939 +hi Number guifg=#fcaf3e + +hi MatchParen guibg=#ad7fa8 guifg=#FFFFFF +hi Comment guifg=#8a8a8a +hi Constant guifg=#ef5939 gui=none +hi String guifg=#fce94f +hi Identifier guifg=#729fcf +hi Statement guifg=#ffffff gui=bold +hi PreProc guifg=#ffffff gui=bold +hi Type guifg=#8ae234 gui=bold +hi Special guifg=#e9b96e +hi Underlined guifg=#ad7fa8 gui=underline +hi Directory guifg=#729fcf +hi Ignore guifg=#555753 +hi Todo guifg=#FFFFFF guibg=#ef5939 gui=bold +hi Function guifg=#ad7fa8 + +"hi WildMenu guibg=#2e3436 guifg=#ffffff gui=bold +"hi WildMenu guifg=#7fbdff guibg=#425c78 gui=none +hi WildMenu guifg=#ffffff guibg=#3465a4 gui=none + +hi Pmenu guibg=#000000 guifg=#c0c0c0 +hi PmenuSel guibg=#3465a4 guifg=#ffffff +hi PmenuSbar guibg=#444444 guifg=#444444 +hi PmenuThumb guibg=#888888 guifg=#888888 + +hi cppSTLType guifg=#729fcf gui=bold + +hi spellBad guisp=#fcaf3e +hi spellCap guisp=#73d216 +hi spellRare guisp=#ad7fa8 +hi spellLocal guisp=#729fcf + +hi link cppSTL Function +hi link Error Todo +hi link Character Number +hi link rubySymbol Number +hi link htmlTag htmlEndTag +"hi link htmlTagName htmlTag +hi link htmlLink Underlined +hi link pythonFunction Identifier +hi link Question Type +hi link CursorIM Cursor +hi link VisualNOS Visual +hi link xmlTag Identifier +hi link xmlTagName Identifier +hi link shDeref Identifier +hi link shVariable Function +hi link rubySharpBang Special +hi link perlSharpBang Special +hi link schemeFunc Statement +"hi link shSpecialVariables Constant +"hi link bashSpecialVariables Constant + +" tabs (non gui) +hi TabLine guifg=#A3A3A3 guibg=#202020 gui=none +hi TabLineFill guifg=#535353 guibg=#202020 gui=none +hi TabLineSel guifg=#FFFFFF gui=bold +"hi TabLineSel guifg=#FFFFFF guibg=#000000 gui=bold +" vim: sw=4 ts=4 diff --git a/.vim/colors/dawn.vim b/.vim/colors/dawn.vim new file mode 100644 index 0000000..a97c5ad --- /dev/null +++ b/.vim/colors/dawn.vim @@ -0,0 +1,78 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2005 Nov. 24 +" Version: 1.5 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a light grey background, and is a softer +" variant of the default and morning color schemes. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dawn" + +hi Normal guifg=Black guibg=grey90 +"hi Normal guifg=Black guibg=grey80 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guifg=fg guibg=LightGreen +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=grey70 +hi StatusLineNC gui=NONE guifg=grey90 guibg=grey70 +hi VertSplit gui=NONE guifg=grey70 guibg=grey70 +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Blue guibg=LightYellow +"hi DiffText gui=NONE guifg=Blue guibg=MistyRose2 +hi Cursor guifg=NONE guibg=Green +hi lCursor guifg=NONE guibg=Cyan +hi Directory guifg=Blue guibg=bg +hi LineNr guifg=Brown guibg=grey80 +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Blue guibg=grey80 +hi Question gui=NONE guifg=SeaGreen guibg=bg +hi Search guifg=fg guibg=PeachPuff +hi SpecialKey guifg=Blue guibg=bg +hi Title gui=NONE guifg=Magenta guibg=bg +hi WarningMsg guifg=Red guibg=bg +hi WildMenu guifg=fg guibg=PeachPuff +hi Folded guifg=Grey40 guibg=bg " guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=fg guibg=MistyRose2 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=azure4 guibg=bg +"hi Constant gui=NONE guifg=DeepSkyBlue4 guibg=bg +hi String gui=NONE guifg=DarkOliveGreen4 guibg=bg +hi Special gui=NONE guifg=Cyan4 guibg=bg +hi Statement gui=NONE guifg=SlateBlue4 guibg=bg +hi Operator gui=NONE guifg=Purple guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +if v:version >= 700 + hi SpellBad gui=undercurl guisp=DeepPink1 guifg=fg guibg=bg + hi SpellCap gui=undercurl guisp=Blue guifg=fg guibg=bg + hi SpellRare gui=undercurl guisp=Black guifg=fg guibg=bg + hi SpellLocal gui=undercurl guisp=SeaGreen guifg=fg guibg=bg +endif +hi ToDo gui=NONE guifg=DeepPink1 guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=RoyalBlue guibg=NONE +hi Identifier gui=NONE guifg=DodgerBlue3 guibg=NONE +"hi Identifier gui=NONE guifg=SteelBlue4 guibg=NONE +hi PreProc gui=NONE guifg=Magenta4 guibg=NONE +hi Type gui=NONE guifg=Brown guibg=NONE +hi Underlined gui=underline guifg=SlateBlue guibg=bg +"if exists("g:minimal_colors") +" hi Statement gui=NONE guifg=fg guibg=bg +" hi Identifier gui=NONE guifg=fg guibg=bg +" hi Type gui=NONE guifg=fg guibg=bg +"endif + +" vim: sw=2 diff --git a/.vim/colors/denim.vim b/.vim/colors/denim.vim new file mode 100644 index 0000000..c41af9f --- /dev/null +++ b/.vim/colors/denim.vim @@ -0,0 +1,141 @@ +" Maintainer: Tim Aldrich +" Last Change: 19 November 2001 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="denim" +" GUI colors {{{ +hi Normal guifg=#FFFFFF guibg=#000038 +hi Cursor guifg=#000038 guibg=#FFFFFF +hi CursorIM guifg=#6699CC guibg=#99CCCC +hi Directory guifg=#33CCFF guibg=#6699CC +hi DiffAdd guifg=#FFFFCC guibg=#000038 +hi DiffChange guifg=#FF9900 guibg=#000038 +hi DiffDelete guifg=#999999 guibg=#000038 +hi DiffText guifg=#FFFFFF guibg=#000038 +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 +hi VertSplit guifg=#FFFFFF guibg=#000038 +hi Folded guifg=#999999 guibg=#003366 +hi FoldColumn guifg=#0000EE guibg=#6699CC +hi IncSearch guifg=#FFFF00 guibg=#000038 +hi LineNr guifg=#FFFFEE guibg=#000038 +hi ModeMsg guifg=#FFFFFF guibg=#000038 +hi MoreMsg guifg=#FFFFFF guibg=#000038 +hi NonText guifg=#FFFFFF guibg=#00003D +hi Question guifg=#FFFFFF guibg=#0000EE +hi Search guifg=#993300 guibg=#6699CC +hi SpecialKey guifg=#FFFF00 guibg=#000038 +hi StatusLine guifg=#FFFFFF guibg=#000038 +hi StatusLineNC guifg=#CCCCCC guibg=#000038 +hi Title guifg=#FFFFFF guibg=#FF9900 +hi Visual guifg=#003366 guibg=#6699FF +hi WarningMsg guifg=#FF0000 guibg=#FFFFFF +hi WildMenu guifg=#000038 guibg=#999999 +" }}} + +" cterm colors {{{ +hi Normal ctermfg=white ctermbg=darkblue +hi Cursor ctermfg=darkblue ctermbg=white +hi CursorIM ctermfg=lightcyan ctermbg=lightcyan +hi Directory ctermfg=lightblue ctermbg=lightcyan +hi DiffAdd ctermfg=LightYellow ctermbg=darkblue +hi DiffChange ctermfg=darkred ctermbg=darkblue +hi DiffDelete ctermfg=grey ctermbg=darkblue +hi DiffText ctermfg=white ctermbg=darkblue +hi ErrorMsg ctermfg=red ctermbg=lightcyan +hi VertSplit ctermfg=white ctermbg=darkblue +hi Folded ctermfg=grey ctermbg=darkblue +hi FoldColumn ctermfg=darkred ctermbg=lightcyan +hi IncSearch ctermfg=yellow ctermbg=darkblue +hi LineNr ctermfg=lightyellow ctermbg=darkblue +hi ModeMsg ctermfg=white ctermbg=darkblue +hi MoreMsg ctermfg=white ctermbg=darkblue +hi NonText ctermfg=white ctermbg=lightblue +hi Question ctermfg=white ctermbg=darkblue +hi Search ctermfg=darkred ctermbg=lightcyan +hi SpecialKey ctermfg=yellow ctermbg=darkblue +hi StatusLine ctermfg=white ctermbg=darkblue +hi StatusLineNC ctermfg=lightgrey ctermbg=darkblue +hi Title ctermfg=white ctermbg=yellow +hi Visual ctermfg=lightblue ctermbg=cyan +hi WarningMsg ctermfg=red ctermbg=white +hi WildMenu ctermfg=darkblue ctermbg=grey +" }}} + +" GUI hilight groups {{{ + +hi Comment guifg=#999999 +hi Constant guifg=#33FF33 +hi String guifg=#CCCC99 +hi Character guifg=#33FF33 +hi Number guifg=#33FF33 +hi Boolean guifg=#33FF33 +hi Float guifg=#33FF33 +hi Identifier guifg=#33FFFF +hi Function guifg=#33FFFF +hi Statement guifg=#FFFFCC +hi Conditional guifg=#FFFFCC +hi Repeat guifg=#FFFFCC +hi Label guifg=#33FF99 +hi Operator guifg=#FFFF00 +hi Keyword guifg=#FFFF00 +hi Exception guifg=#FFFFAA +hi PreProc guifg=#66CCFF +hi Include guifg=#66CCFF +hi Define guifg=#66CCFF +hi Macro guifg=#66CCFF +hi PreCondit guifg=#66CCFF +hi Type guifg=#33FF99 +hi StorageClass guifg=#33FF99 +hi Structure guifg=#33FF99 +hi Typedef guifg=#33FF99 +hi Special guifg=#00FF00 +hi SpecialChar guifg=#00FF00 +hi Tag guifg=#CCCCFF +hi Delimiter guifg=#CCCCFF +hi SpecialComment guifg=#FFFFCC +hi Debug guifg=#CC3300 +hi Ignore guifg=#0066AA +hi Error guifg=#FF0000 guibg=#FFFFFF +hi Todo guifg=#999999 guibg=#FFFFFF +" }}} + +" cterm hilight groups {{{ +hi Comment ctermfg=grey +hi Constant ctermfg=lightgreen +hi String ctermfg=brown +hi Character ctermfg=lightgreen +hi Number ctermfg=lightgreen +hi Boolean ctermfg=lightgreen +hi Float ctermfg=lightgreen +hi Identifier ctermfg=lightcyan +hi Function ctermfg=lightcyan +hi Statement ctermfg=lightyellow +hi Conditional ctermfg=lightyellow +hi Repeat ctermfg=lightyellow +hi Label ctermfg=lightcyan +hi Operator ctermfg=yellow +hi Keyword ctermfg=yellow +hi Exception ctermfg=yellow +hi PreProc ctermfg=darkcyan +hi Include ctermfg=darkcyan +hi Define ctermfg=darkcyan +hi Macro ctermfg=darkcyan +hi PreCondit ctermfg=darkcyan +hi Type ctermfg=lightcyan +hi StorageClass ctermfg=lightcyan +hi Structure ctermfg=lightcyan +hi Typedef ctermfg=lightcyan +hi Special ctermfg=green +hi SpecialChar ctermfg=green +hi Tag ctermfg=brown +hi Delimiter ctermfg=brown +hi SpecialComment ctermfg=lightyellow +hi Debug ctermfg=magenta +hi Ignore ctermfg=lightblue +hi Error ctermfg=red ctermbg=white +hi Todo ctermfg=grey ctermbg=white +" }}} diff --git a/.vim/colors/desert256.vim b/.vim/colors/desert256.vim new file mode 100644 index 0000000..7a97742 --- /dev/null +++ b/.vim/colors/desert256.vim @@ -0,0 +1,338 @@ +" Vim color file +" Maintainer: Henry So, Jr. + +" These are the colors of the "desert" theme by Hans Fugal with a few small +" modifications (namely that I lowered the intensity of the normal white and +" made the normal and nontext backgrounds black), modified to work with 88- +" and 256-color xterms. +" +" The original "desert" theme is available as part of the vim distribution or +" at http://hans.fugal.net/vim/colors/. +" +" The real feature of this color scheme, with a wink to the "inkpot" theme, is +" the programmatic approximation of the gui colors to the palettes of 88- and +" 256- color xterms. The functions that do this (folded away, for +" readability) are calibrated to the colors used for Thomas E. Dickey's xterm +" (version 200), which is available at http://dickey.his.com/xterm/xterm.html. +" +" I struggled with trying to parse the rgb.txt file to avoid the necessity of +" converting color names to #rrggbb form, but decided it was just not worth +" the effort. Maybe someone seeing this may decide otherwise... + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desert256" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + " functions {{{ + " returns an approximate grey index for the given grey level + fun grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual grey level represented by the grey index + fun grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif + endfun + + " returns the palette index for the given grey index + fun grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif + endfun + + " returns an approximate color index for the given color level + fun rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual color level for the given color index + fun rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif + endfun + + " returns the palette index for the given R/G/B color indices + fun rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif + endfun + + " returns the palette index to approximate the given R/G/B color levels + fun color(r, g, b) + " get the closest grey + let l:gx = grey_number(a:r) + let l:gy = grey_number(a:g) + let l:gz = grey_number(a:b) + + " get the closest color + let l:x = rgb_number(a:r) + let l:y = rgb_number(a:g) + let l:z = rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = grey_level(l:gx) - a:r + let l:dgg = grey_level(l:gy) - a:g + let l:dgb = grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = rgb_level(l:gx) - a:r + let l:dg = rgb_level(l:gy) - a:g + let l:db = rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return grey_color(l:gx) + else + " use the color + return rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + + return color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) + endif + if a:bg != "" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + call X("Normal", "cccccc", "000000", "") + + " highlight groups + call X("Cursor", "708090", "f0e68c", "") + "CursorIM + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + "ErrorMsg + call X("VertSplit", "c2bfa5", "7f7f7f", "reverse") + call X("Folded", "ffd700", "4d4d4d", "") + call X("FoldColumn", "d2b48c", "4d4d4d", "") + call X("IncSearch", "708090", "f0e68c", "") + "LineNr + call X("ModeMsg", "daa520", "", "") + call X("MoreMsg", "2e8b57", "", "") + call X("NonText", "addbe7", "000000", "bold") + call X("Question", "00ff7f", "", "") + call X("Search", "f5deb3", "cd853f", "") + call X("SpecialKey", "9acd32", "", "") + call X("StatusLine", "c2bfa5", "000000", "reverse") + call X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") + call X("Title", "cd5c5c", "", "") + call X("Visual", "6b8e23", "f0e68c", "reverse") + "VisualNOS + call X("WarningMsg", "fa8072", "", "") + "WildMenu + "Menu + "Scrollbar + "Tooltip + + " syntax highlighting groups + call X("Comment", "87ceeb", "", "") + call X("Constant", "ffa0a0", "", "") + call X("Identifier", "98fb98", "", "none") + call X("Statement", "f0e68c", "", "bold") + call X("PreProc", "cd5c5c", "", "") + call X("Type", "bdb76b", "", "bold") + call X("Special", "ffdead", "", "") + "Underlined + call X("Ignore", "666666", "", "") + "Error + call X("Todo", "ff4500", "eeee00", "") + + " delete functions {{{ + delf X + delf rgb + delf color + delf rgb_color + delf rgb_level + delf rgb_number + delf grey_color + delf grey_level + delf grey_number + " }}} +else + " color terminal definitions + hi SpecialKey ctermfg=darkgreen + hi NonText cterm=bold ctermfg=darkblue + hi Directory ctermfg=darkcyan + hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 + hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green + hi Search cterm=NONE ctermfg=grey ctermbg=blue + hi MoreMsg ctermfg=darkgreen + hi ModeMsg cterm=NONE ctermfg=brown + hi LineNr ctermfg=3 + hi Question ctermfg=green + hi StatusLine cterm=bold,reverse + hi StatusLineNC cterm=reverse + hi VertSplit cterm=reverse + hi Title ctermfg=5 + hi Visual cterm=reverse + hi VisualNOS cterm=bold,underline + hi WarningMsg ctermfg=1 + hi WildMenu ctermfg=0 ctermbg=3 + hi Folded ctermfg=darkgrey ctermbg=NONE + hi FoldColumn ctermfg=darkgrey ctermbg=NONE + hi DiffAdd ctermbg=4 + hi DiffChange ctermbg=5 + hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 + hi DiffText cterm=bold ctermbg=1 + hi Comment ctermfg=darkcyan + hi Constant ctermfg=brown + hi Special ctermfg=5 + hi Identifier ctermfg=6 + hi Statement ctermfg=3 + hi PreProc ctermfg=5 + hi Type ctermfg=2 + hi Underlined cterm=underline ctermfg=5 + hi Ignore ctermfg=darkgrey + hi Error cterm=bold ctermfg=7 ctermbg=1 +endif + +" vim: set fdl=0 fdm=marker: diff --git a/.vim/colors/desertEx.vim b/.vim/colors/desertEx.vim new file mode 100644 index 0000000..08ef878 --- /dev/null +++ b/.vim/colors/desertEx.vim @@ -0,0 +1,98 @@ +" Vim color file +" Maintainer: Mingbai +" Last Change: 2006-12-24 20:09:09 + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desertEx" + +hi Normal guifg=gray guibg=grey17 gui=none + +" AlignCtrl default +" AlignCtrl =P0 guifg guibg gui +" Align + +" highlight groups +hi Cursor guifg=black guibg=yellow gui=none +hi ErrorMsg guifg=white guibg=red gui=none +hi VertSplit guifg=gray40 guibg=gray40 gui=none +hi Folded guifg=DarkSlateGray3 guibg=grey30 gui=none +hi FoldColumn guifg=tan guibg=grey30 gui=none +hi IncSearch guifg=#b0ffff guibg=#2050d0 +hi LineNr guifg=burlywood3 gui=none +hi ModeMsg guifg=SkyBlue gui=none +hi MoreMsg guifg=SeaGreen gui=none +hi NonText guifg=cyan gui=none +hi Question guifg=springgreen gui=none +hi Search guifg=gray80 guibg=#445599 gui=none +hi SpecialKey guifg=cyan gui=none +hi StatusLine guifg=black guibg=#c2bfa5 gui=bold +hi StatusLineNC guifg=grey guibg=gray40 gui=none +hi Title guifg=indianred gui=none +hi Visual guifg=gray17 guibg=tan1 gui=none +hi WarningMsg guifg=salmon gui=none +hi Pmenu guifg=white guibg=#445599 gui=none +hi PmenuSel guifg=#445599 guibg=gray +hi WildMenu guifg=gray guibg=gray17 gui=none +hi MatchParen guifg=cyan guibg=NONE gui=bold +hi DiffAdd guifg=black guibg=wheat1 +hi DiffChange guifg=black guibg=skyblue1 +hi DiffText guifg=black guibg=hotpink1 gui=none +hi DiffDelete guibg=gray45 guifg=black gui=none + + + +" syntax highlighting groups +hi Comment guifg=PaleGreen3 gui=italic +hi Constant guifg=salmon gui=none +hi Identifier guifg=Skyblue gui=none +hi Function guifg=Skyblue gui=none +hi Statement guifg=lightgoldenrod2 gui=none +hi PreProc guifg=PaleVioletRed2 gui=none +hi Type guifg=tan1 gui=none +hi Special guifg=aquamarine2 gui=none +hi Ignore guifg=grey40 gui=none +hi Todo guifg=orangered guibg=yellow2 gui=none + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 diff --git a/.vim/colors/dusk.vim b/.vim/colors/dusk.vim new file mode 100644 index 0000000..8feddd7 --- /dev/null +++ b/.vim/colors/dusk.vim @@ -0,0 +1,71 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2005 Nov. 21 +" Version: 1.1 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a blue-black background + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dusk" + +hi Normal guifg=ivory guibg=#1f3048 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guibg=LightGreen guifg=Black +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=Grey +hi StatusLineNC gui=NONE guifg=Grey50 guibg=Grey +hi VertSplit gui=NONE guifg=Grey guibg=Grey +hi Visual gui=reverse guifg=fg guibg=LightSkyBlue4 +hi VisualNOS gui=underline guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 +hi Cursor guibg=Green guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory guifg=LightGreen guibg=bg +hi LineNr guifg=MistyRose3 guibg=bg +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Cyan4 guibg=#102848 +hi Question gui=NONE guifg=LimeGreen guibg=bg +hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque +hi SpecialKey guifg=Cyan guibg=bg +hi Title gui=NONE guifg=Yellow2 guibg=bg +hi WarningMsg guifg=Tomato3 guibg=Linen +hi WildMenu gui=NONE guifg=SkyBlue4 guibg=Bisque +"hi Folded guifg=MistyRose2 guibg=bg +hi Folded guifg=MistyRose2 guibg=#102848 +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=white guibg=LightCyan4 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=MistyRose3 guibg=bg +hi String gui=NONE guifg=LightBlue3 guibg=bg +hi Special gui=NONE guifg=GoldenRod guibg=bg +hi Statement gui=NONE guifg=khaki guibg=bg +"hi Statement gui=NONE guifg=#d7cd7b guibg=bg +hi Operator gui=NONE guifg=Chartreuse guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +if v:version >= 700 + hi SpellBad gui=undercurl guisp=Red guifg=fg guibg=bg + hi SpellCap gui=undercurl guisp=GoldenRod guifg=fg guibg=bg + hi SpellRare gui=undercurl guisp=Ivory guifg=fg guibg=bg + hi SpellLocal gui=undercurl guisp=SeaGreen guifg=fg guibg=bg +endif +hi ToDo gui=NONE guifg=DodgerBlue guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=SlateGrey guibg=bg +"hi Comment gui=NONE guifg=Lavender guibg=bg +hi Identifier gui=NONE guifg=BlanchedAlmond guibg=bg +hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg +hi Type gui=NONE guifg=NavajoWhite guibg=bg +hi Underlined gui=underline guifg=fg guibg=bg + +" vim: sw=2 diff --git a/.vim/colors/dw_blue.vim b/.vim/colors/dw_blue.vim new file mode 100644 index 0000000..bba8c2f --- /dev/null +++ b/.vim/colors/dw_blue.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_blue.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_blue" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#0000ff +hi cDefine guifg=#0000ff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#0000ff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#000011 +hi CursorLine guibg=#000018 +hi DiffAdd guibg=#333333 guifg=#0000ff +hi DiffChange guibg=#333333 guifg=#0000ff +hi DiffDelete guibg=#333333 guifg=#0000ff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#0000ff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#0000ff +hi Identifier guibg=#000000 guifg=#0000cc +hi IncSearch gui=none guibg=#0000bb guifg=#000000 +hi LineNr guibg=#000000 guifg=#000088 +hi MatchParen gui=none guibg=#222222 guifg=#0000ff +hi ModeMsg guibg=#000000 guifg=#0000ff +hi MoreMsg guibg=#000000 guifg=#0000ff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#0000ff +hi Search gui=none guibg=#0000ff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#0000ff +hi Statement gui=bold guifg=#0000ff +hi StatusLine gui=none guibg=#0000ff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#0000bb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#0000aa guifg=#000000 +hi Title gui=none guifg=#0000ff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#0000dd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_cyan.vim b/.vim/colors/dw_cyan.vim new file mode 100644 index 0000000..158d578 --- /dev/null +++ b/.vim/colors/dw_cyan.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_cyan.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_cyan" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#00ffff +hi cDefine guifg=#00ffff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#00ffff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#001111 +hi CursorLine guibg=#001818 +hi DiffAdd guibg=#333333 guifg=#00ffff +hi DiffChange guibg=#333333 guifg=#00ffff +hi DiffDelete guibg=#333333 guifg=#00ffff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#00ffff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#00ffff +hi Identifier guibg=#000000 guifg=#00cccc +hi IncSearch gui=none guibg=#00bbbb guifg=#000000 +hi LineNr guibg=#000000 guifg=#008888 +hi MatchParen gui=none guibg=#222222 guifg=#00ffff +hi ModeMsg guibg=#000000 guifg=#00ffff +hi MoreMsg guibg=#000000 guifg=#00ffff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#00ffff +hi Search gui=none guibg=#00ffff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#00ffff +hi Statement gui=bold guifg=#00ffff +hi StatusLine gui=none guibg=#00ffff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#00bbbb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#00aaaa guifg=#000000 +hi Title gui=none guifg=#00ffff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#00dddd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_green.vim b/.vim/colors/dw_green.vim new file mode 100644 index 0000000..de742f9 --- /dev/null +++ b/.vim/colors/dw_green.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_green.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_green" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#00ff00 +hi cDefine guifg=#00ff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#00ff00 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#001100 +hi CursorLine guibg=#001800 +hi DiffAdd guibg=#333333 guifg=#00ff00 +hi DiffChange guibg=#333333 guifg=#00ff00 +hi DiffDelete guibg=#333333 guifg=#00ff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#00ff00 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#00ff00 +hi Identifier guibg=#000000 guifg=#00bb00 +hi IncSearch gui=none guibg=#00bb00 guifg=#000000 +hi LineNr guibg=#000000 guifg=#008800 +hi MatchParen gui=none guibg=#222222 guifg=#00ff00 +hi ModeMsg guibg=#000000 guifg=#00ff00 +hi MoreMsg guibg=#000000 guifg=#00ff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#00ff00 +hi Search gui=none guibg=#00ff00 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#00ff00 +hi Statement gui=bold guifg=#00ff00 +hi StatusLine gui=none guibg=#008800 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#00bb00 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#00aa00 guifg=#000000 +hi Title gui=none guifg=#00ff00 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#00dd00 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_orange.vim b/.vim/colors/dw_orange.vim new file mode 100644 index 0000000..b36b312 --- /dev/null +++ b/.vim/colors/dw_orange.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_orange.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_orange" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ffff00 +hi cDefine guifg=#ffff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ffff00 +hi Cursor guibg=#555555 guifg=#000000 +hi CursorColumn guibg=#140500 +hi CursorLine guibg=#260a00 +hi DiffAdd guibg=#333333 guifg=#ffff00 +hi DiffChange guibg=#333333 guifg=#ffff00 +hi DiffDelete guibg=#333333 guifg=#ffff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ffffff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guifg=#ffff00 +hi Identifier guibg=#000000 guifg=#d13800 +hi IncSearch gui=none guibg=#bf3300 guifg=#000000 +hi LineNr guibg=#000000 guifg=#de3b00 +hi MatchParen gui=none guibg=#000000 guifg=#ffff00 +hi ModeMsg guibg=#000000 guifg=#ff4400 +hi MoreMsg guibg=#000000 guifg=#ffff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ffff00 +hi Search gui=none guibg=#ff4400 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffa600 +hi SpecialKey guibg=#000000 guifg=#ff4400 +hi Statement gui=bold guifg=#ff4400 +hi StatusLine gui=none guibg=#ff3200 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#d13800 +hi TabLine gui=none guibg=#555555 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#ff4400 guifg=#000000 +hi Title gui=none guifg=#ffffff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#d13800 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_purple.vim b/.vim/colors/dw_purple.vim new file mode 100644 index 0000000..59dc8dd --- /dev/null +++ b/.vim/colors/dw_purple.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_purple.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_purple" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ff00ff +hi cDefine guifg=#ff00ff +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ff00ff +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#110011 +hi CursorLine guibg=#180018 +hi DiffAdd guibg=#333333 guifg=#ff00ff +hi DiffChange guibg=#333333 guifg=#ff00ff +hi DiffDelete guibg=#333333 guifg=#ff00ff +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ff00ff +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ff00ff +hi Identifier guibg=#000000 guifg=#cc00cc +hi IncSearch gui=none guibg=#bb00bb guifg=#000000 +hi LineNr guibg=#000000 guifg=#880088 +hi MatchParen gui=none guibg=#222222 guifg=#ff00ff +hi ModeMsg guibg=#000000 guifg=#ff00ff +hi MoreMsg guibg=#000000 guifg=#ff00ff +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ff00ff +hi Search gui=none guibg=#ff00ff guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ff00ff +hi Statement gui=bold guifg=#ff00ff +hi StatusLine gui=none guibg=#ff00ff guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bb00bb +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aa00aa guifg=#000000 +hi Title gui=none guifg=#ff00ff +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dd00dd guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_red.vim b/.vim/colors/dw_red.vim new file mode 100644 index 0000000..c8a2c80 --- /dev/null +++ b/.vim/colors/dw_red.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_red.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_red" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ff0000 +hi cDefine guifg=#ff0000 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ff0000 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#110000 +hi CursorLine guibg=#180000 +hi DiffAdd guibg=#333333 guifg=#ff0000 +hi DiffChange guibg=#333333 guifg=#ff0000 +hi DiffDelete guibg=#333333 guifg=#ff0000 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ff0000 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ff0000 +hi Identifier guibg=#000000 guifg=#cc0000 +hi IncSearch gui=none guibg=#bb0000 guifg=#000000 +hi LineNr guibg=#000000 guifg=#880000 +hi MatchParen gui=none guibg=#222222 guifg=#ff0000 +hi ModeMsg guibg=#000000 guifg=#ff0000 +hi MoreMsg guibg=#000000 guifg=#ff0000 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ff0000 +hi Search gui=none guibg=#ff0000 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ff0000 +hi Statement gui=bold guifg=#ff0000 +hi StatusLine gui=none guibg=#ff0000 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bb0000 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aa0000 guifg=#000000 +hi Title gui=none guifg=#ff0000 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dd0000 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/dw_yellow.vim b/.vim/colors/dw_yellow.vim new file mode 100644 index 0000000..011b092 --- /dev/null +++ b/.vim/colors/dw_yellow.vim @@ -0,0 +1,66 @@ +"-------------------------------------------------------------------- +" Name Of File: dw_yellow.vim. +" Description: Gvim colorscheme, designed against VIM 7.0 GUI +" By: Steve Cadwallader +" Contact: demwiz@gmail.com +" Credits: Inspiration from the brookstream and redblack schemes. +" Last Change: Saturday, September 17, 2006. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="dw_yellow" + +"-------------------------------------------------------------------- + +hi Boolean guifg=#ffff00 +hi cDefine guifg=#ffff00 +hi cInclude guifg=#ffffff +hi Comment guifg=#696969 +hi Constant guifg=#ffff00 +hi Cursor guibg=#444444 guifg=#ffffff +hi CursorColumn guibg=#111100 +hi CursorLine guibg=#181800 +hi DiffAdd guibg=#333333 guifg=#ffff00 +hi DiffChange guibg=#333333 guifg=#ffff00 +hi DiffDelete guibg=#333333 guifg=#ffff00 +hi DiffText guibg=#333333 guifg=#ffffff +hi Directory guibg=#000000 guifg=#ffff00 +hi ErrorMsg guibg=#ffffff guifg=#000000 +hi FoldColumn guibg=#222222 guifg=#ff0000 +hi Folded guibg=#222222 guifg=#ff0000 +hi Function guibg=#000000 guifg=#ffff00 +hi Identifier guibg=#000000 guifg=#cccc00 +hi IncSearch gui=none guibg=#bbbb00 guifg=#000000 +hi LineNr guibg=#000000 guifg=#888800 +hi MatchParen gui=none guibg=#222222 guifg=#ffff00 +hi ModeMsg guibg=#000000 guifg=#ffff00 +hi MoreMsg guibg=#000000 guifg=#ffff00 +hi NonText guibg=#000000 guifg=#ffffff +hi Normal gui=none guibg=#000000 guifg=#c0c0c0 +hi Operator gui=none guifg=#696969 +hi PreProc gui=none guifg=#ffffff +hi Question guifg=#ffff00 +hi Search gui=none guibg=#ffff00 guifg=#000000 +hi SignColumn guibg=#111111 guifg=#ffffff +hi Special gui=none guibg=#000000 guifg=#ffffff +hi SpecialKey guibg=#000000 guifg=#ffff00 +hi Statement gui=bold guifg=#ffff00 +hi StatusLine gui=none guibg=#ffff00 guifg=#000000 +hi StatusLineNC gui=none guibg=#444444 guifg=#000000 +hi String gui=none guifg=#bbbb00 +hi TabLine gui=none guibg=#444444 guifg=#000000 +hi TabLineFill gui=underline guibg=#000000 guifg=#ffffff +hi TabLineSel gui=none guibg=#aaaa00 guifg=#000000 +hi Title gui=none guifg=#ffff00 +hi Todo gui=none guibg=#000000 guifg=#ff0000 +hi Type gui=none guifg=#ffffff +hi VertSplit gui=none guibg=#000000 guifg=#ffffff +hi Visual guibg=#dddd00 guifg=#000000 +hi WarningMsg guibg=#888888 guifg=#000000 + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/earendel.vim b/.vim/colors/earendel.vim new file mode 100644 index 0000000..52aa178 --- /dev/null +++ b/.vim/colors/earendel.vim @@ -0,0 +1,159 @@ +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "earendel" + +execute "command! -nargs=1 Colo set background=" + +if &background == "light" + hi Normal ctermbg=15 ctermfg=0 guibg=#ffffff guifg=#000000 gui=none + + hi Cursor guibg=#000000 guifg=#ffffff gui=none + hi CursorColumn ctermbg=7 ctermfg=fg guibg=#dfdfdf gui=none + hi CursorLine ctermbg=7 ctermfg=fg guibg=#dfdfdf gui=none + hi DiffAdd guibg=#bae981 guifg=fg gui=none + hi DiffChange guibg=#8495e6 guifg=fg gui=none + hi DiffDelete guibg=#ff95a5 guifg=fg gui=none + hi DiffText guibg=#b9c2f0 guifg=fg gui=bold + hi Directory guibg=bg guifg=#272fc2 gui=none + hi ErrorMsg guibg=#ca001f guifg=#ffffff gui=bold + hi FoldColumn ctermbg=bg guibg=bg guifg=#656565 gui=none + hi Folded guibg=#cacaca guifg=#324263 gui=bold + hi IncSearch guibg=#f7b69d gui=none + hi LineNr guibg=bg guifg=#656565 gui=none + hi ModeMsg ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi MoreMsg guibg=bg guifg=#4a4a4a gui=bold + hi NonText ctermfg=8 guibg=bg guifg=#656565 gui=bold + hi Pmenu guibg=#aab8d5 guifg=fg gui=none + hi PmenuSbar guibg=#6a83b5 guifg=fg gui=none + hi PmenuSel guibg=#fee06b guifg=fg gui=none + hi PmenuThumb guibg=#c7cfe2 guifg=fg gui=none + hi Question guibg=bg guifg=#4a4a4a gui=bold + hi Search guibg=#fee481 gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#656565 gui=none + hi SpecialKey guibg=bg guifg=#844631 gui=none + hi StatusLine ctermbg=0 ctermfg=15 guibg=#96aad3 guifg=fg gui=bold + hi StatusLineNC ctermbg=7 ctermfg=fg guibg=#bcc7de guifg=#384547 gui=none + if has("spell") + hi SpellBad guisp=#ca001f gui=undercurl + hi SpellCap guisp=#272fc2 gui=undercurl + hi SpellLocal guisp=#0f8674 gui=undercurl + hi SpellRare guisp=#d16c7a gui=undercurl + endif + hi TabLine guibg=#d4d4d4 guifg=fg gui=underline + hi TabLineFill guibg=#d4d4d4 guifg=fg gui=underline + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title guifg=fg gui=bold + hi VertSplit ctermbg=7 ctermfg=fg guibg=#bcc7de guifg=#384547 gui=none + if version >= 700 + hi Visual ctermbg=7 ctermfg=fg guibg=#b5c5e6 gui=none + else + hi Visual ctermbg=7 ctermfg=fg guibg=#b5c5e6 guifg=fg gui=none + endif + hi VisualNOS ctermbg=8 ctermfg=fg guibg=bg guifg=#4069bf gui=bold,underline + hi WarningMsg guibg=bg guifg=#ca001f gui=bold + hi WildMenu guibg=#fedc56 guifg=fg gui=bold + + hi Comment guibg=bg guifg=#558817 gui=none + hi Constant guibg=bg guifg=#a8660d gui=none + hi Error guibg=bg guifg=#bf001d gui=none + hi Identifier guibg=bg guifg=#0e7c6b gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#79bf21 guifg=#ffffff gui=none + hi MatchParen guibg=#0f8674 guifg=#ffffff gui=none + hi PreProc guibg=bg guifg=#a33243 gui=none + hi Special guibg=bg guifg=#844631 gui=none + hi Statement guibg=bg guifg=#2239a8 gui=bold + hi Todo guibg=#fedc56 guifg=#512b1e gui=bold + hi Type guibg=bg guifg=#1d318d gui=bold + hi Underlined ctermbg=bg ctermfg=fg guibg=bg guifg=#272fc2 gui=underline + + hi htmlBold ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=underline,italic +else + hi Normal ctermbg=0 ctermfg=7 guibg=#181818 guifg=#cacaca gui=none + + hi Cursor guibg=#e5e5e5 guifg=#000000 gui=none + hi CursorColumn ctermbg=8 ctermfg=15 guibg=#404040 gui=none + hi CursorLine ctermbg=8 ctermfg=15 guibg=#404040 gui=none + hi DiffAdd guibg=#558817 guifg=#dadada gui=none + hi DiffChange guibg=#1b2e85 guifg=#dadada gui=none + hi DiffDelete guibg=#9f0018 guifg=#dadada gui=none + hi DiffText guibg=#2540ba guifg=#dadada gui=bold + hi Directory guibg=bg guifg=#8c91e8 gui=none + hi ErrorMsg guibg=#ca001f guifg=#e5e5e5 gui=bold + hi FoldColumn ctermbg=bg guibg=bg guifg=#9a9a9a gui=none + hi Folded guibg=#555555 guifg=#bfcadf gui=bold + hi IncSearch guibg=#a7380e guifg=#dadada gui=none + hi LineNr guibg=bg guifg=#9a9a9a gui=none + hi ModeMsg ctermbg=bg ctermfg=fg guibg=bg guifg=fg gui=bold + hi MoreMsg guibg=bg guifg=#b5b5b5 gui=bold + hi NonText ctermfg=8 guibg=bg guifg=#9a9a9a gui=bold + hi Pmenu guibg=#3d5078 guifg=#dadada gui=none + hi PmenuSbar guibg=#324263 guifg=#dadada gui=none + hi PmenuSel guibg=#f3c201 guifg=#000000 gui=none + hi PmenuThumb guibg=#5c77ad guifg=#dadada gui=none + hi Question guibg=bg guifg=#b5b5b5 gui=bold + hi Search guibg=#947601 guifg=#dadada gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#9a9a9a gui=none + hi SpecialKey guibg=bg guifg=#d3a901 gui=none + hi StatusLine ctermbg=7 ctermfg=0 guibg=#41609e guifg=#e5e5e5 gui=bold + hi StatusLineNC ctermbg=7 ctermfg=0 guibg=#35466a guifg=#afbacf gui=none + if has("spell") + hi SpellBad guisp=#ea0023 gui=undercurl + hi SpellCap guisp=#8c91e8 gui=undercurl + hi SpellLocal guisp=#16c9ae gui=undercurl + hi SpellRare guisp=#e09ea8 gui=undercurl + endif + hi TabLine guibg=#4a4a4a guifg=#e5e5e5 gui=underline + hi TabLineFill guibg=#4a4a4a guifg=#e5e5e5 gui=underline + hi TabLineSel guibg=bg guifg=#e5e5e5 gui=bold + hi Title ctermbg=bg ctermfg=15 guifg=#e5e5e5 gui=bold + hi VertSplit ctermbg=7 ctermfg=0 guibg=#35466a guifg=#afbacf gui=none + if version >= 700 + hi Visual ctermbg=7 ctermfg=0 guibg=#274278 gui=none + else + hi Visual ctermbg=7 ctermfg=0 guibg=#274278 guifg=fg gui=none + endif + hi VisualNOS ctermbg=8 ctermfg=0 guibg=bg guifg=#5c77ad gui=bold,underline + hi WarningMsg guibg=bg guifg=#ea0023 gui=bold + hi WildMenu guibg=#fbca01 guifg=#000000 gui=bold + + hi Comment guibg=bg guifg=#77be21 gui=none + hi Constant guibg=bg guifg=#dc8511 gui=none + hi Error guibg=bg guifg=#ea0023 gui=none + hi Identifier guibg=bg guifg=#16c9ae gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#c4ec93 guifg=#000000 gui=none + hi MatchParen guibg=#17d2b7 guifg=#000000 gui=none + hi PreProc guibg=bg guifg=#e09ea8 gui=none + hi Special guibg=bg guifg=#d3a901 gui=none + hi Statement guibg=bg guifg=#a7b4ed gui=bold + hi Todo guibg=#fedc56 guifg=#512b1e gui=bold + hi Type guibg=bg guifg=#95a4ea gui=bold + hi Underlined ctermbg=bg ctermfg=15 guibg=bg guifg=#8c91e8 gui=underline + + hi htmlBold ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=bg ctermfg=15 guibg=bg guifg=fg gui=underline,italic +endif + +hi! default link bbcodeBold htmlBold +hi! default link bbcodeBoldItalic htmlBoldItalic +hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic +hi! default link bbcodeBoldUnderline htmlBoldUnderline +hi! default link bbcodeItalic htmlItalic +hi! default link bbcodeItalicUnderline htmlUnderlineItalic +hi! default link bbcodeUnderline htmlUnderline diff --git a/.vim/colors/eclipse.vim b/.vim/colors/eclipse.vim new file mode 100644 index 0000000..0d7d36a --- /dev/null +++ b/.vim/colors/eclipse.vim @@ -0,0 +1,92 @@ +" Vim color file +" Maintainer: Juan frias +" Last Change: 2007 Feb 25 +" Version: 1.0.1 +" URL: http://www.axisym3.net/jdany/vim-the-editor/#eclipse +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "eclipse" + +highlight Normal gui=none guifg=#000000 guibg=#ffffff ctermfg=Gray + +" Search +highlight IncSearch gui=underline guifg=#404040 guibg=#e0e040 +highlight Search gui=none guifg=#544060 guibg=#f0c0ff ctermbg=1 + +" Messages +highlight ErrorMsg gui=none guifg=#f8f8f8 guibg=#4040ff +highlight WarningMsg gui=none guifg=#f8f8f8 guibg=#4040ff +highlight ModeMsg gui=none guifg=#d06000 guibg=bg +highlight MoreMsg gui=none guifg=#0090a0 guibg=bg +highlight Question gui=none guifg=#8000ff guibg=bg + +" Split area +highlight StatusLine gui=none guifg=#ffffff guibg=#4570aa cterm=bold ctermbg=blue ctermfg=white +highlight StatusLineNC gui=none guifg=#ffffff guibg=#75a0da cterm=none ctermfg=darkgrey ctermbg=blue +highlight VertSplit gui=none guifg=#f8f8f8 guibg=#904838 ctermfg=darkgrey cterm=none ctermbg=blue +highlight WildMenu gui=none guifg=#f8f8f8 guibg=#ff3030 + +" Diff +highlight DiffText gui=none guifg=red guibg=#ffd0d0 cterm=bold ctermbg=5 ctermfg=3 +highlight DiffChange gui=none guifg=black guibg=#ffe7e7 cterm=none ctermbg=5 ctermfg=7 +highlight DiffDelete gui=none guifg=bg guibg=#e7e7ff ctermbg=black +highlight DiffAdd gui=none guifg=blue guibg=#e7e7ff ctermbg=green cterm=bold + +" Cursor +highlight Cursor gui=none guifg=#ffffff guibg=#0080f0 +highlight lCursor gui=none guifg=#ffffff guibg=#8040ff +highlight CursorIM gui=none guifg=#ffffff guibg=#8040ff + +" Fold +highlight Folded gui=none guifg=#804030 guibg=#fff0d0 ctermbg=black ctermfg=black cterm=bold +highlight FoldColumn gui=none guifg=#6b6b6b guibg=#e7e7e7 ctermfg=black ctermbg=white + +" Popup Menu +highlight PMenu ctermbg=green ctermfg=white +highlight PMenuSel ctermbg=white ctermfg=black +highlight PMenuSBar ctermbg=red ctermfg=white +highlight PMenuThumb ctermbg=white ctermfg=red + +" Other +highlight Directory gui=none guifg=#7050ff guibg=bg +highlight LineNr gui=none guifg=#6b6b6b guibg=#eeeeee +highlight NonText gui=none guifg=#707070 guibg=#e7e7e7 +highlight SpecialKey gui=none guifg=#c0c0c0 guibg=bg cterm=none ctermfg=4 +highlight Title gui=bold guifg=#0033cc guibg=bg +highlight Visual gui=none guifg=#804020 guibg=#ffc0a0 ctermfg=DarkCyan + +" Syntax group +highlight Comment gui=none guifg=#236e25 guibg=bg ctermfg=2 +highlight Constant gui=none guifg=#00884c guibg=bg ctermfg=White +highlight Error gui=none guifg=#f8f8f8 guibg=#4040ff term=reverse ctermbg=Red ctermfg=White +highlight Identifier gui=none guifg=#b07800 guibg=bg ctermfg=Green +highlight Ignore gui=none guifg=bg guibg=bg ctermfg=black +highlight PreProc gui=none guifg=#683821 guibg=bg ctermfg=Green +highlight Special gui=none guifg=#8040f0 guibg=bg ctermfg=DarkMagenta +highlight Statement gui=none guifg=#b64f90 guibg=bg ctermfg=White +highlight Todo gui=none guifg=#ff5050 guibg=white term=standout ctermbg=Yellow ctermfg=Black +highlight Type gui=bold guifg=#7f0055 guibg=bg ctermfg=LightGreen +highlight Underlined gui=none guifg=blue guibg=bg +highlight String gui=none guifg=#8010a0 guibg=bg ctermfg=Yellow +highlight Number gui=none guifg=#0000ff guibg=bg ctermfg=White + +if !has("gui_running") + hi link Float Number + hi link Conditional Repeat + hi link Include PreProc + hi link Macro PreProc + hi link PreCondit PreProc + hi link StorageClass Type + hi link Structure Type + hi link Typedef Type + hi link Tag Special + hi link Delimiter Normal + hi link SpecialComment Special + hi link Debug Special +endif + +" vim:ff=unix: diff --git a/.vim/colors/ekvoli.vim b/.vim/colors/ekvoli.vim new file mode 100644 index 0000000..3362968 --- /dev/null +++ b/.vim/colors/ekvoli.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Preben Randhol +" Last Change: 2008 Feb 24 +" License: GNU Public License (GPL) v2 +" +" Version 1.6: Added colours for TVO and changed folding colour + + +highlight clear Normal +set background& + +" Remove all existing highlighting and set the defaults. +highlight clear + +" Load the syntax highlighting defaults, if it's enabled. +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "ekvoli" + +hi Cursor guifg=white gui=reverse,bold +hi iCursor guifg=white gui=reverse,bold +hi rCursor guifg=white gui=reverse,bold +hi vCursor guifg=white gui=reverse,bold +hi lCursor guifg=white gui=reverse,bold +hi nCursor guifg=white gui=reverse,bold +hi CursorLine guibg=#05456f gui=none +hi CursorColumn guibg=#05456f gui=none + + +hi Normal guifg=white guibg=#001535 +hi Error guibg=#6000a0 gui=bold,italic,undercurl guisp=white +hi ErrorMsg guifg=white guibg=#287eff gui=bold,italic +hi Visual guibg=#2080c0 guifg=white gui=bold +hi VisualNOS guibg=#6080a0 guifg=white gui=bold +hi Todo guibg=#00a0d0 guifg=white gui=underline + +hi NonText guifg=#6590f0 + +hi Search guibg=#667799 guifg=white gui=bold +hi IncSearch guibg=#667799 guifg=white gui=bold + +hi SpecialKey guifg=#00c0e0 +hi Directory guifg=#00c0e0 +hi Title guifg=#00a0f0 gui=none +hi WarningMsg guifg=lightblue +hi WildMenu guifg=white guibg=#0080c0 +hi Pmenu guifg=white guibg=#005090 +hi PmenuSel guifg=white guibg=#3070c0 +hi ModeMsg guifg=#22cce2 +hi MoreMsg guifg=#22cce2 gui=bold +hi Question guifg=#22cce2 gui=none + +hi MatchParen guifg=white guibg=#3070c0 gui=bold + +hi StatusLine guifg=white guibg=#104075 gui=bold +hi StatusLineNC guifg=#65a0f0 guibg=#104075 gui=none +hi VertSplit guifg=#305885 guibg=#305885 gui=none +hi Folded guifg=#65b0f6 guibg=#122555 gui=italic +hi FoldColumn guifg=white guibg=#103366 gui=none +hi LineNr guifg=#5080b0 gui=bold + +hi DiffAdd guibg=#2080a0 guifg=white gui=bold +hi DiffChange guibg=#2080a0 guifg=white gui=bold +hi DiffDelete guibg=#306080 guifg=white gui=none +hi DiffText guibg=#8070a0 guifg=white gui=bold + +hi SpellBad gui=undercurl,italic guisp=#76daff +hi SpellCap gui=undercurl guisp=#7ba2ba +hi SpellRare gui=undercurl guisp=#8080f0 +hi SpellLocal gui=undercurl guisp=#c0c0e0 + +hi Comment guifg=#9590d5 gui=italic + + +hi Constant guifg=#87c6f0 gui=italic +hi Special guifg=#50a0e0 gui=bold +hi Identifier guifg=#7fe9ff +hi Statement guifg=white gui=bold +hi PreProc guifg=#3f8fff gui=none + +hi type guifg=#90bfd0 gui=none +hi Ignore guifg=bg +hi Underlined gui=underline cterm=underline term=underline + + +" TVO - The Vim Outliner +hi otlTab0 gui=bold,underline guifg=#eeeeff +hi otlTab1 gui=bold,underline guifg=#3377ee +hi otlTab2 gui=bold,underline guifg=#22cae2 +hi otlTab3 gui=bold,underline guifg=#9966ff +hi otlTab5 gui=bold,underline guifg=#22aae2 +hi otlTab4 gui=bold,underline guifg=#92caf2 +hi otlTab7 gui=bold,underline guifg=#22bae2 +hi otlTab6 gui=bold,underline guifg=#8866ee +hi otlTab8 gui=bold,underline guifg=#1166ee +hi otlTab9 gui=bold,underline guifg=#99ddee +hi otlTodo gui=bold,underline guifg=white guibg=#00a0d0 +hi otlTagRef guifg=white guibg=#8070a0 +hi otlTagDef guifg=white guibg=#005090 + + + + diff --git a/.vim/colors/fine_blue.vim b/.vim/colors/fine_blue.vim new file mode 100644 index 0000000..89c280c --- /dev/null +++ b/.vim/colors/fine_blue.vim @@ -0,0 +1,71 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:12. +" version: 1.7 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fine_blue" + +hi Normal guifg=#404048 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404054 guibg=#40ffff +hi Search gui=NONE guifg=#404054 guibg=#ffffa0 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi WarningMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#a800ff guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404054 +hi StatusLineNC gui=NONE guifg=#b8b8c0 guibg=#404054 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404054 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#00aacc + +" Diff +hi DiffText gui=NONE guifg=#4040ff guibg=#c0c0ff +hi DiffChange gui=NONE guifg=#5050ff guibg=#e0e0ff +hi DiffDelete gui=NONE guifg=#4040ff guibg=#c8f2ea +hi DiffAdd gui=NONE guifg=#4040ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#7820ff guibg=#e0d8ff +hi FoldColumn gui=NONE guifg=#aa60ff guibg=#f0f0f4 +" hi Folded gui=NONE guifg=#58587c guibg=#e0e0e8 +" hi FoldColumn gui=NONE guifg=#9090b0 guibg=#f0f0f4 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#a0a0b0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#ececf0 +hi SpecialKey gui=NONE guifg=#d87000 guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 +" hi VisualNOS gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +hi Comment gui=NONE guifg=#ff00c0 guibg=NONE +hi Constant gui=NONE guifg=#2020ff guibg=#e8e8ff +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#c800ff guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#005858 guibg=#ccf7ee +hi Statement gui=NONE guifg=#008858 guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#7040ff guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE diff --git a/.vim/colors/fine_blue2.vim b/.vim/colors/fine_blue2.vim new file mode 100644 index 0000000..89c280c --- /dev/null +++ b/.vim/colors/fine_blue2.vim @@ -0,0 +1,71 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:12. +" version: 1.7 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fine_blue" + +hi Normal guifg=#404048 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404054 guibg=#40ffff +hi Search gui=NONE guifg=#404054 guibg=#ffffa0 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi WarningMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#a800ff guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404054 +hi StatusLineNC gui=NONE guifg=#b8b8c0 guibg=#404054 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404054 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#00aacc + +" Diff +hi DiffText gui=NONE guifg=#4040ff guibg=#c0c0ff +hi DiffChange gui=NONE guifg=#5050ff guibg=#e0e0ff +hi DiffDelete gui=NONE guifg=#4040ff guibg=#c8f2ea +hi DiffAdd gui=NONE guifg=#4040ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#7820ff guibg=#e0d8ff +hi FoldColumn gui=NONE guifg=#aa60ff guibg=#f0f0f4 +" hi Folded gui=NONE guifg=#58587c guibg=#e0e0e8 +" hi FoldColumn gui=NONE guifg=#9090b0 guibg=#f0f0f4 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#a0a0b0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#ececf0 +hi SpecialKey gui=NONE guifg=#d87000 guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 +" hi VisualNOS gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +hi Comment gui=NONE guifg=#ff00c0 guibg=NONE +hi Constant gui=NONE guifg=#2020ff guibg=#e8e8ff +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#c800ff guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#005858 guibg=#ccf7ee +hi Statement gui=NONE guifg=#008858 guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#7040ff guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE diff --git a/.vim/colors/fnaqevan.vim b/.vim/colors/fnaqevan.vim new file mode 100644 index 0000000..d936cee --- /dev/null +++ b/.vim/colors/fnaqevan.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer: Rafal Sulejman +" Last Change: 2002.06.18 +" +" This color scheme uses a black (dark) background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fnaqevan" + +hi Normal guibg=#000000 guifg=#C0C0C0 gui=NONE + +" Main colors +hi Constant guibg=#000000 guifg=#00B8E0 gui=NONE +hi Identifier guibg=#000000 guifg=#FFA850 gui=NONE +hi Special guibg=#000000 guifg=#B899C8 gui=NONE +hi Statement guibg=#000000 guifg=#EEE840 gui=NONE +hi Preproc guibg=#000000 guifg=#00B098 gui=NONE +hi Type guibg=#000000 guifg=#40D040 gui=NONE + +" Secondary colors +hi Comment guibg=#000000 guifg=#006699 gui=NONE +hi Visual guibg=#005900 guifg=#40C940 gui=NONE +hi VisualNOS guibg=#005900 guifg=#40C940 gui=NONE +hi Search guibg=#707000 guifg=#FFFF00 gui=NONE +hi IncSearch guibg=#D05000 guifg=#FFE000 gui=NONE + +" Special colors +hi WarningMsg guibg=#707000 guifg=#FFFF00 gui=NONE +hi MoreMsg guibg=#000070 guifg=#00B8E0 gui=NONE +hi ErrorMsg guibg=#CC0000 guifg=#FFEE00 gui=NONE +hi ModeMsg guibg=#000000 guifg=#E8E8E8 gui=NONE +hi WildMenu guibg=#5f5f5f guifg=#FFEE60 gui=NONE +hi StatusLine guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi StatusLineNC guibg=#0f0f0f guifg=#eaea3a gui=NONE +hi VertSplit guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi Error guibg=#EE0000 guifg=#FFDD60 gui=NONE +hi Todo guibg=#EEE000 guifg=#000000 gui=NONE +hi Title guibg=#000000 guifg=#ffffff gui=NONE +hi Question guibg=#005900 guifg=#40E840 gui=NONE +hi LineNr guibg=#000000 guifg=#F0B0E0 gui=NONE +hi Directory guibg=#000000 guifg=#D0D0D0 gui=NONE +hi NonText guibg=#000000 guifg=#FFDDAA gui=NONE +hi SpecialKey guibg=#000000 guifg=#FFFFFF gui=NONE + +" Diff colors +hi DiffAdd guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffChange guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffDelete guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffText guibg=#707070 guifg=#F0F0F0 gui=NONE + +" Folding colors +hi Folded guibg=#703070 guifg=#DDB8DD gui=NONE +hi FoldColumn guibg=#C4153B guifg=#F0F0F0 gui=NONE + +" Cursor colors +hi Cursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi icursor guibg=#FFEE00 guifg=#000000 gui=NONE +hi ncursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi rcursor guibg=#00CCFF guifg=#000000 gui=NONE +hi lcursor guibg=#40D040 guifg=#000000 gui=NONE + diff --git a/.vim/colors/fog.vim b/.vim/colors/fog.vim new file mode 100644 index 0000000..ab263ab --- /dev/null +++ b/.vim/colors/fog.vim @@ -0,0 +1,170 @@ +" Vim color file +" vim: tw=0 ts=4 sw=4 +" Maintainer: Thomas R. Kimpton +" Last Change: 2001 Nov 8 +" This color scheme is meant for the person that spends hours +" and hours and hours and... in vim and wants some contrast to +" help pick things out in the files they edit, but doesn't want +" **C**O**N**T**R**A**S**T**! + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fog" + +hi Normal ctermbg=White ctermfg=Black +" 660066 = darkish purple +hi Normal guifg=#660066 guibg=grey80 + +hi NonText term=bold +hi NonText ctermfg=LightBlue +hi NonText gui=bold guifg=LightBlue guibg=grey80 + +hi Comment ctermfg=DarkGrey ctermbg=White +" 444499 = darkish blue grey +hi Comment guifg=#444499 + +hi Constant term=underline +hi Constant ctermfg=Magenta +hi Constant guifg=#7070a0 + +hi Statement term=bold +hi Statement cterm=bold ctermfg=DarkGreen ctermbg=White +hi Statement guifg=DarkGreen gui=bold + +hi identifier ctermfg=DarkGreen +hi identifier guifg=DarkGreen + +hi preproc ctermfg=DarkGreen +hi preproc guifg=#408040 + +hi type ctermfg=DarkBlue +hi type guifg=DarkBlue + +hi label ctermfg=yellow +hi label guifg=#c06000 + +hi operator ctermfg=darkYellow +hi operator guifg=DarkGreen gui=bold + +hi StorageClass ctermfg=DarkRed ctermbg=White +hi StorageClass guifg=#a02060 gui=bold + +hi Number ctermfg=Blue ctermbg=White +hi Number guifg=Blue + +hi Special term=bold +hi Special ctermfg=LightRed +hi Special guifg=#aa8822 + +hi Cursor ctermbg=DarkMagenta +hi Cursor guibg=#880088 guifg=LightGrey + +hi lCursor guibg=Cyan guifg=Black + +hi ErrorMsg term=standout +hi ErrorMsg ctermbg=DarkRed ctermfg=White +hi ErrorMsg guibg=DarkRed guifg=White + +hi DiffText term=reverse +hi DiffText cterm=bold ctermbg=DarkRed +hi DiffText gui=bold guibg=DarkRed + +hi Directory term=bold +hi Directory ctermfg=LightRed +hi Directory guifg=Red gui=underline + +hi LineNr term=underline +hi LineNr ctermfg=Yellow +hi LineNr guifg=#ccaa22 + +hi MoreMsg term=bold +hi MoreMsg ctermfg=LightGreen +hi MoreMsg gui=bold guifg=SeaGreen + +hi Question term=standout +hi Question ctermfg=LightGreen +hi Question gui=bold guifg=DarkGreen + +hi Search term=reverse +hi Search ctermbg=DarkYellow ctermfg=Black +hi Search guibg=#887722 guifg=Black + +hi SpecialKey term=bold +hi SpecialKey ctermfg=LightBlue +hi SpecialKey guifg=Blue + +hi SpecialChar ctermfg=DarkGrey ctermbg=White +hi SpecialChar guifg=DarkGrey gui=bold + +hi Title term=bold +hi Title ctermfg=LightMagenta +hi Title gui=underline guifg=DarkMagenta + +hi WarningMsg term=standout +hi WarningMsg ctermfg=LightRed +hi WarningMsg guifg=DarkBlue guibg=#9999cc + +hi WildMenu term=standout +hi WildMenu ctermbg=Yellow ctermfg=Black +hi WildMenu guibg=Yellow guifg=Black gui=underline + +hi Folded term=standout +hi Folded ctermbg=LightGrey ctermfg=DarkBlue +hi Folded guibg=LightGrey guifg=DarkBlue + +hi FoldColumn term=standout +hi FoldColumn ctermbg=LightGrey ctermfg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue + +hi DiffAdd term=bold +hi DiffAdd ctermbg=DarkBlue +hi DiffAdd guibg=DarkBlue + +hi DiffChange term=bold +hi DiffChange ctermbg=DarkMagenta +hi DiffChange guibg=DarkMagenta + +hi DiffDelete term=bold +hi DiffDelete ctermfg=Blue ctermbg=DarkCyan +hi DiffDelete gui=bold guifg=Blue guibg=DarkCyan + +hi Ignore ctermfg=LightGrey +hi Ignore guifg=grey90 + +hi IncSearch term=reverse +hi IncSearch cterm=reverse +hi IncSearch gui=reverse + +hi ModeMsg term=bold +hi ModeMsg cterm=bold +hi ModeMsg gui=bold + +hi StatusLine term=reverse,bold +hi StatusLine cterm=reverse,bold +hi StatusLine gui=reverse,bold + +hi StatusLineNC term=reverse +hi StatusLineNC cterm=reverse +hi StatusLineNC gui=reverse + +hi VertSplit term=reverse +hi VertSplit cterm=reverse +hi VertSplit gui=reverse + +hi Visual term=reverse +hi Visual cterm=reverse +hi Visual gui=reverse guifg=DarkGrey guibg=fg + +hi VisualNOS term=underline,bold +hi VisualNOS cterm=underline,bold +hi VisualNOS gui=underline,bold + +hi Todo gui=reverse + +" vim: sw=2 diff --git a/.vim/colors/freya.vim b/.vim/colors/freya.vim new file mode 100644 index 0000000..a8adbd4 --- /dev/null +++ b/.vim/colors/freya.vim @@ -0,0 +1,79 @@ +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "freya" + +hi Normal ctermbg=0 ctermfg=7 cterm=none guibg=#2a2a2a guifg=#dcdccc gui=none + +hi Cursor guibg=fg guifg=bg gui=none +hi CursorColumn guibg=#3f3f3f gui=none +hi CursorLine guibg=#3f3f3f gui=none +hi DiffAdd guibg=#008b00 guifg=fg gui=none +hi DiffChange guibg=#00008b guifg=fg gui=none +hi DiffDelete guibg=#8b0000 guifg=fg gui=none +hi DiffText guibg=#0000cd guifg=fg gui=bold +hi Directory guibg=bg guifg=#d4b064 gui=none +hi ErrorMsg guibg=bg guifg=#f07070 gui=bold +hi FoldColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none +hi Folded guibg=#101010 guifg=#c2b680 gui=none +hi IncSearch guibg=#866a4f guifg=fg gui=none +hi LineNr guibg=bg guifg=#9f8f80 gui=none +hi ModeMsg guibg=bg guifg=fg gui=bold +hi MoreMsg guibg=bg guifg=#dabfa5 gui=bold +hi NonText ctermfg=8 guibg=bg guifg=#9f8f80 gui=bold +hi Pmenu guibg=#a78869 guifg=#000000 gui=none +hi PmenuSbar guibg=#B99F86 guifg=fg gui=none +hi PmenuSel guibg=#c0aa94 guifg=bg gui=none +hi PmenuThumb guibg=#f7f7f1 guifg=bg gui=none +hi Question guibg=bg guifg=#dabfa5 gui=bold +hi Search guibg=#c0aa94 guifg=bg gui=none +hi SignColumn ctermbg=bg guibg=bg guifg=#c2b680 gui=none +hi SpecialKey guibg=bg guifg=#d4b064 gui=none +if has("spell") + hi SpellBad guisp=#f07070 gui=undercurl + hi SpellCap guisp=#7070f0 gui=undercurl + hi SpellLocal guisp=#70f0f0 gui=undercurl + hi SpellRare guisp=#f070f0 gui=undercurl +endif +hi StatusLine ctermbg=7 ctermfg=0 guibg=#736559 guifg=#f7f7f1 gui=bold +hi StatusLineNC ctermbg=8 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none +hi TabLine guibg=#564d43 guifg=#f7f7f1 gui=underline +hi TabLineFill guibg=#564d43 guifg=#f7f7f1 gui=underline +hi TabLineSel guibg=bg guifg=#f7f7f1 gui=bold +hi Title ctermbg=0 ctermfg=15 guifg=#f7f7f1 gui=bold +hi VertSplit ctermbg=7 ctermfg=0 guibg=#564d43 guifg=#f7f7f1 gui=none +if version >= 700 + hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f gui=none +else + hi Visual ctermbg=7 ctermfg=0 guibg=#5f5f5f guifg=fg gui=none +endif +hi VisualNOS guibg=bg guifg=#c0aa94 gui=bold,underline +hi WarningMsg guibg=bg guifg=#f07070 gui=none +hi WildMenu guibg=#c0aa94 guifg=bg gui=bold + +hi Comment guibg=bg guifg=#c2b680 gui=none +hi Constant guibg=bg guifg=#afe091 gui=none +hi Error guibg=bg guifg=#f07070 gui=none +hi Identifier guibg=bg guifg=#dabfa5 gui=none +hi Ignore guibg=bg guifg=bg gui=none +hi lCursor guibg=#c0aa94 guifg=bg gui=none +hi MatchParen guibg=#008b8b gui=none +hi PreProc guibg=bg guifg=#c2aed0 gui=none +hi Special guibg=bg guifg=#d4b064 gui=none +hi Statement guibg=bg guifg=#e0af91 gui=bold +hi Todo guibg=#aed0ae guifg=bg gui=none +hi Type guibg=bg guifg=#dabfa5 gui=bold +hi Underlined guibg=bg guifg=#d4b064 gui=underline + +hi htmlBold ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold +hi htmlItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=italic +hi htmlUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline +hi htmlBoldItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,italic +hi htmlBoldUnderline ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline +hi htmlBoldUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=bold,underline,italic +hi htmlUnderlineItalic ctermbg=0 ctermfg=15 guibg=bg guifg=fg gui=underline,italic diff --git a/.vim/colors/fruit.vim b/.vim/colors/fruit.vim new file mode 100644 index 0000000..624b90f --- /dev/null +++ b/.vim/colors/fruit.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/08/28 Wed 00:28. +" version: 1.3 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fruit" + +hi Normal guifg=#404040 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#40ffff +hi Search gui=NONE guifg=#404040 guibg=#ffff60 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi WarningMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi ModeMsg gui=NONE guifg=#ff4080 guibg=NONE +hi MoreMsg gui=NONE guifg=#009070 guibg=NONE +hi Question gui=NONE guifg=#f030d0 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404040 +hi StatusLineNC gui=NONE guifg=#a4a4a4 guibg=#404040 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404040 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff4080 + +" Diff +hi DiffText gui=NONE guifg=#e04040 guibg=#ffd8d8 +hi DiffChange gui=NONE guifg=#408040 guibg=#d0f0d0 +hi DiffDelete gui=NONE guifg=#4848ff guibg=#ffd0ff +hi DiffAdd gui=NONE guifg=#4848ff guibg=#ffd0ff + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#20605c guibg=#b8e8dc +hi FoldColumn gui=NONE guifg=#40a098 guibg=#f0f0f0 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#acacac guibg=NONE +hi NonText gui=BOLD guifg=#00a0c0 guibg=#ececec +hi SpecialKey gui=NONE guifg=#4040ff guibg=NONE +hi Title gui=NONE guifg=#0050a0 guibg=#c0e8ff +hi Visual gui=NONE guifg=#484848 guibg=#e0e0e0 +" hi VisualNOS gui=NONE guifg=#484848 guibg=#e0e0e0 + +" Syntax group +hi Comment gui=NONE guifg=#ff4080 guibg=NONE +hi Constant gui=NONE guifg=#8016ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#008888 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#e06800 guibg=NONE +hi Special gui=NONE guifg=#4a9400 guibg=NONE +hi Statement gui=NONE guifg=#f030d0 guibg=NONE +hi Todo gui=UNDERLINE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#0070e6 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/.vim/colors/fruity.vim b/.vim/colors/fruity.vim new file mode 100644 index 0000000..3c9a7df --- /dev/null +++ b/.vim/colors/fruity.vim @@ -0,0 +1,147 @@ +" +" Fruity Color Scheme +" =================== +" +" Author: Armin Ronacher +" Version: 0.2 +" +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fruity" + +" Default Colors +hi Normal guifg=#ffffff guibg=#111111 +hi NonText guifg=#444444 guibg=#000000 +hi Cursor guibg=#aaaaaa +hi lCursor guibg=#aaaaaa + +" Search +hi Search guifg=#800000 guibg=#ffae00 +hi IncSearch guifg=#800000 guibg=#ffae00 + +" Window Elements +hi StatusLine guifg=#ffffff guibg=#8090a0 gui=bold +hi StatusLineNC guifg=#506070 guibg=#a0b0c0 +hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 +hi Folded guifg=#111111 guibg=#8090a0 +hi IncSearch guifg=#708090 guibg=#f0e68c +hi Pmenu guifg=#ffffff guibg=#cb2f27 +hi SignColumn guibg=#111111 +hi CursorLine guibg=#181818 +hi LineNr guifg=#aaaaaa guibg=#222222 + +" Specials +hi Todo guifg=#e50808 guibg=#520000 gui=bold +hi Title guifg=#ffffff gui=bold +hi Special guifg=#fd8900 + +" Syntax Elements +hi String guifg=#0086d2 +hi Constant guifg=#0086d2 +hi Number guifg=#0086f7 gui=bold +hi Statement guifg=#fb660a gui=bold +hi Function guifg=#ff0086 gui=bold +hi PreProc guifg=#ff0007 gui=bold +hi Comment guifg=#00d2ff guibg=#0f140f gui=italic +hi Type guifg=#cdcaa9 gui=bold +hi Error guifg=#ffffff guibg=#ab0000 +hi Identifier guifg=#ff0086 gui=bold +hi Label guifg=#ff0086 + +" Python Highlighting for python.vim +hi pythonCoding guifg=#ff0086 +hi pythonRun guifg=#ff0086 +hi pythonBuiltinObj guifg=#2b6ba2 gui=bold +hi pythonBuiltinFunc guifg=#2b6ba2 gui=bold +hi pythonException guifg=#ee0000 gui=bold +hi pythonExClass guifg=#66cd66 gui=bold +hi pythonSpaceError guibg=#270000 +hi pythonDocTest guifg=#2f5f49 +hi pythonDocTest2 guifg=#3b916a +hi pythonFunction guifg=#ee0000 gui=bold +hi pythonClass guifg=#ff0086 gui=bold + +" JavaScript Highlighting +hi javaScript guifg=#ffffff +hi javaScriptRegexpString guifg=#aa6600 +hi javaScriptDocComment guifg=#aaaaaa +hi javaScriptCssStyles guifg=#dd7700 +hi javaScriptDomElemFuncs guifg=#66cd66 +hi javaScriptHtmlElemFuncs guifg=#dd7700 +hi javaScriptLabel guifg=#00bdec gui=italic +hi javaScriptPrototype guifg=#00bdec +hi javaScriptConditional guifg=#ff0007 gui=bold +hi javaScriptRepeat guifg=#ff0007 gui=bold +hi javaScriptFunction guifg=#ff0086 gui=bold + +" CSS Highlighting +hi cssIdentifier guifg=#66cd66 gui=bold +hi cssBraces guifg=#00bdec gui=bold + +" Ruby Highlighting +hi rubyFunction guifg=#0066bb gui=bold +hi rubyClass guifg=#ff0086 gui=bold +hi rubyModule guifg=#ff0086 gui=bold,underline +hi rubyKeyword guifg=#008800 gui=bold +hi rubySymbol guifg=#aa6600 +hi rubyIndentifier guifg=#008aff +hi rubyGlobalVariable guifg=#dd7700 +hi rubyConstant guifg=#5894d2 gui=bold +hi rubyBlockParameter guifg=#66cd66 +hi rubyPredefinedIdentifier guifg=#555555 gui=bold +hi rubyString guifg=#0086d2 +hi rubyStringDelimiter guifg=#dd7700 +hi rubySpaceError guibg=#270000 +hi rubyDocumentation guifg=#aaaaaa +hi rubyData guifg=#555555 + +" XML Highlighting +hi xmlTag guifg=#00bdec +hi xmlTagName guifg=#00bdec +hi xmlEndTag guifg=#00bdec +hi xmlNamespace guifg=#00bdec gui=underline +hi xmlAttribPunct guifg=#cccaa9 gui=bold +hi xmlEqual guifg=#cccaa9 gui=bold +hi xmlCdata guifg=#bf0945 gui=bold +hi xmlCdataCdata guifg=#ac1446 guibg=#23010c gui=none +hi xmlCdataStart guifg=#bf0945 gui=bold +hi xmlCdataEnd guifg=#bf0945 gui=bold + +" HTML Highlighting +hi htmlTag guifg=#00bdec gui=bold +hi htmlEndTag guifg=#00bdec gui=bold +hi htmlSpecialTagName guifg=#66cd66 +hi htmlTagName guifg=#66cd66 +hi htmlTagN guifg=#66cd66 +hi htmlEvent guifg=#ffffff + +" Django Highlighting +hi djangoTagBlock guifg=#ff0007 guibg=#200000 gui=bold +hi djangoVarBlock guifg=#ff0007 guibg=#200000 +hi djangoArgument guifg=#0086d2 guibg=#200000 +hi djangoStatement guifg=#fb660a guibg=#200000 gui=bold +hi djangoComment guifg=#008800 guibg=#002300 gui=italic +hi djangoFilter guifg=#ff0086 guibg=#200000 gui=italic + +" Jinja Highlighting +hi jinjaTagBlock guifg=#ff0007 guibg=#200000 gui=bold +hi jinjaVarBlock guifg=#ff0007 guibg=#200000 +hi jinjaString guifg=#0086d2 guibg=#200000 +hi jinjaNumber guifg=#bf0945 guibg=#200000 gui=bold +hi jinjaStatement guifg=#fb660a guibg=#200000 gui=bold +hi jinjaComment guifg=#008800 guibg=#002300 gui=italic +hi jinjaFilter guifg=#ff0086 guibg=#200000 +hi jinjaRaw guifg=#aaaaaa guibg=#200000 +hi jinjaOperator guifg=#ffffff guibg=#200000 +hi jinjaVariable guifg=#92cd35 guibg=#200000 +hi jinjaAttribute guifg=#dd7700 guibg=#200000 +hi jinjaSpecial guifg=#008ffd guibg=#200000 + +" ERuby Highlighting (for my eruby.vim) +hi erubyRubyDelim guifg=#2c8a16 gui=bold +hi erubyComment guifg=#4d9b3a gui=italic diff --git a/.vim/colors/gardener.vim b/.vim/colors/gardener.vim new file mode 100644 index 0000000..4c70e4f --- /dev/null +++ b/.vim/colors/gardener.vim @@ -0,0 +1,271 @@ +" Vim color file +" Original Maintainer: Anders Korte + +" Modified: by entheon +" Last Change: 13 Sept 2005 + +" Gardener v1.1 +" A modification of the Guardian colorscheme v1.2 + +" 'For code surgeons and web gardeners everywhere' + +" A nice earthy color scheme which is easy on the eyes. It +" has as it's base a dark background monocrhomatic khaki +" scheme with dabs of color thrown in here and there on the +" keywords. Plus lots of extra config options so you can +" tweak it to your liking and or make it more like the +" original Guardian scheme. All the defaults are what I like +" but if you want to change stuff just set the right var and +" it will change pretty much immediately, you might have to +" move out of and back into your buffer for it to refresh. + + +" Features: +" 256 Color XTerm Compatibility +" Richer Syntax +" Black Background +" Functions +" No Italics +" Purple Booleans +" Swapped Status Line Colors +" Other minor tweaks + +" Change Log: +" changed the ghastly puke salmon red to green like it +" should have been in the first place esp considering the +" name Gardener, now all vimsters can truly frolic in +" their Vim Gardens + +" Options: +" g:gardener_light_comments +" if this var exists then comments are white on a +" gray-blue background if it is not set then the +" comments default to medium grey with no background +" color, I can't stand bg colors but some people might +" like it, so I left it as an option. +" +" g:gardener_soil +" This is a GUI only option because there are no +" colors that work even in the 256 color XTerm. This +" option gives you a brownish background instead of a +" black background. I think the black background gives +" better contrast and thus is easier to read from. if +" you disagree then you've got this option +" +" g:gardener_setnum +" turns the background of the line numbers black + +" Using The Options: +" To enable a feature add the line +" let g:gardenter_some_feature=1 +" to your ~/.vimrc +" To disable the feature temporarily run the command +" :unlet g:gardener_some_feature +" To disable the feature permanently, simply remove +" the line from your .vimrc file. + +set background=dark +hi clear +syntax reset + +if has("gui_running") + +" Colors for the User Interface. + if exists("g:gardener_setnum") + hi linenr guibg=black guifg=#808080 gui=bold + else + hi linenr guibg=#262626 guifg=#808080 gui=bold + endif + + hi Cursor guibg=#cc4455 guifg=white gui=bold + hi link CursorIM Cursor + if exists("g:gardener_soil") + hi Normal guibg=#332211 guifg=white gui=none + else + hi Normal guibg=black guifg=white gui=none + endif + hi NonText guibg=#445566 guifg=#ffeecc gui=bold + hi Visual guibg=#557799 guifg=white gui=none + + hi Directory guibg=bg guifg=#337700 gui=none + + hi IncSearch guibg=#0066cc guifg=white gui=none + hi link Seach IncSearch + + hi SpecialKey guibg=bg guifg=fg gui=none + hi Titled guibg=bg guifg=fg gui=none + + hi ErrorMsg guibg=bg guifg=#ff0000 gui=bold + hi ModeMsg guibg=bg guifg=#ffeecc gui=none + hi link MoreMsg ModeMsg + hi Question guibg=bg guifg=#ccffcc gui=bold + hi link WarningMsg ErrorMsg + + hi StatusLineNC guibg=#ffeecc guifg=black gui=none + hi StatusLine guibg=#cc4455 guifg=white gui=bold + hi VertSplit guibg=#ffeecc guifg=black gui=none + + hi DiffAdd guibg=#446688 guifg=fg gui=none + hi DiffChange guibg=#558855 guifg=fg gui=none + hi DiffDelete guibg=#884444 guifg=fg gui=none + hi DiffText guibg=#884444 guifg=fg gui=bold + + " Colors for Syntax Highlighting. + if exists("g:gardener_light_comments") + hi Comment guibg=#334455 guifg=#dddddd gui=none + else + hi Comment guibg=bg guifg=#888888 gui=none + endif + + + hi Define guibg=bg guifg=#66ccdd gui=bold + hi Conditional guibg=bg guifg=#aadd55 gui=bold + + hi Constant guibg=bg guifg=white gui=bold + hi Identifier guibg=bg guifg=#ffddaa gui=none + hi String guibg=bg guifg=#ffffcc gui=none + hi Character guibg=bg guifg=#ffffcc gui=bold + hi Number guibg=bg guifg=#bbddff gui=bold + hi Boolean guibg=bg guifg=#ff55ff gui=bold + hi Float guibg=bg guifg=#bbddff gui=bold + + hi Function guibg=bg guifg=#ffffaa gui=bold + hi Statement guibg=bg guifg=#ffffcc gui=bold + + hi Repeat guibg=bg guifg=#ff9900 gui=bold + hi Label guibg=bg guifg=#ffccff gui=bold + hi Operator guibg=bg guifg=#cc9966 gui=bold + hi Keyword guibg=bg guifg=#66ffcc gui=bold + hi Exception guibg=bg guifg=#66ffcc gui=bold + + hi PreProc guibg=bg guifg=#ffcc99 gui=bold + hi Include guibg=bg guifg=#99cc99 gui=bold + hi link Macro Include + hi link PreCondit Include + + hi Type guibg=bg guifg=#ccffaa gui=bold + hi Structure guibg=bg guifg=#99ff99 gui=bold + hi Typedef guibg=bg guifg=#99cc99 gui=italic + + hi StorageClass guibg=bg guifg=#99cc99 gui=bold + hi Special guibg=bg guifg=#bbddff gui=bold + hi SpecialChar guibg=bg guifg=#bbddff gui=bold + hi Tag guibg=bg guifg=#bbddff gui=bold + hi Delimiter guibg=bg guifg=fg gui=bold + hi SpecialComment guibg=#334455 guifg=#dddddd gui=italic + hi Debug guibg=bg guifg=#ff9999 gui=none + + hi Underlined guibg=bg guifg=#99ccff gui=underline + + hi Title guibg=#445566 guifg=white gui=bold + hi Ignore guibg=bg guifg=#cccccc gui=italic + hi Error guibg=#ff0000 guifg=white gui=bold + hi Todo guibg=#556677 guifg=#ff0000 gui=bold + + hi htmlH1 guibg=bg guifg=#ffffff gui=bold + hi htmlH2 guibg=bg guifg=#dadada gui=bold + hi htmlH3 guibg=bg guifg=#c6c6c6 gui=bold + hi htmlH4 guibg=bg guifg=#b2b2b2 gui=bold + hi htmlH5 guibg=bg guifg=#9e9e9e gui=bold + hi htmlH6 guibg=bg guifg=#8a8a8a gui=bold + +else +" Colors for the User Interface. + + if exists("g:gardener_setnum") + exec "hi linenr cterm=BOLD ctermfg=235 ctermbg=244" + else + exec "hi linenr cterm=BOLD ctermfg=244 ctermbg=235" + endif + + + exec "hi Cursor cterm=BOLD ctermfg=255 ctermbg=167" + exec "hi CursorIM cterm=BOLD ctermfg=255 ctermbg=167" + + exec "hi Normal cterm=NONE ctermfg=255 ctermbg=233" + exec "hi NonText cterm=NONE ctermfg=230 ctermbg=60" + exec "hi Visual cterm=NONE ctermfg=255 ctermbg=68" + + exec "hi Linear cterm=NONE ctermfg=248 ctermbg=NONE" + + exec "hi Directory cterm=NONE ctermfg=64 ctermbg=NONE" + + exec "hi IncSearch cterm=NONE ctermfg=255 ctermbg=25" + + exec "hi ErrorMsg cterm=BOLD ctermfg=196 ctermbg=NONE" + exec "hi WarningMsg cterm=BOLD ctermfg=196 ctermbg=NONE" + exec "hi ModeMsg cterm=NONE ctermfg=230 ctermbg=NONE" + exec "hi MoreMsg cterm=NONE ctermfg=230 ctermbg=NONE" + exec "hi Question cterm=NONE ctermfg=194 ctermbg=NONE" + + exec "hi StatusLineNC cterm=NONE ctermfg=16 ctermbg=229" + exec "hi StatusLine cterm=BOLD ctermfg=255 ctermbg=167" + exec "hi VertSplit cterm=NONE ctermfg=16 ctermbg=229" + + exec "hi DiffAdd cterm=NONE ctermfg=255 ctermbg=60" + exec "hi DiffAdd cterm=NONE ctermfg=255 ctermbg=65" + exec "hi DiffAdd cterm=NONE ctermfg=255 ctermbg=95" + exec "hi DiffAdd cterm=BOLD ctermfg=255 ctermbg=95" + + " Colors for Syntax Highlighting. + if exists("g:gardener_light_comments") + exec "hi Comment cterm=NONE ctermfg=253 ctermbg=60" + else + exec "hi Comment cterm=NONE ctermfg=244 ctermbg=NONE" + endif + + exec "hi Constant cterm=BOLD ctermfg=255 ctermbg=NONE" + exec "hi String cterm=NONE ctermfg=230 ctermbg=NONE" + exec "hi Character cterm=BOLD ctermfg=230 ctermbg=NONE" + exec "hi Number cterm=BOLD ctermfg=153 ctermbg=NONE" + exec "hi Boolean cterm=NONE ctermfg=207 ctermbg=NONE" + exec "hi Float cterm=BOLD ctermfg=153 ctermbg=NONE" + + exec "hi Identifier cterm=NONE ctermfg=223 ctermbg=NONE" + exec "hi Function cterm=BOLD ctermfg=229 ctermbg=NONE" + exec "hi Statement cterm=BOLD ctermfg=230 ctermbg=NONE" + + exec "hi Define cterm=BOLD ctermfg=68 ctermbg=NONE" + exec "hi Conditional cterm=BOLD ctermfg=149 ctermbg=NONE" + + exec "hi Repeat cterm=BOLD ctermfg=208 ctermbg=NONE" + exec "hi Label cterm=BOLD ctermfg=225 ctermbg=NONE" + exec "hi Operator cterm=BOLD ctermfg=173 ctermbg=NONE" + exec "hi Keyword cterm=BOLD ctermfg=86 ctermbg=NONE" + exec "hi Exception cterm=BOLD ctermfg=86 ctermbg=NONE" + + exec "hi PreProc cterm=BOLD ctermfg=222 ctermbg=NONE" + exec "hi Include cterm=BOLD ctermfg=114 ctermbg=NONE" + exec "hi Macro cterm=BOLD ctermfg=114 ctermbg=NONE" + exec "hi PreCondit cterm=BOLD ctermfg=114 ctermbg=NONE" + + exec "hi Type cterm=BOLD ctermfg=193 ctermbg=NONE" + exec "hi StorageClass cterm=BOLD ctermfg=78 ctermbg=NONE" + exec "hi Structure cterm=BOLD ctermfg=114 ctermbg=NONE" + exec "hi Typedef cterm=BOLD ctermfg=114 ctermbg=NONE" + + exec "hi Special cterm=BOLD ctermfg=153 ctermbg=NONE" + exec "hi SpecialChar cterm=BOLD ctermfg=153 ctermbg=NONE" + exec "hi Tag cterm=BOLD ctermfg=153 ctermbg=NONE" + exec "hi Delimiter cterm=BOLD ctermfg=255 ctermbg=NONE" + exec "hi SpecialComment cterm=BOLD ctermfg=253 ctermbg=24" + exec "hi Debug cterm=NONE ctermfg=210 ctermbg=NONE" + + exec "hi Title cterm=BOLD ctermfg=255 ctermbg=60" + exec "hi Ignore cterm=NONE ctermfg=251 ctermbg=NONE" + exec "hi Error cterm=NONE ctermfg=255 ctermbg=196" + exec "hi Ignore cterm=NONE ctermfg=196 ctermbg=60" + + exec "hi htmlH1 cterm=BOLD ctermfg=255 ctermbg=NONE" + exec "hi htmlH2 cterm=BOLD ctermfg=253 ctermbg=NONE" + exec "hi htmlH3 cterm=BOLD ctermfg=251 ctermbg=NONE" + exec "hi htmlH4 cterm=BOLD ctermfg=249 ctermbg=NONE" + exec "hi htmlH5 cterm=BOLD ctermfg=247 ctermbg=NONE" + exec "hi htmlH6 cterm=BOLD ctermfg=245 ctermbg=NONE" + +endif +" And finally. + +let g:colors_name = "gardener" +let colors_name = "gardener" + diff --git a/.vim/colors/golden.vim b/.vim/colors/golden.vim new file mode 100644 index 0000000..8cceaf7 --- /dev/null +++ b/.vim/colors/golden.vim @@ -0,0 +1,70 @@ +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Creator: Ryan Phillips +" Credits: This color scheme originated from the idea of +" Jeffrey Bakker, the creator of webcpp (http://webcpp.sourceforge.net/). +" URL: http://www.trolocsis.com/vim/golden.vim +" + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "golden" +hi Normal ctermfg=yellow guifg=#ddbb00 guibg=black +hi Scrollbar ctermfg=Yellow guifg=#ddbb00 guibg=black +hi Menu ctermfg=darkyellow guifg=#ffddaa guibg=black +hi SpecialKey ctermfg=yellow term=bold cterm=bold guifg=#ffddaa +hi NonText ctermfg=LightBlue term=bold cterm=bold gui=bold guifg=#DBCA98 +hi Directory ctermfg=DarkYellow term=bold cterm=bold guifg=#ffddaa +hi ErrorMsg term=standout cterm=bold ctermfg=White ctermbg=Red guifg=White guibg=Red +hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red +hi MoreMsg term=bold cterm=bold ctermfg=Yellow gui=bold guifg=#ddbb00 +hi ModeMsg term=bold ctermfg=DarkYellow cterm=bold gui=bold guifg=Black guibg=#ddbb00 +hi LineNr term=underline ctermfg=Brown cterm=bold guifg=#978345 +hi Question term=standout cterm=bold ctermfg=Brown gui=bold guifg=#ffddaa +hi StatusLine term=bold,reverse cterm=bold ctermfg=Black ctermbg=DarkGrey gui=bold guifg=#978345 guibg=#2E2E2E +hi StatusLineNC term=reverse ctermfg=white ctermbg=black guifg=grey guibg=#3E3E3E +hi Title term=bold cterm=bold ctermfg=brown gui=bold guifg=#DBCA98 +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkblue guifg=Red +hi Cursor guifg=bg guibg=#FF5E06 ctermbg=Brown +hi Comment term=bold cterm=bold ctermfg=brown guifg=#978345 +hi Constant term=underline cterm=bold ctermfg=red guifg=Red +hi Special term=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=lightgray guifg=#DBCA98 +hi Statement term=bold cterm=bold ctermfg=lightgreen gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=brown guifg=#ffddaa +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#FFE13F +hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black +hi Todo term=standout ctermfg=black ctermbg=yellow guifg=#FFE13F guibg=#2E2E2E +hi VertSplit guifg=#2E2E2E guibg=#978345 ctermfg=black ctermbg=darkgrey +hi Folded guifg=orange guibg=#2E2E2E ctermfg=yellow + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/.vim/colors/guardian.vim b/.vim/colors/guardian.vim new file mode 100644 index 0000000..5bba649 --- /dev/null +++ b/.vim/colors/guardian.vim @@ -0,0 +1,103 @@ +" Vim color file +" Maintainer: Anders Korte +" Last Change: 6 Apr 2005 + +" Guardian color scheme 1.2 + +" Rich-syntax colors for source editing and other vimming. + +set background=dark +hi clear +syntax reset + +" Colors for the User Interface. + +hi Cursor guibg=#cc4455 guifg=white gui=bold ctermbg=4 ctermfg=15 +hi link CursorIM Cursor +hi Normal guibg=#332211 guifg=white gui=none ctermbg=0 ctermfg=15 +hi NonText guibg=#445566 guifg=#ffeecc gui=bold ctermbg=8 ctermfg=14 +hi Visual guibg=#557799 guifg=white gui=none ctermbg=9 ctermfg=15 + +hi Linenr guibg=bg guifg=#aaaaaa gui=none ctermbg=bg ctermfg=7 + +hi Directory guibg=bg guifg=#337700 gui=none ctermbg=bg ctermfg=10 + +hi IncSearch guibg=#0066cc guifg=white gui=none ctermbg=1 ctermfg=15 +hi link Seach IncSearch + +hi SpecialKey guibg=bg guifg=fg gui=none ctermbg=bg ctermfg=fg +hi Titled guibg=bg guifg=fg gui=none ctermbg=bg ctermfg=fg + +hi ErrorMsg guibg=bg guifg=#ff0000 gui=bold ctermbg=bg ctermfg=12 +hi ModeMsg guibg=bg guifg=#ffeecc gui=none ctermbg=bg ctermfg=14 +hi link MoreMsg ModeMsg +hi Question guibg=bg guifg=#ccffcc gui=bold ctermbg=bg ctermfg=10 +hi link WarningMsg ErrorMsg + +hi StatusLine guibg=#ffeecc guifg=black gui=bold ctermbg=14 ctermfg=0 +hi StatusLineNC guibg=#cc4455 guifg=white gui=none ctermbg=4 ctermfg=11 +hi VertSplit guibg=#cc4455 guifg=white gui=none ctermbg=4 ctermfg=11 + +hi DiffAdd guibg=#446688 guifg=fg gui=none ctermbg=1 ctermfg=fg +hi DiffChange guibg=#558855 guifg=fg gui=none ctermbg=2 ctermfg=fg +hi DiffDelete guibg=#884444 guifg=fg gui=none ctermbg=4 ctermfg=fg +hi DiffText guibg=#884444 guifg=fg gui=bold ctermbg=4 ctermfg=fg + +" Colors for Syntax Highlighting. + +hi Comment guibg=#334455 guifg=#dddddd gui=none ctermbg=8 ctermfg=7 + +hi Constant guibg=bg guifg=white gui=bold ctermbg=8 ctermfg=15 +hi String guibg=bg guifg=#ffffcc gui=italic ctermbg=bg ctermfg=14 +hi Character guibg=bg guifg=#ffffcc gui=bold ctermbg=bg ctermfg=14 +hi Number guibg=bg guifg=#bbddff gui=bold ctermbg=1 ctermfg=15 +hi Boolean guibg=bg guifg=#bbddff gui=none ctermbg=1 ctermfg=15 +hi Float guibg=bg guifg=#bbddff gui=bold ctermbg=1 ctermfg=15 + +hi Identifier guibg=bg guifg=#ffddaa gui=bold ctermbg=bg ctermfg=12 +hi Function guibg=bg guifg=#ffddaa gui=bold ctermbg=bg ctermfg=12 +hi Statement guibg=bg guifg=#ffffcc gui=bold ctermbg=bg ctermfg=14 + +hi Conditional guibg=bg guifg=#ff6666 gui=bold ctermbg=bg ctermfg=12 +hi Repeat guibg=bg guifg=#ff9900 gui=bold ctermbg=4 ctermfg=14 +hi Label guibg=bg guifg=#ffccff gui=bold ctermbg=bg ctermfg=13 +hi Operator guibg=bg guifg=#cc9966 gui=bold ctermbg=6 ctermfg=15 +hi Keyword guibg=bg guifg=#66ffcc gui=bold ctermbg=bg ctermfg=10 +hi Exception guibg=bg guifg=#66ffcc gui=bold ctermbg=bg ctermfg=10 + +hi PreProc guibg=bg guifg=#ffcc99 gui=bold ctermbg=4 ctermfg=14 +hi Include guibg=bg guifg=#99cc99 gui=bold ctermbg=bg ctermfg=10 +hi link Define Include +hi link Macro Include +hi link PreCondit Include + +hi Type guibg=bg guifg=#ff7788 gui=bold ctermbg=bg ctermfg=12 +hi StorageClass guibg=bg guifg=#99cc99 gui=bold ctermbg=bg ctermfg=10 +hi Structure guibg=bg guifg=#99ff99 gui=bold ctermbg=bg ctermfg=10 +hi Typedef guibg=bg guifg=#99cc99 gui=italic ctermbg=bg ctermfg=10 + +hi Special guibg=bg guifg=#bbddff gui=bold ctermbg=1 ctermfg=15 +hi SpecialChar guibg=bg guifg=#bbddff gui=bold ctermbg=1 ctermfg=15 +hi Tag guibg=bg guifg=#bbddff gui=bold ctermbg=1 ctermfg=15 +hi Delimiter guibg=bg guifg=fg gui=bold ctermbg=1 ctermfg=fg +hi SpecialComment guibg=#334455 guifg=#dddddd gui=italic ctermbg=1 ctermfg=15 +hi Debug guibg=bg guifg=#ff9999 gui=none ctermbg=8 ctermfg=12 + +hi Underlined guibg=bg guifg=#99ccff gui=underline ctermbg=bg ctermfg=9 cterm=underline + +hi Title guibg=#445566 guifg=white gui=bold ctermbg=1 ctermfg=15 +hi Ignore guibg=bg guifg=#cccccc gui=italic ctermbg=bg ctermfg=8 +hi Error guibg=#ff0000 guifg=white gui=bold ctermbg=12 ctermfg=15 +hi Todo guibg=#556677 guifg=#ff0000 gui=bold ctermbg=1 ctermfg=12 + +hi htmlH2 guibg=bg guifg=fg gui=bold ctermbg=8 ctermfg=fg +hi link htmlH3 htmlH2 +hi link htmlH4 htmlH3 +hi link htmlH5 htmlH4 +hi link htmlH6 htmlH5 + +" And finally. + +let g:colors_name = "Guardian" +let colors_name = "Guardian" + diff --git a/.vim/colors/habilight.vim b/.vim/colors/habilight.vim new file mode 100644 index 0000000..ea294f5 --- /dev/null +++ b/.vim/colors/habilight.vim @@ -0,0 +1,138 @@ +" Vim color file +" A version of nuvola.vim colorscheme, original by Dr. J. Pfefferl +" I changed some colors and added some highlights for C and Vim 7 + +" vim: tw=0 ts=4 sw=4 +" Maintainer: Christian Habermann +" Email: christian( at )habermann-net( point )de +" Version: 1.2 +" History: 1.2: nicer colors for paren matching +" 1.1: Vim 7 support added (completion, spell checker, paren, tabs) +" 1.0: initial version +" +" Intro {{{1 +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "habiLight" + +" Normal {{{1 +hi Normal ctermfg=black ctermbg=NONE guifg=black guibg=#F9F5F9 + +" Search {{{1 +hi IncSearch cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=UNDERLINE guifg=Black guibg=#FFE568 +hi Search term=reverse cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=NONE guifg=Black guibg=#FFE568 + +" Messages {{{1 +hi ErrorMsg gui=BOLD guifg=#EB1513 guibg=NONE +hi! link WarningMsg ErrorMsg +hi ModeMsg gui=BOLD guifg=#0070ff guibg=NONE +hi MoreMsg guibg=NONE guifg=seagreen +hi! link Question MoreMsg + +" Split area {{{1 +hi StatusLine term=BOLD,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=BOLD guibg=#56A0EE guifg=white +hi StatusLineNC gui=NONE guibg=#56A0EE guifg=#E9E9F4 +hi! link VertSplit StatusLineNC +hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff {{{1 +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi! link DiffAdd DiffDelete + +" Cursor {{{1 +hi Cursor gui=none guifg=black guibg=orange +"hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold {{{1 +hi Folded gui=NONE guibg=#B5EEB5 guifg=black +"hi FoldColumn gui=NONE guibg=#9FD29F guifg=black +hi! link FoldColumn Folded + +" Other {{{1 +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#EFEFF7 +"hi SpecialKey gui=NONE guifg=#A35B00 guibg=NONE +hi Title gui=BOLD guifg=#1014AD guibg=NONE +hi Visual term=reverse ctermfg=yellow ctermbg=black gui=NONE guifg=Black guibg=#BDDFFF +hi VisualNOS term=reverse ctermfg=yellow ctermbg=black gui=UNDERLINE guifg=Black guibg=#BDDFFF + +" Syntax group {{{1 +hi Comment term=BOLD ctermfg=darkgray guifg=darkcyan +hi Constant term=UNDERLINE ctermfg=red guifg=#B91F49 +hi Error term=REVERSE ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Identifier term=UNDERLINE ctermfg=Blue guifg=Blue +hi Number term=UNDERLINE ctermfg=red gui=NONE guifg=#00C226 +hi PreProc term=UNDERLINE ctermfg=darkblue guifg=#1071CE +hi Special term=BOLD ctermfg=darkmagenta guifg=red2 +hi Statement term=BOLD ctermfg=DarkRed gui=NONE guifg=#F06F00 +hi Tag term=BOLD ctermfg=DarkGreen guifg=DarkGreen +hi Todo term=STANDOUT ctermbg=Yellow ctermfg=blue guifg=Blue guibg=Yellow +hi Type term=UNDERLINE ctermfg=Blue gui=NONE guifg=Blue +hi! link String Constant +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Function Identifier +hi! link Conditional Statement +hi! link Repeat Statement +hi! link Label Statement +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +" HTML {{{1 +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Tabs {{{1 +highlight TabLine term=underline cterm=underline ctermfg=0 ctermbg=7 gui=underline guibg=LightGrey +highlight TabLineFill term=reverse cterm=reverse gui=reverse +highlight TabLineSel term=bold cterm=bold gui=bold + +" Spell Checker {{{1 +if v:version >= 700 + highlight SpellBad term=reverse ctermbg=12 gui=undercurl guisp=Red + highlight SpellCap term=reverse ctermbg=9 gui=undercurl guisp=Blue + highlight SpellRare term=reverse ctermbg=13 gui=undercurl guisp=Magenta + highlight SpellLocale term=underline ctermbg=11 gui=undercurl guisp=DarkCyan +endif + +" Completion {{{1 +highlight Pmenu ctermbg=13 guifg=Black guibg=#BDDFFF +highlight PmenuSel ctermbg=7 guifg=Black guibg=Orange +highlight PmenuSbar ctermbg=7 guifg=#CCCCCC guibg=#CCCCCC +highlight PmenuThumb cterm=reverse gui=reverse guifg=Black guibg=#AAAAAA + +" Misc {{{1 +highlight KDE guifg=magenta gui=NONE +highlight mySpecialSymbols guifg=magenta gui=NONE + + +highlight MatchParen term=reverse ctermbg=11 gui=bold guibg=#B5EEB5 guifg=black + + +" vim600:foldmethod=marker diff --git a/.vim/colors/herald.vim b/.vim/colors/herald.vim new file mode 100644 index 0000000..23bab56 --- /dev/null +++ b/.vim/colors/herald.vim @@ -0,0 +1,385 @@ +" Vim color file +" Name: herald.vim +" Author: Fabio Cevasco +" Version: 0.2.0 +" Notes: Supports 8, 16, 256 and 16,777,216 (RGB) color modes + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "herald" + +set background=dark + +" Set some syntax-related variables +let ruby_operators = 1 + +if has("gui_running") + + " -> Text; Miscellaneous + hi Normal guibg=#1F1F1F guifg=#D0D0D0 gui=none + hi SpecialKey guibg=#1F1F1F guifg=#E783E9 gui=none + hi VertSplit guibg=#1F1F1F guifg=#FFEE68 gui=none + hi SignColumn guibg=#1F1F1F guifg=#BF81FA gui=none + hi NonText guibg=#1F1F1F guifg=#FC6984 gui=none + hi Directory guibg=#1F1F1F guifg=#FFEE68 gui=none + hi Title guibg=#1F1F1F guifg=#6DF584 gui=bold + + " -> Cursor + hi Cursor guibg=#FFEE68 guifg=#1F1F1F gui=none + hi CursorIM guibg=#FFEE68 guifg=#1F1F1F gui=none + hi CursorColumn guibg=#000000 gui=none + hi CursorLine guibg=#000000 gui=none + + " -> Folding + hi FoldColumn guibg=#001336 guifg=#003DAD gui=none + hi Folded guibg=#001336 guifg=#003DAD gui=none + + " -> Line info + hi LineNr guibg=#000000 guifg=#696567 gui=none + hi StatusLine guibg=#000000 guifg=#696567 gui=none + hi StatusLineNC guibg=#25365a guifg=#696567 gui=none + + " -> Messages + hi ErrorMsg guibg=#A32024 guifg=#D0D0D0 gui=none + hi Question guibg=#1F1F1F guifg=#FFA500 gui=none + hi WarningMsg guibg=#FFA500 guifg=#000000 gui=none + hi MoreMsg guibg=#1F1F1F guifg=#FFA500 gui=none + hi ModeMsg guibg=#1F1F1F guifg=#FFA500 gui=none + + " -> Search + hi Search guibg=#696567 guifg=#FFEE68 gui=none + hi IncSearch guibg=#696567 guifg=#FFEE68 gui=none + + " -> Diff + hi DiffAdd guibg=#006124 guifg=#ED9000 gui=none + hi DiffChange guibg=#0B294A guifg=#A36000 gui=none + hi DiffDelete guibg=#081F38 guifg=#ED9000 gui=none + hi DiffText guibg=#12457D guifg=#ED9000 gui=underline + + " -> Menu + hi Pmenu guibg=#140100 guifg=#660300 gui=none + hi PmenuSel guibg=#F17A00 guifg=#4C0200 gui=none + hi PmenuSbar guibg=#430300 gui=none + hi PmenuThumb guibg=#720300 gui=none + hi PmenuSel guibg=#F17A00 guifg=#4C0200 gui=none + + " -> Tabs + hi TabLine guibg=#141414 guifg=#1F1F1F gui=none + hi TabLineFill guibg=#000000 gui=none + hi TabLineSel guibg=#1F1F1F guifg=#D0D0D0 gui=bold + " + " -> Visual Mode + hi Visual guibg=#000000 guifg=#FFB539 gui=none + hi VisualNOS guibg=#000000 guifg=#696567 gui=none + + " -> Code + hi Comment guibg=#1F1F1F guifg=#696567 gui=none + hi Constant guibg=#1F1F1F guifg=#6DF584 gui=none + hi String guibg=#1F1F1F guifg=#FFB539 gui=none + hi Error guibg=#1F1F1F guifg=#FC4234 gui=none + hi Identifier guibg=#1F1F1F guifg=#70BDF1 gui=none + hi Function guibg=#1F1F1F guifg=#90CBF1 gui=none + hi Ignore guibg=#1F1F1F guifg=#1F1F1F gui=none + hi MatchParen guibg=#FFA500 guifg=#1F1F1F gui=none + hi PreProc guibg=#1F1F1F guifg=#BF81FA gui=none + hi Special guibg=#1F1F1F guifg=#FFEE68 gui=none + hi Todo guibg=#1F1F1F guifg=#FC4234 gui=bold + hi Underlined guibg=#1F1F1F guifg=#FC4234 gui=underline + hi Statement guibg=#1F1F1F guifg=#E783E9 gui=none + hi Operator guibg=#1F1F1F guifg=#FC6984 gui=none + hi Delimiter guibg=#1F1F1F guifg=#FC6984 gui=none + hi Type guibg=#1F1F1F guifg=#FFEE68 gui=none + hi Exception guibg=#1F1F1F guifg=#FC4234 gui=none + + " -> HTML-specific + hi htmlBold guibg=#1F1F1F guifg=#D0D0D0 gui=bold + hi htmlBoldItalic guibg=#1F1F1F guifg=#D0D0D0 gui=bold,italic + hi htmlBoldUnderline guibg=#1F1F1F guifg=#D0D0D0 gui=bold,underline + hi htmlBoldUnderlineItalic guibg=#1F1F1F guifg=#D0D0D0 gui=bold,underline,italic + hi htmlItalic guibg=#1F1F1F guifg=#D0D0D0 gui=italic + hi htmlUnderline guibg=#1F1F1F guifg=#D0D0D0 gui=underline + hi htmlUnderlineItalic guibg=#1F1F1F guifg=#D0D0D0 gui=underline,italic + +elseif &t_Co == 256 + + " -> Text; Miscellaneous + hi Normal ctermbg=234 ctermfg=252 cterm=none + hi SpecialKey ctermbg=234 ctermfg=176 cterm=none + hi VertSplit ctermbg=234 ctermfg=227 cterm=none + hi SignColumn ctermbg=234 ctermfg=141 cterm=none + hi NonText ctermbg=234 ctermfg=204 cterm=none + hi Directory ctermbg=234 ctermfg=227 cterm=none + hi Title ctermbg=234 ctermfg=84 cterm=bold + + " -> Cursor + hi Cursor ctermbg=227 ctermfg=234 cterm=none + hi CursorIM ctermbg=227 ctermfg=234 cterm=none + hi CursorColumn ctermbg=0 cterm=none + hi CursorLine ctermbg=0 cterm=none + + " -> Folding + hi FoldColumn ctermbg=234 ctermfg=25 cterm=none + hi Folded ctermbg=234 ctermfg=25 cterm=none + + " -> Line info + hi LineNr ctermbg=0 ctermfg=241 cterm=none + hi StatusLine ctermbg=0 ctermfg=241 cterm=none + hi StatusLineNC ctermbg=237 ctermfg=241 cterm=none + + " -> Messages + hi ErrorMsg ctermbg=124 ctermfg=252 cterm=none + hi Question ctermbg=234 ctermfg=214 cterm=none + hi WarningMsg ctermbg=214 ctermfg=0 cterm=none + hi MoreMsg ctermbg=234 ctermfg=214 cterm=none + hi ModeMsg ctermbg=234 ctermfg=214 cterm=none + + " -> Search + hi Search ctermbg=241 ctermfg=227 cterm=none + hi IncSearch ctermbg=241 ctermfg=227 cterm=none + + " -> Diff + hi DiffAdd ctermbg=22 ctermfg=208 cterm=none + hi DiffChange ctermbg=235 ctermfg=130 cterm=none + hi DiffDelete ctermbg=234 ctermfg=208 cterm=none + hi DiffText ctermbg=24 ctermfg=208 cterm=underline + + " -> Menu + hi Pmenu ctermbg=0 ctermfg=52 cterm=none + hi PmenuSel ctermbg=208 ctermfg=52 cterm=none + hi PmenuSbar ctermbg=52 cterm=none + hi PmenuThumb ctermbg=52 cterm=none + hi PmenuSel ctermbg=208 ctermfg=52 cterm=none + + " -> Tabs + hi TabLine ctermbg=233 ctermfg=234 cterm=none + hi TabLineFill ctermbg=0 cterm=none + hi TabLineSel ctermbg=234 ctermfg=252 cterm=bold + " + " -> Visual Mode + hi Visual ctermbg=0 ctermfg=215 cterm=none + hi VisualNOS ctermbg=0 ctermfg=241 cterm=none + + " -> Code + hi Comment ctermbg=234 ctermfg=241 cterm=none + hi Constant ctermbg=234 ctermfg=84 cterm=none + hi String ctermbg=234 ctermfg=215 cterm=none + hi Error ctermbg=234 ctermfg=203 cterm=none + hi Identifier ctermbg=234 ctermfg=75 cterm=none + hi Function ctermbg=234 ctermfg=117 cterm=none + hi Ignore ctermbg=234 ctermfg=234 cterm=none + hi MatchParen ctermbg=214 ctermfg=234 cterm=none + hi PreProc ctermbg=234 ctermfg=141 cterm=none + hi Special ctermbg=234 ctermfg=227 cterm=none + hi Todo ctermbg=234 ctermfg=203 cterm=bold + hi Underlined ctermbg=234 ctermfg=203 cterm=underline + hi Statement ctermbg=234 ctermfg=176 cterm=none + hi Operator ctermbg=234 ctermfg=204 cterm=none + hi Delimiter ctermbg=234 ctermfg=204 cterm=none + hi Type ctermbg=234 ctermfg=227 cterm=none + hi Exception ctermbg=234 ctermfg=203 cterm=none + + " -> HTML-specific + hi htmlBold ctermbg=234 ctermfg=252 cterm=bold + hi htmlBoldItalic ctermbg=234 ctermfg=252 cterm=bold,italic + hi htmlBoldUnderline ctermbg=234 ctermfg=252 cterm=bold,underline + hi htmlBoldUnderlineItalic ctermbg=234 ctermfg=252 cterm=bold,underline,italic + hi htmlItalic ctermbg=234 ctermfg=252 cterm=italic + hi htmlUnderline ctermbg=234 ctermfg=252 cterm=underline + hi htmlUnderlineItalic ctermbg=234 ctermfg=252 cterm=underline,italic + +elseif &t_Co == 16 + + " -> Text; Miscellaneous + hi Normal ctermbg=8 ctermfg=15 cterm=none + hi SpecialKey ctermbg=8 ctermfg=5 cterm=none + hi VertSplit ctermbg=8 ctermfg=14 cterm=none + hi SignColumn ctermbg=8 ctermfg=5 cterm=none + hi NonText ctermbg=8 ctermfg=4 cterm=none + hi Directory ctermbg=8 ctermfg=14 cterm=none + hi Title ctermbg=8 ctermfg=10 cterm=bold + + " -> Cursor + hi Cursor ctermbg=14 ctermfg=8 cterm=none + hi CursorIM ctermbg=14 ctermfg=8 cterm=none + hi CursorColumn ctermbg=0 cterm=none + hi CursorLine ctermbg=0 cterm=none + + " -> Folding + hi FoldColumn ctermbg=0 ctermfg=1 cterm=none + hi Folded ctermbg=0 ctermfg=1 cterm=none + + " -> Line info + hi LineNr ctermbg=0 ctermfg=7 cterm=none + hi StatusLine ctermbg=0 ctermfg=7 cterm=none + hi StatusLineNC ctermbg=0 ctermfg=7 cterm=none + + " -> Messages + hi ErrorMsg ctermbg=4 ctermfg=7 cterm=none + hi Question ctermbg=8 ctermfg=14 cterm=none + hi WarningMsg ctermbg=14 ctermfg=0 cterm=none + hi MoreMsg ctermbg=8 ctermfg=14 cterm=none + hi ModeMsg ctermbg=8 ctermfg=14 cterm=none + + " -> Search + hi Search ctermbg=7 ctermfg=14 cterm=none + hi IncSearch ctermbg=7 ctermfg=14 cterm=none + + " -> Diff + hi DiffAdd ctermbg=0 ctermfg=10 cterm=none + hi DiffChange ctermbg=0 ctermfg=14 cterm=none + hi DiffDelete ctermbg=0 ctermfg=12 cterm=none + hi DiffText ctermbg=1 ctermfg=14 cterm=underline + + " -> Menu + hi Pmenu ctermbg=0 ctermfg=4 cterm=none + hi PmenuSel ctermbg=14 ctermfg=4 cterm=none + hi PmenuSbar ctermbg=0 cterm=none + hi PmenuThumb ctermbg=4 cterm=none + hi PmenuSel ctermbg=14 ctermfg=4 cterm=none + + " -> Tabs + hi TabLine ctermbg=7 ctermfg=8 cterm=none + hi TabLineFill ctermbg=0 cterm=none + hi TabLineSel ctermbg=8 ctermfg=7 cterm=bold + " + " -> Visual Mode + hi Visual ctermbg=0 ctermfg=14 cterm=none + hi VisualNOS ctermbg=0 ctermfg=7 cterm=none + + " -> Code + hi Comment ctermbg=8 ctermfg=7 cterm=none + hi Constant ctermbg=8 ctermfg=10 cterm=none + hi String ctermbg=8 ctermfg=6 cterm=none + hi Error ctermbg=8 ctermfg=4 cterm=none + hi Identifier ctermbg=8 ctermfg=11 cterm=none + hi Function ctermbg=8 ctermfg=11 cterm=none + hi Ignore ctermbg=8 ctermfg=8 cterm=none + hi MatchParen ctermbg=14 ctermfg=8 cterm=none + hi PreProc ctermbg=8 ctermfg=5 cterm=none + hi Special ctermbg=8 ctermfg=14 cterm=none + hi Todo ctermbg=8 ctermfg=12 cterm=bold + hi Underlined ctermbg=8 ctermfg=12 cterm=underline + hi Statement ctermbg=8 ctermfg=13 cterm=none + hi Operator ctermbg=8 ctermfg=4 cterm=none + hi Delimiter ctermbg=8 ctermfg=4 cterm=none + hi Type ctermbg=8 ctermfg=14 cterm=none + hi Exception ctermbg=8 ctermfg=12 cterm=none + + " -> HTML-specific + hi htmlBold ctermbg=8 ctermfg=7 cterm=bold + hi htmlBoldItalic ctermbg=8 ctermfg=7 cterm=bold,italic + hi htmlBoldUnderline ctermbg=8 ctermfg=7 cterm=bold,underline + hi htmlBoldUnderlineItalic ctermbg=8 ctermfg=7 cterm=bold,underline,italic + hi htmlItalic ctermbg=8 ctermfg=7 cterm=italic + hi htmlUnderline ctermbg=8 ctermfg=7 cterm=underline + hi htmlUnderlineItalic ctermbg=8 ctermfg=7 cterm=underline,italic + + +elseif &t_Co == 8 + + " -> Text; Miscellaneous + hi Normal ctermbg=8 ctermfg=7 cterm=none + hi SpecialKey ctermbg=8 ctermfg=5 cterm=none + hi VertSplit ctermbg=8 ctermfg=6 cterm=none + hi SignColumn ctermbg=8 ctermfg=5 cterm=none + hi NonText ctermbg=8 ctermfg=4 cterm=none + hi Directory ctermbg=8 ctermfg=6 cterm=none + hi Title ctermbg=8 ctermfg=2 cterm=bold + + " -> Cursor + hi Cursor ctermbg=6 ctermfg=8 cterm=none + hi CursorIM ctermbg=6 ctermfg=8 cterm=none + hi CursorColumn ctermbg=0 cterm=none + hi CursorLine ctermbg=0 cterm=none + + " -> Folding + hi FoldColumn ctermbg=0 ctermfg=1 cterm=none + hi Folded ctermbg=0 ctermfg=1 cterm=none + + " -> Line info + hi LineNr ctermbg=0 ctermfg=7 cterm=none + hi StatusLine ctermbg=0 ctermfg=7 cterm=none + hi StatusLineNC ctermbg=0 ctermfg=7 cterm=none + + " -> Messages + hi ErrorMsg ctermbg=4 ctermfg=7 cterm=none + hi Question ctermbg=8 ctermfg=6 cterm=none + hi WarningMsg ctermbg=6 ctermfg=0 cterm=none + hi MoreMsg ctermbg=8 ctermfg=6 cterm=none + hi ModeMsg ctermbg=8 ctermfg=6 cterm=none + + " -> Search + hi Search ctermbg=7 ctermfg=6 cterm=none + hi IncSearch ctermbg=7 ctermfg=6 cterm=none + + " -> Diff + hi DiffAdd ctermbg=0 ctermfg=2 cterm=none + hi DiffChange ctermbg=0 ctermfg=6 cterm=none + hi DiffDelete ctermbg=0 ctermfg=4 cterm=none + hi DiffText ctermbg=1 ctermfg=6 cterm=underline + + " -> Menu + hi Pmenu ctermbg=0 ctermfg=4 cterm=none + hi PmenuSel ctermbg=6 ctermfg=4 cterm=none + hi PmenuSbar ctermbg=0 cterm=none + hi PmenuThumb ctermbg=4 cterm=none + hi PmenuSel ctermbg=6 ctermfg=4 cterm=none + + " -> Tabs + hi TabLine ctermbg=7 ctermfg=8 cterm=none + hi TabLineFill ctermbg=0 cterm=none + hi TabLineSel ctermbg=8 ctermfg=7 cterm=bold + " + " -> Visual Mode + hi Visual ctermbg=0 ctermfg=6 cterm=none + hi VisualNOS ctermbg=0 ctermfg=7 cterm=none + + " -> Code + hi Comment ctermbg=8 ctermfg=7 cterm=none + hi Constant ctermbg=8 ctermfg=2 cterm=none + hi String ctermbg=8 ctermfg=6 cterm=none + hi Error ctermbg=8 ctermfg=4 cterm=none + hi Identifier ctermbg=8 ctermfg=3 cterm=none + hi Function ctermbg=8 ctermfg=3 cterm=none + hi Ignore ctermbg=8 ctermfg=8 cterm=none + hi MatchParen ctermbg=6 ctermfg=8 cterm=none + hi PreProc ctermbg=8 ctermfg=5 cterm=none + hi Special ctermbg=8 ctermfg=6 cterm=none + hi Todo ctermbg=8 ctermfg=4 cterm=bold + hi Underlined ctermbg=8 ctermfg=4 cterm=underline + hi Statement ctermbg=8 ctermfg=5 cterm=none + hi Operator ctermbg=8 ctermfg=4 cterm=none + hi Delimiter ctermbg=8 ctermfg=4 cterm=none + hi Type ctermbg=8 ctermfg=6 cterm=none + hi Exception ctermbg=8 ctermfg=4 cterm=none + + " -> HTML-specific + hi htmlBold ctermbg=8 ctermfg=7 cterm=bold + hi htmlBoldItalic ctermbg=8 ctermfg=7 cterm=bold,italic + hi htmlBoldUnderline ctermbg=8 ctermfg=7 cterm=bold,underline + hi htmlBoldUnderlineItalic ctermbg=8 ctermfg=7 cterm=bold,underline,italic + hi htmlItalic ctermbg=8 ctermfg=7 cterm=italic + hi htmlUnderline ctermbg=8 ctermfg=7 cterm=underline + hi htmlUnderlineItalic ctermbg=8 ctermfg=7 cterm=underline,italic + +endif + +hi! default link bbcodeBold htmlBold +hi! default link bbcodeBoldItalic htmlBoldItalic +hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic +hi! default link bbcodeBoldUnderline htmlBoldUnderline +hi! default link bbcodeItalic htmlItalic +hi! default link bbcodeItalicUnderline htmlUnderlineItalic +hi! default link bbcodeUnderline htmlUnderline + +" Spellcheck formatting +if has("spell") + hi SpellBad guisp=#FC4234 gui=undercurl + hi SpellCap guisp=#70BDF1 gui=undercurl + hi SpellLocal guisp=#FFEE68 gui=undercurl + hi SpellRare guisp=#6DF584 gui=undercurl +endif diff --git a/.vim/colors/impact.vim b/.vim/colors/impact.vim new file mode 100644 index 0000000..507ff3d --- /dev/null +++ b/.vim/colors/impact.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Shirk +" Last Change: 19 September 2005 - 0.2 +" URL: trinity.gentoofreaks.org + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark "or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="impact" + +if exists("g:impact_transbg") + hi Normal ctermfg=LightGray ctermbg=none + hi NonText ctermfg=DarkGray ctermbg=none + + hi Statement ctermfg=Blue ctermbg=none + hi Comment ctermfg=DarkGray ctermbg=none cterm=bold term=bold + hi Constant ctermfg=DarkCyan ctermbg=none + hi Identifier ctermfg=Cyan ctermbg=none + hi Type ctermfg=DarkGreen ctermbg=none + hi Folded ctermfg=DarkGreen ctermbg=none cterm=underline term=none + hi Special ctermfg=Blue ctermbg=none + hi PreProc ctermfg=LightGray ctermbg=none cterm=bold term=bold + hi Scrollbar ctermfg=Blue ctermbg=none + hi Cursor ctermfg=white ctermbg=none + hi ErrorMsg ctermfg=Red ctermbg=none cterm=bold term=bold + hi WarningMsg ctermfg=Yellow ctermbg=none + hi VertSplit ctermfg=White ctermbg=none + hi Directory ctermfg=Cyan ctermbg=DarkBlue + hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none + hi Title ctermfg=White ctermbg=DarkBlue + + hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black + hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black + hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkGray +else + hi Normal ctermfg=LightGray ctermbg=Black + hi NonText ctermfg=DarkGray ctermbg=Black + + hi Statement ctermfg=Blue ctermbg=Black + hi Comment ctermfg=DarkGray ctermbg=Black cterm=bold term=bold + hi Constant ctermfg=DarkCyan ctermbg=Black + hi Identifier ctermfg=Cyan ctermbg=Black + hi Type ctermfg=DarkGreen ctermbg=Black + hi Folded ctermfg=DarkGreen ctermbg=Black cterm=underline term=none + hi Special ctermfg=Blue ctermbg=Black + hi PreProc ctermfg=LightGray ctermbg=Black cterm=bold term=bold + hi Scrollbar ctermfg=Blue ctermbg=Black + hi Cursor ctermfg=white ctermbg=Black + hi ErrorMsg ctermfg=Red ctermbg=Black cterm=bold term=bold + hi WarningMsg ctermfg=Yellow ctermbg=Black + hi VertSplit ctermfg=White ctermbg=Black + hi Directory ctermfg=Cyan ctermbg=DarkBlue + hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none + hi Title ctermfg=White ctermbg=DarkBlue + + hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black + hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black + hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkGray +endif diff --git a/.vim/colors/inkpot.vim b/.vim/colors/inkpot.vim new file mode 100644 index 0000000..c6ecb46 --- /dev/null +++ b/.vim/colors/inkpot.vim @@ -0,0 +1,216 @@ +" Vim color file +" Name: inkpot.vim +" Maintainer: Ciaran McCreesh +" Homepage: http://github.com/ciaranm/inkpot/ +" +" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256 +" colour mode). It won't work in 8/16 colour terminals. +" +" To use a black background, :let g:inkpot_black_background = 1 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "inkpot" + +" map a urxvt cube number to an xterm-256 cube number +fun! M(a) + return strpart("0135", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + M(l:x) + (6 * M(l:y)) + (36 * M(l:z)) + endif + endif +endfun + +if ! exists("g:inkpot_black_background") + let g:inkpot_black_background = 0 +endif + +if has("gui_running") + if ! g:inkpot_black_background + hi Normal gui=NONE guifg=#cfbfad guibg=#1e1e27 + else + hi Normal gui=NONE guifg=#cfbfad guibg=#000000 + endif + + hi CursorLine guibg=#2e2e37 + + hi IncSearch gui=BOLD guifg=#303030 guibg=#cd8b60 + hi Search gui=NONE guifg=#303030 guibg=#ad7b57 + hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ce4e4e + hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ce8e4e + hi ModeMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi MoreMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi Question gui=BOLD guifg=#ffcd00 guibg=NONE + + hi StatusLine gui=BOLD guifg=#b9b9b9 guibg=#3e3e5e + hi User1 gui=BOLD guifg=#00ff8b guibg=#3e3e5e + hi User2 gui=BOLD guifg=#7070a0 guibg=#3e3e5e + hi StatusLineNC gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + hi VertSplit gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + + hi WildMenu gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi MBENormal guifg=#cfbfad guibg=#2e2e3f + hi MBEChanged guifg=#eeeeee guibg=#2e2e3f + hi MBEVisibleNormal guifg=#cfcfcd guibg=#4e4e8f + hi MBEVisibleChanged guifg=#eeeeee guibg=#4e4e8f + + hi DiffText gui=NONE guifg=#ffffcd guibg=#4a2a4a + hi DiffChange gui=NONE guifg=#ffffcd guibg=#306b8f + hi DiffDelete gui=NONE guifg=#ffffcd guibg=#6d3030 + hi DiffAdd gui=NONE guifg=#ffffcd guibg=#306d30 + + hi Cursor gui=NONE guifg=#404040 guibg=#8b8bff + hi lCursor gui=NONE guifg=#404040 guibg=#8fff8b + hi CursorIM gui=NONE guifg=#404040 guibg=#8b8bff + + hi Folded gui=NONE guifg=#cfcfcd guibg=#4b208f + hi FoldColumn gui=NONE guifg=#8b8bcd guibg=#2e2e2e + + hi Directory gui=NONE guifg=#00ff8b guibg=NONE + hi LineNr gui=NONE guifg=#8b8bcd guibg=#2e2e2e + hi NonText gui=BOLD guifg=#8b8bcd guibg=NONE + hi SpecialKey gui=BOLD guifg=#ab60ed guibg=NONE + hi Title gui=BOLD guifg=#af4f4b guibg=NONE + hi Visual gui=NONE guifg=#eeeeee guibg=#4e4e8f + + hi Comment gui=NONE guifg=#cd8b00 guibg=NONE + hi Constant gui=NONE guifg=#ffcd8b guibg=NONE + hi String gui=NONE guifg=#ffcd8b guibg=#404040 + hi Error gui=NONE guifg=#ffffff guibg=#6e2e2e + hi Identifier gui=NONE guifg=#ff8bff guibg=NONE + hi Ignore gui=NONE + hi Number gui=NONE guifg=#f0ad6d guibg=NONE + hi PreProc gui=NONE guifg=#409090 guibg=NONE + hi Special gui=NONE guifg=#c080d0 guibg=NONE + hi SpecialChar gui=NONE guifg=#c080d0 guibg=#404040 + hi Statement gui=NONE guifg=#808bed guibg=NONE + hi Todo gui=BOLD guifg=#303030 guibg=#d0a060 + hi Type gui=NONE guifg=#ff8bff guibg=NONE + hi Underlined gui=BOLD guifg=#df9f2d guibg=NONE + hi TaglistTagName gui=BOLD guifg=#808bed guibg=NONE + + hi perlSpecialMatch gui=NONE guifg=#c080d0 guibg=#404040 + hi perlSpecialString gui=NONE guifg=#c080d0 guibg=#404040 + + hi cSpecialCharacter gui=NONE guifg=#c080d0 guibg=#404040 + hi cFormat gui=NONE guifg=#c080d0 guibg=#404040 + + hi doxygenBrief gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenParam gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenPrev gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSmallSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdd090 guibg=NONE + hi doxygenComment gui=NONE guifg=#ad7b20 guibg=NONE + hi doxygenSpecial gui=NONE guifg=#fdab60 guibg=NONE + hi doxygenSpecialMultilineDesc gui=NONE guifg=#ad600b guibg=NONE + hi doxygenSpecialOnelineDesc gui=NONE guifg=#ad600b guibg=NONE + + if v:version >= 700 + hi Pmenu gui=NONE guifg=#eeeeee guibg=#4e4e8f + hi PmenuSel gui=BOLD guifg=#eeeeee guibg=#2e2e3f + hi PmenuSbar gui=BOLD guifg=#eeeeee guibg=#6e6eaf + hi PmenuThumb gui=BOLD guifg=#eeeeee guibg=#6e6eaf + + hi SpellBad gui=undercurl guisp=#cc6666 + hi SpellRare gui=undercurl guisp=#cc66cc + hi SpellLocal gui=undercurl guisp=#cccc66 + hi SpellCap gui=undercurl guisp=#66cccc + + hi MatchParen gui=NONE guifg=#cfbfad guibg=#4e4e8f + endif +else + if ! g:inkpot_black_background + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(80) + else + exec "hi Normal cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(16) + endif + + exec "hi IncSearch cterm=BOLD ctermfg=" . X(80) . " ctermbg=" . X(73) + exec "hi Search cterm=NONE ctermfg=" . X(80) . " ctermbg=" . X(52) + exec "hi ErrorMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(48) + exec "hi WarningMsg cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(68) + exec "hi ModeMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi MoreMsg cterm=BOLD ctermfg=" . X(38) . " ctermbg=" . "NONE" + exec "hi Question cterm=BOLD ctermfg=" . X(52) . " ctermbg=" . "NONE" + + exec "hi StatusLine cterm=BOLD ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi User1 cterm=BOLD ctermfg=" . X(28) . " ctermbg=" . X(81) + exec "hi User2 cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . X(81) + exec "hi StatusLineNC cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + exec "hi VertSplit cterm=NONE ctermfg=" . X(84) . " ctermbg=" . X(81) + + exec "hi WildMenu cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + + exec "hi MBENormal ctermfg=" . X(85) . " ctermbg=" . X(81) + exec "hi MBEChanged ctermfg=" . X(87) . " ctermbg=" . X(81) + exec "hi MBEVisibleNormal ctermfg=" . X(85) . " ctermbg=" . X(82) + exec "hi MBEVisibleChanged ctermfg=" . X(87) . " ctermbg=" . X(82) + + exec "hi DiffText cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(34) + exec "hi DiffChange cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(17) + exec "hi DiffDelete cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi DiffAdd cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(20) + + exec "hi Folded cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(35) + exec "hi FoldColumn cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + + exec "hi Directory cterm=NONE ctermfg=" . X(28) . " ctermbg=" . "NONE" + exec "hi LineNr cterm=NONE ctermfg=" . X(39) . " ctermbg=" . X(80) + exec "hi NonText cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + exec "hi SpecialKey cterm=BOLD ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi Title cterm=BOLD ctermfg=" . X(48) . " ctermbg=" . "NONE" + exec "hi Visual cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(38) + + exec "hi Comment cterm=NONE ctermfg=" . X(52) . " ctermbg=" . "NONE" + exec "hi Constant cterm=NONE ctermfg=" . X(73) . " ctermbg=" . "NONE" + exec "hi String cterm=NONE ctermfg=" . X(73) . " ctermbg=" . X(81) + exec "hi Error cterm=NONE ctermfg=" . X(79) . " ctermbg=" . X(32) + exec "hi Identifier cterm=NONE ctermfg=" . X(53) . " ctermbg=" . "NONE" + exec "hi Ignore cterm=NONE" + exec "hi Number cterm=NONE ctermfg=" . X(69) . " ctermbg=" . "NONE" + exec "hi PreProc cterm=NONE ctermfg=" . X(25) . " ctermbg=" . "NONE" + exec "hi Special cterm=NONE ctermfg=" . X(55) . " ctermbg=" . "NONE" + exec "hi SpecialChar cterm=NONE ctermfg=" . X(55) . " ctermbg=" . X(81) + exec "hi Statement cterm=NONE ctermfg=" . X(27) . " ctermbg=" . "NONE" + exec "hi Todo cterm=BOLD ctermfg=" . X(16) . " ctermbg=" . X(57) + exec "hi Type cterm=NONE ctermfg=" . X(71) . " ctermbg=" . "NONE" + exec "hi Underlined cterm=BOLD ctermfg=" . X(77) . " ctermbg=" . "NONE" + exec "hi TaglistTagName cterm=BOLD ctermfg=" . X(39) . " ctermbg=" . "NONE" + + if v:version >= 700 + exec "hi Pmenu cterm=NONE ctermfg=" . X(87) . " ctermbg=" . X(82) + exec "hi PmenuSel cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(38) + exec "hi PmenuSbar cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + exec "hi PmenuThumb cterm=BOLD ctermfg=" . X(87) . " ctermbg=" . X(39) + + exec "hi SpellBad cterm=NONE ctermbg=" . X(32) + exec "hi SpellRare cterm=NONE ctermbg=" . X(33) + exec "hi SpellLocal cterm=NONE ctermbg=" . X(36) + exec "hi SpellCap cterm=NONE ctermbg=" . X(21) + exec "hi MatchParen cterm=NONE ctermbg=" . X(14) . "ctermfg=" . X(25) + endif +endif + +" vim: set et : diff --git a/.vim/colors/ironman.vim b/.vim/colors/ironman.vim new file mode 100644 index 0000000..d98a936 --- /dev/null +++ b/.vim/colors/ironman.vim @@ -0,0 +1,133 @@ +" Vim color file +" Maintainer: Michael Boehler +" Mail: michael@familie-boehler.de +" Last Change: 2008-2-21 +" Version: 3.2 +" This color scheme uses a light background. +" GUI only +" inspired by colorsheme PYTE + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "ironman" + +hi Normal guifg=#222222 guibg=#F0F0F0 + +" Search +hi IncSearch gui=NONE guifg=Black guibg=#FFFF4B +hi Search gui=NONE guifg=Black guibg=#FFFF8F + +" Messages +hi ErrorMsg gui=NONE guifg=#FF0000 guibg=NONE +hi WarningMsg gui=NONE guifg=#FF6600 guibg=NONE +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#FF6600 guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Completion Popup Menu +hi Pmenu gui=NONE guifg=#303040 guibg=#ccff00 +hi PmenuSel gui=NONE guifg=#303040 guibg=#ffff00 +" hi PmenuSbar scrollbar |hl-PmenuSbar| +" hi PmenuThumb thumb of the scrollbar |hl-PmenuThumb| + +" Split area +hi StatusLine gui=ITALIC guifg=white guibg=#8090a0 +hi StatusLineNC gui=ITALIC guifg=#506070 guibg=#a0b0c0 +hi VertSplit gui=NONE guifg=#a0b0c0 guibg=#a0b0c0 +hi WarningMsgildMenu gui=NONE guifg=Black guibg=Orange +" hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff +hi DiffText gui=NONE guifg=#2020ff guibg=#c8f2ea +hi DiffDelete gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffAdd gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffChange gui=NONE guifg=#2020ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#DE7171 +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorLine gui=NONE guifg=NONE guibg=#f6f6f6 +hi CursorColumn gui=NONE guifg=NONE guibg=#F9F9F9 + +" Fold +hi Folded gui=NONE guifg=#3399ff guibg=#EAF5FF +hi FoldColumn gui=NONE guifg=#3399ff guibg=#EAF5FF + +" Other hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#FFFFFF guibg=#C0D0E0 +hi NonText gui=NONE guifg=#C0C0C0 guibg=#E0E0E0 +hi SpecialKey gui=NONE guifg=#35E0DF guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guibg=#BDDFFF +hi MatchParen gui=NONE guifg=NONE guibg=#9FFF82 + +" Syntax group +hi Comment gui=ITALIC guifg=#A0B0C0 guibg=#EFEFFF +hi Paren gui=NONE guifg=#9326C1 guibg=NONE +hi Comma gui=NONE guifg=#C12660 guibg=NONE +hi Constant gui=NONE guifg=NONE guibg=#E8F1FF +hi Statement gui=NONE guifg=#005EC4 guibg=NONE +hi Error gui=BOLD,UNDERLINE guifg=#ff4080 guibg=NONE +hi Identifier gui=NONE guifg=#339933 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi Number gui=NONE guifg=#087B4D +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#0000ff guibg=#ccf7ee +hi Delimiter gui=BOLD guifg=#A8360F guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#eb7950 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +hi Conditional gui=None guifg=#0053FF guibg=bg +hi Repeat gui=None guifg=SeaGreen2 guibg=bg +hi Operator gui=None guifg=#0085B1 guibg=bg +hi Keyword gui=None guifg=DarkBlue guibg=bg +hi Exception gui=None guifg=DarkBlue guibg=bg +hi Function gui=BOLD guifg=#3E0F70 + +hi! link String Constant +hi! link SpecialComment Comment +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Label Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Debug Special + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Tabs {{{1 +highlight TabLine gui=underline guibg=LightGrey +highlight TabLineFill gui=reverse +highlight TabLineSel gui=bold + +highlight SpellBad gui=undercurl guisp=Red +highlight SpellCap gui=undercurl guisp=Blue +highlight SpellRare gui=undercurl guisp=Magenta +highlight SpellLocale gui=undercurl guisp=DarkCyan + +" Completion {{{1 +highlight Pmenu guifg=Black guibg=#BDDFFF +highlight PmenuSel guifg=Black guibg=Orange +highlight PmenuSbar guifg=#CCCCCC guibg=#CCCCCC +highlight PmenuThumb gui=reverse guifg=Black guibg=#AAAAAA diff --git a/.vim/colors/jammy.vim b/.vim/colors/jammy.vim new file mode 100644 index 0000000..b12ed5f --- /dev/null +++ b/.vim/colors/jammy.vim @@ -0,0 +1,111 @@ +" Vim color file inherit from the desrt.vim +" Maintainer: Jammy Lee +" Last Change: $Date: 2008/03/20 19:30:30 $ +" Version: $Id: jammy.vim,v 1.1 2008/03/20 $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="jammy" + +hi Normal guifg=White guibg=Black + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi String guifg=Skyblue +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=black +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guibg=grey30 +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=grey60 +hi Constant guifg=indianred + +hi Identifier guifg=palegreen +"hi Identifier guifg=#D18B2C +"palegreen +"hi Statement guifg=khaki +hi Statement guifg=#E6DB74 +hi PreProc guifg=Skyblue +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/.vim/colors/jellybeans.vim b/.vim/colors/jellybeans.vim new file mode 100644 index 0000000..6b53596 --- /dev/null +++ b/.vim/colors/jellybeans.vim @@ -0,0 +1,410 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" Maintainer: NanoTech +" Version: 1.2 +" Last Change: May 26th, 2009 +" Contributors: Daniel Herbert , +" Henry So, Jr. , +" David Liang +" +" Copyright (c) 2009 NanoTech +" +" 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. + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jellybeans" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + let s:low_color = 0 +else + let s:low_color = 1 +endif + +" Color approximation functions by Henry So, Jr. and David Liang {{{ +" Added to jellybeans.vim by Daniel Herbert + +" returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun! s:grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun! s:rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun! s:color(r, g, b) + " get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " get the closest color + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return s:grey_color(l:gx) + else + " use the color + return s:rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return s:rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun! s:rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun! s:X(group, fg, bg, attr, lcfg, lcbg) + if s:low_color + let l:fge = empty(a:lcfg) + let l:bge = empty(a:lcbg) + + if !l:fge && !l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=".a:lcbg + elseif !l:fge && l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=NONE" + elseif l:fge && !l:bge + exec "hi ".a:group." ctermfg=NONE ctermbg=".a:lcbg + endif + else + let l:fge = empty(a:fg) + let l:bge = empty(a:bg) + + if !l:fge && !l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=#".a:bg." ctermfg=".s:rgb(a:fg)." ctermbg=".s:rgb(a:bg) + elseif !l:fge && l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=NONE ctermfg=".s:rgb(a:fg) + elseif l:fge && !l:bge + exec "hi ".a:group." guifg=NONE guibg=#".a:bg." ctermbg=".s:rgb(a:bg) + endif + endif + + if a:attr == "" + exec "hi ".a:group." gui=none cterm=none" + else + if a:attr == 'italic' + exec "hi ".a:group." gui=".a:attr." cterm=none" + else + exec "hi ".a:group." gui=".a:attr." cterm=".a:attr + endif + endif +endfun +" }}} + +if version >= 700 + call s:X("CursorLine","","1c1c1c","","","") + call s:X("CursorColumn","","1c1c1c","","","") + call s:X("MatchParen","ffffff","80a090","bold","","") + + call s:X("TabLine","000000","b0b8c0","italic","","Black") + call s:X("TabLineFill","9098a0","","","","") + call s:X("TabLineSel","000000","f0f0f0","italic,bold","","") + + " Auto-completion + call s:X("Pmenu","ffffff","000000","","","") + call s:X("PmenuSel","101010","eeeeee","","","") +endif + +call s:X("Visual","","404040","","","") +call s:X("Cursor","","b0d0f0","","","") + +call s:X("Normal","e8e8d3","151515","","White","") +call s:X("LineNr","605958","151515","none","Black","") +call s:X("Comment","888888","","italic","Grey","") +call s:X("Todo","808080","","bold","","") + +call s:X("StatusLine","f0f0f0","101010","italic","","") +call s:X("StatusLineNC","a0a0a0","181818","italic","","") +call s:X("VertSplit","181818","181818","italic","","") + +call s:X("Folded","a0a8b0","384048","italic","black","") +call s:X("FoldColumn","a0a8b0","384048","","","") +call s:X("SignColumn","a0a8b0","384048","","","") + +call s:X("Title","70b950","","bold","","") + +call s:X("Constant","cf6a4c","","","Red","") +call s:X("Special","799d6a","","","Green","") +call s:X("Delimiter","668799","","","Grey","") + +call s:X("String","99ad6a","","","Green","") +call s:X("StringDelimiter","556633","","","DarkGreen","") + +call s:X("Identifier","c6b6ee","","","LightCyan","") +call s:X("Structure","8fbfdc","","","LightCyan","") +call s:X("Function","fad07a","","","Yellow","") +call s:X("Statement","8197bf","","","DarkBlue","") +call s:X("PreProc","8fbfdc","","","LightBlue","") + +hi link Operator Normal + +call s:X("Type","ffb964","","","Yellow","") +call s:X("NonText","808080","151515","","","") + +call s:X("SpecialKey","808080","343434","","","") + +call s:X("Search","f0a0c0","302028","underline","Magenta","") + +call s:X("Directory","dad085","","","","") +call s:X("ErrorMsg","","902020","","","") +hi link Error ErrorMsg + +" Diff + +hi link diffRemoved Constant +hi link diffAdded String + +" VimDiff + +call s:X("DiffAdd","","032218","","Black","DarkGreen") +call s:X("DiffChange","","100920","","Black","DarkMagenta") +call s:X("DiffDelete","220000","220000","","DarkRed","DarkRed") +call s:X("DiffText","","000940","","","DarkRed") + +" PHP + +hi link phpFunctions Function +call s:X("StorageClass","c59f6f","","","Red","") +hi link phpSuperglobal Identifier +hi link phpQuoteSingle StringDelimiter +hi link phpQuoteDouble StringDelimiter +hi link phpBoolean Constant +hi link phpNull Constant +hi link phpArrayPair Operator + +" Ruby + +hi link rubySharpBang Comment +call s:X("rubyClass","447799","","","DarkBlue","") +call s:X("rubyIdentifier","c6b6fe","","","","") + +call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","") +call s:X("rubySymbol","7697d6","","","Blue","") +hi link rubyGlobalVariable rubyInstanceVariable +hi link rubyModule rubyClass +call s:X("rubyControl","7597c6","","","","") + +hi link rubyString String +hi link rubyStringDelimiter StringDelimiter +hi link rubyInterpolationDelimiter Identifier + +call s:X("rubyRegexpDelimiter","540063","","","Magenta","") +call s:X("rubyRegexp","dd0093","","","DarkMagenta","") +call s:X("rubyRegexpSpecial","a40073","","","Magenta","") + +call s:X("rubyPredefinedIdentifier","de5577","","","Red","") + +" JavaScript +hi link javaScriptValue Constant +hi link javaScriptRegexpString rubyRegexp + +" Tag list +hi link TagListFileName Directory + +" delete functions {{{ +delf s:X +delf s:rgb +delf s:color +delf s:rgb_color +delf s:rgb_level +delf s:rgb_number +delf s:grey_color +delf s:grey_level +delf s:grey_number +" }}} diff --git a/.vim/colors/kellys.vim b/.vim/colors/kellys.vim new file mode 100644 index 0000000..d52713a --- /dev/null +++ b/.vim/colors/kellys.vim @@ -0,0 +1,236 @@ +" Description: a colour scheme inspired by kellys bicycles +" Maintainer: kamil.stachowski@gmail.com +" License: gpl 3+ +" Version: 0.3 (2008.12.07) + +" changelog: +" 0.3: 2008.12.07 +" finished ada, haskell, html, lisp, pascal, php, python, ruby, scheme, sh, xml and vim +" changed preproc to slightly darker +" changed statement to bold +" 0.2: 2008.12.02 +" added support for 256-colour terminal +" added diff*, pmenu* and wildmenu +" added some cpp, java*, python*, some sh and ruby* +" removed italic from comments and made them slightly lighter +" 0.1: 2008.11.28 +" initial version + + +set background=dark + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let colors_name = "kellys" + +" black 2a2b2f 235 +" blue 62acce 81 +" blue slight 9ab2c8 74 +" brown slight d1c79e 144 +" green yellowy d1d435 184 +" grey dark 67686b 240 +" grey light e1e0e5 254 +" orange e6ac32 178 +" red 9d0e15 124 + +" tabline + +if has("gui_running") + hi Comment guifg=#67686b guibg=#2a2b2f gui=none + hi Cursor guifg=#2a2b2f guibg=#e1e0e5 gui=none + hi Constant guifg=#d1c79e guibg=#2a2b2f gui=none + hi CursorLine guibg=#303132 gui=none + hi DiffAdd guifg=#2a2b2f guibg=#9ab2c8 gui=none + hi DiffChange guifg=#2a2b2f guibg=#d1c79e gui=none + hi DiffDelete guifg=#67686b guibg=#2a2b2f gui=none + hi DiffText guifg=#9d0e15 guibg=#d1c79e gui=none + hi Folded guifg=#2a2b2f guibg=#67686b gui=none + hi MatchParen guifg=#d1d435 guibg=#2a2b2f gui=bold,underline + hi ModeMsg guifg=#e1e0e5 guibg=#2a2b2f gui=bold + hi Normal guifg=#e1e0e5 guibg=#2a2b2f gui=none + hi Pmenu guifg=#2a2b2f guibg=#9ab2c8 gui=none + hi PmenuSel guifg=#2a2b2f guibg=#62acce gui=bold + hi PmenuSbar guifg=#2a2b2f guibg=#2a2b2f gui=none + hi PmenuThumb guifg=#2a2b2f guibg=#62acce gui=none + hi PreProc guifg=#d1d435 guibg=#2a2b2f gui=none + hi Search guifg=#2a2b2f guibg=#e1e0e5 gui=none + hi Special guifg=#9ab2c8 guibg=#2a2b2f gui=none + hi Statement guifg=#62acce guibg=#2a2b2f gui=bold + hi StatusLine guifg=#2a2b2f guibg=#62acce gui=bold + hi StatusLineNC guifg=#2a2b2f guibg=#e1e0e5 gui=none + hi Todo guifg=#e1e0e5 guibg=#9d0e15 gui=bold + hi Type guifg=#e6ac32 guibg=#2a2b2f gui=none + hi Underlined guifg=#e1e0e5 guibg=#2a2b2f gui=underline + hi Visual guifg=#2a2b2f guibg=#e1e0e5 gui=none + hi Wildmenu guifg=#62acce guibg=#2a2b2f gui=bold +else + if &t_Co == 256 + hi Comment ctermfg=239 ctermbg=235 cterm=none + hi Cursor ctermfg=235 ctermbg=254 cterm=none + hi Constant ctermfg=144 ctermbg=235 cterm=none + hi CursorLine ctermbg=236 cterm=none + hi DiffAdd ctermfg=235 ctermbg=74 cterm=none + hi DiffChange ctermfg=235 ctermbg=144 cterm=none + hi DiffDelete ctermfg=239 ctermbg=235 cterm=none + hi DiffText ctermfg=124 ctermbg=144 cterm=none + hi Folded ctermfg=239 ctermbg=235 cterm=none + hi MatchParen ctermfg=184 ctermbg=235 cterm=bold,underline + hi ModeMsg ctermfg=254 ctermbg=235 cterm=bold + hi Normal ctermfg=254 ctermbg=235 cterm=none + hi Pmenu ctermfg=235 ctermbg=74 cterm=none + hi PmenuSel ctermfg=235 ctermbg=81 cterm=bold + hi PmenuSbar ctermfg=235 ctermbg=235 cterm=none + hi PmenuThumb ctermfg=235 ctermbg=81 cterm=none + hi PreProc ctermfg=184 ctermbg=235 cterm=none + hi Search ctermfg=235 ctermbg=254 cterm=none + hi Special ctermfg=74 ctermbg=235 cterm=none + hi Statement ctermfg=81 ctermbg=235 cterm=none + hi StatusLine ctermfg=235 ctermbg=81 cterm=bold + hi StatusLineNC ctermfg=235 ctermbg=254 cterm=none + hi Todo ctermfg=254 ctermbg=124 cterm=bold + hi Type ctermfg=178 ctermbg=234 cterm=none + hi Underlined ctermfg=254 ctermbg=234 cterm=underline + hi Visual ctermfg=235 ctermbg=254 cterm=none + hi Wildmenu ctermfg=81 ctermbg=234 cterm=bold + endif +endif + +hi! link Boolean Constant +hi! link Character Constant +hi! link Conditional Statement +hi! link CursorColumn CursorLine +hi! link Debug Special +hi! link Define PreProc +hi! link Delimiter Special +hi! link Directory Type +hi! link Error Todo +hi! link ErrorMsg Error +hi! link Exception Statement +hi! link Float Constant +hi! link FoldColumn Folded +hi! link Function Normal +hi! link Identifier Special +hi! link Ignore Comment +hi! link IncSearch Search +hi! link Include PreProc +hi! link Keyword Statement +hi! link Label Statement +hi! link LineNr Comment +hi! link Macro PreProc +hi! link MoreMsg ModeMsg +hi! link NonText Comment +hi! link Number Constant +hi! link Operator Special +hi! link PreCondit PreProc +hi! link Question MoreMsg +hi! link Repeat Statement +hi! link SignColumn FoldColumn +hi! link SpecialChar Special +hi! link SpecialComment Special +hi! link SpecialKey Special +hi! link SpellBad Error +hi! link SpellCap Error +hi! link SpellLocal Error +hi! link SpellRare Error +hi! link StorageClass Type +hi! link String Constant +hi! link Structure Type +hi! link Tag Special +hi! link Title ModeMsg +hi! link Typedef Type +hi! link VertSplit StatusLineNC +hi! link WarningMsg Error + +" ada +hi! link adaBegin Type +hi! link adaEnd Type +hi! link adaKeyword Special +" c++ +hi! link cppAccess Type +hi! link cppStatement Special +" hs +hi! link ConId Type +hi! link hsPragma PreProc +hi! link hsConSym Operator +" html +hi! link htmlArg Statement +hi! link htmlEndTag Special +hi! link htmlLink Underlined +hi! link htmlSpecialTagName PreProc +hi! link htmlTag Special +hi! link htmlTagName Type +" java +hi! link javaTypeDef Special +" lisp +hi! link lispAtom Constant +hi! link lispAtomMark Constant +hi! link lispConcat Special +hi! link lispDecl Type +hi! link lispFunc Special +hi! link lispKey PreProc +" pas +hi! link pascalAsmKey Statement +hi! link pascalDirective PreProc +hi! link pascalModifier PreProc +hi! link pascalPredefined Special +hi! link pascalStatement Type +hi! link pascalStruct Type +" php +hi! link phpComparison Special +hi! link phpDefine Normal +hi! link phpIdentifier Normal +hi! link phpMemberSelector Special +hi! link phpRegion Special +hi! link phpVarSelector Special +" py +hi! link pythonStatement Type +" rb +hi! link rubyConstant Special +hi! link rubyDefine Type +hi! link rubyRegexp Special +" scm +hi! link schemeSyntax Special +" sh +hi! link shArithRegion Normal +hi! link shDerefSimple Normal +hi! link shDerefVar Normal +hi! link shFunction Type +hi! link shLoop Statement +hi! link shStatement Special +hi! link shVariable Normal +" sql +hi! link sqlKeyword Statement +" vim +hi! link vimCommand Statement +hi! link vimCommentTitle Normal +hi! link vimEnvVar Special +hi! link vimFuncKey Type +hi! link vimGroup Special +hi! link vimHiAttrib Constant +hi! link vimHiCTerm Special +hi! link vimHiCtermFgBg Special +hi! link vimHighlight Special +hi! link vimHiGui Special +hi! link vimHiGuiFgBg Special +hi! link vimOption Special +hi! link vimSyntax Special +hi! link vimSynType Special +hi! link vimUserAttrb Special +" xml +hi! link xmlAttrib Special +hi! link xmlCdata Normal +hi! link xmlCdataCdata Statement +hi! link xmlCdataEnd PreProc +hi! link xmlCdataStart PreProc +hi! link xmlDocType PreProc +hi! link xmlDocTypeDecl PreProc +hi! link xmlDocTypeKeyword PreProc +hi! link xmlEndTag Statement +hi! link xmlProcessingDelim PreProc +hi! link xmlNamespace PreProc +hi! link xmlTagName Statement diff --git a/.vim/colors/leo.vim b/.vim/colors/leo.vim new file mode 100644 index 0000000..f11cbea --- /dev/null +++ b/.vim/colors/leo.vim @@ -0,0 +1,150 @@ +" Vim color file +" Maintainer: Lorenzo Leonini +" Last Change: 2009 Feb 23 +" URL: http://www.leonini.net + +" Description: +" A contrasted theme for long programming sessions. +" Specially for 256-colors term (xterm, Eterm, konsole, gnome-terminal, ...) +" Very good with Ruby, C, Lua, PHP, HTML, shell... +" (but no using language specific settings) + +" Note: +" If your term report 8 colors (but is 256 capable), put 'set t_Co=256' +" in your .vimrc + +" Tips: +" :verbose hi StatusLine +" Color numbers (0-255) see: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html +" :so $VIMRUNTIME/syntax/hitest.vim + +" 0.81 => 0.82 +" menu backgrounf lighter +" LineNr +" gui comments in italic +" +" 0.8 => 0.81 +" invisible char +" line number +" status bar +" add MatchParen +" add Underlined +" +" 0.6 => 0.8 +" GUI fixed, color < 16 fixed +" comments from 247 => 249 +" main color 255 => 254 +" boolean and numbers more visible +" +" 0.5 => 0.6 +" Synchro with GUI + +" 0.3 => 0.5 +" Ligther vertical separation +" Better diff +" Better pmenu +" Uniformisation between status bar, tabs and pmenu +" Added spell hl +" Change search highlight (I don't use it...) +" Folding done +" All in 256 code + +if !has("gui_running") + if &t_Co != 256 + echomsg "err: Please use a 256-colors terminal (so that t_Co=256 could be set)." + echomsg "" + finish + end +endif + +let g:colors_name = "leo256" + +set background=dark +if v:version > 580 + highlight clear + if exists("syntax_on") + syntax reset + endif +endif + +" Normal should come first +hi Normal cterm=none ctermfg=255 ctermbg=16 guibg=#000000 guifg=#ffffff +hi CursorLine cterm=none ctermbg=16 guibg=#101010 +hi DiffAdd cterm=none ctermbg=235 guibg=#262626 +hi DiffChange cterm=none ctermbg=235 guibg=#262626 +hi DiffDelete cterm=none ctermfg=238 ctermbg=244 guibg=#808080 guifg=#444444 +hi DiffText cterm=bold ctermfg=255 ctermbg=196 guifg=#ffffff +hi Directory cterm=none ctermfg=196 +hi ErrorMsg cterm=none ctermfg=255 ctermbg=160 guifg=#ffffff +hi FoldColumn cterm=none ctermfg=110 ctermbg=16 guibg=#000000 +hi SignColumn cterm=none ctermbg=16 guibg=#000000 +hi Folded cterm=none ctermfg=16 ctermbg=110 guifg=#000000 guibg=#87afd7 +hi IncSearch cterm=reverse +hi LineNr cterm=none ctermfg=228 ctermbg=16 guifg=#ffff87 guibg=#000000 +hi ModeMsg cterm=bold +hi MoreMsg cterm=none ctermfg=40 +hi NonText cterm=none ctermfg=27 +hi Question cterm=none ctermfg=40 +hi Search cterm=none ctermfg=16 ctermbg=248 guifg=#000000 guibg=#a8a8a8 +hi SpecialKey cterm=none ctermfg=245 ctermbg=233 guifg=#8a8a8a guibg=#121212 +hi StatusLine cterm=bold ctermfg=255 ctermbg=19 guifg=#0000ff guibg=#ffffff +hi StatusLineNC cterm=none ctermfg=252 ctermbg=17 guibg=#d0d0d0 guifg=#00005f +hi Title cterm=none ctermfg=33 +hi VertSplit cterm=none ctermfg=254 ctermbg=16 guibg=#EEEEEE guifg=#000000 +hi Visual cterm=reverse ctermbg=none +hi VisualNOS cterm=underline,bold +hi WarningMsg cterm=none ctermfg=255 guifg=#ffffff +hi WildMenu cterm=none ctermfg=16 ctermbg=11 + +if v:version >= 700 + " light + "hi Pmenu cterm=none ctermfg=16 ctermbg=252 + "hi PmenuSel cterm=none ctermfg=255 ctermbg=21 + "hi PmenuSbar cterm=none ctermfg=240 ctermbg=240 + "hi PmenuThumb cterm=none ctermfg=255 ctermbg=255 + + "dark + hi Pmenu cterm=none ctermfg=255 ctermbg=237 guibg=#262626 guifg=#ffffff + hi PmenuSel cterm=none ctermfg=255 ctermbg=21 guibg=#0000ff guifg=#ffffff + hi PmenuSbar cterm=none ctermfg=240 ctermbg=240 guibg=#444444 + hi PmenuThumb cterm=none ctermfg=255 ctermbg=255 guifg=#ffffff + + hi SpellBad cterm=none ctermfg=16 ctermbg=196 + hi SpellCap cterm=none ctermfg=16 ctermbg=196 + hi SpellLocal cterm=none ctermfg=16 ctermbg=196 + hi SpellRare cterm=none ctermfg=16 ctermbg=196 + + " No need for GUI colors :) + hi TabLine cterm=none ctermfg=252 ctermbg=17 + hi TabLineSel cterm=none ctermfg=255 ctermbg=21 + hi TabLineFill cterm=none ctermfg=17 ctermbg=17 + + hi MatchParen cterm=none ctermfg=16 ctermbg=226 guibg=#ffff00 guifg=#000000 +endif + +" syntax highlighting +hi Boolean cterm=none ctermfg=171 guifg=#d75fff +hi Character cterm=none ctermfg=184 +hi Comment cterm=none ctermfg=248 gui=italic guifg=#a8a8a8 +hi Constant cterm=none ctermfg=226 guifg=#ffff00 +hi Conditional cterm=none ctermfg=154 guifg=#afff00 +hi Define cterm=bold ctermfg=27 gui=bold guifg=#005fff +hi Delimiter cterm=none ctermfg=196 guifg=#ff0000 +hi Exception cterm=bold ctermfg=226 gui=bold guifg=#ffff00 +hi Error cterm=none ctermfg=255 ctermbg=9 guifg=#ffffff +hi Keyword cterm=none ctermfg=159 guifg=#afffff +hi Function cterm=none ctermfg=196 guifg=#ff0000 +hi Identifier cterm=none ctermfg=33 guifg=#0087ff +hi Number cterm=none ctermfg=209 guifg=#ff875f +hi Operator cterm=none ctermfg=226 guifg=#ffff00 +hi PreProc cterm=none ctermfg=202 guifg=#ff5f00 +hi Special cterm=none ctermfg=206 ctermbg=234 guifg=#ff5fd7 guibg=#1c1c1c +hi Statement cterm=none ctermfg=40 gui=none guifg=#00d700 +hi String cterm=none ctermfg=224 ctermbg=234 guifg=#ffd7d7 guibg=#1c1c1c +hi Todo cterm=none ctermfg=16 ctermbg=226 guifg=#000000 guibg=#ffff00 +hi Type cterm=none ctermfg=75 gui=none guifg=#5fafff +hi Underlined cterm=underline ctermfg=39 gui=underline guifg=#00afff + +" ADDITIONNAL +hi Repeat cterm=none ctermfg=142 guifg=#afaf00 diff --git a/.vim/colors/lettuce.vim b/.vim/colors/lettuce.vim new file mode 100644 index 0000000..223dc36 --- /dev/null +++ b/.vim/colors/lettuce.vim @@ -0,0 +1,215 @@ +" Vim color file +" Version: 1.2 2007.08.08 +" Author: Valyaeff Valentin +" License: GPL +" +" Copyright 2007 Valyaeff Valentin +" +" This program is free software: you can redistribute it and/or modify +" it under the terms of the GNU General Public License as published by +" the Free Software Foundation, either version 3 of the License, or +" (at your option) any later version. +" +" This program is distributed in the hope that it will be useful, +" but WITHOUT ANY WARRANTY; without even the implied warranty of +" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +" GNU General Public License for more details. +" +" You should have received a copy of the GNU General Public License +" along with this program. If not, see . + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="lettuce" + + +augroup Syntax_extensions + au! + au Syntax c,cpp,ruby,javascript syn match Operator "[*/%&|!=><^~,.;:?+-]\+" display contains=TOP + au Syntax c,cpp syn region cParen matchgroup=Operator transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell + au Syntax c,cpp syn region cCppParen matchgroup=Operator transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell + au Syntax c,cpp syn region cBracket matchgroup=Operator transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell + au Syntax c,cpp syn region cCppBracket matchgroup=Operator transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell + au Syntax c,cpp syn region cBlock matchgroup=OperatorCurlyBrackets start="{" end="}" transparent fold + au Syntax ruby syn match rubyBlockParameter "\%(\%(\\|{\)\s*\)\@<=|\s*[( ,a-zA-Z0-9_*)]\+\ze\s*|"hs=s+1 display + au Syntax ruby syn region rubyCurlyBlock matchgroup=Operator start="{" end="}" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo fold + au Syntax ruby syn region rubyParentheses matchgroup=Operator start="(" end=")" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo + au Syntax ruby syn region rubySquareBrackets matchgroup=Operator start="\[" end="\]" contains=ALLBUT,@rubyExtendedStringSpecial,rubyTodo + au Syntax javascript syn region javascriptCurlyBrackets matchgroup=Operator start="{" end="}" transparent fold + au Syntax javascript syn region javascriptParentheses matchgroup=Operator start="(" end=")" transparent + au Syntax javascript syn region javascriptSquareBrackets matchgroup=Operator start="\[" end="\]" transparent +augroup END + + +if !has("gui_running") + +hi rubyGlobalVariable cterm=none ctermfg=64 +hi rubyPredefinedIdentifier cterm=bold ctermfg=64 +hi def link rubyStringDelimiter String + +hi Normal cterm=none ctermbg=232 ctermfg=189 +hi StatusLine cterm=none ctermbg=236 ctermfg=231 +hi StatusLineNC cterm=none ctermbg=236 ctermfg=103 +hi User1 cterm=bold ctermbg=236 ctermfg=223 +hi User2 cterm=none ctermbg=236 ctermfg=240 +hi VertSplit cterm=none ctermbg=236 ctermfg=103 +hi TabLine cterm=none ctermbg=236 ctermfg=145 +hi TabLineFill cterm=none ctermbg=236 +hi TabLineSel cterm=none ctermbg=240 ctermfg=253 +hi LineNr cterm=none ctermfg=238 +hi NonText cterm=bold ctermbg=233 ctermfg=241 +hi Folded cterm=none ctermbg=234 ctermfg=136 +hi FoldColumn cterm=none ctermbg=236 ctermfg=103 +hi SignColumn cterm=none ctermbg=236 ctermfg=103 +hi CursorColumn cterm=none ctermbg=234 +hi CursorLine cterm=none ctermbg=234 +hi IncSearch cterm=bold ctermbg=63 ctermfg=232 +hi Search cterm=none ctermbg=36 ctermfg=232 +hi Visual cterm=none ctermbg=24 +hi WildMenu cterm=bold ctermbg=35 ctermfg=232 +hi ModeMsg cterm=bold ctermfg=110 +hi MoreMsg cterm=bold ctermfg=121 +hi Question cterm=bold ctermfg=121 +hi ErrorMsg cterm=none ctermbg=88 ctermfg=255 +hi WarningMsg cterm=none ctermbg=58 ctermfg=255 +hi SpecialKey cterm=none ctermfg=77 +hi Title cterm=bold ctermfg=147 +hi Directory ctermfg=105 +hi DiffAdd cterm=none ctermbg=18 +hi DiffChange cterm=none ctermbg=58 +hi DiffDelete cterm=none ctermbg=52 ctermfg=58 +hi DiffText cterm=none ctermbg=53 +hi Pmenu cterm=none ctermbg=17 ctermfg=121 +hi PmenuSel cterm=none ctermbg=24 ctermfg=121 +hi PmenuSbar cterm=none ctermbg=19 +hi PmenuThumb cterm=none ctermbg=37 +hi MatchParen cterm=bold ctermbg=24 +hi SpellBad cterm=none ctermbg=88 +hi SpellCap cterm=none ctermbg=18 +hi SpellLocal cterm=none ctermbg=30 +hi SpellRare cterm=none ctermbg=90 + +hi Comment cterm=none ctermfg=138 +hi Constant cterm=none ctermfg=215 + hi String cterm=none ctermbg=235 ctermfg=215 + hi Character cterm=none ctermbg=235 ctermfg=215 + hi Number cterm=none ctermfg=34 + hi Float cterm=none ctermfg=41 +hi Identifier cterm=none ctermfg=186 + hi Function cterm=none ctermfg=210 +hi Statement cterm=bold ctermfg=63 + hi Exception cterm=bold ctermfg=99 + hi Operator cterm=none ctermfg=75 + hi Label cterm=none ctermfg=63 +hi PreProc cterm=bold ctermfg=36 +hi Type cterm=bold ctermfg=71 +hi Special cterm=none ctermbg=235 ctermfg=87 +hi Underlined cterm=underline ctermfg=227 +hi Ignore cterm=bold ctermfg=235 +hi Error cterm=bold ctermbg=52 ctermfg=231 +hi Todo cterm=bold ctermbg=143 ctermfg=16 + +hi OperatorCurlyBrackets cterm=bold ctermfg=75 + +" highlight modes +autocmd InsertEnter * hi StatusLine ctermbg=52 +autocmd InsertEnter * hi User1 ctermbg=52 +autocmd InsertEnter * hi User2 ctermbg=52 +autocmd InsertLeave * hi User2 ctermbg=236 +autocmd InsertLeave * hi User1 ctermbg=236 +autocmd InsertLeave * hi StatusLine ctermbg=236 +autocmd CmdwinEnter * hi StatusLine ctermbg=22 +autocmd CmdwinEnter * hi User1 ctermbg=22 +autocmd CmdwinEnter * hi User2 ctermbg=22 +autocmd CmdwinLeave * hi User2 ctermbg=236 +autocmd CmdwinLeave * hi User1 ctermbg=236 +autocmd CmdwinLeave * hi StatusLine ctermbg=236 + +else + +hi rubyGlobalVariable gui=none guifg=#5f8700 +hi rubyPredefinedIdentifier gui=bold guifg=#5f8700 +hi def link rubyStringDelimiter String + +hi Normal gui=none guibg=#080808 guifg=#dfdfff +hi StatusLine gui=none guibg=#303030 guifg=#ffffff +hi StatusLineNC gui=none guibg=#303030 guifg=#8787af +hi User1 gui=bold guibg=#303030 guifg=#ffdfaf +hi User2 gui=none guibg=#303030 guifg=#585858 +hi VertSplit gui=none guibg=#303030 guifg=#8787af +hi TabLine gui=none guibg=#303030 guifg=#afafaf +hi TabLineFill gui=none guibg=#303030 +hi TabLineSel gui=none guibg=#585858 guifg=#dadada +hi LineNr gui=none guifg=#444444 +hi NonText gui=bold guibg=#121212 guifg=#606060 +hi Folded gui=none guibg=#1c1c1c guifg=#af8700 +hi FoldColumn gui=none guibg=#303030 guifg=#8787af +hi SignColumn gui=none guibg=#303030 guifg=#8787af +hi CursorColumn gui=none guibg=#1c1c1c +hi CursorLine gui=none guibg=#1c1c1c +hi IncSearch gui=bold guibg=#5f5fff guifg=#080808 +hi Search gui=none guibg=#00af87 guifg=#080808 +hi Visual gui=none guibg=#005f87 +hi WildMenu gui=bold guibg=#00af5f guifg=#080808 +hi ModeMsg gui=bold guifg=#87afdf +hi MoreMsg gui=bold guifg=#87ffaf +hi Question gui=bold guifg=#87ffaf +hi ErrorMsg gui=none guibg=#870000 guifg=#eeeeee +hi WarningMsg gui=none guibg=#5f5f00 guifg=#eeeeee +hi SpecialKey gui=none guifg=#5fdf5f +hi Title gui=bold guifg=#afafff +hi Directory guifg=#8787ff +hi DiffAdd gui=none guibg=#000087 +hi DiffChange gui=none guibg=#5f5f00 +hi DiffDelete gui=none guibg=#5f0000 guifg=#5f5f00 +hi DiffText gui=none guibg=#5f005f +hi Pmenu gui=none guibg=#00005f guifg=#87ffaf +hi PmenuSel gui=none guibg=#005f87 guifg=#87ffaf +hi PmenuSbar gui=none guibg=#0000af +hi PmenuThumb gui=none guibg=#00afaf +hi MatchParen gui=bold guibg=#005f87 +hi SpellBad gui=none guibg=#870000 +hi SpellCap gui=none guibg=#000087 +hi SpellLocal gui=none guibg=#008787 +hi SpellRare gui=none guibg=#870087 + +hi Comment gui=none guifg=#af8787 +hi Constant gui=none guifg=#ffaf5f + hi String gui=none guibg=#262626 guifg=#ffaf5f + hi Character gui=none guibg=#262626 guifg=#ffaf5f + hi Number gui=none guifg=#00af00 + hi Float gui=none guifg=#00df5f +hi Identifier gui=none guifg=#dfdf87 + hi Function gui=none guifg=#ff8787 +hi Statement gui=bold guifg=#5f5fff + hi Exception gui=bold guifg=#875fff + hi Operator gui=none guifg=#5fafff + hi Label gui=none guifg=#5f5fff +hi PreProc gui=bold guifg=#00af87 +hi Type gui=bold guifg=#5faf5f +hi Special gui=none guibg=#262626 guifg=#5fffff +hi Underlined gui=underline guifg=#ffff5f +hi Ignore gui=bold guifg=#262626 +hi Error gui=bold guibg=#5f0000 guifg=#ffffff +hi Todo gui=bold guibg=#afaf5f guifg=#000000 + +hi OperatorCurlyBrackets gui=bold guifg=#5fafff + +" highlight modes +autocmd InsertEnter * hi StatusLine guibg=#5f0000 +autocmd InsertEnter * hi User1 guibg=#5f0000 +autocmd InsertEnter * hi User2 guibg=#5f0000 +autocmd InsertLeave * hi User2 guibg=#303030 +autocmd InsertLeave * hi User1 guibg=#303030 +autocmd InsertLeave * hi StatusLine guibg=#303030 +autocmd CmdwinEnter * hi StatusLine guibg=#005f00 +autocmd CmdwinEnter * hi User1 guibg=#005f00 +autocmd CmdwinEnter * hi User2 guibg=#005f00 +autocmd CmdwinLeave * hi User2 guibg=#303030 +autocmd CmdwinLeave * hi User1 guibg=#303030 +autocmd CmdwinLeave * hi StatusLine guibg=#303030 + +end diff --git a/.vim/colors/lucius.vim b/.vim/colors/lucius.vim new file mode 100644 index 0000000..f83c92a --- /dev/null +++ b/.vim/colors/lucius.vim @@ -0,0 +1,346 @@ +" Vim color file +" Maintainer: Jonathan Filip +" Last Modified: Wed Oct 21, 2009 11:39AM +" Version: 3.1 +" +" GUI / 256 color terminal +" +" I started out trying to combine my favorite parts of other schemes and ended +" up with this (oceandeep, moria, peaksea, wombat, zenburn). +" +" This file also tries to have descriptive comments for each higlighting group +" so it is easy to understand what each part does. + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name="lucius" + +" Some other colors to save +" blue: 3eb8e5 +" green: 92d400 +" c green: d5f876, cae682 +" new blue: 002D62 +" new gray: CCCCCC + + +" Base color +" ---------- +hi Normal guifg=#e0e0e0 guibg=#202020 +hi Normal ctermfg=253 ctermbg=235 + + +" Comment Group +" ------------- +" any comment +hi Comment guifg=#606060 gui=none +hi Comment ctermfg=240 cterm=none + + +" Constant Group +" -------------- +" any constant +hi Constant guifg=#8cd0d3 gui=none +hi Constant ctermfg=116 cterm=none +" strings +hi String guifg=#80c0d9 gui=none +hi String ctermfg=110 cterm=none +" character constant +hi Character guifg=#80c0d9 gui=none +hi Character ctermfg=110 cterm=none +" numbers decimal/hex +hi Number guifg=#8cd0d3 gui=none +hi Number ctermfg=116 cterm=none +" true, false +hi Boolean guifg=#8cd0d3 gui=none +hi Boolean ctermfg=116 cterm=none +" float +hi Float guifg=#8cd0d3 gui=none +hi Float ctermfg=116 cterm=none + + +" Identifier Group +" ---------------- +" any variable name +hi Identifier guifg=#efaf7f gui=none +hi Identifier ctermfg=216 cterm=none +" function, method, class +hi Function guifg=#efaf7f gui=none +hi Function ctermfg=216 cterm=none + + +" Statement Group +" --------------- +" any statement +hi Statement guifg=#b3d38c gui=none +hi Statement ctermfg=150 cterm=none +" if, then, else +hi Conditional guifg=#b3d38c gui=none +hi Conditional ctermfg=150 cterm=none +" try, catch, throw, raise +hi Exception guifg=#b3d38c gui=none +hi Exception ctermfg=150 cterm=none +" for, while, do +hi Repeat guifg=#b3d38c gui=none +hi Repeat ctermfg=150 cterm=none +" case, default +hi Label guifg=#b3d38c gui=none +hi Label ctermfg=150 cterm=none +" sizeof, +, * +hi Operator guifg=#b3d38c gui=none +hi Operator ctermfg=150 cterm=none +" any other keyword +hi Keyword guifg=#b3d38c gui=none +hi Keyword ctermfg=150 cterm=none + + +" Preprocessor Group +" ------------------ +" generic preprocessor +hi PreProc guifg=#f0dfaf gui=none +hi PreProc ctermfg=223 cterm=none +" #include +hi Include guifg=#f0dfaf gui=none +hi Include ctermfg=223 cterm=none +" #define +hi Define guifg=#f0dfaf gui=none +hi Define ctermfg=223 cterm=none +" same as define +hi Macro guifg=#f0dfaf gui=none +hi Macro ctermfg=223 cterm=none +" #if, #else, #endif +hi PreCondit guifg=#f0dfaf gui=none +hi PreCondit ctermfg=223 cterm=none + + +" Type Group +" ---------- +" int, long, char +hi Type guifg=#93d6a9 gui=none +hi Type ctermfg=115 cterm=none +" static, register, volative +hi StorageClass guifg=#93d6a9 gui=none +hi StorageClass ctermfg=115 cterm=none +" struct, union, enum +hi Structure guifg=#93d6a9 gui=none +hi Structure ctermfg=115 cterm=none +" typedef +hi Typedef guifg=#93d6a9 gui=none +hi Typedef ctermfg=115 cterm=none + + +" Special Group +" ------------- +" any special symbol +hi Special guifg=#cca3b3 gui=none +hi Special ctermfg=181 cterm=none +" special character in a constant +hi SpecialChar guifg=#cca3b3 gui=none +hi SpecialChar ctermfg=181 cterm=none +" things you can CTRL-] +hi Tag guifg=#cca3b3 gui=none +hi Tag ctermfg=181 cterm=none +" character that needs attention +hi Delimiter guifg=#cca3b3 gui=none +hi Delimiter ctermfg=181 cterm=none +" special things inside a comment +hi SpecialComment guifg=#cca3b3 gui=none +hi SpecialComment ctermfg=181 cterm=none +" debugging statements +hi Debug guifg=#cca3b3 guibg=NONE gui=none +hi Debug ctermfg=181 ctermbg=NONE cterm=none + + +" Underlined Group +" ---------------- +" text that stands out, html links +hi Underlined guifg=fg gui=underline +hi Underlined ctermfg=fg cterm=underline + + +" Ignore Group +" ------------ +" left blank, hidden +hi Ignore guifg=bg +hi Ignore ctermfg=bg + + +" Error Group +" ----------- +" any erroneous construct +hi Error guifg=#e37170 guibg=#432323 gui=none +hi Error ctermfg=167 ctermbg=52 cterm=none + + +" Todo Group +" ---------- +" todo, fixme, note, xxx +hi Todo guifg=#efef8f guibg=NONE gui=underline +hi Todo ctermfg=228 ctermbg=NONE cterm=underline + + +" Spelling +" -------- +" word not recognized +hi SpellBad guisp=#ee0000 gui=undercurl +hi SpellBad ctermbg=9 cterm=undercurl +" word not capitalized +hi SpellCap guisp=#eeee00 gui=undercurl +hi SpellCap ctermbg=12 cterm=undercurl +" rare word +hi SpellRare guisp=#ffa500 gui=undercurl +hi SpellRare ctermbg=13 cterm=undercurl +" wrong spelling for selected region +hi SpellLocal guisp=#ffa500 gui=undercurl +hi SpellLocal ctermbg=14 cterm=undercurl + + +" Cursor +" ------ +" character under the cursor +hi Cursor guifg=bg guibg=#a3e3ed +hi Cursor ctermfg=bg ctermbg=153 +" like cursor, but used when in IME mode +hi CursorIM guifg=bg guibg=#96cdcd +hi CursorIM ctermfg=bg ctermbg=116 +" cursor column +hi CursorColumn guifg=NONE guibg=#202438 gui=none +hi CursorColumn ctermfg=NONE ctermbg=236 cterm=none +" cursor line/row +hi CursorLine gui=NONE guibg=#202438 gui=none +hi CursorLine cterm=NONE ctermbg=236 cterm=none + + +" Misc +" ---- +" directory names and other special names in listings +hi Directory guifg=#c0e0b0 gui=none +hi Directory ctermfg=151 cterm=none +" error messages on the command line +hi ErrorMsg guifg=#ee0000 guibg=NONE gui=none +hi ErrorMsg ctermfg=196 ctermbg=NONE cterm=none +" column separating vertically split windows +hi VertSplit guifg=#777777 guibg=#363946 gui=none +hi VertSplit ctermfg=242 ctermbg=237 cterm=none +" columns where signs are displayed (used in IDEs) +hi SignColumn guifg=#9fafaf guibg=#181818 gui=none +hi SignColumn ctermfg=145 ctermbg=233 cterm=none +" line numbers +hi LineNr guifg=#818698 guibg=#363946 +hi LineNr ctermfg=102 ctermbg=237 +" match parenthesis, brackets +hi MatchParen guifg=#00ff00 guibg=NONE gui=bold +hi MatchParen ctermfg=46 ctermbg=NONE cterm=bold +" the 'more' prompt when output takes more than one line +hi MoreMsg guifg=#2e8b57 gui=none +hi MoreMsg ctermfg=29 cterm=none +" text showing what mode you are in +hi ModeMsg guifg=#76d5f8 guibg=NONE gui=none +hi ModeMsg ctermfg=117 ctermbg=NONE cterm=none +" the '~' and '@' and showbreak, '>' double wide char doesn't fit on line +hi NonText guifg=#404040 gui=none +hi NonText ctermfg=235 cterm=none +" the hit-enter prompt (show more output) and yes/no questions +hi Question guifg=fg gui=none +hi Question ctermfg=fg cterm=none +" meta and special keys used with map, unprintable characters +hi SpecialKey guifg=#404040 +hi SpecialKey ctermfg=237 +" titles for output from :set all, :autocmd, etc +hi Title guifg=#62bdde gui=none +hi Title ctermfg=74 cterm=none +"hi Title guifg=#5ec8e5 gui=none +" warning messages +hi WarningMsg guifg=#e5786d gui=none +hi WarningMsg ctermfg=173 cterm=none +" current match in the wildmenu completion +hi WildMenu guifg=#cae682 guibg=#363946 gui=bold,underline +hi WildMenu ctermfg=16 ctermbg=186 cterm=bold + + +" Diff +" ---- +" added line +hi DiffAdd guifg=#80a090 guibg=#313c36 gui=none +hi DiffAdd ctermfg=108 ctermbg=22 cterm=none +" changed line +hi DiffChange guifg=NONE guibg=#4a343a gui=none +hi DiffChange ctermfg=fg ctermbg=52 cterm=none +" deleted line +hi DiffDelete guifg=#6c6661 guibg=#3c3631 gui=none +hi DiffDelete ctermfg=59 ctermbg=58 cterm=none +" changed text within line +hi DiffText guifg=#f05060 guibg=#4a343a gui=bold +hi DiffText ctermfg=203 ctermbg=52 cterm=bold + + +" Folds +" ----- +" line used for closed folds +hi Folded guifg=#91d6f8 guibg=#363946 gui=none +hi Folded ctermfg=117 ctermbg=238 cterm=none +" column on side used to indicated open and closed folds +hi FoldColumn guifg=#91d6f8 guibg=#363946 gui=none +hi FoldColumn ctermfg=117 ctermbg=238 cterm=none + + +" Search +" ------ +" highlight incremental search text; also highlight text replaced with :s///c +hi IncSearch guifg=#66ffff gui=reverse +hi IncSearch ctermfg=87 cterm=reverse +" hlsearch (last search pattern), also used for quickfix +hi Search guibg=#ffaa33 gui=none +hi Search ctermbg=214 cterm=none + + +" Popup Menu +" ---------- +" normal item in popup +hi Pmenu guifg=#e0e0e0 guibg=#303840 gui=none +hi Pmenu ctermfg=253 ctermbg=233 cterm=none +" selected item in popup +hi PmenuSel guifg=#cae682 guibg=#505860 gui=none +hi PmenuSel ctermfg=186 ctermbg=237 cterm=none +" scrollbar in popup +hi PMenuSbar guibg=#505860 gui=none +hi PMenuSbar ctermbg=59 cterm=none +" thumb of the scrollbar in the popup +hi PMenuThumb guibg=#808890 gui=none +hi PMenuThumb ctermbg=102 cterm=none + + +" Status Line +" ----------- +" status line for current window +hi StatusLine guifg=#e0e0e0 guibg=#363946 gui=bold +hi StatusLine ctermfg=254 ctermbg=237 cterm=bold +" status line for non-current windows +hi StatusLineNC guifg=#767986 guibg=#363946 gui=none +hi StatusLineNC ctermfg=244 ctermbg=237 cterm=none + + +" Tab Lines +" --------- +" tab pages line, not active tab page label +hi TabLine guifg=#b6bf98 guibg=#363946 gui=none +hi TabLine ctermfg=244 ctermbg=236 cterm=none +" tab pages line, where there are no labels +hi TabLineFill guifg=#cfcfaf guibg=#363946 gui=none +hi TabLineFill ctermfg=187 ctermbg=236 cterm=none +" tab pages line, active tab page label +hi TabLineSel guifg=#efefef guibg=#414658 gui=bold +hi TabLineSel ctermfg=254 ctermbg=236 cterm=bold + + +" Visual +" ------ +" visual mode selection +hi Visual guifg=NONE guibg=#364458 +hi Visual ctermfg=NONE ctermbg=24 +" visual mode selection when vim is not owning the selection (x11 only) +hi VisualNOS guifg=fg gui=underline +hi VisualNOS ctermfg=fg cterm=underline diff --git a/.vim/colors/manxome.vim b/.vim/colors/manxome.vim new file mode 100644 index 0000000..0db38ea --- /dev/null +++ b/.vim/colors/manxome.vim @@ -0,0 +1,47 @@ +""" local syntax file - set colors on a per-machine basis: +""" Vim color file +""" Title: Manxome Foes Color Scheme +""" Maintainer: Ricardo SIGNES +""" This Version: R2v2 [2003-07-16] +""" suggested vim editing options: tw=0 ts=4 sw=4 + +"" clear and re-initialize global variables +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "manxome" + +"" set highlight groups +"" you'll notice that the ctermbg is often 'none'; this is so that when +"" console vim runs in a terminal, transparency (if any) is not broken + +highlight Title ctermfg=3 ctermbg=none cterm=bold guifg=#ffff00 guibg=#000000 gui=none +highlight Directory ctermfg=4 ctermbg=none cterm=bold guifg=#0000ff guibg=#000000 gui=none +highlight StatusLine ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight StatusLineNC ctermfg=0 ctermbg=4 cterm=bold guifg=#000000 guibg=#0000ff gui=none +highlight Normal ctermfg=7 ctermbg=none cterm=none guifg=#cccccc guibg=#000000 gui=none +highlight Search ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight Visual ctermfg=7 ctermbg=6 cterm=bold guifg=#ffffff guibg=#00aaaa gui=none + +"" set major preferred groups + +highlight Comment ctermfg=2 ctermbg=none cterm=bold guifg=#00ff00 guibg=#000000 gui=none +highlight Constant ctermfg=6 ctermbg=none cterm=bold guifg=#00ffff guibg=#000000 gui=none +highlight Identifier ctermfg=4 ctermbg=none cterm=bold guifg=#0000ee guibg=#000000 gui=none +highlight Statement ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight PreProc ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Type ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight Special ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Underlined ctermfg=2 ctermbg=none cterm=none guifg=#00aa00 guibg=#000000 gui=none +highlight Ignore ctermfg=0 ctermbg=none cterm=bold guifg=#aaaaaa guibg=#000000 gui=none +highlight Error ctermfg=1 ctermbg=none cterm=bold guibg=#ff0000 guibg=#000000 gui=none +highlight Todo ctermfg=3 ctermbg=none cterm=none guifg=#aaaa00 guibg=#000000 gui=none + +" set syntax-specific groups +" I'd like to avoid using these, but the default settings for these two are +" just no good. Seeing italic text in Vim is just plain wrong. + +highlight htmlBold ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight htmlItalic ctermfg=5 ctermbg=none cterm=bold guifg=#ff00ff guibg=#000000 gui=none diff --git a/.vim/colors/marklar.vim b/.vim/colors/marklar.vim new file mode 100644 index 0000000..ea9395f --- /dev/null +++ b/.vim/colors/marklar.vim @@ -0,0 +1,174 @@ +" ------------------------------------------------------------------ +" Filename: marklar.vim +" Last Modified: Nov, 30 2006 (13:01) +" Version: 0.5 +" Maintainer: SM Smithfield (m_smithfield AT yahoo DOT com) +" Copyright: 2006 SM Smithfield +" This script is free software; you can redistribute it and/or +" modify it under the terms of the GNU General Public License as +" published by the Free Software Foundation; either version 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme marklar +" ------------------------------------------------------------------ + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "marklar" + +if !exists("s:main") + + " OPTIONS: + let s:bold_opt = 0 + let s:ignore_opt = 1 + + function! s:main() + if version >= 700 + call s:apply_opts() + endif + + if s:bold_opt + let s:bold = 'bold' + else + let s:bold = 'NONE' + endif + + if s:ignore_opt + " completely invisible + let s:ignore = 'bg' + else + " nearly invisible + let s:ignore = '#467C5C' + endif + + execute "hi Constant guifg=#FFFFFF guibg=NONE ctermfg=7 cterm=NONE" + execute "hi Identifier guifg=#38FF56 guibg=NONE gui=".s:bold." ctermfg=8 cterm=bold" + execute "hi Statement guifg=#FFFF00 guibg=NONE gui=".s:bold." ctermfg=3 cterm=bold" + execute "hi Special guifg=#25B9F8 guibg=bg gui=".s:bold." ctermfg=2 cterm=underline" + execute "hi PreProc guifg=#FF80FF guibg=bg gui=NONE ctermfg=2" + execute "hi Type guifg=#00FFFF guibg=NONE gui=".s:bold." ctermfg=6 cterm=bold" + + execute "hi Ignore guifg=".s:ignore." guibg=NONE ctermfg=0" + + hi Comment guifg=#00BBBB guibg=NONE ctermfg=6 cterm=none + hi Cursor guifg=NONE guibg=#FF0000 + hi DiffAdd guifg=NONE guibg=#136769 ctermfg=4 ctermbg=7 cterm=NONE + hi DiffDelete guifg=NONE guibg=#50694A ctermfg=1 ctermbg=7 cterm=NONE + hi DiffChange guifg=fg guibg=#00463c gui=NONE ctermfg=4 ctermbg=2 cterm=NONE + hi DiffText guifg=#7CFC94 guibg=#00463c gui=bold ctermfg=4 ctermbg=3 cterm=NONE + hi Directory guifg=#25B9F8 guibg=NONE ctermfg=2 + hi Error guifg=#FFFFFF guibg=#000000 ctermfg=7 ctermbg=0 cterm=bold + hi ErrorMsg guifg=#8eff2e guibg=#204d40 + hi FoldColumn guifg=#00BBBB guibg=#204d40 + hi Folded guifg=#44DDDD guibg=#204d40 ctermfg=0 ctermbg=8 cterm=bold + + hi IncSearch guibg=#52891f gui=bold + hi LineNr guifg=#38ff56 guibg=#204d40 + hi ModeMsg guifg=#FFFFFF guibg=#0000FF ctermfg=7 ctermbg=4 cterm=bold + hi MoreMsg guifg=#FFFFFF guibg=#00A261 ctermfg=7 ctermbg=2 cterm=bold + hi NonText guifg=#00bbbb guibg=#204d40 + hi Normal guifg=#71C293 guibg=#06544a + hi Question guifg=#FFFFFF guibg=#00A261 + hi Search guifg=NONE guibg=#0f374c ctermfg=3 ctermbg=0 cterm=bold + + hi SignColumn guifg=#00BBBB guibg=#204d40 + hi SpecialKey guifg=#00FFFF guibg=#266955 + hi StatusLine guifg=#245748 guibg=#71C293 gui=NONE cterm=reverse + hi StatusLineNC guifg=#245748 guibg=#689C7C gui=NONE + hi Title guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + hi Todo guifg=#FFFFFF guibg=#884400 ctermfg=6 ctermbg=4 cterm=NONE + hi Underlined guifg=#df820c guibg=NONE gui=underline ctermfg=8 cterm=underline + hi Visual guibg=#0B7260 gui=NONE + hi WarningMsg guifg=#FFFFFF guibg=#FF0000 ctermfg=7 ctermbg=1 cterm=bold + hi WildMenu guifg=#20012e guibg=#00a675 gui=bold ctermfg=NONE ctermbg=NONE cterm=bold + " + if version >= 700 + hi SpellBad guisp=#FF0000 + hi SpellCap guisp=#0000FF + hi SpellRare guisp=#ff4046 + hi SpellLocal guisp=#000000 ctermbg=0 + hi Pmenu guifg=#00ffff guibg=#000000 ctermbg=0 ctermfg=6 + hi PmenuSel guifg=#ffff00 guibg=#000000 gui=bold cterm=bold ctermfg=3 + hi PmenuSbar guibg=#204d40 ctermbg=6 + hi PmenuThumb guifg=#38ff56 ctermfg=3 + hi CursorColumn guibg=#096354 + hi CursorLine guibg=#096354 + hi Tabline guifg=bg guibg=fg gui=NONE cterm=reverse,bold ctermfg=NONE ctermbg=NONE + hi TablineSel guifg=#20012e guibg=#00a675 gui=bold + hi TablineFill guifg=#689C7C + hi MatchParen guifg=#38ff56 guibg=#0000ff gui=bold ctermbg=4 + endif + " + hi Tag guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + hi link Bold Tag + " + hi pythonPreCondit ctermfg=2 cterm=NONE + execute "hi tkWidget guifg=#ffa0a0 guibg=bg gui=".s:bold." ctermfg=7 cterm=bold" + endfunction + + if version >= 700 + + let s:opts = {'bold': 0, 'ignore': 1} + + " preserves vim<7 compat, while letting me reuses some code + function! s:apply_opts() + let s:bold_opt = s:opts['bold'] + let s:ignore_opt = s:opts['ignore'] + endfunction + + function! s:print_opts(...) + let d = a:000 + if len(a:000) == 0 + let d = keys(s:opts) + endif + for k in d + echo k.': '.s:opts[k] + endfor + endfunction + + function! s:Marklar(...) + let args = a:000 + if len(args) == 0 + call s:print_opts() + else + while len(args)>0 + " take first arg + let k = args[0] + let args = args[1:] + " is it a key? + if k =~ '\a\+!' + " does it bang? + let k = strpart(k,0,strlen(k)-1) + let s:opts[k] = !s:opts[k] + call s:main() + elseif k =~ '\a\+?' + " does it quiz? + let k = strpart(k,0,strlen(k)-1) + call s:print_opts(k) + elseif len(args) + " is there another arg? + " take it + let v = args[0] + let args = args[1:] + " is it legal value? + if v == 0 || v == 1 + " assign val->key + let s:opts[k] = v + call s:main() + else + echoerr "(".v.") Bad value. Expected 0 or 1." + endif + else + endif + endwhile + endif + endfunction + command! -nargs=* Marklar :call s:Marklar() + endif +endif + +call s:main() diff --git a/.vim/colors/maroloccio.vim b/.vim/colors/maroloccio.vim new file mode 100644 index 0000000..732bbae --- /dev/null +++ b/.vim/colors/maroloccio.vim @@ -0,0 +1,594 @@ +" File : maroloccio.vim +" Description : a colour scheme for Vim (GUI only) +" Scheme : maroloccio +" Maintainer : Marco Ippolito < m a r o l o c c i o [at] g m a i l . c o m > +" Comment : works well in GUI mode +" Version : v0.3.0 inspired by watermark +" Date : 6 may 2009 +" +" History: +" +" 0.3.0 Greatly improved cterm colours when t_Co=256 thanks to Kyle and CSApprox +" 0.2.9 Improved readability of cterm searches for dark backgrounds +" 0.2.8 Added VimDiff colouring +" 0.2.7 Further improved readability of cterm colours +" 0.2.6 Improved readability of cterm colours on different terminals +" 0.2.5 Reinstated minimal cterm support +" 0.2.4 Added full colour descriptions and reinstated minimal cterm support +" 0.2.3 Added FoldColumn to the list of hlights as per David Hall's suggestion +" 0.2.2 Removed cterm support, changed visual highlight, fixed bolds +" 0.2.1 Changed search highlight +" 0.2.0 Removed italics +" 0.1.9 Improved search and menu highlighting +" 0.1.8 Added minimal cterm support +" 0.1.7 Uploaded to vim.org +" 0.1.6 Removed redundant highlight definitions +" 0.1.5 Improved display of folded sections +" 0.1.4 Removed linked sections for improved compatibility, more Python friendly +" 0.1.3 Removed settings which usually belong to .vimrc (as in 0.1.1) +" 0.1.2 Fixed versioning system, added .vimrc -like commands +" 0.1.1 Corrected typo in header comments, changed colour for Comment +" 0.1.0 Inital upload to vim.org + +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="maroloccio" + +" --- GUI section +" +hi Normal guifg=#8b9aaa guibg=#1a202a gui=none " watermark-foreground on watermark-background +hi Constant guifg=#82ade0 guibg=bg gui=none " cyan on background +hi Boolean guifg=#82ade0 guibg=bg gui=none " cyan on background +hi Character guifg=#82ade0 guibg=bg gui=none " cyan on background +hi Float guifg=#82ade0 guibg=bg gui=none " cyan on background +hi Comment guifg=#006666 guibg=bg gui=none " teal on background +hi Type guifg=#ffcc00 guibg=bg gui=none " yellow on background +hi Typedef guifg=#ffcc00 guibg=bg gui=none " yellow on background +hi Structure guifg=#ffcc00 guibg=bg gui=none " yellow on background +hi Function guifg=#ffcc00 guibg=bg gui=none " yellow on background +hi StorageClass guifg=#ffcc00 guibg=bg gui=none " yellow on background +hi Conditional guifg=#ff9900 guibg=bg gui=none " orange on background +hi Repeat guifg=#78ba42 guibg=bg gui=none " light green on background +hi Visual guifg=fg guibg=#3741ad gui=none " foreground on blue +hi DiffChange guifg=fg guibg=#3741ad gui=none " foreground on blue +if version>= 700 +hi Pmenu guifg=fg guibg=#3741ad gui=none " foreground on blue +endif +hi String guifg=#4c4cad guibg=bg gui=none " violet on background +hi Folded guifg=fg guibg=#333366 gui=none " foreground on dark violet +hi VertSplit guifg=fg guibg=#333366 gui=none " foreground on dark violet +if version>= 700 +hi PmenuSel guifg=fg guibg=#333366 gui=none " foreground on dark violet +endif +hi Search guifg=#78ba42 guibg=#107040 gui=none " light green on green +hi DiffAdd guifg=#78ba42 guibg=#107040 gui=none " light green on green +hi Exception guifg=#8f3231 guibg=bg gui=none " red on background +hi Title guifg=#8f3231 guibg=bg gui=none " red on background +hi Error guifg=fg guibg=#8f3231 gui=none " foreground on red +hi DiffDelete guifg=fg guibg=#8f3231 gui=none " foreground on red +hi Todo guifg=#8f3231 guibg=#0e1219 gui=bold,undercurl guisp=#cbc32a " red on dark grey +hi LineNr guifg=#2c3138 guibg=#0e1219 gui=none " grey on dark grey +hi Statement guifg=#9966cc guibg=bg gui=none " lavender on background +hi Underlined gui=bold,underline " underline +if version>= 700 +hi CursorLine guibg=#0e1219 gui=none " foreground on dark grey +hi CursorColumn guibg=#0e1219 gui=none " foreground on dark grey +endif +hi Include guifg=#107040 guibg=bg gui=none " green on background +hi Define guifg=#107040 guibg=bg gui=none " green on background +hi Macro guifg=#107040 guibg=bg gui=none " green on background +hi PreProc guifg=#107040 guibg=bg gui=none " green on background +hi PreCondit guifg=#107040 guibg=bg gui=none " green on background +hi StatusLineNC guifg=#2c3138 guibg=black gui=none " grey on black +hi StatusLine guifg=fg guibg=black gui=none " foreground on black +hi WildMenu guifg=fg guibg=#0e1219 gui=none " foreground on dark grey +hi FoldColumn guifg=#333366 guibg=#0e1219 gui=none " dark violet on dark grey +hi IncSearch guifg=#0e1219 guibg=#82ade0 gui=bold " dark grey on cyan +hi DiffText guifg=#0e1219 guibg=#82ade0 gui=bold " dark grey on cyan +hi Label guifg=#7e28a9 guibg=bg gui=none " purple on background +hi Operator guifg=#6d5279 guibg=bg gui=none " pink on background +hi Number guifg=#8b8b00 guibg=bg gui=none " dark yellow on background +if version>= 700 +hi MatchParen guifg=#0e1219 guibg=#78ba42 gui=none " dark grey on light green +endif +hi SpecialKey guifg=#333366 guibg=bg gui=none " metal on background + +hi Cursor guifg=#0e1219 guibg=#8b9aaa gui=none " dark grey on foreground +hi TabLine guifg=fg guibg=black gui=none " foreground on black +hi NonText guifg=#333366 guibg=bg gui=none " metal on background +hi Tag guifg=#3741ad guibg=bg gui=none " blue on background +hi Delimiter guifg=#3741ad guibg=bg gui=none " blue on background +hi Special guifg=#3741ad guibg=bg gui=none " blue on background +hi SpecialChar guifg=#3741ad guibg=bg gui=none " blue on background +hi SpecialComment guifg=#2680af guibg=bg gui=none " blue2 on background + +" --- CTerm8 section +if &t_Co == 8 + + " --- CTerm8 (Dark) + if &background == "dark" + "hi Normal ctermfg=Grey "ctermbg=DarkGrey + hi Constant ctermfg=DarkGreen + hi Boolean ctermfg=DarkGreen + hi Character ctermfg=DarkGreen + hi Float ctermfg=DarkGreen + hi Comment ctermfg=DarkCyan + hi Type ctermfg=Brown + hi Typedef ctermfg=Brown + hi Structure ctermfg=Brown + hi Function ctermfg=Brown + hi StorageClass ctermfg=Brown + hi Conditional ctermfg=Brown + hi Repeat ctermfg=Brown + hi Visual ctermfg=Brown ctermbg=Black + hi DiffChange ctermfg=Grey ctermbg=DarkBlue + if version>= 700 + hi Pmenu ctermfg=Grey ctermbg=DarkBlue + endif + hi String ctermfg=DarkGreen + hi Folded ctermfg=DarkGrey ctermbg=Black + hi VertSplit ctermfg=DarkGrey ctermbg=DarkGrey + if version>= 700 + hi PmenuSel ctermfg=DarkBlue ctermbg=Grey + endif + hi Search ctermfg=Black ctermbg=Brown + hi DiffAdd ctermfg=Black ctermbg=DarkGreen + hi Exception ctermfg=Brown + hi Title ctermfg=DarkRed + hi Error ctermfg=Brown ctermbg=DarkRed + hi DiffDelete ctermfg=Brown ctermbg=DarkRed + hi Todo ctermfg=Brown ctermbg=DarkRed + hi LineNr ctermfg=DarkGrey + hi Statement ctermfg=Brown + hi Underlined cterm=Underline + if version>= 700 + hi CursorLine ctermbg=Black cterm=Underline + hi CursorColumn ctermfg=Grey ctermbg=Black + endif + hi Include ctermfg=DarkMagenta + hi Define ctermfg=DarkMagenta + hi Macro ctermfg=DarkMagenta + hi PreProc ctermfg=DarkMagenta + hi PreCondit ctermfg=DarkMagenta + hi StatusLineNC ctermfg=DarkGrey ctermbg=Black + hi StatusLine ctermfg=Grey ctermbg=DarkGrey + hi WildMenu ctermfg=Grey ctermbg=DarkGrey + hi FoldColumn ctermfg=DarkGrey + hi IncSearch ctermfg=DarkCyan ctermbg=Black + hi DiffText ctermfg=DarkBlue ctermbg=Grey + hi Label ctermfg=Brown + hi Operator ctermfg=Brown + hi Number ctermfg=DarkGreen + if version>= 700 + hi MatchParen ctermfg=Grey ctermbg=Green + endif + hi SpecialKey ctermfg=DarkRed + + hi Cursor ctermfg=Black ctermbg=Grey + hi Delimiter ctermfg=Brown + hi NonText ctermfg=DarkRed + hi Special ctermfg=Brown + hi SpecialChar ctermfg=Brown + hi SpecialComment ctermfg=DarkCyan + hi TabLine ctermfg=DarkGrey ctermbg=Grey + hi Tag ctermfg=Brown + + " --- CTerm8 (Light) + elseif &background == "light" + hi Normal ctermfg=Black ctermbg=White + hi Constant ctermfg=DarkCyan + hi Boolean ctermfg=DarkCyan + hi Character ctermfg=DarkCyan + hi Float ctermfg=DarkCyan + hi Comment ctermfg=DarkGreen + hi Type ctermfg=DarkBlue + hi Typedef ctermfg=DarkBlue + hi Structure ctermfg=DarkBlue + hi Function ctermfg=DarkBlue + hi StorageClass ctermfg=DarkBlue + hi Conditional ctermfg=DarkBlue + hi Repeat ctermfg=DarkBlue + hi Visual ctermfg=Brown ctermbg=Black + hi DiffChange ctermfg=Grey ctermbg=DarkBlue + if version>= 700 + hi Pmenu ctermfg=Grey ctermbg=DarkBlue + endif + hi String ctermfg=DarkRed + hi Folded ctermfg=Black ctermbg=DarkCyan + hi VertSplit ctermfg=Grey ctermbg=Black + if version>= 700 + hi PmenuSel ctermfg=DarkBlue ctermbg=Grey + endif + hi Search ctermfg=Grey ctermbg=DarkGreen + hi DiffAdd ctermfg=Black ctermbg=DarkGreen + hi Exception ctermfg=DarkBlue + hi Title ctermfg=DarkRed + hi Error ctermfg=Brown ctermbg=DarkRed + hi DiffDelete ctermfg=Brown ctermbg=DarkRed + hi Todo ctermfg=Brown ctermbg=DarkRed + hi LineNr ctermfg=Black ctermbg=Grey + hi Statement ctermfg=DarkBlue + hi Underlined cterm=Underline + if version>= 700 + hi CursorLine ctermbg=Grey cterm=Underline + hi CursorColumn ctermfg=Black ctermbg=Grey + endif + hi Include ctermfg=DarkMagenta + hi Define ctermfg=DarkMagenta + hi Macro ctermfg=DarkMagenta + hi PreProc ctermfg=DarkMagenta + hi PreCondit ctermfg=DarkMagenta + hi StatusLineNC ctermfg=Grey ctermbg=DarkBlue + hi StatusLine ctermfg=Grey ctermbg=Black + hi WildMenu ctermfg=Grey ctermbg=DarkBlue + hi FoldColumn ctermfg=Black ctermbg=Grey + hi IncSearch ctermfg=Brown ctermbg=Black + hi DiffText ctermfg=DarkBlue ctermbg=Grey + hi Label ctermfg=DarkBlue + hi Operator ctermfg=DarkBlue + hi Number ctermfg=DarkCyan + if version>= 700 + hi MatchParen ctermfg=Grey ctermbg=Green + endif + hi SpecialKey ctermfg=Red + + hi Cursor ctermfg=Black ctermbg=Grey + hi Delimiter ctermfg=DarkBlue + hi NonText ctermfg=Red + hi Special ctermfg=DarkBlue + hi SpecialChar ctermfg=DarkBlue + hi SpecialComment ctermfg=DarkGreen + hi TabLine ctermfg=DarkBlue ctermbg=Grey + hi Tag ctermfg=DarkBlue + endif + +" --- CTerm256 section +elseif &t_Co == 256 + + if v:version < 700 + command! -nargs=+ CSAHi exe "hi" substitute(substitute(, "undercurl", "underline", "g"), "guisp\\S\\+", "", "g") + else + command! -nargs=+ CSAHi exe "hi" + endif + if has("gui_running") || (&t_Co == 256 && (&term ==# "xterm" || &term =~# "^screen") && exists("g:CSApprox_konsole") && g:CSApprox_konsole) || &term =~? "^konsole" + CSAHi Normal ctermbg=59 ctermfg=145 + CSAHi Constant term=underline ctermbg=59 ctermfg=146 + CSAHi Boolean ctermbg=59 ctermfg=146 + CSAHi Character ctermbg=59 ctermfg=146 + CSAHi Float ctermbg=59 ctermfg=146 + CSAHi Comment term=bold ctermbg=59 ctermfg=30 + CSAHi Type term=underline ctermbg=59 ctermfg=220 + CSAHi Typedef ctermbg=59 ctermfg=220 + CSAHi Structure ctermbg=59 ctermfg=220 + CSAHi Function ctermbg=59 ctermfg=220 + CSAHi StorageClass ctermbg=59 ctermfg=220 + CSAHi Conditional ctermbg=59 ctermfg=214 + CSAHi Repeat ctermbg=59 ctermfg=113 + CSAHi Visual term=reverse ctermbg=61 ctermfg=white + CSAHi DiffChange term=bold ctermbg=61 ctermfg=white + CSAHi Pmenu ctermbg=61 ctermfg=white + CSAHi String ctermbg=59 ctermfg=61 + CSAHi Folded ctermbg=61 ctermfg=black + CSAHi VertSplit term=reverse ctermbg=black ctermfg=61 + CSAHi PmenuSel ctermbg=220 ctermfg=black + CSAHi Search term=reverse ctermbg=29 ctermfg=113 + CSAHi DiffAdd term=bold ctermbg=29 ctermfg=113 + CSAHi Exception ctermbg=59 ctermfg=red + CSAHi Title term=bold ctermbg=59 ctermfg=red + CSAHi Error term=reverse ctermbg=red ctermfg=white + CSAHi DiffDelete term=bold ctermbg=red ctermfg=white + CSAHi Todo cterm=bold,undercurl ctermbg=black ctermfg=red + CSAHi LineNr term=underline ctermbg=black ctermfg=61 + CSAHi Statement term=bold ctermbg=59 ctermfg=140 + CSAHi Underlined term=underline cterm=bold,underline ctermfg=147 + CSAHi CursorLine term=underline cterm=underline ctermbg=black + CSAHi CursorColumn term=reverse ctermfg=white ctermbg=29 + CSAHi Include ctermbg=59 ctermfg=97 + CSAHi Define ctermbg=59 ctermfg=97 + CSAHi Macro ctermbg=59 ctermfg=97 + CSAHi PreProc term=underline ctermbg=59 ctermfg=97 + CSAHi PreCondit ctermbg=59 ctermfg=97 + CSAHi StatusLineNC term=reverse ctermbg=16 ctermfg=61 + CSAHi StatusLine term=reverse,bold ctermbg=16 ctermfg=220 + CSAHi WildMenu ctermbg=16 ctermfg=145 + CSAHi FoldColumn ctermbg=16 ctermfg=61 + CSAHi IncSearch term=reverse cterm=bold ctermbg=146 ctermfg=16 + CSAHi DiffText term=reverse cterm=bold ctermbg=146 ctermfg=16 + CSAHi Label ctermbg=59 ctermfg=140 + CSAHi Operator ctermbg=59 ctermfg=142 + CSAHi Number ctermbg=59 ctermfg=146 + CSAHi MatchParen term=reverse ctermbg=113 ctermfg=16 + CSAHi SpecialKey term=bold ctermbg=59 ctermfg=97 + + CSAHi Cursor ctermbg=145 ctermfg=16 + CSAHi lCursor ctermbg=145 ctermfg=59 + CSAHi Delimiter ctermbg=59 ctermfg=61 + CSAHi Directory term=bold ctermfg=39 + CSAHi ErrorMsg ctermbg=160 ctermfg=231 + CSAHi Identifier term=underline ctermfg=87 + CSAHi Ignore ctermfg=59 + CSAHi ModeMsg term=bold cterm=bold + CSAHi MoreMsg term=bold cterm=bold ctermfg=72 + CSAHi NonText term=bold ctermbg=59 ctermfg=60 + CSAHi PmenuSbar ctermbg=250 + CSAHi PmenuThumb ctermbg=145 ctermfg=59 + CSAHi Question cterm=bold ctermfg=28 + CSAHi SignColumn ctermbg=250 ctermfg=39 + CSAHi Special term=bold ctermbg=59 ctermfg=61 + CSAHi SpecialChar ctermbg=59 ctermfg=61 + CSAHi SpecialComment ctermbg=59 ctermfg=73 + CSAHi SpellBad term=reverse cterm=undercurl ctermfg=196 + CSAHi SpellCap term=reverse cterm=undercurl ctermfg=21 + CSAHi SpellLocal term=underline cterm=undercurl ctermfg=51 + CSAHi SpellRare term=reverse cterm=undercurl ctermfg=201 + CSAHi TabLine term=underline ctermbg=16 ctermfg=145 + CSAHi TabLineFill term=reverse ctermbg=145 ctermfg=59 + CSAHi TabLineSel term=bold cterm=bold + CSAHi Tag ctermbg=59 ctermfg=61 + CSAHi VisualNOS term=bold,underline cterm=bold,underline + CSAHi WarningMsg ctermfg=160 + CSAHi htmlBold term=bold cterm=bold + CSAHi htmlBoldItalic term=bold,italic cterm=bold + CSAHi htmlBoldUnderline term=bold,underline cterm=bold,underline + CSAHi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,underline + CSAHi htmlItalic term=italic + CSAHi htmlUnderline term=underline cterm=underline + CSAHi htmlUnderlineItalic term=italic,underline cterm=underline + elseif has("gui_running") || (&t_Co == 256 && (&term ==# "xterm" || &term =~# "^screen") && exists("g:CSApprox_eterm") && g:CSApprox_eterm) || &term =~? "^eterm" + CSAHi Normal ctermbg=59 ctermfg=152 + CSAHi Constant term=underline ctermbg=59 ctermfg=153 + CSAHi Boolean ctermbg=59 ctermfg=153 + CSAHi Character ctermbg=59 ctermfg=153 + CSAHi Float ctermbg=59 ctermfg=153 + CSAHi Comment term=bold ctermbg=59 ctermfg=30 + CSAHi Type term=underline ctermbg=59 ctermfg=226 + CSAHi Typedef ctermbg=59 ctermfg=226 + CSAHi Structure ctermbg=59 ctermfg=226 + CSAHi Function ctermbg=59 ctermfg=226 + CSAHi StorageClass ctermbg=59 ctermfg=226 + CSAHi Conditional ctermbg=59 ctermfg=220 + CSAHi Repeat ctermbg=59 ctermfg=150 + CSAHi Visual term=reverse ctermbg=68 ctermfg=white + CSAHi DiffChange term=bold ctermbg=68 ctermfg=white + CSAHi Pmenu ctermbg=68 ctermfg=white + CSAHi String ctermbg=59 ctermfg=104 + CSAHi Folded ctermbg=104 ctermfg=black + CSAHi VertSplit term=reverse ctermbg=black ctermfg=104 + CSAHi PmenuSel ctermbg=226 ctermfg=black + CSAHi Search term=reverse ctermbg=36 ctermfg=150 + CSAHi DiffAdd term=bold ctermbg=36 ctermfg=150 + CSAHi Exception ctermbg=59 ctermfg=red + CSAHi Title term=bold ctermbg=59 ctermfg=red + CSAHi Error term=reverse ctermbg=red ctermfg=white + CSAHi DiffDelete term=bold ctermbg=red ctermfg=white + CSAHi Todo cterm=bold,undercurl ctermbg=black ctermfg=red + CSAHi LineNr term=underline ctermbg=black ctermfg=104 + CSAHi Statement term=bold ctermbg=59 ctermfg=177 + CSAHi Underlined term=underline cterm=bold,underline ctermfg=153 + CSAHi CursorLine term=underline cterm=underline ctermbg=black + CSAHi CursorColumn term=reverse ctermfg=white ctermbg=36 + CSAHi Include ctermbg=59 ctermfg=134 + CSAHi Define ctermbg=59 ctermfg=134 + CSAHi Macro ctermbg=59 ctermfg=134 + CSAHi PreProc term=underline ctermbg=59 ctermfg=134 + CSAHi PreCondit ctermbg=59 ctermfg=134 + CSAHi StatusLineNC term=reverse ctermbg=16 ctermfg=104 + CSAHi StatusLine term=reverse,bold ctermbg=16 ctermfg=226 + CSAHi WildMenu ctermbg=17 ctermfg=152 + CSAHi FoldColumn ctermbg=17 ctermfg=104 + CSAHi IncSearch term=reverse cterm=bold ctermbg=153 ctermfg=17 + CSAHi DiffText term=reverse cterm=bold ctermbg=153 ctermfg=17 + CSAHi Label ctermbg=59 ctermfg=177 + CSAHi Operator ctermbg=59 ctermfg=142 + CSAHi Number ctermbg=59 ctermfg=153 + CSAHi MatchParen term=reverse ctermbg=150 ctermfg=17 + CSAHi SpecialKey term=bold ctermbg=59 ctermfg=134 + + CSAHi Cursor ctermbg=152 ctermfg=17 + CSAHi lCursor ctermbg=152 ctermfg=59 + CSAHi TabLine term=underline ctermbg=16 ctermfg=152 + CSAHi Ignore ctermfg=59 + CSAHi NonText term=bold ctermbg=59 ctermfg=60 + CSAHi Directory term=bold ctermfg=45 + CSAHi ErrorMsg ctermbg=196 ctermfg=255 + CSAHi MoreMsg term=bold cterm=bold ctermfg=72 + CSAHi ModeMsg term=bold cterm=bold + CSAHi htmlBoldUnderline term=bold,underline cterm=bold,underline + CSAHi htmlBoldItalic term=bold,italic cterm=bold + CSAHi htmlBold term=bold cterm=bold + CSAHi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,underline + CSAHi PmenuSbar ctermbg=250 + CSAHi PmenuThumb ctermbg=152 ctermfg=59 + CSAHi TabLineSel term=bold cterm=bold + CSAHi TabLineFill term=reverse ctermbg=152 ctermfg=59 + CSAHi Question cterm=bold ctermfg=28 + CSAHi VisualNOS term=bold,underline cterm=bold,underline + CSAHi WarningMsg ctermfg=196 + CSAHi htmlUnderlineItalic term=italic,underline cterm=underline + CSAHi htmlUnderline term=underline cterm=underline + CSAHi Special term=bold ctermbg=59 ctermfg=68 + CSAHi Identifier term=underline ctermfg=123 + CSAHi Tag ctermbg=59 ctermfg=68 + CSAHi SpecialChar ctermbg=59 ctermfg=68 + CSAHi Delimiter ctermbg=59 ctermfg=68 + CSAHi SpecialComment ctermbg=59 ctermfg=74 + CSAHi SignColumn ctermbg=250 ctermfg=45 + CSAHi SpellBad term=reverse cterm=undercurl ctermfg=196 + CSAHi SpellCap term=reverse cterm=undercurl ctermfg=21 + CSAHi SpellRare term=reverse cterm=undercurl ctermfg=201 + CSAHi SpellLocal term=underline cterm=undercurl ctermfg=51 + CSAHi htmlItalic term=italic + elseif has("gui_running") || &t_Co == 256 + CSAHi Normal ctermbg=16 ctermfg=103 + CSAHi Constant term=underline ctermbg=16 ctermfg=110 + CSAHi Boolean ctermbg=16 ctermfg=110 + CSAHi Character ctermbg=16 ctermfg=110 + CSAHi Float ctermbg=16 ctermfg=110 + CSAHi Comment term=bold ctermbg=16 ctermfg=23 + CSAHi Type term=underline ctermbg=16 ctermfg=220 + CSAHi Typedef ctermbg=16 ctermfg=220 + CSAHi Structure ctermbg=16 ctermfg=220 + CSAHi Function ctermbg=16 ctermfg=220 + CSAHi StorageClass ctermbg=16 ctermfg=220 + CSAHi Conditional ctermbg=16 ctermfg=208 + CSAHi Repeat ctermbg=16 ctermfg=107 + CSAHi Visual term=reverse ctermbg=61 ctermfg=white + CSAHi DiffChange term=bold ctermbg=61 ctermfg=white + CSAHi Pmenu ctermbg=61 ctermfg=white + CSAHi String ctermbg=16 ctermfg=61 + CSAHi Folded ctermbg=61 ctermfg=black + CSAHi VertSplit term=reverse ctermbg=black ctermfg=61 + CSAHi PmenuSel ctermbg=220 ctermfg=black + CSAHi Search term=reverse ctermbg=23 ctermfg=107 + CSAHi DiffAdd term=bold ctermbg=23 ctermfg=107 + CSAHi Exception ctermbg=16 ctermfg=red + CSAHi Title term=bold ctermbg=16 ctermfg=red + CSAHi Error term=reverse ctermbg=red ctermfg=white + CSAHi DiffDelete term=bold ctermbg=red ctermfg=white + CSAHi Todo cterm=bold,undercurl ctermbg=black ctermfg=red + CSAHi LineNr term=underline ctermbg=black ctermfg=61 + CSAHi Statement term=bold ctermbg=16 ctermfg=98 + CSAHi Underlined term=underline cterm=bold,underline ctermfg=111 + CSAHi CursorLine term=underline cterm=underline ctermbg=black + CSAHi CursorColumn term=reverse ctermbg=23 ctermfg=white + CSAHi Include ctermbg=16 ctermfg=91 + CSAHi Define ctermbg=16 ctermfg=91 + CSAHi Macro ctermbg=16 ctermfg=91 + CSAHi PreProc term=underline ctermbg=16 ctermfg=91 + CSAHi PreCondit ctermbg=16 ctermfg=91 + CSAHi StatusLineNC term=reverse ctermbg=16 ctermfg=61 + CSAHi StatusLine term=reverse,bold ctermbg=16 ctermfg=220 + CSAHi WildMenu ctermbg=16 ctermfg=103 + CSAHi FoldColumn ctermbg=16 ctermfg=61 + CSAHi IncSearch term=reverse cterm=bold ctermbg=110 ctermfg=16 + CSAHi DiffText term=reverse cterm=bold ctermbg=110 ctermfg=16 + CSAHi Label ctermbg=16 ctermfg=98 + CSAHi Operator ctermbg=16 ctermfg=100 + CSAHi Number ctermbg=16 ctermfg=110 + CSAHi MatchParen term=reverse ctermbg=107 ctermfg=16 + CSAHi SpecialKey term=bold ctermbg=16 ctermfg=91 + + CSAHi Cursor ctermbg=103 ctermfg=16 + CSAHi lCursor ctermbg=103 ctermfg=16 + CSAHi Delimiter ctermbg=16 ctermfg=61 + CSAHi Directory term=bold ctermfg=38 + CSAHi ErrorMsg ctermbg=160 ctermfg=231 + CSAHi Identifier term=underline ctermfg=87 + CSAHi Ignore ctermfg=16 + CSAHi ModeMsg term=bold cterm=bold + CSAHi MoreMsg term=bold cterm=bold ctermfg=29 + CSAHi NonText term=bold ctermbg=16 ctermfg=59 + CSAHi PmenuSbar ctermbg=250 + CSAHi PmenuThumb ctermbg=103 ctermfg=16 + CSAHi Question cterm=bold ctermfg=22 + CSAHi SignColumn ctermbg=250 ctermfg=38 + CSAHi Special term=bold ctermbg=16 ctermfg=61 + CSAHi SpecialChar ctermbg=16 ctermfg=61 + CSAHi SpecialComment ctermbg=16 ctermfg=31 + CSAHi SpellBad term=reverse cterm=undercurl ctermfg=196 + CSAHi SpellCap term=reverse cterm=undercurl ctermfg=21 + CSAHi SpellLocal term=underline cterm=undercurl ctermfg=51 + CSAHi SpellRare term=reverse cterm=undercurl ctermfg=201 + CSAHi TabLine term=underline ctermbg=16 ctermfg=103 + CSAHi TabLineFill term=reverse ctermbg=103 ctermfg=16 + CSAHi TabLineSel term=bold cterm=bold + CSAHi Tag ctermbg=16 ctermfg=61 + CSAHi VisualNOS term=bold,underline cterm=bold,underline + CSAHi WarningMsg ctermfg=160 + CSAHi htmlBold term=bold cterm=bold + CSAHi htmlBoldItalic term=bold,italic cterm=bold + CSAHi htmlBoldUnderline term=bold,underline cterm=bold,underline + CSAHi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,underline + CSAHi htmlItalic term=italic + CSAHi htmlUnderline term=underline cterm=underline + CSAHi htmlUnderlineItalic term=italic,underline cterm=underline + elseif has("gui_running") || &t_Co == 88 + CSAHi Normal ctermbg=80 ctermfg=37 + CSAHi Constant term=underline ctermbg=80 ctermfg=42 + CSAHi Boolean ctermbg=80 ctermfg=42 + CSAHi Character ctermbg=80 ctermfg=42 + CSAHi Float ctermbg=80 ctermfg=42 + CSAHi Comment term=bold ctermbg=80 ctermfg=21 + CSAHi Type term=underline ctermbg=80 ctermfg=72 + CSAHi Typedef ctermbg=80 ctermfg=72 + CSAHi Structure ctermbg=80 ctermfg=72 + CSAHi Function ctermbg=80 ctermfg=72 + CSAHi StorageClass ctermbg=80 ctermfg=72 + CSAHi Conditional ctermbg=80 ctermfg=68 + CSAHi Repeat ctermbg=80 ctermfg=40 + CSAHi Visual term=reverse ctermbg=18 ctermfg=white + CSAHi DiffChange term=bold ctermbg=18 ctermfg=white + CSAHi Pmenu ctermbg=18 ctermfg=white + CSAHi String ctermbg=80 ctermfg=38 + CSAHi Folded ctermbg=38 ctermfg=black + CSAHi VertSplit term=reverse ctermbg=black ctermfg=38 + CSAHi PmenuSel ctermbg=72 ctermfg=black + CSAHi Search term=reverse ctermbg=20 ctermfg=40 + CSAHi DiffAdd term=bold ctermbg=20 ctermfg=40 + CSAHi Exception ctermbg=80 ctermfg=red + CSAHi Title term=bold ctermbg=80 ctermfg=red + CSAHi Error term=reverse ctermbg=red ctermfg=white + CSAHi DiffDelete term=bold ctermbg=red ctermfg=white + CSAHi Todo cterm=bold,undercurl ctermbg=black ctermfg=white + CSAHi LineNr term=underline ctermbg=black ctermfg=38 + CSAHi Statement term=bold ctermbg=80 ctermfg=38 + CSAHi Underlined term=underline cterm=bold,underline ctermfg=39 + CSAHi CursorLine term=underline ctermbg=black + CSAHi CursorColumn term=reverse ctermbg=20 ctermfg=white + CSAHi Include ctermbg=80 ctermfg=33 + CSAHi Define ctermbg=80 ctermfg=33 + CSAHi Macro ctermbg=80 ctermfg=33 + CSAHi PreProc term=underline ctermbg=80 ctermfg=33 + CSAHi PreCondit ctermbg=80 ctermfg=33 + CSAHi StatusLineNC term=reverse ctermbg=16 ctermfg=38 + CSAHi StatusLine term=reverse,bold ctermbg=16 ctermfg=72 + CSAHi WildMenu ctermbg=16 ctermfg=37 + CSAHi FoldColumn ctermbg=16 ctermfg=38 + CSAHi IncSearch term=reverse cterm=bold ctermbg=42 ctermfg=16 + CSAHi DiffText term=reverse cterm=bold ctermbg=42 ctermfg=16 + CSAHi Label ctermbg=80 ctermfg=38 + CSAHi Operator ctermbg=80 ctermfg=36 + CSAHi Number ctermbg=80 ctermfg=42 + CSAHi MatchParen term=reverse ctermbg=40 ctermfg=16 + CSAHi SpecialKey term=bold ctermbg=80 ctermfg=33 + + CSAHi Cursor ctermbg=37 ctermfg=16 + CSAHi lCursor ctermbg=37 ctermfg=80 + CSAHi Delimiter ctermbg=80 ctermfg=18 + CSAHi Directory term=bold ctermfg=23 + CSAHi ErrorMsg ctermbg=48 ctermfg=79 + CSAHi Identifier term=underline ctermfg=31 + CSAHi Ignore ctermfg=80 + CSAHi ModeMsg term=bold cterm=bold + CSAHi MoreMsg term=bold cterm=bold ctermfg=21 + CSAHi NonText term=bold ctermbg=80 ctermfg=17 + CSAHi PmenuSbar ctermbg=85 + CSAHi PmenuThumb ctermbg=37 ctermfg=80 + CSAHi Question cterm=bold ctermfg=20 + CSAHi SignColumn ctermbg=85 ctermfg=23 + CSAHi Special term=bold ctermbg=80 ctermfg=18 + CSAHi SpecialChar ctermbg=80 ctermfg=18 + CSAHi SpecialComment ctermbg=80 ctermfg=22 + CSAHi SpellBad term=reverse cterm=undercurl ctermfg=64 + CSAHi SpellCap term=reverse cterm=undercurl ctermfg=19 + CSAHi SpellLocal term=underline cterm=undercurl ctermfg=31 + CSAHi SpellRare term=reverse cterm=undercurl ctermfg=67 + CSAHi TabLine term=underline ctermbg=16 ctermfg=37 + CSAHi TabLineFill term=reverse ctermbg=37 ctermfg=80 + CSAHi TabLineSel term=bold cterm=bold + CSAHi Tag ctermbg=80 ctermfg=18 + CSAHi VisualNOS term=bold,underline cterm=bold,underline + CSAHi WarningMsg ctermfg=48 + CSAHi htmlBold term=bold cterm=bold + CSAHi htmlBoldItalic term=bold,italic cterm=bold + CSAHi htmlBoldUnderline term=bold,underline cterm=bold,underline + CSAHi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,underline + CSAHi htmlItalic term=italic + CSAHi htmlUnderline term=underline cterm=underline + CSAHi htmlUnderlineItalic term=italic,underline cterm=underline + endif + delcommand CSAHi + +endif diff --git a/.vim/colors/martin_krischik.vim b/.vim/colors/martin_krischik.vim new file mode 100644 index 0000000..0975ba0 --- /dev/null +++ b/.vim/colors/martin_krischik.vim @@ -0,0 +1,397 @@ +"------------------------------------------------------------------------------- +" Description: My personal colors +" $Id: martin_krischik.vim 458 2006-11-18 09:42:10Z krischik $ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" $Author: krischik $ +" $Date: 2006-11-18 10:42:10 +0100 (Sa, 18 Nov 2006) $ +" Version: 3.2 +" $Revision: 458 $ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/colors/martin_krischik.vim $ +" Note: Tried and Tested for 'builtin_gui', 'xterm' (KDE Konsole) +" 'vt320'" (OpenVMS) and 'linux' (Linux Console). +" History: 16.05.2006 MK Check that all vim 7.0 colors are set +" 16.05.2006 MK Split GUI from terminal. +" 24.05.2006 MK Unified Headers +" 24.07.2006 MK Omni-Completion Colors. +" 15.10.2006 MK Bram's suggestion for runtime integration +" Usage: copy to colors directory +"------------------------------------------------------------------------------ + +" First remove all existing highlighting. + +set background=light +highlight clear + +if exists ("syntax_on") + syntax reset +endif + +let colors_name = "martin_krischik" + +if version < 700 + " Section: works only with vim 7.0 use default otherwise {{{1 + " + colorscheme default + " + " }}}1 + finish +elseif (&term == "builtin_gui") + " Section: Set GUI colors. {{{1 + " + " Subsection: User-Interface Colors {{{2 + " + " Group: Normal Text Colors {{{3 + " + highlight Normal gui=none guifg=black guibg=white + highlight Search guibg=Yellow + highlight SpecialKey guifg=Blue + highlight Title gui=bold guifg=Magenta + highlight LineNr guifg=Brown guibg=grey80 + highlight NonText gui=bold guifg=Blue guibg=grey80 + highlight MatchParen guibg=Cyan + highlight IncSearch gui=reverse + " + " Group: Messages {{{3 + " + highlight WarningMsg guifg=Red + highlight ErrorMsg guifg=White guibg=Red + highlight ModeMsg gui=bold + highlight MoreMsg gui=bold guifg=SeaGreen + highlight Question gui=bold guifg=SeaGreen + " + " Group: Spell Checker {{{3 + " + highlight SpellBad gui=undercurl guisp=Red + highlight SpellCap gui=undercurl guisp=Blue + highlight SpellLocal gui=undercurl guisp=DarkCyan + highlight SpellRare gui=undercurl guisp=Magenta + " + " Group: Status line {{{3 + " + highlight StatusLine gui=bold,reverse guifg=LightBlue2 guibg=black + highlight StatusLineNC gui=reverse guifg=grey75 guibg=black + highlight VertSplit gui=reverse guifg=LightBlue3 guibg=black + " + " Group: Visual selektio {{{3n + " + highlight Visual gui=reverse guifg=firebrick guibg=white + highlight VisualNOS gui=reverse guifg=firebrick guibg=black + " + " Group: tab pages line {{{3 + " + highlight TabLine gui=reverse guifg=grey75 guibg=black + highlight TabLineFill gui=reverse + highlight TabLineSel gui=bold,reverse guifg=LightBlue2 guibg=black + " + " Group: Competion (omni and otherwise) menu colors {{{3 + " + highlight Pmenu guibg=Grey + highlight PmenuSel guifg=White guibg=firebrick + highlight PmenuSbar guibg=LightGrey guibg=DarkGrey + highlight PmenuThumb gui=reverse + highlight WildMenu guifg=White guibg=firebrick + " + " Group: Diff colors {{{3 + " + highlight DiffAdd guibg=LightBlue + highlight DiffChange guibg=LightMagenta + highlight DiffDelete gui=bold guifg=Blue guibg=LightCyan + highlight DiffText gui=bold guibg=Red + " + " Group: Fold colors {{{3 + " + highlight FoldColumn guifg=DarkBlue guibg=Grey + highlight Folded guifg=DarkBlue guibg=LightGrey + " + " Group: Other Syntax Highlight Colors {{{3 + " + highlight Directory guifg=Blue + highlight SignColumn guifg=DarkBlue guibg=Grey + " + " Group: Motif and Athena widget colors. {{{3 + " + highlight Menu guifg=Black guibg=LightGrey + highlight Scrollbar guifg=LightGrey guibg=DarkGrey + highlight Tooltip guifg=Black guibg=LightGrey + + " Subsection: Syntax Colors {{{2 + " + " Group: Comment colors syntax-group + " + highlight Comment guifg=grey30 + " + " Group: Constant colors group {{{3 + " + highlight Boolean guifg=DarkOrchid3 guibg=grey95 + highlight Character guifg=RoyalBlue3 guibg=grey95 + highlight Constant guifg=MediumOrchid3 guibg=grey95 + highlight Float guifg=MediumOrchid4 guibg=grey95 + highlight Number guifg=DarkOrchid4 guibg=grey95 + highlight String guifg=RoyalBlue4 guibg=grey95 + " + " Group: Identifier colors group {{{3 + " + highlight Function guifg=SteelBlue + highlight Identifier guifg=DarkCyan + " + " Group: Statement colors group {{{3 + " + highlight Conditional gui=bold guifg=DodgerBlue4 + highlight Exception gui=none guifg=SlateBlue4 + highlight Keyword gui=bold guifg=RoyalBlue4 + highlight Label gui=none guifg=SlateBlue3 + highlight Operator gui=none guifg=RoyalBlue3 + highlight Repeat gui=bold guifg=DodgerBlue3 + highlight Statement gui=none guifg=RoyalBlue4 + " + " Group: Preprocessor colors group {{{3 + " + highlight Define guifg=brown4 guibg=snow + highlight Include guifg=firebrick3 guibg=snow + highlight Macro guifg=brown3 guibg=snow + highlight PreCondit guifg=red guibg=snow + highlight PreProc guifg=firebrick4 guibg=snow + " + " Group: type group {{{3 + " + highlight StorageClass gui=none guifg=SeaGreen3 + highlight Structure gui=none guifg=DarkSlateGray4 + highlight Type gui=none guifg=SeaGreen4 + highlight Typedef gui=none guifg=DarkSeaGreen4 + " + " Group: special symbol group {{{3 + " + highlight Special guifg=SlateBlue guibg=GhostWhite + highlight SpecialChar guifg=DeepPink guibg=GhostWhite + highlight Tag guifg=DarkSlateBlue guibg=GhostWhite + highlight Delimiter guifg=DarkOrchid guibg=GhostWhite + highlight SpecialComment guifg=VioletRed guibg=GhostWhite + highlight Debug guifg=maroon guibg=GhostWhite + " + " Group: text that stands out {{{3 + " + highlight Underlined gui=underline guifg=SlateBlue + " + " Group: left blank, hidden {{{3 + " + highlight Ignore guifg=bg + " + " Group: any erroneous construct {{{3 + " + highlight Error gui=undercurl guifg=Red guibg=MistyRose + " + " Group: anything that needs extra attention {{{3 + " + highlight Todo guifg=Blue guibg=Yellow + + " Subsection: Cursor Colors {{{2 + " + " Group: Mouse Cursor {{{3 + " + highlight cCursor guifg=bg guibg=DarkRed + highlight Cursor guifg=bg guibg=DarkGreen + highlight CursorColumn guibg=FloralWhite + highlight CursorIM guifg=bg guibg=DarkGrey + highlight CursorLine guibg=cornsilk + highlight lCursor guifg=bg guibg=DarkMagenta + highlight oCursor guifg=bg guibg=DarkCyan + highlight vCursor guifg=bg guibg=DarkYellow + " + " Group: Text Cursor {{{3 + " + set guicursor=n:block-lCursor, + \i:ver25-Cursor, + \r:hor25-Cursor, + \v:block-vCursor, + \ve:ver35-vCursor, + \o:hor50-oCursor-blinkwait75-blinkoff50-blinkon75, + \c:block-cCursor, + \ci:ver20-cCursor, + \cr:hor20-cCursor, + \sm:block-Cursor-blinkwait175-blinkoff150-blinkon175 + + syntax enable + + " }}}1 + finish +elseif (&term == "xterm") || + \ (&term == "vt320") || + \ (&term == "linux") + " Section: Only set colors for terminals we actualy know of {{{1 + " + if &term=="vt320" + set t_Co=8 + else + set t_Co=16 + endif + + " Subsection: User Interface Colors {{{2 + " + " Group: Normal Text Colors {{{3 + " + highlight Normal term=none cterm=none ctermfg=Black ctermbg=LightGray + highlight Search term=reverse ctermbg=DarkYellow + highlight SpecialKey term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Title term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight LineNr term=underline ctermfg=DarkRed ctermbg=DarkGray + highlight NonText term=bold ctermfg=LightBlue ctermbg=LightGray + highlight MatchParen term=reverse ctermbg=DarkYellow + highlight IncSearch term=reverse cterm=reverse + " + " Group: Messages {{{3 + " + highlight WarningMsg term=standout ctermfg=DarkRed ctermbg=LightGray + highlight ErrorMsg term=standout ctermfg=White ctermbg=DarkRed + highlight ModeMsg term=bold cterm=bold ctermbg=LightGray + highlight MoreMsg term=bold ctermfg=DarkGreen ctermbg=LightGray + highlight Question term=standout ctermfg=DarkGreen ctermbg=LightGray + " + " Group: Spell Checker {{{3 + " + highlight SpellBad term=reverse ctermbg=LightRed + highlight SpellCap term=reverse ctermbg=LightBlue + highlight SpellLocal term=underline ctermbg=LightCyan + highlight SpellRare term=reverse ctermbg=LightMagenta + " + " Group: Status line {{{3 + " + highlight StatusLine term=bold,reverse cterm=bold,reverse + highlight StatusLineNC term=reverse cterm=reverse + highlight VertSplit term=reverse cterm=reverse + " + " Group: Visual selektion {{{3 + " + highlight Visual term=reverse cterm=reverse ctermfg=DarkRed ctermbg=LightGray + highlight VisualNOS term=bold,underline cterm=bold,underline + " + " Group: tab pages line {{{3 + " + highlight TabLine term=reverse cterm=reverse + highlight TabLineFill term=reverse cterm=reverse + highlight TabLineSel term=bold,reverse cterm=bold,reverse + " + " Group: Menu colors {{{3 + " + highlight Pmenu ctermbg=Grey + highlight PmenuSel ctermfg=White ctermbg=Red + highlight PmenuSbar ctermfg=LightGrey ctermbg=DarkGray + highlight PmenuThumb cterm=reverse + highlight WildMenu term=standout ctermfg=White ctermbg=Red + " + " Group: Diff colors {{{3 + " + highlight DiffAdd term=bold ctermbg=LightBlue + highlight DiffChange term=bold ctermbg=LightMagenta + highlight DiffDelete term=bold ctermfg=LightBlue ctermbg=LightCyan + highlight DiffText term=reverse cterm=bold ctermbg=LightRed + " + " Group: Fold colors {{{3 + " + highlight FoldColumn term=standout ctermfg=DarkBlue ctermbg=DarkGray + highlight Folded term=standout ctermfg=DarkBlue ctermbg=DarkGray + " + " Group: Other Syntax Highlight Colors {{{3 + " + highlight Directory term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight SignColumn term=standout ctermfg=DarkBlue ctermbg=DarkGray + + " Subsection: Syntax Colors {{{2 + " + " Group: Comment colors syntax-group {{{3 + " + highlight Comment term=bold ctermfg=DarkGray ctermbg=LightGray + " + " Group: Constant colors group {{{3 + " + highlight Boolean term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Character term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Constant term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Float term=underline ctermfg=DarkRed ctermbg=LightGray + highlight Number term=underline ctermfg=DarkRed ctermbg=LightGray + highlight String term=underline ctermfg=DarkRed ctermbg=LightGray + " + " Group: Identifier colors group {{{3 + " + highlight Function term=underline ctermfg=DarkCyan ctermbg=LightGray + highlight Identifier term=underline ctermfg=DarkCyan ctermbg=LightGray + " + " Group: Statement colors group {{{3 + " + highlight Conditional term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Exception term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Keyword term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Label term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Operator term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Repeat term=bold ctermfg=DarkBlue ctermbg=LightGray + highlight Statement term=bold ctermfg=DarkBlue ctermbg=LightGray + " + " Group: Preprocessor colors group {{{3 + " + highlight Define term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight Include term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight Macro term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight PreCondit term=underline ctermfg=DarkMagenta ctermbg=LightGray + highlight PreProc term=underline ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: type group {{{3 + " + highlight StorageClass term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Structure term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Type term=underline ctermfg=DarkGreen ctermbg=LightGray + highlight Typedef term=underline ctermfg=DarkGreen ctermbg=LightGray + " + " Group: special symbol group {{{3 + " + highlight Special term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight SpecialChar term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Tag term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Delimiter term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight SpecialComment term=bold ctermfg=DarkMagenta ctermbg=LightGray + highlight Debug term=bold ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: text that stands out {{{3 + " + highlight Underlined term=underline cterm=underline ctermfg=DarkMagenta ctermbg=LightGray + " + " Group: left blank, hidden {{{3 + " + highlight Ignore ctermfg=White ctermbg=grey + " + " Group: any erroneous construct {{{3 + " + highlight Error term=reverse ctermfg=White ctermbg=LightRed + " + " Group: anything that needs extra attention {{{3 + " + highlight Todo term=standout ctermfg=Black ctermbg=Yellow + + " Subsection: Cursor Colors {{{2 + " + " Group: Mouse Cursor {{{3 + " + highlight Cursor ctermfg=bg ctermbg=DarkGreen + highlight CursorColumn term=reverse ctermbg=LightGray + highlight CursorIM ctermfg=bg ctermbg=DarkGrey + highlight CursorLine term=reverse ctermbg=LightGray + + syntax enable + + " }}}1 + finish +else + " Section: terminal is completely unknown - fallback to system default {{{1 + " + set t_Co=8 + + " }}}1 + finish +endif + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: filetype=vim foldmethod=marker textwidth=0 diff --git a/.vim/colors/matrix.vim b/.vim/colors/matrix.vim new file mode 100644 index 0000000..75a0950 --- /dev/null +++ b/.vim/colors/matrix.vim @@ -0,0 +1,80 @@ +" vim:set ts=8 sts=2 sw=2 tw=0: +" +" matrix.vim - MATRIX like colorscheme. +" +" Maintainer: MURAOKA Taro +" Last Change: 10-Jun-2003. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'matrix' + +" the character under the cursor +hi Cursor guifg=#226622 guibg=#55ff55 +hi lCursor guifg=#226622 guibg=#55ff55 +" like Cursor, but used when in IME mode |CursorIM| +hi CursorIM guifg=#226622 guibg=#55ff55 +" directory names (and other special names in listings) +hi Directory guifg=#55ff55 guibg=#000000 +" diff mode: Added line |diff.txt| +hi DiffAdd guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Changed line |diff.txt| +hi DiffChange guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Deleted line |diff.txt| +hi DiffDelete guifg=#113311 guibg=#113311 gui=none +" diff mode: Changed text within a changed line |diff.txt| +hi DiffText guifg=#55ff55 guibg=#339933 gui=bold +" error messages on the command line +hi ErrorMsg guifg=#55ff55 guibg=#339933 +" the column separating vertically split windows +hi VertSplit guifg=#339933 guibg=#339933 +" line used for closed folds +hi Folded guifg=#44cc44 guibg=#113311 +" 'foldcolumn' +hi FoldColumn guifg=#44cc44 guibg=#226622 +" 'incsearch' highlighting; also used for the text replaced with +hi IncSearch guifg=#226622 guibg=#55ff55 gui=none +" line number for ":number" and ":#" commands, and when 'number' +hi LineNr guifg=#44cc44 guibg=#000000 +" 'showmode' message (e.g., "-- INSERT --") +hi ModeMsg guifg=#44cc44 guibg=#000000 +" |more-prompt| +hi MoreMsg guifg=#44cc44 guibg=#000000 +" '~' and '@' at the end of the window, characters from +hi NonText guifg=#44cc44 guibg=#113311 +" normal text +hi Normal guifg=#44cc44 guibg=#000000 +" |hit-enter| prompt and yes/no questions +hi Question guifg=#44cc44 guibg=#000000 +" Last search pattern highlighting (see 'hlsearch'). +hi Search guifg=#113311 guibg=#44cc44 gui=none +" Meta and special keys listed with ":map", also for text used +hi SpecialKey guifg=#44cc44 guibg=#000000 +" status line of current window +hi StatusLine guifg=#55ff55 guibg=#339933 gui=none +" status lines of not-current windows +hi StatusLineNC guifg=#113311 guibg=#339933 gui=none +" titles for output from ":set all", ":autocmd" etc. +hi Title guifg=#55ff55 guibg=#113311 gui=bold +" Visual mode selection +hi Visual guifg=#55ff55 guibg=#339933 gui=none +" Visual mode selection when vim is "Not Owning the Selection". +hi VisualNOS guifg=#44cc44 guibg=#000000 +" warning messages +hi WarningMsg guifg=#55ff55 guibg=#000000 +" current match in 'wildmenu' completion +hi WildMenu guifg=#226622 guibg=#55ff55 + +hi Comment guifg=#226622 guibg=#000000 +hi Constant guifg=#55ff55 guibg=#226622 +hi Special guifg=#44cc44 guibg=#226622 +hi Identifier guifg=#55ff55 guibg=#000000 +hi Statement guifg=#55ff55 guibg=#000000 gui=bold +hi PreProc guifg=#339933 guibg=#000000 +hi Type guifg=#55ff55 guibg=#000000 gui=bold +hi Underlined guifg=#55ff55 guibg=#000000 gui=underline +hi Error guifg=#55ff55 guibg=#339933 +hi Todo guifg=#113311 guibg=#44cc44 gui=none diff --git a/.vim/colors/molokai.vim b/.vim/colors/molokai.vim new file mode 100644 index 0000000..aae9420 --- /dev/null +++ b/.vim/colors/molokai.vim @@ -0,0 +1,211 @@ +" Vim color file +" +" Author: Tomas Restrepo +" +" Note: Based on the monokai theme for textmate +" by Wimer Hazenberg and its darker variant +" by Hamish Stuart Macpherson +" + +hi clear + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="molokai" + +if exists("g:molokai_original") + let s:molokai_original = g:molokai_original +else + let s:molokai_original = 0 +endif + + +hi Boolean guifg=#AE81FF +hi Character guifg=#E6DB74 +hi Number guifg=#AE81FF +hi String guifg=#E6DB74 +hi Conditional guifg=#F92672 gui=bold +hi Constant guifg=#AE81FF gui=bold +hi Cursor guifg=#000000 guibg=#F8F8F0 +hi Debug guifg=#BCA3A3 gui=bold +hi Define guifg=#66D9EF +hi Delimiter guifg=#8F8F8F +hi DiffAdd guibg=#13354A +hi DiffChange guifg=#89807D guibg=#4C4745 +hi DiffDelete guifg=#960050 guibg=#1E0010 +hi DiffText guibg=#4C4745 gui=italic,bold + +hi Directory guifg=#A6E22E gui=bold +hi Error guifg=#960050 guibg=#1E0010 +hi ErrorMsg guifg=#F92672 guibg=#232526 gui=bold +hi Exception guifg=#A6E22E gui=bold +hi Float guifg=#AE81FF +hi FoldColumn guifg=#465457 guibg=#000000 +hi Folded guifg=#465457 guibg=#000000 +hi Function guifg=#A6E22E +hi Identifier guifg=#FD971F +hi Ignore guifg=#808080 guibg=bg +hi IncSearch guifg=#C4BE89 guibg=#000000 + +hi Keyword guifg=#F92672 gui=bold +hi Label guifg=#E6DB74 gui=none +hi Macro guifg=#C4BE89 gui=italic +hi SpecialKey guifg=#66D9EF gui=italic + +hi MatchParen guifg=#000000 guibg=#FD971F gui=bold +hi ModeMsg guifg=#E6DB74 +hi MoreMsg guifg=#E6DB74 +hi Operator guifg=#F92672 + +" complete menu +hi Pmenu guifg=#66D9EF guibg=#000000 +hi PmenuSel guibg=#808080 +hi PmenuSbar guibg=#080808 +hi PmenuThumb guifg=#66D9EF + +hi PreCondit guifg=#A6E22E gui=bold +hi PreProc guifg=#A6E22E +hi Question guifg=#66D9EF +hi Repeat guifg=#F92672 gui=bold +hi Search guifg=#FFFFFF guibg=#455354 +" marks column +hi SignColumn guifg=#A6E22E guibg=#232526 +hi SpecialChar guifg=#F92672 gui=bold +hi SpecialComment guifg=#465457 gui=bold +hi Special guifg=#66D9EF guibg=bg gui=italic +hi SpecialKey guifg=#888A85 gui=italic +if has("spell") + hi SpellBad guisp=#FF0000 gui=undercurl + hi SpellCap guisp=#7070F0 gui=undercurl + hi SpellLocal guisp=#70F0F0 gui=undercurl + hi SpellRare guisp=#FFFFFF gui=undercurl +endif +hi Statement guifg=#F92672 gui=bold +hi StatusLine guifg=#455354 guibg=fg +hi StatusLineNC guifg=#808080 guibg=#080808 +hi StorageClass guifg=#FD971F gui=italic +hi Structure guifg=#66D9EF +hi Tag guifg=#F92672 gui=italic +hi Title guifg=#ef5939 +hi Todo guifg=#FFFFFF guibg=bg gui=bold + +hi Typedef guifg=#66D9EF +hi Type guifg=#66D9EF gui=none +hi Underlined guifg=#808080 gui=underline + +hi VertSplit guifg=#808080 guibg=#080808 gui=bold +hi VisualNOS guibg=#403D3D +hi Visual guibg=#403D3D +hi WarningMsg guifg=#FFFFFF guibg=#333333 gui=bold +hi WildMenu guifg=#66D9EF guibg=#000000 + +if s:molokai_original == 1 + hi Normal guifg=#F8F8F2 guibg=#272822 + hi Comment guifg=#75715E + hi CursorLine guibg=#3E3D32 + hi CursorColumn guibg=#3E3D32 + hi LineNr guifg=#BCBCBC guibg=#3B3A32 + hi NonText guifg=#BCBCBC guibg=#3B3A32 +else + hi Normal guifg=#F8F8F2 guibg=#1B1D1E + hi Comment guifg=#465457 + hi CursorLine guibg=#293739 + hi CursorColumn guibg=#293739 + hi LineNr guifg=#BCBCBC guibg=#232526 + hi NonText guifg=#BCBCBC guibg=#232526 +end + +" +" Support for 256-color terminal +" +if &t_Co > 255 + hi Boolean ctermfg=135 + hi Character ctermfg=144 + hi Number ctermfg=135 + hi String ctermfg=144 + hi Conditional ctermfg=161 cterm=bold + hi Constant ctermfg=135 cterm=bold + hi Cursor ctermfg=16 ctermbg=253 + hi Debug ctermfg=225 cterm=bold + hi Define ctermfg=81 + hi Delimiter ctermfg=241 + + hi DiffAdd ctermbg=24 + hi DiffChange ctermfg=181 ctermbg=239 + hi DiffDelete ctermfg=162 ctermbg=53 + hi DiffText ctermbg=102 cterm=bold + + hi Directory ctermfg=118 cterm=bold + hi Error ctermfg=219 ctermbg=89 + hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold + hi Exception ctermfg=118 cterm=bold + hi Float ctermfg=135 + hi FoldColumn ctermfg=67 ctermbg=16 + hi Folded ctermfg=67 ctermbg=16 + hi Function ctermfg=118 + hi Identifier ctermfg=208 + hi Ignore ctermfg=244 ctermbg=232 + hi IncSearch ctermfg=193 ctermbg=16 + + hi Keyword ctermfg=161 cterm=bold + hi Label ctermfg=229 cterm=none + hi Macro ctermfg=193 + hi SpecialKey ctermfg=81 + + hi MatchParen ctermfg=16 ctermbg=208 cterm=bold + hi ModeMsg ctermfg=229 + hi MoreMsg ctermfg=229 + hi Operator ctermfg=161 + + " complete menu + hi Pmenu ctermfg=81 ctermbg=16 + hi PmenuSel ctermbg=244 + hi PmenuSbar ctermbg=232 + hi PmenuThumb ctermfg=81 + + hi PreCondit ctermfg=118 cterm=bold + hi PreProc ctermfg=118 + hi Question ctermfg=81 + hi Repeat ctermfg=161 cterm=bold + hi Search ctermfg=253 ctermbg=66 + + " marks column + hi SignColumn ctermfg=118 ctermbg=235 + hi SpecialChar ctermfg=161 cterm=bold + hi SpecialComment ctermfg=245 cterm=bold + hi Special ctermfg=81 ctermbg=232 + hi SpecialKey ctermfg=245 + + hi Statement ctermfg=161 cterm=bold + hi StatusLine ctermfg=238 ctermbg=253 + hi StatusLineNC ctermfg=244 ctermbg=232 + hi StorageClass ctermfg=208 + hi Structure ctermfg=81 + hi Tag ctermfg=161 + hi Title ctermfg=166 + hi Todo ctermfg=231 ctermbg=232 cterm=bold + + hi Typedef ctermfg=81 + hi Type ctermfg=81 cterm=none + hi Underlined ctermfg=244 cterm=underline + + hi VertSplit ctermfg=244 ctermbg=232 cterm=bold + hi VisualNOS ctermbg=238 + hi Visual ctermbg=235 + hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold + hi WildMenu ctermfg=81 ctermbg=16 + + hi Normal ctermfg=252 ctermbg=233 + hi Comment ctermfg=59 + hi CursorLine ctermbg=234 cterm=none + hi CursorColumn ctermbg=234 + hi LineNr ctermfg=250 ctermbg=234 + hi NonText ctermfg=250 ctermbg=234 +end diff --git a/.vim/colors/moria.vim b/.vim/colors/moria.vim new file mode 100644 index 0000000..6562cb7 --- /dev/null +++ b/.vim/colors/moria.vim @@ -0,0 +1,247 @@ +if exists("g:moria_style") + let s:moria_style = g:moria_style +else + let s:moria_style = &background +endif + +if exists("g:moria_monochrome") + let s:moria_monochrome = g:moria_monochrome +else + let s:moria_monochrome = 0 +endif + +if exists("g:moria_fontface") + let s:moria_fontface = g:moria_fontface +else + let s:moria_fontface = "plain" +endif + +execute "command! -nargs=1 Colo let g:moria_style = \"\" | colo moria" + +if s:moria_style == "black" || s:moria_style == "dark" + set background=dark +elseif s:moria_style == "light" || s:moria_style == "white" + set background=light +else + let s:moria_style = &background +endif + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "moria" + +if &background == "dark" + if s:moria_style == "dark" + hi Normal ctermbg=Black ctermfg=LightGray guibg=#202020 guifg=#d0d0d0 gui=none + + hi CursorColumn ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + hi CursorLine ctermbg=DarkGray ctermfg=White guibg=#404040 gui=none + elseif s:moria_style == "black" + hi Normal ctermbg=Black ctermfg=LightGray guibg=#000000 guifg=#d0d0d0 gui=none + + hi CursorColumn ctermbg=DarkGray ctermfg=White guibg=#3a3a3a gui=none + hi CursorLine ctermbg=DarkGray ctermfg=White guibg=#3a3a3a gui=none + endif + if s:moria_monochrome == 1 + hi FoldColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none + hi LineNr guifg=#a0a0a0 gui=none + hi MoreMsg guibg=bg guifg=#b6b6b6 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#a0a0a0 gui=bold + hi Pmenu guibg=#909090 guifg=#000000 gui=none + hi PmenuSbar guibg=#707070 guifg=fg gui=none + hi PmenuThumb guibg=#d0d0d0 guifg=bg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#a0a0a0 gui=none + hi StatusLine ctermbg=LightGray ctermfg=Black guibg=#4c4c4c guifg=fg gui=bold + hi StatusLineNC ctermbg=DarkGray ctermfg=Black guibg=#404040 guifg=fg gui=none + hi TabLine guibg=#6e6e6e guifg=fg gui=underline + hi TabLineFill guibg=#6e6e6e guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#404040 guifg=fg gui=none + if s:moria_fontface == "mixed" + hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=bold + else + hi Folded guibg=#4e4e4e guifg=#c0c0c0 gui=none + endif + else + hi FoldColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none + hi LineNr guifg=#8fa5d1 gui=none + hi MoreMsg guibg=bg guifg=#97abd5 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#8fa5d1 gui=bold + hi Pmenu guibg=#6381be guifg=#000000 gui=none + hi PmenuSbar guibg=#41609e guifg=fg gui=none + hi PmenuThumb guibg=#bdcae3 guifg=bg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#8fa5d1 gui=none + hi StatusLine ctermbg=LightGray ctermfg=Black guibg=#334b7d guifg=fg gui=bold + hi StatusLineNC ctermbg=DarkGray ctermfg=Black guibg=#25365a guifg=fg gui=none + hi TabLine guibg=#41609e guifg=fg gui=underline + hi TabLineFill guibg=#41609e guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#25365a guifg=fg gui=none + if s:moria_fontface == "mixed" + hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=bold + else + hi Folded guibg=#4e4e4e guifg=#bdcae3 gui=none + endif + endif + hi Cursor guibg=#ffa500 guifg=bg gui=none + hi DiffAdd guibg=#008b00 guifg=fg gui=none + hi DiffChange guibg=#00008b guifg=fg gui=none + hi DiffDelete guibg=#8b0000 guifg=fg gui=none + hi DiffText guibg=#0000cd guifg=fg gui=bold + hi Directory guibg=bg guifg=#1e90ff gui=none + hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold + hi IncSearch guibg=#e0cd78 guifg=#000000 gui=none + hi ModeMsg guibg=bg guifg=fg gui=bold + hi PmenuSel guibg=#e0e000 guifg=#000000 gui=none + hi Question guibg=bg guifg=#e8b87e gui=bold + hi Search guibg=#90e090 guifg=#000000 gui=none + hi SpecialKey guibg=bg guifg=#e8b87e gui=none + if has("spell") + hi SpellBad guisp=#ee2c2c gui=undercurl + hi SpellCap guisp=#2c2cee gui=undercurl + hi SpellLocal guisp=#2ceeee gui=undercurl + hi SpellRare guisp=#ee2cee gui=undercurl + endif + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title ctermbg=Black ctermfg=White guifg=fg gui=bold + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=Black guibg=#606060 gui=none + else + hi Visual ctermbg=LightGray ctermfg=Black guibg=#606060 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=Black guibg=bg guifg=#a0a0a0 gui=bold,underline + hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold + hi WildMenu guibg=#e0e000 guifg=#000000 gui=bold + + hi Comment guibg=bg guifg=#d0d0a0 gui=none + hi Constant guibg=bg guifg=#87df71 gui=none + hi Error guibg=bg guifg=#ee2c2c gui=none + hi Identifier guibg=bg guifg=#7ee0ce gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#00e700 guifg=#000000 gui=none + hi MatchParen guibg=#008b8b gui=none + hi PreProc guibg=bg guifg=#d7a0d7 gui=none + hi Special guibg=bg guifg=#e8b87e gui=none + hi Todo guibg=#e0e000 guifg=#000000 gui=none + hi Underlined ctermbg=Black ctermfg=White guibg=bg guifg=#00a0ff gui=underline + + if s:moria_fontface == "mixed" + hi Statement guibg=bg guifg=#7ec0ee gui=bold + hi Type guibg=bg guifg=#f09479 gui=bold + else + hi Statement guibg=bg guifg=#7ec0ee gui=none + hi Type guibg=bg guifg=#f09479 gui=none + endif + + hi htmlBold ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=Black ctermfg=White guibg=bg guifg=fg gui=underline,italic +elseif &background == "light" + if s:moria_style == "light" + hi Normal ctermbg=White ctermfg=Black guibg=#f0f0f0 guifg=#000000 gui=none + + hi CursorColumn ctermbg=LightGray ctermfg=Black guibg=#d8d8d8 gui=none + hi CursorLine ctermbg=LightGray ctermfg=Black guibg=#d8d8d8 gui=none + elseif s:moria_style == "white" + hi Normal ctermbg=White ctermfg=Black guibg=#ffffff guifg=#000000 gui=none + + hi CursorColumn ctermbg=LightGray ctermfg=Black guibg=#dfdfdf gui=none + hi CursorLine ctermbg=LightGray ctermfg=Black guibg=#dfdfdf gui=none + endif + if s:moria_monochrome == 1 + hi FoldColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none + hi Folded guibg=#cfcfcf guifg=#404040 gui=bold + hi LineNr guifg=#7a7a7a gui=none + hi MoreMsg guibg=bg guifg=#505050 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#7a7a7a gui=bold + hi Pmenu guibg=#9a9a9a guifg=#000000 gui=none + hi PmenuSbar guibg=#808080 guifg=fg gui=none + hi PmenuThumb guibg=#c0c0c0 guifg=fg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#7a7a7a gui=none + hi StatusLine ctermbg=Black ctermfg=White guibg=#a0a0a0 guifg=fg gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=Black guibg=#b0b0b0 guifg=fg gui=none + hi TabLine guibg=#cdcdcd guifg=fg gui=underline + hi TabLineFill guibg=#cdcdcd guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#b0b0b0 guifg=fg gui=none + else + hi FoldColumn ctermbg=bg guibg=bg guifg=#375288 gui=none + hi Folded guibg=#cfcfcf guifg=#25365a gui=bold + hi LineNr guifg=#375288 gui=none + hi MoreMsg guibg=bg guifg=#2f4471 gui=bold + hi NonText ctermfg=DarkGray guibg=bg guifg=#375288 gui=bold + hi Pmenu guibg=#708bc5 guifg=#000000 gui=none + hi PmenuSbar guibg=#4a6db5 guifg=fg gui=none + hi PmenuThumb guibg=#a6b7db guifg=fg gui=none + hi SignColumn ctermbg=bg guibg=bg guifg=#375288 gui=none + hi StatusLine ctermbg=Black ctermfg=White guibg=#8fa5d1 guifg=fg gui=bold + hi StatusLineNC ctermbg=LightGray ctermfg=Black guibg=#a6b7db guifg=fg gui=none + hi TabLine guibg=#b8c6e2 guifg=fg gui=underline + hi TabLineFill guibg=#b8c6e2 guifg=fg gui=underline + hi VertSplit ctermbg=LightGray ctermfg=Black guibg=#a6b7db guifg=fg gui=none + endif + hi Cursor guibg=#883400 guifg=bg gui=none + hi DiffAdd guibg=#008b00 guifg=#ffffff gui=none + hi DiffChange guibg=#00008b guifg=#ffffff gui=none + hi DiffDelete guibg=#8b0000 guifg=#ffffff gui=none + hi DiffText guibg=#0000cd guifg=#ffffff gui=bold + hi Directory guibg=bg guifg=#0000f0 gui=none + hi ErrorMsg guibg=#ee2c2c guifg=#ffffff gui=bold + hi IncSearch guibg=#ffcd78 gui=none + hi ModeMsg ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold + hi PmenuSel guibg=#ffff00 guifg=#000000 gui=none + hi Question guibg=bg guifg=#813f11 gui=bold + hi Search guibg=#a0f0a0 gui=none + hi SpecialKey guibg=bg guifg=#912f11 gui=none + if has("spell") + hi SpellBad guisp=#ee2c2c gui=undercurl + hi SpellCap guisp=#2c2cee gui=undercurl + hi SpellLocal guisp=#008b8b gui=undercurl + hi SpellRare guisp=#ee2cee gui=undercurl + endif + hi TabLineSel guibg=bg guifg=fg gui=bold + hi Title guifg=fg gui=bold + if version >= 700 + hi Visual ctermbg=LightGray ctermfg=Black guibg=#c4c4c4 gui=none + else + hi Visual ctermbg=LightGray ctermfg=Black guibg=#c4c4c4 guifg=fg gui=none + endif + hi VisualNOS ctermbg=DarkGray ctermfg=Black guibg=bg guifg=#a0a0a0 gui=bold,underline + hi WarningMsg guibg=bg guifg=#ee2c2c gui=bold + hi WildMenu guibg=#ffff00 guifg=fg gui=bold + + hi Comment guibg=bg guifg=#786000 gui=none + hi Constant guibg=bg guifg=#077807 gui=none + hi Error guibg=bg guifg=#ee2c2c gui=none + hi Identifier guibg=bg guifg=#007080 gui=none + hi Ignore guibg=bg guifg=bg gui=none + hi lCursor guibg=#008000 guifg=#ffffff gui=none + hi MatchParen guibg=#00ffff gui=none + hi PreProc guibg=bg guifg=#800090 gui=none + hi Special guibg=bg guifg=#912f11 gui=none + hi Statement guibg=bg guifg=#1f3f81 gui=bold + hi Todo guibg=#ffff00 guifg=fg gui=none + hi Type guibg=bg guifg=#912f11 gui=bold + hi Underlined ctermbg=White ctermfg=Black guibg=bg guifg=#0000cd gui=underline + + hi htmlBold ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold + hi htmlBoldItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,italic + hi htmlBoldUnderline ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,underline + hi htmlBoldUnderlineItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=bold,underline,italic + hi htmlItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=italic + hi htmlUnderline ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=underline + hi htmlUnderlineItalic ctermbg=White ctermfg=Black guibg=bg guifg=fg gui=underline,italic +endif + +hi! default link bbcodeBold htmlBold +hi! default link bbcodeBoldItalic htmlBoldItalic +hi! default link bbcodeBoldItalicUnderline htmlBoldUnderlineItalic +hi! default link bbcodeBoldUnderline htmlBoldUnderline +hi! default link bbcodeItalic htmlItalic +hi! default link bbcodeItalicUnderline htmlUnderlineItalic +hi! default link bbcodeUnderline htmlUnderline diff --git a/.vim/colors/moss.vim b/.vim/colors/moss.vim new file mode 100644 index 0000000..fa8f47c --- /dev/null +++ b/.vim/colors/moss.vim @@ -0,0 +1,109 @@ +" ------------------------------------------------------------------ +" Vim color file +" Name: moss (è‹”) +" Maintainer: Li Chunlin +" Last Change: 2009-10-15 +" Version: 2.0 +" URL: http://vim.sourceforge.net/script.php?script_id=2779 +" ------------------------------------------------------------------ + +" Init +" ------------------------------------------------------------------ +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "moss" + +" Highlighting groups for various occasions +" ------------------------------------------------------------------ +hi SpecialKey guifg=RosyBrown4 +hi NonText guifg=MidnightBlue guibg=#0C2628 +hi Directory gui=BOLD guifg=DarkOliveGreen3 +hi ErrorMsg guifg=LightGoldenRod guibg=Firebrick +hi IncSearch gui=BOLD guifg=Firebrick1 +hi Search gui=REVERSE guifg=NONE guibg=NONE +hi MoreMsg guifg=DarkCyan +hi ModeMsg guifg=OliveDrab2 +hi LineNr guifg=DarkSeaGreen3 guibg=#0C2628 +hi Question guifg=Green +hi StatusLine gui=BOLD guifg=LemonChiffon3 guibg=#334680 +hi StatusLineNC gui=BOLD guifg=Honeydew4 guibg=Gray26 +hi VertSplit gui=BOLD guifg=Gray20 guibg=Gray26 +hi Title gui=BOLD guifg=RoyalBlue3 +hi Visual guifg=PowderBlue guibg=#22364C +hi VisualNOS gui=BOLD,UNDERLINE guifg=SlateGray +hi WarningMsg guifg=Gold +hi WildMenu gui=BOLD guifg=Black guibg=Chartreuse3 +hi Folded guifg=PaleGreen3 guibg=DarkSlateGray +hi FoldColumn gui=BOLD guifg=PaleGreen3 guibg=DarkSlateGray +hi DiffAdd guifg=SandyBrown guibg=DarkOliveGreen +hi DiffChange guibg=#3C444C +hi DiffDelete guifg=Gray20 guibg=Black +hi DiffText guifg=Chocolate guibg=#033B40 + +" new Vim 7.0 items +if v:version >= 700 + hi CursorColumn guibg=#063C36 + hi CursorLine guibg=#063C36 + hi SignColumn guifg=PaleGoldenrod guibg=Turquoise4 + hi TabLine guifg=CornflowerBlue guibg=Gray26 + hi TabLineSel guifg=RoyalBlue guibg=#082926 + hi TabLineFill gui=UNDERLINE guifg=CornflowerBlue guibg=Gray20 + hi Pmenu guifg=White guibg=MediumPurple4 + hi PmenuSel guifg=Wheat guibg=#22364C + hi PmenuSbar guifg=Tan guibg=SeaShell4 + hi PmenuThumb guifg=IndianRed guibg=SeaShell4 + hi MatchParen gui=BOLD guifg=GoldenRod guibg=DarkCyan +endif + +hi Cursor guifg=Black guibg=LimeGreen +hi CursorIM guifg=Black guibg=OrangeRed + +" Syntax highlighting groups +" ------------------------------------------------------------------ + +hi Normal gui=NONE guifg=LightBlue3 guibg=#082926 +hi Comment gui=ITALIC guifg=BurlyWood4 + +hi Constant gui=NONE guifg=CadetBlue3 +hi link String Constant +hi link Character Constant +hi Number gui=NONE guifg=Turquoise3 +hi link Boolean Number +hi link Float Number + +hi Identifier gui=NONE guifg=SteelBlue3 +hi Function gui=NONE guifg=Aquamarine3 + +hi Statement gui=NONE guifg=SpringGreen3 +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi Operator gui=NONE guifg=SeaGreen3 +hi link Keyword Statement +hi link Exception Statement + +hi PreProc gui=NONE guifg=DodgerBlue3 +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc + +hi Type gui=NONE guifg=DeepSkyBlue3 +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type + +hi Special gui=NONE guifg=SlateBlue +hi link Specialchar Special +hi link Tag Special +hi link Delimiter Special +hi link Debug Special + +hi Underlined gui=UNDERLINE guifg=SkyBlue3 +hi Ignore gui=NONE guifg=Gray18 +hi Error gui=NONE guifg=Khaki3 guibg=VioletRed4 +hi Todo gui=BOLD guifg=GoldenRod3 guibg=NONE + diff --git a/.vim/colors/motus.vim b/.vim/colors/motus.vim new file mode 100644 index 0000000..146e88d --- /dev/null +++ b/.vim/colors/motus.vim @@ -0,0 +1,66 @@ +" Vim color file +" Dark (grey on black) color scheme based on on a popular torte config. +" Maintainer: Sergei Matusevich +" ICQ: 31114346 Yahoo: motus2 +" http://motus.kiev.ua/motus2/Files/motus.vim +" Last Change: 3 November 2005 +" Orinal torte screme maintainer: Thorsten Maerz +" Licence: Public Domain + +" INSTALLATION: copy this file to ~/.vim/colors/ directory +" and add "colorscheme motus" to your ~/.vimrc file + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "motus" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Grey guibg=DarkBlue +highlight Visual guifg=Black guibg=DarkGrey gui=NONE +" highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +highlight VertSplit gui=bold guifg=Grey25 guibg=Black +highlight StatusLine gui=bold guifg=White guibg=Grey25 +highlight StatusLineNC gui=NONE guifg=LightGrey guibg=Grey25 + +highlight FoldColumn gui=bold guifg=White guibg=Black + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Grey ctermbg=DarkBlue cterm=NONE +highlight Visual cterm=reverse +" highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +highlight VertSplit ctermfg=DarkGrey ctermbg=Black cterm=bold +highlight StatusLine ctermfg=White ctermbg=Grey cterm=bold +highlight StatusLineNC ctermfg=Black ctermbg=Grey cterm=NONE + +highlight FoldColumn ctermbg=Black ctermfg=White cterm=bold + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/.vim/colors/mustang.vim b/.vim/colors/mustang.vim new file mode 100644 index 0000000..98cf18e --- /dev/null +++ b/.vim/colors/mustang.vim @@ -0,0 +1,57 @@ +" Maintainer: Henrique C. Alves (hcarvalhoalves@gmail.com) +" Version: 1.0 +" Last Change: September 25 2008 + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "mustang" + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#2d2d2d ctermbg=236 + hi CursorColumn guibg=#2d2d2d ctermbg=236 + hi MatchParen guifg=#d0ffc0 guibg=#2f2f2f gui=bold ctermfg=157 ctermbg=237 cterm=bold + hi Pmenu guifg=#ffffff guibg=#444444 ctermfg=255 ctermbg=238 + hi PmenuSel guifg=#000000 guibg=#b1d631 ctermfg=0 ctermbg=148 +endif + +" General colors +hi Cursor guifg=NONE guibg=#626262 gui=none ctermbg=241 +hi Normal guifg=#e2e2e5 guibg=#202020 gui=none ctermfg=253 ctermbg=234 +hi NonText guifg=#808080 guibg=#303030 gui=none ctermfg=244 ctermbg=235 +hi LineNr guifg=#808080 guibg=#000000 gui=none ctermfg=244 ctermbg=232 +hi StatusLine guifg=#d3d3d5 guibg=#444444 gui=italic ctermfg=253 ctermbg=238 cterm=italic +hi StatusLineNC guifg=#939395 guibg=#444444 gui=none ctermfg=246 ctermbg=238 +hi VertSplit guifg=#444444 guibg=#444444 gui=none ctermfg=238 ctermbg=238 +hi Folded guibg=#384048 guifg=#a0a8b0 gui=none ctermbg=4 ctermfg=248 +hi Title guifg=#f6f3e8 guibg=NONE gui=bold ctermfg=254 cterm=bold +hi Visual guifg=#faf4c6 guibg=#3c414c gui=none ctermfg=254 ctermbg=4 +hi SpecialKey guifg=#808080 guibg=#343434 gui=none ctermfg=244 ctermbg=236 + +" Syntax highlighting +hi Comment guifg=#808080 gui=italic ctermfg=244 +hi Todo guifg=#8f8f8f gui=italic ctermfg=245 +hi Boolean guifg=#b1d631 gui=none ctermfg=148 +hi String guifg=#b1d631 gui=italic ctermfg=148 +hi Identifier guifg=#b1d631 gui=none ctermfg=148 +hi Function guifg=#ffffff gui=bold ctermfg=255 +hi Type guifg=#7e8aa2 gui=none ctermfg=103 +hi Statement guifg=#7e8aa2 gui=none ctermfg=103 +hi Keyword guifg=#ff9800 gui=none ctermfg=208 +hi Constant guifg=#ff9800 gui=none ctermfg=208 +hi Number guifg=#ff9800 gui=none ctermfg=208 +hi Special guifg=#ff9800 gui=none ctermfg=208 +hi PreProc guifg=#faf4c6 gui=none ctermfg=230 +hi Todo guifg=#000000 guibg=#e6ea50 gui=italic + +" Code-specific colors +hi pythonOperator guifg=#7e8aa2 gui=none ctermfg=103 + +hi Search guifg=white guibg=NONE cterm=NONE gui=underline + diff --git a/.vim/colors/navajo-night.vim b/.vim/colors/navajo-night.vim new file mode 100644 index 0000000..f0c27f0 --- /dev/null +++ b/.vim/colors/navajo-night.vim @@ -0,0 +1,119 @@ +" Vim colour file +" Maintainer: Matthew Hawkins +" Last Change: Mon, 22 Apr 2002 15:28:04 +1000 +" URI: http://mh.dropbear.id.au/vim/navajo-night.png +" +" This colour scheme uses a "navajo-black" background +" I have added colours for the statusbar and for spell checking +" as taken from Cream (http://cream.sf.net/) + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo-night" + +" This is the list of colour changes from Navajo that +" weren't a simple mathematical subtraction from 0xffffff +" DarkBlue -> #ffff74 +" DarkRed -> #74ffff +" DarkGreen -> #ff9bff +" DarkCyan -> #ff7474 +" DarkMagenta -> #74ff74 +" DarkYellow -> #7474ff +" DarkGray -> #565656 +" Blue -> Yellow +" Red -> Cyan +" Yellow -> Blue +" Gray -> #414141 +" Brown -> #5ad5d5 +" #ff8060 -> #007f9f +" #f6e8d0 -> #09172f +" #edb5cd -> #124a32 +" #c0c0c0 -> #3f3f3f +" #907050 -> #6f8faf +" #808080 -> #7f7f7f +" #707070 -> #8f8f8f +" SeaGreen -> #d174a8 +" LightRed (assuming #ee9090) -> #116f6f +" LightBlue -> #522719 + +hi Normal ctermfg=White guifg=White guibg=#35536f + +hi SpecialKey term=bold ctermfg=darkblue guifg=Yellow +hi NonText term=bold ctermfg=darkblue cterm=bold gui=bold guifg=#7f7f7f +hi Directory term=bold ctermfg=darkblue guifg=Yellow +hi ErrorMsg term=standout ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=White ctermfg=Black cterm=reverse guibg=Black guifg=Yellow +hi MoreMsg term=bold ctermfg=green gui=bold guifg=#d174a8 +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=darkcyan ctermbg=grey guibg=#7f7f7f gui=bold guifg=White +hi Question term=standout ctermfg=darkgreen gui=bold guifg=#d174a8 +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=Black guibg=White +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=#116f6f guibg=#8f8f8f +hi VertSplit term=reverse cterm=reverse gui=bold guifg=Black guibg=#8f8f8f +hi Title term=bold ctermfg=green gui=bold guifg=#74ff74 +"+++ Cream: +"hi Visual term=reverse cterm=reverse gui=reverse guifg=#3f3f3f guibg=White +"+++ +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=#414141 guibg=Black +hi WarningMsg term=standout ctermfg=darkred gui=bold guifg=Cyan +hi WildMenu term=standout ctermfg=White ctermbg=darkyellow guifg=White guibg=Blue +hi Folded term=standout ctermfg=darkblue ctermbg=grey guifg=White guibg=NONE guifg=#afcfef +hi FoldColumn term=standout ctermfg=darkblue ctermbg=grey guifg=#ffff74 guibg=#3f3f3f +hi DiffAdd term=bold ctermbg=darkblue guibg=Black +hi DiffChange term=bold ctermbg=darkmagenta guibg=#124a32 +hi DiffDelete term=bold ctermfg=darkblue ctermbg=blue cterm=bold gui=bold guifg=#522719 guibg=#09172f +hi DiffText term=reverse ctermbg=darkblue cterm=bold gui=bold guibg=#007f9f +hi Cursor gui=reverse guifg=#bfbfef guibg=Black +hi lCursor guifg=fg guibg=bg +hi Match term=bold,reverse ctermbg=Blue ctermfg=Yellow cterm=bold,reverse gui=bold,reverse guifg=Blue guibg=Yellow + + +" Colours for syntax highlighting +hi Comment term=bold ctermfg=darkblue guifg=#e7e77f +hi Constant term=underline ctermfg=darkred guifg=#3fffa7 +hi Special term=bold ctermfg=darkgreen guifg=#bfbfef +hi Identifier term=underline ctermfg=darkcyan cterm=NONE guifg=#ef9f9f +hi Statement term=bold ctermfg=darkred cterm=bold gui=bold guifg=#5ad5d5 +hi PreProc term=underline ctermfg=darkmagenta guifg=#74ff74 +hi Type term=underline ctermfg=green gui=bold guifg=#d174a8 +hi Ignore ctermfg=grey cterm=bold guifg=bg + +hi Error term=reverse ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi Todo term=standout ctermfg=darkblue ctermbg=Blue guifg=Yellow guibg=Blue + +"+++ Cream: statusbar +" Colours for statusbar +"hi User1 gui=bold guifg=#565656 guibg=#0c0c0c +"hi User2 gui=bold guifg=White guibg=#0c0c0c +"hi User3 gui=bold guifg=Yellow guibg=#0c0c0c +"hi User4 gui=bold guifg=Cyan guibg=#0c0c0c +highlight User1 gui=bold guifg=#999933 guibg=#45637f +highlight User2 gui=bold guifg=#e7e77f guibg=#45637f +highlight User3 gui=bold guifg=Black guibg=#45637f +highlight User4 gui=bold guifg=#33cc99 guibg=#45637f +"+++ + +"+++ Cream: selection +highlight Visual gui=bold guifg=Black guibg=#aacc77 +"+++ + +"+++ Cream: bookmarks +highlight Cream_ShowMarksHL ctermfg=blue ctermbg=lightblue cterm=bold guifg=Black guibg=#aacc77 gui=bold +"+++ + +"+++ Cream: spell check +" Colour misspelt words +"hi BadWord ctermfg=White ctermbg=darkred cterm=bold guifg=Yellow guibg=#522719 gui=bold +" mathematically correct: +"highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=White guibg=#003333 +" adjusted: +highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=#ff9999 guibg=#003333 +"+++ + + diff --git a/.vim/colors/navajo.vim b/.vim/colors/navajo.vim new file mode 100644 index 0000000..e7eebe7 --- /dev/null +++ b/.vim/colors/navajo.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: R. Edward Ralston +" Last Change: 2002-01-24 09:56:48 +" URI: http://eralston.tripod.com/navajo.png +" +" This color scheme uses a "navajo-white" background +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo" + +" looks good on Linux +"hi Normal ctermfg=Black guifg=Black guibg=#b39674 +"hi Normal ctermfg=Black guifg=Black guibg=NavajoWhite3 + +" slightly brighter for w32 +hi Normal ctermfg=Black guifg=Black guibg=#ba9c80 + +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi NonText term=bold ctermfg=DarkBlue cterm=bold gui=bold guifg=#808080 +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi ErrorMsg term=standout ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=Black ctermfg=White cterm=reverse guibg=White +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=DarkCyan ctermbg=Gray guibg=#808080 gui=bold guifg=black +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=LightRed guibg=#707070 +hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=#707070 +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=DarkMagenta +hi Visual term=reverse cterm=reverse gui=reverse guifg=#c0c0c0 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=Grey guibg=white +hi WarningMsg term=standout ctermfg=DarkRed gui=bold guifg=Red +hi WildMenu term=standout ctermfg=Black ctermbg=DarkYellow guifg=Black guibg=Yellow +hi Folded term=standout ctermfg=DarkBlue ctermbg=Gray guifg=Black guibg=NONE guifg=#907050 +hi FoldColumn term=standout ctermfg=DarkBlue ctermbg=Gray guifg=DarkBlue guibg=#c0c0c0 +hi DiffAdd term=bold ctermbg=DarkBlue guibg=White +hi DiffChange term=bold ctermbg=DarkMagenta guibg=#edb5cd +hi DiffDelete term=bold ctermfg=DarkBlue ctermbg=6 cterm=bold gui=bold guifg=LightBlue guibg=#f6e8d0 +hi DiffText term=reverse ctermbg=DarkRed cterm=bold gui=bold guibg=#ff8060 +hi Cursor gui=reverse guifg=#404010 guibg=white +hi lCursor guifg=bg guibg=fg +hi Match term=bold,reverse ctermbg=Yellow ctermfg=Blue cterm=bold,reverse gui=bold,reverse guifg=yellow guibg=blue + + +" Colors for syntax highlighting +hi Comment term=bold ctermfg=DarkBlue guifg=#181880 +hi Constant term=underline ctermfg=DarkRed guifg=#c00058 +hi Special term=bold ctermfg=DarkMagenta guifg=#404010 +hi Identifier term=underline ctermfg=DarkCyan cterm=NONE guifg=#106060 +hi Statement term=bold ctermfg=DarkRed cterm=bold gui=bold guifg=Brown +hi PreProc term=underline ctermfg=DarkMagenta guifg=DarkMagenta +hi Type term=underline ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Ignore ctermfg=Gray cterm=bold guifg=bg +hi Error term=reverse ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi Todo term=standout ctermfg=DarkBlue ctermbg=Yellow guifg=Blue guibg=Yellow + +" vim:set list et: diff --git a/.vim/colors/neon.vim b/.vim/colors/neon.vim new file mode 100644 index 0000000..d0ba309 --- /dev/null +++ b/.vim/colors/neon.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/25 Fri 16:23. +" version: 1.2 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "neon" + +hi Normal guifg=#f0f0f0 guibg=#303030 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#ffffa8 guibg=#808000 +" hi Search gui=NONE guifg=#b0ffb0 guibg=#008000 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#a0d0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#70ffc0 guibg=#8040ff +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c4c4c4 +hi StatusLineNC gui=NONE guifg=#707070 guibg=#c4c4c4 +hi VertSplit gui=NONE guifg=#707070 guibg=#c4c4c4 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff80c0 + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#70ffc0 guibg=#8040ff +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#006090 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#404040 + +" Other +hi Directory gui=NONE guifg=#c8c8ff guibg=NONE +hi LineNr gui=NONE guifg=#707070 guibg=NONE +hi NonText gui=BOLD guifg=#d84070 guibg=#383838 +hi SpecialKey gui=BOLD guifg=#8888ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#b0ffb0 guibg=#008000 +hi VisualNOS gui=NONE guifg=#ffe8c8 guibg=#c06800 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0c0 guibg=NONE +hi Constant gui=NONE guifg=#92d4ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#8000ff +hi Identifier gui=NONE guifg=#40f8f8 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#ffa8ff guibg=NONE +hi Special gui=NONE guifg=#ffc890 guibg=NONE +hi Statement gui=NONE guifg=#dcdc78 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff80d0 guibg=NONE +hi Type gui=NONE guifg=#60f0a8 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/.vim/colors/neverness.vim b/.vim/colors/neverness.vim new file mode 100644 index 0000000..450ea47 --- /dev/null +++ b/.vim/colors/neverness.vim @@ -0,0 +1,141 @@ +" NEVERNESS colour scheme +" Author: Yann GOLANSKI +" Version: 1.2 +" Last Change: 13 Jan 2010 +" url http://web.njit.edu/~kevin/rgb.txt.html + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'neverness' + +" Comments: grey +hi Comment ctermfg=DarkCyan guifg=#848484 guibg=#000000 gui=none + +" Constants: SkyBlue +hi Boolean ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none +hi Character ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none +hi Constant ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none +hi Float ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none +hi Number ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none +hi String ctermfg=Cyan guifg=#87ceeb guibg=#000000 gui=none + +" Identifier: SteelBlue1 +hi Identifier ctermfg=LightCyan guifg=#63b8ff guibg=#000000 gui=none +hi Function ctermfg=LightCyan guifg=#63b8ff guibg=#000000 gui=none + +" Statement: SteelBlue +hi Conditional ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Exception ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Keyword ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Label ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Operator ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Repeat ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold +hi Statement ctermfg=DarkBlue guifg=#4682b4 guibg=#000000 gui=bold + +" PreProc: DarkOrchid1 +hi PreProc ctermfg=DarkGreen guifg=#bf3eff guibg=#000000 gui=none +hi Include ctermfg=DarkGreen guifg=#bf3eff guibg=#000000 gui=none +hi Define ctermfg=DarkGreen guifg=#bf3eff guibg=#000000 gui=none +hi Macro ctermfg=DarkGreen guifg=#bf3eff guibg=#000000 gui=none +hi PreCondit ctermfg=DarkGreen guifg=#bf3eff guibg=#000000 gui=none + +" Type: orchid2 +hi Type ctermfg=DarkGreen guifg=#ee7ae9 guibg=#000000 gui=bold +hi StorageClass ctermfg=DarkGreen guifg=#ee7ae9 guibg=#000000 gui=bold +hi Structure ctermfg=DarkGreen guifg=#ee7ae9 guibg=#000000 gui=bold +hi Typedef ctermfg=DarkGreen guifg=#ee7ae9 guibg=#000000 gui=bold + +" Special: cyan2 +hi Special ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none +hi SpecialChar ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none +hi Tag ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none +hi SpecialComment ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none +hi Delimiter ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none +hi Debug ctermfg=DarkGray guifg=#00eeee guibg=#000000 gui=none + +" Underline: NavajoWhite2 +hi Underlined ctermfg=LightGray guifg=#eecfa1 guibg=#000000 gui=none + +" Ignore: black +hi Ignore ctermfg=LightGray guifg=#ffffff guibg=#000000 gui=none + +" Error: red +hi Error ctermfg=LightGray guifg=#ff0000 guibg=#232323 gui=bold + +" To do: SlateGray3 +hi Todo ctermfg=LightMagenta guifg=#9fb6cd guibg=#232323 gui=none + +" Spelling... +hi SpellBad ctermfg=DarkRed ctermbg=black +hi SpellCap ctermfg=DarkBlue ctermbg=black +hi SpellRare ctermfg=DarkYellow ctermbg=black +hi SpellLocal ctermfg=DarkGreen ctermbg=black + +" "set cursorline" and "set cursorcolumn" options. +hi lCursor guifg=#43705a guibg=#e6fff3 gui=none +hi CursorColumn guibg=#222222 gui=none +hi CursorLine guibg=#222222 gui=none + +" Line number. +"hi LineNr ctermfg=DarkMagenta guifg=#4682b4 guibg=#000000 gui=bold +hi LineNr ctermfg=DarkMagenta guifg=#2b506e guibg=#000000 gui=none + +" Normal colour: just white thank you. +hi Normal guifg=#ffffff guibg=#000000 gui=none + +" Others: These are "highlight-groups" and "highlight-default" in help section. +hi Cursor guifg=#43705a guibg=#e6fff3 gui=none +hi DiffAdd guifg=#e6fff3 guibg=#43705a gui=bold +hi DiffChange guifg=#e6fff3 guibg=#43705a gui=none +hi DiffDelete guifg=#e6fff3 guibg=#43705a gui=none +hi DiffText guifg=#000000 guibg=#e6fff3 gui=bold +hi Directory guifg=#e6fff3 guibg=#000000 gui=none +hi ErrorMsg guifg=#e6fff3 guibg=#61a181 gui=bold +hi FoldColumn guifg=#9bcfb5 guibg=#43705a gui=bold +hi Folded guifg=#9bcfb5 guibg=#43705a gui=bold +hi IncSearch guifg=#1d3026 guibg=#61a181 gui=bold +hi ModeMsg guifg=#4EEE94 guibg=#000000 gui=bold +hi MoreMsg guifg=#4EEE94 guibg=#000000 gui=bold +hi NonText guifg=#c0c0c0 guibg=#000000 gui=bold +hi Question guifg=#9bcfb5 guibg=#000000 gui=bold +hi Search guifg=#1d3026 guibg=#61a181 gui=bold +hi SpecialKey guifg=#9bcfb5 guibg=#000000 gui=none +"hi StatusLine guifg=#e6fff3 guibg=#61a181 gui=bold +"hi StatusLineNC guifg=#1d3026 guibg=#61a181 gui=bold +hi StatusLine guifg=#4EEE94 guibg=#333333 gui=none +hi StatusLineNC guifg=#4EEE94 guibg=#222222 gui=none +hi Title guifg=#e6fff3 guibg=#1d3026 gui=bold +hi VertSplit guifg=#61a181 guibg=#61a181 gui=none +hi Visual guifg=#e6fff3 guibg=#61a181 gui=none +hi VisualNOS guifg=#9bcfb5 guibg=#000000 gui=none +hi WarningMsg guifg=#BF3EFF guibg=#000000 gui=bold +hi WildMenu guifg=#43705a guibg=#e6fff3 gui=none + +" OTL +hi normal guifg=white guibg=black ctermfg=white ctermbg=black +hi VertSplit guifg=white guibg=black ctermfg=white ctermbg=black +hi Folded guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black +hi FoldColumn guifg=darkcyan guibg=bg ctermfg=cyan ctermbg=black + +hi def OL0 ctermfg=1 cterm=bold gui=bold guifg=#36648B term=reverse +hi def OL1 ctermfg=4 cterm=bold gui=bold guifg=#4682B4 term=reverse +hi def OL2 ctermfg=2 cterm=bold gui=bold guifg=#4F94CD term=reverse +hi def OL3 ctermfg=3 cterm=bold gui=bold guifg=#5CACEE term=reverse +hi def OL4 ctermfg=5 cterm=bold gui=bold guifg=#63B8FF term=reverse +hi def OL5 ctermfg=6 cterm=bold gui=bold guifg=#708090 term=reverse +hi def OL6 ctermfg=1 cterm=bold gui=bold guifg=#6C7B8B term=reverse +hi def OL7 ctermfg=4 cterm=bold gui=bold guifg=#9FB6CD term=reverse +hi def OL8 ctermfg=2 cterm=bold gui=bold guifg=#B9D3EE term=reverse +hi def OL9 ctermfg=3 cterm=bold gui=bold guifg=#C6E2FF term=reverse + + +" PMenu from Sam Grönblom +hi PmenuSel ctermfg=Black ctermbg=Cyan guifg=#000000 guibg=#87ceeb gui=none +hi Pmenu ctermfg=White ctermbg=DarkBlue guifg=#000000 guibg=#4682b4 gui=none +hi PmenuSbar ctermfg=White ctermbg=LightCyan guifg=#ffffff guibg=#848484 gui=none +hi PmenuThumb ctermfg=White ctermbg=DarkGreen guifg=#ffffff guibg=#87ceeb gui=none + diff --git a/.vim/colors/night.vim b/.vim/colors/night.vim new file mode 100644 index 0000000..8fb7f56 --- /dev/null +++ b/.vim/colors/night.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/13 Sun 16:59. +" version: 2.2 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "night" + +hi Normal guifg=#f0f0f8 guibg=#303040 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=#d000d0 +hi Search gui=BOLD guifg=#ffd0ff guibg=#c000c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffdd guibg=NONE +hi Question gui=BOLD guifg=#d0d050 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#000000 guibg=#e0e078 + +" Diff +hi DiffText gui=NONE guifg=#ffffff guibg=#40a060 +hi DiffChange gui=NONE guifg=#ffffff guibg=#007070 +hi DiffDelete gui=NONE guifg=#ffffff guibg=#40a0c0 +hi DiffAdd gui=NONE guifg=#ffffff guibg=#40a0c0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#9060c0 +hi FoldColumn gui=NONE guifg=#c0a0ff guibg=#404052 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#787894 guibg=NONE +hi NonText gui=BOLD guifg=#8040ff guibg=#383848 +hi SpecialKey gui=BOLD guifg=#60a0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=#9000a0 +hi Visual gui=NONE guifg=#ffffff guibg=#c08040 +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#c08040 + +" Syntax group +hi Comment gui=NONE guifg=#e0e070 guibg=NONE +hi Constant gui=NONE guifg=#f0f0f8 guibg=#4830a0 +hi Error gui=BOLD guifg=#ffffff guibg=#f00080 +hi Identifier gui=NONE guifg=#ffa0ff guibg=NONE +hi Ignore gui=NONE guifg=#303040 guibg=NONE +hi Number gui=BOLD guifg=#b8b8c8 guibg=NONE +hi PreProc gui=NONE guifg=#40ffa0 guibg=NONE +hi Special gui=NONE guifg=#40f8f8 guibg=#4830a0 +hi Statement gui=BOLD guifg=#00d8f8 guibg=NONE +hi Todo gui=BOLD guifg=#00ffe0 guibg=#0080a0 +hi Type gui=BOLD guifg=#bbaaff guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/.vim/colors/nightshimmer.vim b/.vim/colors/nightshimmer.vim new file mode 100644 index 0000000..53dce84 --- /dev/null +++ b/.vim/colors/nightshimmer.vim @@ -0,0 +1,111 @@ +" Vim color file +" Maintainer: Niklas Lindström +" Last Change: 2002-03-22 +" Version: 0.3 +" URI: http://localhost/ + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nightshimmer" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=Green guifg=White +highlight CursorIM gui=bold guifg=white guibg=Green1 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=Purple3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=grey6 guifg=Purple +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=Purple4 guifg=NONE +highlight SpecialKey guibg=#123A4A guifg=#426272 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 + +highlight Constant guifg=Cyan guibg=bg + "hi String gui=None guifg=Cyan guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=bg + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=orchid1 + "hi Function gui=None guifg=orchid1 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=LightGreen guibg=bg + highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=MediumPurple1 + "hi Include gui=None guifg=MediumPurple1 guibg=bg + "hi Define gui=None guifg=MediumPurple1g guibg=bg + "hi Macro gui=None guifg=MediumPurple1g guibg=bg + "hi PreCondit gui=None guifg=MediumPurple1g guibg=bg + +highlight Type gui=NONE guifg=LightBlue + "hi StorageClass gui=None guifg=LightBlue guibg=bg + "hi Structure gui=None guifg=LightBlue guibg=bg + "hi Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=White + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/no_quarter.vim b/.vim/colors/no_quarter.vim new file mode 100644 index 0000000..5c0ee20 --- /dev/null +++ b/.vim/colors/no_quarter.vim @@ -0,0 +1,134 @@ +" Vim color file +" Maintainer: Otavio Fernandes +" Last Change: 2010/01/03 Sun 22:56 +" Version: 1.0.6 +" +" ts=4 +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "no_quarter" + +" +" Vim Colors (( Default Options )) +" + +hi Normal guifg=grey90 guibg=#303030 + +hi Comment gui=NONE guifg=#647bcf guibg=NONE +hi Constant gui=NONE guifg=#b07050 guibg=NONE +hi Cursor gui=NONE guifg=#424242 guibg=green +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorLine gui=NONE guibg=gray25 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi Directory gui=NONE guifg=lightmagenta guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#8000ff +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#404040 +hi Folded gui=NONE guifg=#40f0f0 guibg=#006090 +hi Identifier gui=NONE guifg=#90c0c0 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi LineNr gui=NONE guifg=#707070 guibg=NONE +hi ModeMsg gui=BOLD guifg=#a0d0ff guibg=NONE +hi MoreMsg gui=NONE guifg=lightred guibg=bg +hi NonText gui=BOLD guifg=#707070 guibg=#383838 +hi OverLength gui=NONE guifg=fg guibg=#353535 +hi PreProc gui=NONE guifg=#c090c0 guibg=NONE +hi Question gui=BOLD guifg=#e8e800 guibg=NONE +hi Search gui=NONE guifg=bg guibg=grey60 +hi SignColumn gui=NONE guifg=darkyellow guibg=bg +hi Special gui=NONE guifg=#c090c0 guibg=NONE +hi SpecialKey gui=BOLD guifg=green guibg=NONE +hi Statement gui=NONE guifg=#c0c090 guibg=NONE +hi StatusLine gui=NONE guifg=#000000 guibg=#909090 +hi StatusLineNC gui=NONE guifg=#abac84 guibg=#404040 +hi Title gui=NONE guifg=darkcyan guibg=bg +hi Todo gui=BOLD guifg=#ff80d0 guibg=NONE +hi Type gui=NONE guifg=#60f0a8 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#707070 guibg=NONE +hi VertSplit gui=NONE guifg=#abac84 guibg=#404040 +hi Visual gui=NONE guifg=#b0ffb0 guibg=#008000 +hi VisualNOS gui=NONE guifg=#ffe8c8 guibg=#c06800 +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WildMenu gui=NONE guifg=#000000 guibg=#abac84 +hi htmlTagName gui=NONE guifg=grey70 guibg=bg +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff + +" +" Tag List +" + +hi MyTagListFileName gui=underline guifg=fg guibg=grey25 + +" +" Perl +" + +hi perlIdentifier gui=NONE guifg=#90c0c0 guibg=NONE +hi perlStatement gui=NONE guifg=#c0c090 guibg=NONE +hi perlStatementHash gui=NONE guifg=#c0c090 guibg=#404040 +hi perlStatementNew gui=NONE guifg=#c0c090 guibg=#424242 +hi perlMatchStartEnd gui=NONE guifg=#c0c090 guibg=#424242 +hi perlVarPlain gui=NONE guifg=#74c5c6 guibg=bg +hi perlVarNotInMatches gui=NONE guifg=#915555 guibg=bg +hi perlVarPlain2 gui=NONE guifg=#74c6a8 guibg=bg +hi perlFunctionName gui=NONE guifg=white guibg=bg +hi perlNumber gui=NONE guifg=#80ac7b guibg=bg +hi perlQQ gui=NONE guifg=fg guibg=#393939 +hi perlSpecialString gui=NONE guifg=#dc966b guibg=bg +hi perlSpecialMatch gui=NONE guifg=#c864c7 guibg=bg +hi perlSpecialBEOM gui=NONE guifg=fg guibg=#404040 +hi perlStringStartEnd gui=NONE guifg=#b07050 guibg=#353535 +hi perlShellCommand gui=NONE guibg=#c090c0 guibg=#424242 +hi perlOperator gui=NONE guifg=#c0c090 guibg=#404040 +hi perlLabel gui=NONE guifg=#c0c090 guibg=#404040 +hi perlControl gui=NONE guifg=#c0c090 guibg=#404040 +hi perlSharpBang gui=NONE guifg=#c0c090 guibg=#505050 +hi perlPackageDecl gui=NONE guifg=#80ac7b guibg=#404040 +hi perlStatementFiledesc gui=NONE guifg=#a2c090 guibg=bg +hi perlRepeat gui=NONE guifg=#c0b790 guibg=bg +hi perlStatementInclude gui=NONE guifg=#c0c090 guibg=#3b4038 +hi perlStatementControl gui=NONE guifg=#dcdb6b guibg=bg +hi perlStatementSub gui=NONE guifg=#c0c090 guibg=bg +hi perlVarSimpleMember gui=NONE guifg=#c0c090 guibg=bg +hi perlVarSimpleMemberName gui=NONE guifg=grey70 guibg=bg + +" ------------------------------------------------------------------------------------------------- +" perlStatementRegexp perlSpecialDollar perlSpecialStringU perlSubstitutionBracket +" perlTranslationBracket perlType perlStatementStorage perlStatementScalar +" perlStatementNumeric perlStatementList perlStatementIOfunc +" perlStatementVector perlStatementFiles perlStatementFlow perlStatementScope +" perlStatementProc perlStatementSocket perlStatementIPC perlStatementNetwork perlStatementPword +" perlStatementTime perlStatementMisc perlStatementPackage perlList perlMisc +" perlVarSlash perlMethod perlFiledescRead perlFiledescStatement perlFormatName +" perlFloat perlString perlSubstitutionSQ perlSubstitutionDQ +" perlSubstitutionSlash perlSubstitutionHash perlSubstitutionCurly perlSubstitutionPling +" perlTranslationSlash perlTranslationHash perlTranslationCurly perlHereDoc perlFormatField +" perlStringUnexpanded perlCharacter perlSpecialAscii perlConditional perlInclude +" perlStorageClass perlPackageRef perlFunctionPRef +" ------------------------------------------------------------------------------------------------- + +" +" Omni Menu +" + +hi Pmenu guifg=grey10 guibg=grey50 +hi PmenuSel guifg=#abac84 guibg=#404040 +hi PmenuSbar guibg=grey20 +hi PmenuThumb guifg=grey30 + +" +" Right Margin +" + +hi rightMargin guibg=#453030 + +" EOF diff --git a/.vim/colors/northland.vim b/.vim/colors/northland.vim new file mode 100644 index 0000000..cb2fd36 --- /dev/null +++ b/.vim/colors/northland.vim @@ -0,0 +1,149 @@ +" Vim color file - northland +" Maintainer: Luka Djigas +" URL: http://www.vim.org/scripts/script.php?script_id=2200 + +" Version: 0.2 +" Last Change: 24.11.2008. 19:13 +" ===== +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="northland" +" ===== :he highlight-groups +hi Normal gui=NONE guifg=White guibg=#001020 guisp=NONE + +hi StatusLine gui=NONE guifg=Black guibg=DarkRed +hi StatusLineNC gui=NONE guifg=Black guibg=DarkGray + hi VertSplit gui=NONE guifg=Black guibg=DarkGray + +hi Cursor gui=NONE guifg=White guibg=PaleTurquoise3 + hi CursorIM gui=NONE guifg=White guibg=PaleTurquoise3 +hi CursorLine guibg=#003853 + hi CursorColumn guibg=#003853 + +hi ErrorMsg gui=NONE guifg=Yellow guibg=NONE + hi WarningMsg gui=NONE guifg=Yellow guibg=NONE + hi MoreMsg gui=NONE guifg=Yellow guibg=NONE + hi Question gui=NONE guifg=Yellow guibg=NONE +hi ModeMsg gui=bold guifg=White guibg=DarkRed + +"hi Directory gui=NONE guifg=DarkGreen guibg=NONE +"hi Directory gui=bold guifg=#0475B9 "---lighter blue +hi Directory gui=bold guifg=#035587 "---darker blue + +hi Search gui=NONE guifg=White guibg=DarkRed + hi IncSearch gui=NONE guifg=White guibg=DarkRed + +hi NonText gui=NONE guifg=DarkRed guibg=NONE +hi SpecialKey gui=NONE guifg=#999999 guibg=NONE + +hi Pmenu gui=NONE guifg=Black guibg=DarkRed +hi PmenuSel gui=NONE guifg=#507080 guibg=Black +hi PmenuSbar guibg=#003853 +hi PmenuThumb gui=NONE guibg=Black +hi WildMenu gui=NONE guifg=#507080 guibg=Black + +hi MatchParen gui=bold guifg=DarkRed guibg=NONE + +hi LineNr gui=bold guifg=#507080 guibg=Black + +hi Visual gui=NONE guifg=NONE guibg=DarkRed +hi VisualNOS gui=underline guifg=NONE guibg=DarkRed + +hi DiffAdd gui=NONE guifg=White guibg=DarkGreen +hi DiffChange gui=NONE guifg=White guibg=DarkGray +hi DiffDelete gui=NONE guifg=White guibg=DarkRed +hi DiffText gui=NONE guifg=White guibg=NONE + +hi Folded gui=bold guifg=DarkGreen guibg=Black +hi FoldColumn gui=NONE guifg=#507080 guibg=Black +hi SignColumn gui=bold guifg=DarkRed guibg=Black + +hi SpellBad gui=undercurl guisp=Red +hi SpellCap gui=undercurl guisp=White +hi SpellLocal gui=undercurl guisp=Orange + hi SpellRare gui=undercurl guisp=Orange + +hi TabLine gui=NONE guifg=#507080 guibg=Black +hi TabLineSel gui=bold guifg=Black guibg=#507080 +hi TabLineFill gui=NONE guifg=White guibg=Black + +hi Title gui=bold guifg=#507080 guibg=NONE + +"hi Menu +"hi Scrollbar +"hi Tooltip +"hi User1 ... User9 +" ===== :he group-name +hi Comment gui=italic guifg=DarkGray +"*Comment any comment +"hi Constant gui=none guifg=#0475B9 "---lighter blue +hi Constant gui=none guifg=#035587 "---darker blue +"*Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 +"hi Identifier gui=bold,italic guifg=#FB000A "---lighter +hi Identifier gui=bold,italic guifg=#BC0007 "---darker +"*Identifier any variable name +" Function function name (also: methods for classes) +"hi Statement gui=bold guifg=#FF9500 "---lighter +hi Statement gui=bold guifg=#BF6F00 "---darker +"*Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw +"hi PreProc gui=bold,italic guifg=#640A9B "--- +"hi PreProc gui=bold,italic guifg=#576D02 "--- +hi PreProc gui=bold,italic guifg=#AD6141 +"*PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. +"hi Type gui=none guifg=#14AE00 "---lighter +hi Type gui=none guifg=#0F8200 "---darker +"*Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef +"hi! link Special Constant +hi! link Special Type +"*Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements +hi clear Underlined +"*Underlined text that stands out, HTML links +hi! link Ignore Constant +"*Ignore left blank, hidden +hi Error gui=bold guifg=Black guibg=Yellow +"*Error any erroneous construct +hi! link Todo LineNr +"*Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" ===== fortran +hi fortranUnitHeader gui=bold guifg=Purple +hi fortranType gui=none guifg=#0F8200 +hi! link fortranTypeR fortranType +hi! link fortranStructure fortranType +hi! link fortranOperator Normal "/// +hi! link fortranNumber Normal "/// + + + +hi fortranLabelNumber guifg=DarkRed + + + +"hi fortranTodo guifg=Black guibg=#507080 +"hi fortranContinueMark guifg=White guibg=DarkRed diff --git a/.vim/colors/nuvola.vim b/.vim/colors/nuvola.vim new file mode 100644 index 0000000..f9a608a --- /dev/null +++ b/.vim/colors/nuvola.vim @@ -0,0 +1,107 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Dr. J. Pfefferl +" Source: $Source: /MISC/projects/cvsroot/user/pfefferl/vim/colors/nuvola.vim,v $ +" Id: $Id: nuvola.vim,v 1.14 2003/08/11 14:03:28 pfefferl Exp $ +" Last Change: $Date: 2003/08/11 14:03:28 $ + +" Intro {{{1 +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nuvola" + +" Normal {{{1 +hi Normal ctermfg=black ctermbg=NONE guifg=black guibg=#F9F5F9 + +" Search {{{1 +hi IncSearch cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=UNDERLINE guifg=Black guibg=#FFE568 +hi Search term=reverse cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=NONE guifg=Black guibg=#FFE568 + +" Messages {{{1 +hi ErrorMsg gui=BOLD guifg=#EB1513 guibg=NONE +hi! link WarningMsg ErrorMsg +hi ModeMsg gui=BOLD guifg=#0070ff guibg=NONE +hi MoreMsg guibg=NONE guifg=seagreen +hi! link Question MoreMsg + +" Split area {{{1 +hi StatusLine term=BOLD,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=BOLD guibg=#56A0EE guifg=white +hi StatusLineNC gui=NONE guibg=#56A0EE guifg=#E9E9F4 +hi! link VertSplit StatusLineNC +hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff {{{1 +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi! link DiffAdd DiffDelete + +" Cursor {{{1 +hi Cursor gui=none guifg=black guibg=orange +"hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold {{{1 +hi Folded gui=NONE guibg=#B5EEB5 guifg=black +"hi FoldColumn gui=NONE guibg=#9FD29F guifg=black +hi! link FoldColumn Folded + +" Other {{{1 +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#EFEFF7 +"hi SpecialKey gui=NONE guifg=#A35B00 guibg=NONE +hi Title gui=BOLD guifg=#1014AD guibg=NONE +hi Visual term=reverse ctermfg=yellow ctermbg=black gui=NONE guifg=Black guibg=#BDDFFF +hi VisualNOS term=reverse ctermfg=yellow ctermbg=black gui=UNDERLINE guifg=Black guibg=#BDDFFF + +" Syntax group {{{1 +hi Comment term=BOLD ctermfg=darkgray guifg=#3F6B5B +hi Constant term=UNDERLINE ctermfg=red guifg=#B91F49 +hi Error term=REVERSE ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Identifier term=UNDERLINE ctermfg=Blue guifg=Blue +hi Number term=UNDERLINE ctermfg=red gui=NONE guifg=#00C226 +hi PreProc term=UNDERLINE ctermfg=darkblue guifg=#1071CE +hi Special term=BOLD ctermfg=darkmagenta guifg=red2 +hi Statement term=BOLD ctermfg=DarkRed gui=NONE guifg=#F06F00 +hi Tag term=BOLD ctermfg=DarkGreen guifg=DarkGreen +hi Todo term=STANDOUT ctermbg=Yellow ctermfg=blue guifg=Blue guibg=Yellow +hi Type term=UNDERLINE ctermfg=Blue gui=NONE guifg=Blue +hi! link String Constant +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Function Identifier +hi! link Conditional Statement +hi! link Repeat Statement +hi! link Label Statemengreen +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +" HTML {{{1 +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" vim600:foldmethod=marker diff --git a/.vim/colors/oceanblack.vim b/.vim/colors/oceanblack.vim new file mode 100644 index 0000000..e6e6be3 --- /dev/null +++ b/.vim/colors/oceanblack.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Chris Vertonghen +" Last Change: 2003-03-25 +" Version: 0.1 +" based on Tom Regner's oceanblue.vim + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanblack" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=None guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +"highlight LineNr guibg=grey6 guifg=LightSkyBlue3 +highlight LineNr guibg=grey6 guifg=#777777 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#000000 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#000000 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 +highlight Comment gui=None guifg=#7C7268 + +highlight Constant guifg=cyan3 guibg=bg +"hi String gui=None guifg=turquoise2 guibg=bg +hi String gui=None guifg=#80a0ff guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + "highlight Number gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=black + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=LightSkyBlue3 +hi Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=None guifg=LightGreen guibg=bg + highlight Exception gui=None guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=LightSteelBlue3 guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +hi StorageClass gui=None guifg=LightBlue guibg=bg +hi Structure gui=None guifg=LightBlue guibg=bg +hi Typedef gui=None guifg=LightBlue guibg=bg + +"highlight Special gui=bold guifg=aquamarine3 +highlight Special guifg=#999999 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/oceandeep.vim b/.vim/colors/oceandeep.vim new file mode 100644 index 0000000..08923d0 --- /dev/null +++ b/.vim/colors/oceandeep.vim @@ -0,0 +1,140 @@ +" Vim color file +" Maintainer: Tom Regner +" Last Change: +" +" 2007-10-16 change by Alexei Alexandrov +" - highlight CursorColumn +" +" 2007-08-20 change by Diederick Niehorster +" - highlight CursorLine +" +" 2007-02-05 +" - included changes from Keffin Barnaby +" (vim>=7.0 PMenu and Spellchecking) +" +" 2006-09-06 +" - changed String to DarkCyan, Macro to DarkRed +" +" 2006-09-05 +" - more console-colors +" - added console-colors, clean-up +" +" Version: 1.2.5 +" URL: http://vim.sourceforge.net/script.php?script_id=368 + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceandeep" + +"""" GUI + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight CursorLine gui=None guibg=#003853 +highlight CursorColumn gui=None guibg=#003853 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=LightSkyBlue3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#103040 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + +highlight Comment gui=None guifg=#507080 +highlight Constant guifg=cyan3 guibg=bg +highlight String gui=None guifg=turquoise2 guibg=bg +highlight Number gui=None guifg=Cyan guibg=bg +highlight Boolean gui=bold guifg=Cyan guibg=bg +highlight Identifier guifg=LightSkyBlue3 +highlight Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen +highlight Conditional gui=None guifg=LightGreen guibg=bg +highlight Repeat gui=None guifg=SeaGreen2 guibg=bg +highlight Operator gui=None guifg=Chartreuse guibg=bg +highlight Keyword gui=bold guifg=LightGreen guibg=bg +highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +highlight Include gui=None guifg=LightSteelBlue3 guibg=bg +highlight Define gui=None guifg=LightSteelBlue2 guibg=bg +highlight Macro gui=None guifg=LightSkyBlue3 guibg=bg +highlight PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +highlight StorageClass gui=None guifg=LightBlue guibg=bg +highlight Structure gui=None guifg=LightBlue guibg=bg +highlight Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=aquamarine3 +highlight Underlined gui=underline guifg=honeydew4 guibg=bg +highlight Ignore guifg=#204050 +highlight Error guifg=LightYellow guibg=FireBrick +highlight Todo guifg=Cyan guibg=#507080 +if v:version >= 700 + highlight PMenu gui=bold guibg=LightSkyBlue4 guifg=honeydew2 + highlight PMenuSel gui=bold guibg=DarkGreen guifg=honeydew2 + highlight PMenuSbar gui=bold guibg=LightSkyBlue4 + highlight PMenuThumb gui=bold guibg=DarkGreen + highlight SpellBad gui=undercurl guisp=Red + highlight SpellRare gui=undercurl guisp=Orange + highlight SpellLocal gui=undercurl guisp=Orange + highlight SpellCap gui=undercurl guisp=Yellow +endif + +""" Console +if v:version >= 700 + highlight PMenu cterm=bold ctermbg=DarkGreen ctermfg=Gray + highlight PMenuSel cterm=bold ctermbg=Yellow ctermfg=Gray + highlight PMenuSbar cterm=bold ctermbg=DarkGreen + highlight PMenuThumb cterm=bold ctermbg=Yellow + highlight SpellBad ctermbg=Red + highlight SpellRare ctermbg=Red + highlight SpellLocal ctermbg=Red + highlight SpellCap ctermbg=Yellow +endif + +highlight Normal ctermfg=Gray ctermbg=None +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=DarkGray +highlight StatusLine ctermfg=Blue ctermbg=White +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE +highlight Macro ctermfg=DarkRed +highlight Identifier ctermfg=DarkYellow +highlight Structure ctermfg=DarkGreen +highlight String ctermfg=DarkCyan + +" vim: sw=4 ts=4 et diff --git a/.vim/colors/oceanlight.vim b/.vim/colors/oceanlight.vim new file mode 100644 index 0000000..08fb22e --- /dev/null +++ b/.vim/colors/oceanlight.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Håkan Wikström +" Last Change: 2005-01-06 +" Version: 0.1 +" URL: +" Originally based on oceandeep by Tom Regner (Vim script #368) + + +""" Init +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanlight" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=none guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=SeaGreen guibg=bg +highlight DiffAdd gui=None guifg=SteelBlue guibg=LightGray +highlight DiffChange gui=None guifg=fg guibg=CadetBlue +highlight DiffDelete gui=None guifg=LightGray guibg=SteelBlue +highlight DiffText gui=none guifg=fg guibg=bg +highlight ErrorMsg guifg=FireBrick guibg=bg +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=none guibg=LightSteelBlue guifg=SteelBlue +highlight FoldColumn gui=none guibg=LightSteelBLue guifg=SteelBlue +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=none guibg=#d3d3d3 guifg=#5daf83 +highlight ModeMsg guibg=CadetBlue guifg=LightGrey +highlight MoreMsg gui=none guifg=CadetBlue guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#d3d3d3 guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#d3d3d3 guifg=#5daf83 +endif +highlight Normal gui=None guibg=#f5f5f5 guifg=DimGray +highlight Question gui=none guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=SlateGray2 guifg=NONE +highlight SpecialKey guibg=LightGray guifg=CadetBlue +highlight StatusLine gui=none guibg=SlateGrey guifg=LightGrey +highlight StatusLineNC gui=NONE guibg=LightGrey guifg=SlateGrey +highlight Title gui=none guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=slategray4 guifg=SlateGray2 +highlight VisualNOS gui=none,underline guifg=fg guibg=bg +highlight WarningMsg gui=none guifg=FireBrick1 guibg=bg +highlight WildMenu gui=none guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=None guifg=LightSteelBlue + +highlight Constant guifg=#483d8b guibg=bg +hi String gui=None guifg=MediumAquamarine guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=MediumSeaGreen guibg=bg + highlight Boolean gui=none guifg=DarkSeaGreen guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=CornflowerBlue +hi Function gui=None guifg=DarkSeaGreen guibg=bg + +highlight Statement gui=NONE guifg=SeaGreen + highlight Conditional gui=None guifg=#5daf83 guibg=bg + highlight Repeat gui=None guifg=#5daf83 guibg=bg + "hi Label gui=None guifg=seagreen guibg=bg + highlight Operator gui=None guifg=LightSlateBlue guibg=bg + highlight Keyword gui=none guifg=SeaGreen guibg=bg + highlight Exception gui=none guifg=SeaGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=SteelBlue guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=SteelBlue +hi StorageClass gui=None guifg=SteelBlue guibg=bg +hi Structure gui=None guifg=SteelBlue guibg=bg +hi Typedef gui=None guifg=SteelBlue guibg=bg + +highlight Special gui=none guifg=aquamarine3 + "hi SpecialChar gui=none guifg=White guibg=bg + "hi Tag gui=none guifg=White guibg=bg + "hi Delimiter gui=none guifg=White guibg=bg + "hi SpecialComment gui=none guifg=White guibg=bg + "hi Debug gui=none guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=FireBrick gui=Bold guibg=bg + +highlight Todo guifg=LightSkyBlue guibg=SlateGray diff --git a/.vim/colors/olive.vim b/.vim/colors/olive.vim new file mode 100644 index 0000000..8935c52 --- /dev/null +++ b/.vim/colors/olive.vim @@ -0,0 +1,119 @@ +" Vim color file +" Maintainer: Charles +" Last Change: 11 June 2004 +" URL: http:// + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="olive" + +"======================================================= +hi Normal guifg=#D9D9C3 guibg=#333300 +hi Cursor guifg=black guibg=white +hi CursorIM guifg=black guibg=green +hi Directory guifg=gold gui=underline +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=indianred +"hi VertSplit guifg=gold +hi Folded guifg=khaki guibg=darkolivegreen gui=underline +hi FoldColumn guifg=khaki guibg=darkolivegreen gui=none +hi IncSearch guifg=black guibg=khaki +hi LineNr guifg=gray80 +hi ModeMsg guifg=greenyellow gui=bold +hi MoreMsg guifg=greenyellow gui=bold +"hi NonText guibg=black +hi Question guifg=yellowgreen gui=NONE +hi Search guifg=black guibg=khaki gui=NONE +hi SpecialKey guifg=black guibg=darkkhaki +hi StatusLine guifg=palegoldenrod guibg=#808000 gui=none +hi StatusLineNC guifg=gray guibg=darkolivegreen gui=none +hi Title guifg=gold gui=bold +hi Visual guifg=black guibg=darkkhaki gui=NONE +"hi VisualNOS +hi WarningMsg guifg=palevioletred +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + + +" ============================================================ +" syntax highlighting groups +" ============================================================ +hi Comment guifg=darkkhaki guibg=#4C4C00 gui=underline + +hi Constant guifg=navajowhite +hi String guifg=greenyellow +"hi Character +"hi Number +"hi Boolean +"hi Float + +hi Identifier guifg=lightsteelblue +" hi Function guibg=gray60 + +hi Statement guifg=darkseagreen gui=bold +"hi Conditional +"hi Repeat +"hi Label +hi Operator guifg=gold +"hi Keyword +"hi Exception + +hi PreProc guifg=sandybrown gui=bold +"hi Include +"hi Define +"hi Macro +"hi PreCondit + +hi Type guifg=goldenrod +"hi StorageClass +"hi Structure +"hi Typedef + +hi Special guifg=navajowhite gui=underline +"hi SpecialChar +"hi Tag +"hi Delimiter +"hi SpecialComment +"hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=black + +hi Error guifg=white + +hi Todo guifg=black guibg=gold gui=NONE + +" ================================================================= +" Language specific color +" ================================================================= + +" C / C++ +hi cIncluded guifg=yellowgreen + +" HTML +hi Title guifg=palegoldenrod + +" VIM +hi VimError guifg=red gui=bold +hi VimOption guifg=gold + +" TeX / LaTeX +hi texSection guifg=greenyellow +" tex between { and } +hi texMatcher guifg=yellowgreen gui=none +hi texMath gui=none + diff --git a/.vim/colors/papayawhip.vim b/.vim/colors/papayawhip.vim new file mode 100644 index 0000000..5f8725a --- /dev/null +++ b/.vim/colors/papayawhip.vim @@ -0,0 +1,31 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" A nice light background (you guessed it, PapayaWhip) that's relatively easy +" on the eyes yet very usable. Not nearly as "puffy" as peachpuff. +" +" Only values that differ from defaults are specified. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "PapayaWhip" + +hi Normal guifg=#3f1f1f guibg=PapayaWhip ctermbg=Gray ctermfg=Black +hi NonText guibg=Moccasin guifg=Brown ctermfg=Brown +hi LineNr guibg=Moccasin +hi DiffDelete guibg=LightRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=LightGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=LightCyan3 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=Gray80 ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=MediumBlue +hi Constant guifg=DeepPink +hi PreProc guifg=DarkMagenta +hi StatusLine guibg=White guifg=#5f3705 cterm=bold ctermbg=Brown ctermfg=White +hi StatusLineNC gui=None guibg=Gray +hi VertSplit gui=None guibg=Gray +hi Identifier guifg=#005f5f +hi Statement ctermfg=DarkRed diff --git a/.vim/colors/peaksea.vim b/.vim/colors/peaksea.vim new file mode 100644 index 0000000..359a9ac --- /dev/null +++ b/.vim/colors/peaksea.vim @@ -0,0 +1,597 @@ +" Vim color file --- psc (peak sea color) "Lite version" +" Maintainer: Pan, Shi Zhu +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" Last Change: 31 Oct 2008 +" Version: 3.3 +" +" Comments and e-mails are welcomed, thanks. +" +" The peaksea color is simply a colorscheme with the default settings of +" the original ps_color. Lite version means there's no custom settings +" and fancy features such as integration with reloaded.vim +" +" The full version of ps_color.vim will be maintained until Vim 8. +" By then there will be only the lite version: peaksea.vim +" +" Note: Please set the background option in your .vimrc and/or .gvimrc +" +" It is much better *not* to set 'background' option inside +" a colorscheme file. because ":set background" inside a colorscheme +" may cause colorscheme be sourced twice or in the worst case result an +" infinite loop. +" +" Color Scheme Overview: +" :ru syntax/hitest.vim +" +" Relevant Help: +" :h highlight-groups +" :h psc-cterm-color-table +" +" Colors Order: +" #rrggbb +" + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = expand(":t:r") + +" I don't want to abuse folding, but here folding is used to avoid confusion. +if &background=='light' + " for background=light {{{2 + " LIGHT COLOR DEFINE START + + hi Normal guifg=#000000 guibg=#e0e0e0 gui=NONE + hi Search guifg=NONE guibg=#f8f8f8 gui=NONE + hi Visual guifg=NONE guibg=#a6caf0 gui=NONE + hi Cursor guifg=#f0f0f0 guibg=#008000 gui=NONE + " The idea of CursorIM is pretty good, however, the feature is still buggy + " in the current version (Vim 7.0). + " The following line will be kept commented until the bug fixed. + " + " hi CursorIM guifg=#f0f0f0 guibg=#800080 + hi Special guifg=#907000 guibg=NONE gui=NONE + hi Comment guifg=#606000 guibg=NONE gui=NONE + hi Number guifg=#907000 guibg=NONE gui=NONE + hi Constant guifg=#007068 guibg=NONE gui=NONE + hi StatusLine guifg=fg guibg=#a6caf0 gui=NONE + hi LineNr guifg=#686868 guibg=NONE gui=NONE + hi Question guifg=fg guibg=#d0d090 gui=NONE + hi PreProc guifg=#009030 guibg=NONE gui=NONE + hi Statement guifg=#2060a8 guibg=NONE gui=NONE + hi Type guifg=#0850a0 guibg=NONE gui=NONE + hi Todo guifg=#800000 guibg=#e0e090 gui=NONE + " NOTE THIS IS IN THE WARM SECTION + hi Error guifg=#c03000 guibg=NONE gui=NONE + hi Identifier guifg=#a030a0 guibg=NONE gui=NONE + hi ModeMsg guifg=fg guibg=#b0b0e0 gui=NONE + hi VisualNOS guifg=fg guibg=#b0b0e0 gui=NONE + hi SpecialKey guifg=#1050a0 guibg=NONE gui=NONE + hi NonText guifg=#002090 guibg=#d0d0d0 gui=NONE + hi Directory guifg=#a030a0 guibg=NONE gui=NONE + hi ErrorMsg guifg=fg guibg=#f0b090 gui=NONE + hi MoreMsg guifg=#489000 guibg=NONE gui=NONE + hi Title guifg=#a030a0 guibg=NONE gui=NONE + hi WarningMsg guifg=#b02000 guibg=NONE gui=NONE + hi WildMenu guifg=fg guibg=#d0d090 gui=NONE + hi Folded guifg=NONE guibg=#b0e0b0 gui=NONE + hi FoldColumn guifg=fg guibg=#90e090 gui=NONE + hi DiffAdd guifg=NONE guibg=#b0b0e0 gui=NONE + hi DiffChange guifg=NONE guibg=#e0b0e0 gui=NONE + hi DiffDelete guifg=#002090 guibg=#d0d0d0 gui=NONE + hi DiffText guifg=NONE guibg=#c0e080 gui=NONE + hi SignColumn guifg=fg guibg=#90e090 gui=NONE + + hi IncSearch guifg=#f0f0f0 guibg=#806060 gui=NONE + hi StatusLineNC guifg=fg guibg=#c0c0c0 gui=NONE + hi VertSplit guifg=fg guibg=#c0c0c0 gui=NONE + hi Underlined guifg=#6a5acd guibg=NONE gui=underline + hi Ignore guifg=bg guibg=NONE + " NOTE THIS IS IN THE WARM SECTION + if v:version >= 700 + if has('spell') + hi SpellBad guifg=NONE guibg=NONE guisp=#c03000 + hi SpellCap guifg=NONE guibg=NONE guisp=#2060a8 + hi SpellRare guifg=NONE guibg=NONE guisp=#a030a0 + hi SpellLocal guifg=NONE guibg=NONE guisp=#007068 + endif + hi Pmenu guifg=fg guibg=#e0b0e0 + hi PmenuSel guifg=#f0f0f0 guibg=#806060 gui=NONE + hi PmenuSbar guifg=fg guibg=#c0c0c0 gui=NONE + hi PmenuThumb guifg=fg guibg=#c0e080 gui=NONE + hi TabLine guifg=fg guibg=#c0c0c0 gui=NONE + hi TabLineFill guifg=fg guibg=#c0c0c0 gui=NONE + hi TabLineSel guifg=fg guibg=NONE gui=NONE + hi CursorColumn guifg=NONE guibg=#f0b090 + hi CursorLine guifg=NONE guibg=NONE gui=underline + hi MatchParen guifg=NONE guibg=#c0e080 + endif + + " LIGHT COLOR DEFINE END + + " Vim 7 added stuffs + if v:version >= 700 + hi Ignore gui=NONE + + " the gui=undercurl guisp could only support in Vim 7 + if has('spell') + hi SpellBad gui=undercurl + hi SpellCap gui=undercurl + hi SpellRare gui=undercurl + hi SpellLocal gui=undercurl + endif + hi TabLine gui=underline + hi TabLineFill gui=underline + hi CursorLine gui=underline + endif + + " For reversed stuffs, clear the reversed prop and set the bold prop again + hi IncSearch gui=bold + hi StatusLine gui=bold + hi StatusLineNC gui=bold + hi VertSplit gui=bold + hi Visual gui=bold + + " Enable the bold property + hi Question gui=bold + hi DiffText gui=bold + hi Statement gui=bold + hi Type gui=bold + hi MoreMsg gui=bold + hi ModeMsg gui=bold + hi NonText gui=bold + hi Title gui=bold + hi DiffDelete gui=bold + hi TabLineSel gui=bold + + " gui define for background=light end here + + if &t_Co==256 + " 256color light terminal support here + + hi Normal ctermfg=16 ctermbg=254 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi Normal ctermfg=16 ctermbg=NONE cterm=NONE + hi Search ctermfg=NONE ctermbg=231 cterm=NONE + hi Visual ctermfg=NONE ctermbg=153 cterm=NONE + hi Cursor ctermfg=255 ctermbg=28 cterm=NONE + " hi CursorIM ctermfg=255 ctermbg=90 + hi Special ctermfg=94 ctermbg=NONE cterm=NONE + hi Comment ctermfg=58 ctermbg=NONE cterm=NONE + hi Number ctermfg=94 ctermbg=NONE cterm=NONE + hi Constant ctermfg=23 ctermbg=NONE cterm=NONE + hi StatusLine ctermfg=fg ctermbg=153 cterm=NONE + hi LineNr ctermfg=242 ctermbg=NONE cterm=NONE + hi Question ctermfg=fg ctermbg=186 cterm=NONE + hi PreProc ctermfg=29 ctermbg=NONE cterm=NONE + hi Statement ctermfg=25 ctermbg=NONE cterm=NONE + hi Type ctermfg=25 ctermbg=NONE cterm=NONE + hi Todo ctermfg=88 ctermbg=186 cterm=NONE + " NOTE THIS IS IN THE WARM SECTION + hi Error ctermfg=130 ctermbg=NONE cterm=NONE + hi Identifier ctermfg=133 ctermbg=NONE cterm=NONE + hi ModeMsg ctermfg=fg ctermbg=146 cterm=NONE + hi VisualNOS ctermfg=fg ctermbg=146 cterm=NONE + hi SpecialKey ctermfg=25 ctermbg=NONE cterm=NONE + hi NonText ctermfg=18 ctermbg=252 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi NonText ctermfg=18 ctermbg=NONE cterm=NONE + hi Directory ctermfg=133 ctermbg=NONE cterm=NONE + hi ErrorMsg ctermfg=fg ctermbg=216 cterm=NONE + hi MoreMsg ctermfg=64 ctermbg=NONE cterm=NONE + hi Title ctermfg=133 ctermbg=NONE cterm=NONE + hi WarningMsg ctermfg=124 ctermbg=NONE cterm=NONE + hi WildMenu ctermfg=fg ctermbg=186 cterm=NONE + hi Folded ctermfg=NONE ctermbg=151 cterm=NONE + hi FoldColumn ctermfg=fg ctermbg=114 cterm=NONE + hi DiffAdd ctermfg=NONE ctermbg=146 cterm=NONE + hi DiffChange ctermfg=NONE ctermbg=182 cterm=NONE + hi DiffDelete ctermfg=18 ctermbg=252 cterm=NONE + hi DiffText ctermfg=NONE ctermbg=150 cterm=NONE + hi SignColumn ctermfg=fg ctermbg=114 cterm=NONE + + hi IncSearch ctermfg=255 ctermbg=95 cterm=NONE + hi StatusLineNC ctermfg=fg ctermbg=250 cterm=NONE + hi VertSplit ctermfg=fg ctermbg=250 cterm=NONE + hi Underlined ctermfg=62 ctermbg=NONE cterm=underline + hi Ignore ctermfg=bg ctermbg=NONE + " NOTE THIS IS IN THE WARM SECTION + if v:version >= 700 + if has('spell') + if 0 + " ctermsp is not supported in Vim7, we ignore it. + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=130 + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=25 + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=133 + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=23 + else + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE + endif + endif + hi Pmenu ctermfg=fg ctermbg=182 + hi PmenuSel ctermfg=255 ctermbg=95 cterm=NONE + hi PmenuSbar ctermfg=fg ctermbg=250 cterm=NONE + hi PmenuThumb ctermfg=fg ctermbg=150 cterm=NONE + hi TabLine ctermfg=fg ctermbg=250 cterm=NONE + hi TabLineFill ctermfg=fg ctermbg=250 cterm=NONE + hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE + hi CursorColumn ctermfg=NONE ctermbg=216 + hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline + hi MatchParen ctermfg=NONE ctermbg=150 + endif + + hi TabLine cterm=underline + hi TabLineFill cterm=underline + hi CursorLine cterm=underline + + " For reversed stuffs, clear the reversed prop and set the bold prop again + hi IncSearch cterm=bold + hi StatusLine cterm=bold + hi StatusLineNC cterm=bold + hi VertSplit cterm=bold + hi Visual cterm=bold + + hi NonText cterm=bold + hi Question cterm=bold + hi Title cterm=bold + hi DiffDelete cterm=bold + hi DiffText cterm=bold + hi Statement cterm=bold + hi Type cterm=bold + hi MoreMsg cterm=bold + hi ModeMsg cterm=bold + hi TabLineSel cterm=bold + + hi lCursor ctermfg=bg ctermbg=fg cterm=NONE + endif " t_Co==256 + " }}}2 +elseif &background=='dark' + " for background=dark {{{2 + " DARK COLOR DEFINE START + + hi Normal guifg=#d0d0d0 guibg=#202020 gui=NONE + hi Comment guifg=#d0d090 guibg=NONE gui=NONE + hi Constant guifg=#80c0e0 guibg=NONE gui=NONE + hi Number guifg=#e0c060 guibg=NONE gui=NONE + hi Identifier guifg=#f0c0f0 guibg=NONE gui=NONE + hi Statement guifg=#c0d8f8 guibg=NONE gui=NONE + hi PreProc guifg=#60f080 guibg=NONE gui=NONE + hi Type guifg=#b0d0f0 guibg=NONE gui=NONE + hi Special guifg=#e0c060 guibg=NONE gui=NONE + hi Error guifg=#f08060 guibg=NONE gui=NONE + hi Todo guifg=#800000 guibg=#d0d090 gui=NONE + hi Search guifg=NONE guibg=#800000 gui=NONE + hi Visual guifg=#000000 guibg=#a6caf0 gui=NONE + hi Cursor guifg=#000000 guibg=#00f000 gui=NONE + " NOTE THIS IS IN THE COOL SECTION + " hi CursorIM guifg=#000000 guibg=#f000f0 gui=NONE + hi StatusLine guifg=#000000 guibg=#a6caf0 gui=NONE + hi LineNr guifg=#b0b0b0 guibg=NONE gui=NONE + hi Question guifg=#000000 guibg=#d0d090 gui=NONE + hi ModeMsg guifg=fg guibg=#000080 gui=NONE + hi VisualNOS guifg=fg guibg=#000080 gui=NONE + hi SpecialKey guifg=#b0d0f0 guibg=NONE gui=NONE + hi NonText guifg=#6080f0 guibg=#101010 gui=NONE + hi Directory guifg=#80c0e0 guibg=NONE gui=NONE + hi ErrorMsg guifg=#d0d090 guibg=#800000 gui=NONE + hi MoreMsg guifg=#c0e080 guibg=NONE gui=NONE + hi Title guifg=#f0c0f0 guibg=NONE gui=NONE + hi WarningMsg guifg=#f08060 guibg=NONE gui=NONE + hi WildMenu guifg=#000000 guibg=#d0d090 gui=NONE + hi Folded guifg=NONE guibg=#004000 gui=NONE + hi FoldColumn guifg=#e0e0e0 guibg=#008000 gui=NONE + hi DiffAdd guifg=NONE guibg=#000080 gui=NONE + hi DiffChange guifg=NONE guibg=#800080 gui=NONE + hi DiffDelete guifg=#6080f0 guibg=#202020 gui=NONE + hi DiffText guifg=#000000 guibg=#c0e080 gui=NONE + hi SignColumn guifg=#e0e0e0 guibg=#008000 gui=NONE + hi IncSearch guifg=#000000 guibg=#d0d0d0 gui=NONE + hi StatusLineNC guifg=#000000 guibg=#c0c0c0 gui=NONE + hi VertSplit guifg=#000000 guibg=#c0c0c0 gui=NONE + hi Underlined guifg=#80a0ff guibg=NONE gui=underline + hi Ignore guifg=#000000 guibg=NONE + " NOTE THIS IS IN THE COOL SECTION + if v:version >= 700 + if has('spell') + " the guisp= could only support in Vim 7 + hi SpellBad guifg=NONE guibg=NONE guisp=#f08060 + hi SpellCap guifg=NONE guibg=NONE guisp=#6080f0 + hi SpellRare guifg=NONE guibg=NONE guisp=#f0c0f0 + hi SpellLocal guifg=NONE guibg=NONE guisp=#c0d8f8 + endif + hi Pmenu guifg=fg guibg=#800080 + hi PmenuSel guifg=#000000 guibg=#d0d0d0 gui=NONE + hi PmenuSbar guifg=fg guibg=#000080 gui=NONE + hi PmenuThumb guifg=fg guibg=#008000 gui=NONE + hi TabLine guifg=fg guibg=#008000 gui=NONE + hi TabLineFill guifg=fg guibg=#008000 gui=NONE + hi TabLineSel guifg=fg guibg=NONE gui=NONE + hi CursorColumn guifg=NONE guibg=#800000 gui=NONE + hi CursorLine guifg=NONE guibg=NONE gui=underline + hi MatchParen guifg=NONE guibg=#800080 + endif + + " DARK COLOR DEFINE END + + " Vim 7 added stuffs + if v:version >= 700 + hi Ignore gui=NONE + + " the gui=undercurl could only support in Vim 7 + if has('spell') + hi SpellBad gui=undercurl + hi SpellCap gui=undercurl + hi SpellRare gui=undercurl + hi SpellLocal gui=undercurl + endif + hi TabLine gui=underline + hi TabLineFill gui=underline + hi Underlined gui=underline + hi CursorLine gui=underline + endif + + " gui define for background=dark end here + + if &t_Co==8 || &t_Co==16 + " for 8-color and 16-color term + hi Normal ctermfg=LightGrey ctermbg=Black + hi Special ctermfg=Yellow ctermbg=bg + hi Comment ctermfg=DarkYellow ctermbg=bg + hi Constant ctermfg=Blue ctermbg=bg + hi Number ctermfg=Yellow ctermbg=bg + hi LineNr ctermfg=DarkGrey ctermbg=bg + hi PreProc ctermfg=Green ctermbg=bg + hi Statement ctermfg=Cyan ctermbg=bg + hi Type ctermfg=Cyan ctermbg=bg + hi Error ctermfg=Red ctermbg=bg + hi Identifier ctermfg=Magenta ctermbg=bg + hi SpecialKey ctermfg=Cyan ctermbg=bg + hi NonText ctermfg=Blue ctermbg=bg + hi Directory ctermfg=Blue ctermbg=bg + hi MoreMsg ctermfg=Green ctermbg=bg + hi Title ctermfg=Magenta ctermbg=bg + hi WarningMsg ctermfg=Red ctermbg=bg + hi DiffDelete ctermfg=Blue ctermbg=bg + + hi Search ctermfg=NONE ctermbg=DarkRed + hi Visual ctermfg=Black ctermbg=DarkCyan + hi Cursor ctermfg=Black ctermbg=Green + hi StatusLine ctermfg=Black ctermbg=DarkCyan + hi Question ctermfg=Black ctermbg=DarkYellow + hi Todo ctermfg=DarkRed ctermbg=DarkYellow + hi Folded ctermfg=White ctermbg=DarkGreen + hi ModeMsg ctermfg=Grey ctermbg=DarkBlue + hi VisualNOS ctermfg=Grey ctermbg=DarkBlue + hi ErrorMsg ctermfg=DarkYellow ctermbg=DarkRed + hi WildMenu ctermfg=Black ctermbg=DarkYellow + hi FoldColumn ctermfg=White ctermbg=DarkGreen + hi SignColumn ctermfg=White ctermbg=DarkGreen + hi DiffText ctermfg=Black ctermbg=DarkYellow + + if v:version >= 700 + if has('spell') + hi SpellBad ctermfg=NONE ctermbg=DarkRed + hi SpellCap ctermfg=NONE ctermbg=DarkBlue + hi SpellRare ctermfg=NONE ctermbg=DarkMagenta + hi SpellLocal ctermfg=NONE ctermbg=DarkGreen + endif + hi Pmenu ctermfg=fg ctermbg=DarkMagenta + hi PmenuSel ctermfg=Black ctermbg=fg + hi PmenuSbar ctermfg=fg ctermbg=DarkBlue + hi PmenuThumb ctermfg=fg ctermbg=DarkGreen + hi TabLine ctermfg=fg ctermbg=DarkGreen cterm=underline + hi TabLineFill ctermfg=fg ctermbg=DarkGreen cterm=underline + hi CursorColumn ctermfg=NONE ctermbg=DarkRed + + hi TabLineSel ctermfg=fg ctermbg=bg + hi CursorLine ctermfg=NONE ctermbg=bg cterm=underline + + hi MatchParen ctermfg=NONE ctermbg=DarkMagenta + endif + if &t_Co==8 + " 8 colour terminal support, this assumes 16 colour is available through + " setting the 'bold' attribute, will get bright foreground colour. + " However, the bright background color is not available for 8-color terms. + " + " You can manually set t_Co=16 in your .vimrc to see if your terminal + " supports 16 colours, + hi DiffText cterm=none + hi Visual cterm=none + hi Cursor cterm=none + hi Comment cterm=none + hi Todo cterm=none + hi StatusLine cterm=none + hi Question cterm=none + hi DiffChange cterm=none + hi ModeMsg cterm=none + hi VisualNOS cterm=none + hi ErrorMsg cterm=none + hi WildMenu cterm=none + hi DiffAdd cterm=none + hi Folded cterm=none + hi DiffDelete cterm=none + hi Normal cterm=none + hi PmenuThumb cterm=none + hi Search cterm=bold + hi Special cterm=bold + hi Constant cterm=bold + hi Number cterm=bold + hi LineNr cterm=bold + hi PreProc cterm=bold + hi Statement cterm=bold + hi Type cterm=bold + hi Error cterm=bold + hi Identifier cterm=bold + hi SpecialKey cterm=bold + hi NonText cterm=bold + hi MoreMsg cterm=bold + hi Title cterm=bold + hi WarningMsg cterm=bold + hi FoldColumn cterm=bold + hi SignColumn cterm=bold + hi Directory cterm=bold + hi DiffDelete cterm=bold + else + " Background > 7 is only available with 16 or more colors + + hi WarningMsg cterm=none + hi Search cterm=none + hi Visual cterm=none + hi Cursor cterm=none + hi Special cterm=none + hi Comment cterm=none + hi Constant cterm=none + hi Number cterm=none + hi LineNr cterm=none + hi PreProc cterm=none + hi Todo cterm=none + hi Error cterm=none + hi Identifier cterm=none + hi Folded cterm=none + hi SpecialKey cterm=none + hi Directory cterm=none + hi ErrorMsg cterm=none + hi Normal cterm=none + hi PmenuThumb cterm=none + hi WildMenu cterm=none + hi FoldColumn cterm=none + hi SignColumn cterm=none + hi DiffAdd cterm=none + hi DiffChange cterm=none + hi Question cterm=none + hi StatusLine cterm=none + hi DiffText cterm=none + hi IncSearch cterm=reverse + hi StatusLineNC cterm=reverse + hi VertSplit cterm=reverse + + " Well, well, bold font with color 0-7 is not possible. + " So, the Question, StatusLine, DiffText cannot act as expected. + + hi Statement cterm=none + hi Type cterm=none + hi MoreMsg cterm=none + hi ModeMsg cterm=none + hi NonText cterm=none + hi Title cterm=none + hi VisualNOS cterm=none + hi DiffDelete cterm=none + hi TabLineSel cterm=none + + endif + elseif &t_Co==256 + " 256color dark terminal support here + hi Normal ctermfg=252 ctermbg=234 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi Normal ctermfg=252 ctermbg=NONE cterm=NONE + hi Comment ctermfg=186 ctermbg=NONE cterm=NONE + hi Constant ctermfg=110 ctermbg=NONE cterm=NONE + hi Number ctermfg=179 ctermbg=NONE cterm=NONE + hi Identifier ctermfg=219 ctermbg=NONE cterm=NONE + hi Statement ctermfg=153 ctermbg=NONE cterm=NONE + hi PreProc ctermfg=84 ctermbg=NONE cterm=NONE + hi Type ctermfg=153 ctermbg=NONE cterm=NONE + hi Special ctermfg=179 ctermbg=NONE cterm=NONE + hi Error ctermfg=209 ctermbg=NONE cterm=NONE + hi Todo ctermfg=88 ctermbg=186 cterm=NONE + hi Search ctermfg=NONE ctermbg=88 cterm=NONE + hi Visual ctermfg=16 ctermbg=153 cterm=NONE + hi Cursor ctermfg=16 ctermbg=46 cterm=NONE + " NOTE THIS IS IN THE COOL SECTION + " hi CursorIM ctermfg=16 ctermbg=201 cterm=NONE + hi StatusLine ctermfg=16 ctermbg=153 cterm=NONE + hi LineNr ctermfg=249 ctermbg=NONE cterm=NONE + hi Question ctermfg=16 ctermbg=186 cterm=NONE + hi ModeMsg ctermfg=fg ctermbg=18 cterm=NONE + hi VisualNOS ctermfg=fg ctermbg=18 cterm=NONE + hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE + hi NonText ctermfg=69 ctermbg=233 cterm=NONE + " Comment/Uncomment the following line to disable/enable transparency + "hi NonText ctermfg=69 ctermbg=NONE cterm=NONE + hi Directory ctermfg=110 ctermbg=NONE cterm=NONE + hi ErrorMsg ctermfg=186 ctermbg=88 cterm=NONE + hi MoreMsg ctermfg=150 ctermbg=NONE cterm=NONE + hi Title ctermfg=219 ctermbg=NONE cterm=NONE + hi WarningMsg ctermfg=209 ctermbg=NONE cterm=NONE + hi WildMenu ctermfg=16 ctermbg=186 cterm=NONE + hi Folded ctermfg=NONE ctermbg=22 cterm=NONE + hi FoldColumn ctermfg=254 ctermbg=28 cterm=NONE + hi DiffAdd ctermfg=NONE ctermbg=18 cterm=NONE + hi DiffChange ctermfg=NONE ctermbg=90 cterm=NONE + hi DiffDelete ctermfg=69 ctermbg=234 cterm=NONE + hi DiffText ctermfg=16 ctermbg=150 cterm=NONE + hi SignColumn ctermfg=254 ctermbg=28 cterm=NONE + hi IncSearch ctermfg=16 ctermbg=252 cterm=NONE + hi StatusLineNC ctermfg=16 ctermbg=250 cterm=NONE + hi VertSplit ctermfg=16 ctermbg=250 cterm=NONE + hi Underlined ctermfg=111 ctermbg=NONE cterm=underline + hi Ignore ctermfg=16 ctermbg=NONE + " NOTE THIS IS IN THE COOL SECTION + if v:version >= 700 + if has('spell') + " the ctermsp= is not supported in Vim 7 we simply ignored + if 0 + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=209 + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=69 + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=219 + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=153 + else + hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellRare cterm=undercurl ctermbg=NONE ctermfg=NONE + hi SpellLocal cterm=undercurl ctermbg=NONE ctermfg=NONE + endif + endif + hi Pmenu ctermfg=fg ctermbg=90 + hi PmenuSel ctermfg=16 ctermbg=252 cterm=NONE + hi PmenuSbar ctermfg=fg ctermbg=18 cterm=NONE + hi PmenuThumb ctermfg=fg ctermbg=28 cterm=NONE + hi TabLine ctermfg=fg ctermbg=28 cterm=NONE + hi TabLineFill ctermfg=fg ctermbg=28 cterm=NONE + hi TabLineSel ctermfg=fg ctermbg=NONE cterm=NONE + hi CursorColumn ctermfg=NONE ctermbg=88 cterm=NONE + hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline + hi MatchParen ctermfg=NONE ctermbg=90 + hi TabLine cterm=underline + hi TabLineFill cterm=underline + hi Underlined cterm=underline + hi CursorLine cterm=underline + endif + + endif " t_Co + + " }}}2 +endif + +" Links: +" +" COLOR LINKS DEFINE START + +hi link String Constant +" Character must be different from strings because in many languages +" (especially C, C++) a 'char' variable is scalar while 'string' is pointer, +" mistaken a 'char' for a 'string' will cause disaster! +hi link Character Number +hi link SpecialChar LineNr +hi link Tag Identifier +hi link cCppOut LineNr +" The following are not standard hi links, +" these are used by DrChip +hi link Warning MoreMsg +hi link Notice Constant +" these are used by Calendar +hi link CalToday PreProc +" these are used by TagList +hi link MyTagListTagName IncSearch +hi link MyTagListTagScope Constant + +" COLOR LINKS DEFINE END + +" vim:et:nosta:sw=2:ts=8: +" vim600:fdm=marker:fdl=1: diff --git a/.vim/colors/plugin/color_sample_pack.vim b/.vim/colors/plugin/color_sample_pack.vim new file mode 100644 index 0000000..00e8af2 --- /dev/null +++ b/.vim/colors/plugin/color_sample_pack.vim @@ -0,0 +1,164 @@ +" Maintainer: Robert Melton ( iam -at- robertmelton -dot- com) +" Last Change: 2010 Jan 20th + +" default schemes +amenu T&hemes.D&efault.Blue :colo blue +amenu T&hemes.D&efault.DarkBlue :colo darkblue +amenu T&hemes.D&efault.Default :colo default +amenu T&hemes.D&efault.Delek :colo delek +amenu T&hemes.D&efault.Desert :colo desert +amenu T&hemes.D&efault.ElfLord :colo elflord +amenu T&hemes.D&efault.Evening :colo evening +amenu T&hemes.D&efault.Koehler :colo koehler +amenu T&hemes.D&efault.Morning :colo morning +amenu T&hemes.D&efault.Murphy :colo murphy +amenu T&hemes.D&efault.Pablo :colo pablo +amenu T&hemes.D&efault.PeachPuff :colo peachpuff +amenu T&hemes.D&efault.Ron :colo ron +amenu T&hemes.D&efault.Shine :colo shine +amenu T&hemes.D&efault.Torte :colo torte +amenu T&hemes.-s1- : + +" 37 new themes +amenu T&hemes.&New.&Dark.Adaryn :colo adaryn +amenu T&hemes.&New.&Dark.Adrian :colo adrian +amenu T&hemes.&New.&Dark.Anotherdark :colo anotherdark +amenu T&hemes.&New.&Dark.BlackSea :colo blacksea +amenu T&hemes.&New.&Dark.Colorer :colo colorer +amenu T&hemes.&New.&Dark.Darkbone :colo darkbone +amenu T&hemes.&New.&Dark.DarkZ :colo darkz +amenu T&hemes.&New.&Dark.Herald :colo herald +amenu T&hemes.&New.&Dark.Jammy :colo jammy +amenu T&hemes.&New.&Dark.Kellys :colo kellys +amenu T&hemes.&New.&Dark.Lettuce :colo lettuce +amenu T&hemes.&New.&Dark.Maroloccio :colo maroloccio +amenu T&hemes.&New.&Dark.Molokai :colo molokai +amenu T&hemes.&New.&Dark.Mustang :colo mustang +amenu T&hemes.&New.&Dark.TIRBlack :colo tir_black +amenu T&hemes.&New.&Dark.Twilight :colo twilight +amenu T&hemes.&New.&Dark.Two2Tango :colo two2tango +amenu T&hemes.&New.&Dark.Wuye :colo wuye +amenu T&hemes.&New.&Dark.Zmrok :colo zmrok +amenu T&hemes.&New.&Light.BClear :colo bclear +amenu T&hemes.&New.&Light.Satori :colo satori +amenu T&hemes.&New.&Light.Silent :colo silent +amenu T&hemes.&New.&Light.SoSo :colo soso +amenu T&hemes.&New.&Light.SummerFruit256 :colo summerfruit256 +amenu T&hemes.&New.&Light.TAqua :colo taqua +amenu T&hemes.&New.&Light.TCSoft :colo tcsoft +amenu T&hemes.&New.&Light.VYLight :colo vylight +amenu T&hemes.&New.&Other.Aqua :colo aqua +amenu T&hemes.&New.&Other.Clarity :colo clarity +amenu T&hemes.&New.&Other.CleanPHP :colo cleanphp +amenu T&hemes.&New.&Other.Denim :colo denim +amenu T&hemes.&New.&Other.Guardian :colo guardian +amenu T&hemes.&New.&Other.Moss :colo moss +amenu T&hemes.&New.&Other.Nightshimmer :colo nightshimmer +amenu T&hemes.&New.&Other.NoQuarter :colo no_quarter +amenu T&hemes.&New.&Other.RobinHood :colo robinhood +amenu T&hemes.&New.&Other.SoftBlue :colo softblue +amenu T&hemes.&New.&Other.Wood :colo wood + +" 30 removed themes +amenu T&hemes.De&precated.&Dark.DwBlue :colo dw_blue +amenu T&hemes.De&precated.&Dark.DwCyan :colo dw_cyan +amenu T&hemes.De&precated.&Dark.DwGreen :colo dw_green +amenu T&hemes.De&precated.&Dark.DwOrange :colo dw_orange +amenu T&hemes.De&precated.&Dark.DwPurple :colo dw_purple +amenu T&hemes.De&precated.&Dark.DwRed :colo dw_red +amenu T&hemes.De&precated.&Dark.DwYellow :colo dw_yellow +amenu T&hemes.De&precated.&Dark.Fruity :colo fruity +amenu T&hemes.De&precated.&Dark.Leo :colo leo +amenu T&hemes.De&precated.&Dark.Matrix :colo matrix +amenu T&hemes.De&precated.&Dark.Metacosm :colo metacosm +amenu T&hemes.De&precated.&Dark.Northland :colo northland +amenu T&hemes.De&precated.&Dark.Railscasts2 :colo railscasts2 +amenu T&hemes.De&precated.&Dark.Synic :colo synic +amenu T&hemes.De&precated.&Dark.Wombat256 :colo wombat256 +amenu T&hemes.De&precated.&Dark.Xoria256 :colo xoria256 +amenu T&hemes.De&precated.&Light.Autumn2 :colo autumn2 +amenu T&hemes.De&precated.&Light.Buttercream :colo buttercream +amenu T&hemes.De&precated.&Light.Fine_blue :colo fine_blue +amenu T&hemes.De&precated.&Light.Impact :colo impact +amenu T&hemes.De&precated.&Light.Oceanlight :colo oceanlight +amenu T&hemes.De&precated.&Light.Print_bw :colo print_bw +amenu T&hemes.De&precated.&Light.Pyte :colo pyte +amenu T&hemes.De&precated.&Light.Spring :colo spring +amenu T&hemes.De&precated.&Light.Winter :colo winter +amenu T&hemes.De&precated.&Other.Astronaut :colo astronaut +amenu T&hemes.De&precated.&Other.Bluegreen :colo bluegreen +amenu T&hemes.De&precated.&Other.Navajo :colo navajo +amenu T&hemes.De&precated.&Other.Olive :colo olive +amenu T&hemes.De&precated.&Other.Tabula :colo tabula +amenu T&hemes.De&precated.&Other.Xemacs :colo xemacs + +" Themepack Themes +amenu T&hemes.&Dark.Asu1dark :colo asu1dark +amenu T&hemes.&Dark.Brookstream :colo brookstream +amenu T&hemes.&Dark.Calmar256-dark :colo calmar256-dark +amenu T&hemes.&Dark.Camo :colo camo +amenu T&hemes.&Dark.Candy :colo candy +amenu T&hemes.&Dark.Candycode :colo candycode +amenu T&hemes.&Dark.Dante :colo dante +amenu T&hemes.&Dark.Darkspectrum :colo darkspectrum +amenu T&hemes.&Dark.Desert256 :colo desert256 +amenu T&hemes.&Dark.DesertEx :colo desertEx +amenu T&hemes.&Dark.Dusk :colo dusk +amenu T&hemes.&Dark.Earendel :colo earendel +amenu T&hemes.&Dark.Ekvoli :colo ekvoli +amenu T&hemes.&Dark.Fnaqevan :colo fnaqevan +amenu T&hemes.&Dark.Freya :colo freya +amenu T&hemes.&Dark.Golden :colo golden +amenu T&hemes.&Dark.Inkpot :colo inkpot +amenu T&hemes.&Dark.Jellybeans :colo jellybeans +amenu T&hemes.&Dark.Lucius :colo lucius +amenu T&hemes.&Dark.Manxome :colo manxome +amenu T&hemes.&Dark.Moria :colo moria +amenu T&hemes.&Dark.Motus :colo motus +amenu T&hemes.&Dark.Neon :colo neon +amenu T&hemes.&Dark.Neverness :colo neverness +amenu T&hemes.&Dark.Oceanblack :colo oceanblack +amenu T&hemes.&Dark.Railscasts :colo railscasts +amenu T&hemes.&Dark.Rdark :colo rdark +amenu T&hemes.&Dark.Relaxedgreen :colo relaxedgreen +amenu T&hemes.&Dark.Rootwater :colo rootwater +amenu T&hemes.&Dark.Tango :colo tango +amenu T&hemes.&Dark.Tango2 :colo tango2 +amenu T&hemes.&Dark.Vibrantink :colo vibrantink +amenu T&hemes.&Dark.Vividchalk :colo vividchalk +amenu T&hemes.&Dark.Wombat :colo wombat +amenu T&hemes.&Dark.Zenburn :colo zenburn + +amenu T&hemes.&Light.Autumn :colo autumn +amenu T&hemes.&Light.Autumnleaf :colo autumnleaf +amenu T&hemes.&Light.Baycomb :colo baycomb +amenu T&hemes.&Light.Biogoo :colo biogoo +amenu T&hemes.&Light.Calmar256-light :colo calmar256-light +amenu T&hemes.&Light.Chela_light :colo chela_light +amenu T&hemes.&Light.Dawn :colo dawn +amenu T&hemes.&Light.Eclipse :colo eclipse +amenu T&hemes.&Light.Fog :colo fog +amenu T&hemes.&Light.Fruit :colo fruit +amenu T&hemes.&Light.Habilight :colo habilight +amenu T&hemes.&Light.Ironman :colo ironman +amenu T&hemes.&Light.Martin_krischik :colo martin_krischik +amenu T&hemes.&Light.Nuvola :colo nuvola +amenu T&hemes.&Light.PapayaWhip :colo PapayaWhip +amenu T&hemes.&Light.Sienna :colo sienna +amenu T&hemes.&Light.Simpleandfriendly :colo simpleandfriendly +amenu T&hemes.&Light.Tolerable :colo tolerable +amenu T&hemes.&Light.Vc :colo vc + +amenu T&hemes.&Other.Aiseered :colo aiseered +amenu T&hemes.&Other.Borland :colo borland +amenu T&hemes.&Other.Breeze :colo breeze +amenu T&hemes.&Other.Chocolateliquor :colo chocolateliquor +amenu T&hemes.&Other.Darkblue2 :colo darkblue2 +amenu T&hemes.&Other.Darkslategray :colo darkslategray +amenu T&hemes.&Other.Marklar :colo marklar +amenu T&hemes.&Other.Navajo-night :colo navajo-night +amenu T&hemes.&Other.Night :colo night +amenu T&hemes.&Other.Oceandeep :colo oceandeep +amenu T&hemes.&Other.Peaksea :colo peaksea +amenu T&hemes.&Other.Sea :colo sea +amenu T&hemes.&Other.Settlemyer :colo settlemyer diff --git a/.vim/colors/print_bw.vim b/.vim/colors/print_bw.vim new file mode 100644 index 0000000..7a4f5e1 --- /dev/null +++ b/.vim/colors/print_bw.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Mike Williams +" Last Change: 2nd June 2003 +" Version: 1.1 + +" Remove all existing highlighting. +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "print_bw" + +highlight Normal cterm=NONE ctermfg=black ctermbg=white gui=NONE guifg=black guibg=white +highlight NonText ctermfg=black ctermbg=white guifg=black guibg=white +highlight LineNr cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +" Syntax highlighting scheme +highlight Comment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +highlight Constant ctermfg=black ctermbg=white guifg=black guibg=white +highlight String ctermfg=black ctermbg=white guifg=black guibg=white +highlight Character ctermfg=black ctermbg=white guifg=black guibg=white +highlight Number ctermfg=black ctermbg=white guifg=black guibg=white +" Boolean defaults to Constant +highlight Float ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Identifier ctermfg=black ctermbg=white guifg=black guibg=white +highlight Function ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Statement ctermfg=black ctermbg=white guifg=black guibg=white +highlight Conditional ctermfg=black ctermbg=white guifg=black guibg=white +highlight Repeat ctermfg=black ctermbg=white guifg=black guibg=white +highlight Label ctermfg=black ctermbg=white guifg=black guibg=white +highlight Operator ctermfg=black ctermbg=white guifg=black guibg=white +" Keyword defaults to Statement +" Exception defaults to Statement + +highlight PreProc cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" Include defaults to PreProc +" Define defaults to PreProc +" Macro defaults to PreProc +" PreCondit defaults to PreProc + +highlight Type cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" StorageClass defaults to Type +" Structure defaults to Type +" Typedef defaults to Type + +highlight Special cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" SpecialChar defaults to Special +" Tag defaults to Special +" Delimiter defaults to Special +highlight SpecialComment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" Debug defaults to Special + +highlight Todo cterm=italic,bold ctermfg=black ctermbg=white gui=italic,bold guifg=black guibg=white +" Ideally, the bg color would be white but VIM cannot print white on black! +highlight Error cterm=bold,reverse ctermfg=black ctermbg=grey gui=bold,reverse guifg=black guibg=grey + +" vim:et:ff=unix:tw=0:ts=4:sw=4 +" EOF print_bw.vim diff --git a/.vim/colors/pyte.vim b/.vim/colors/pyte.vim new file mode 100644 index 0000000..b8471af --- /dev/null +++ b/.vim/colors/pyte.vim @@ -0,0 +1,92 @@ + +set background=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "pyte" + +if version >= 700 + hi CursorLine guibg=#f6f6f6 + hi CursorColumn guibg=#eaeaea + hi MatchParen guifg=white guibg=#80a090 gui=bold + + "Tabpages + hi TabLine guifg=black guibg=#b0b8c0 gui=italic + hi TabLineFill guifg=#9098a0 + hi TabLineSel guifg=black guibg=#f0f0f0 gui=italic,bold + + "P-Menu (auto-completion) + hi Pmenu guifg=white guibg=#808080 + "PmenuSel + "PmenuSbar + "PmenuThumb +endif +" +" Html-Titles +hi Title guifg=#202020 gui=bold +hi Underlined guifg=#202020 gui=underline + + +hi Cursor guifg=black guibg=#b0b4b8 +hi lCursor guifg=black guibg=white +hi LineNr guifg=#ffffff guibg=#c0d0e0 + +hi Normal guifg=#202020 guibg=#f0f0f0 + +hi StatusLine guifg=white guibg=#8090a0 gui=bold,italic +hi StatusLineNC guifg=#506070 guibg=#a0b0c0 gui=italic +hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 gui=NONE + +hi Folded guifg=#708090 guibg=#c0d0e0 + +hi NonText guifg=#c0c0c0 guibg=#e0e0e0 +" Kommentare +hi Comment guifg=#a0b0c0 gui=italic + +" Konstanten +hi Constant guifg=#a07040 +hi String guifg=#4070a0 +hi Number guifg=#40a070 +hi Float guifg=#70a040 +"hi Statement guifg=#0070e0 gui=NONE +" Python: def and so on, html: tag-names +hi Statement guifg=#007020 gui=bold + + +" HTML: arguments +hi Type guifg=#e5a00d gui=italic +" Python: Standard exceptions, True&False +hi Structure guifg=#007020 gui=italic +hi Function guifg=#06287e gui=italic + +hi Identifier guifg=#5b3674 gui=italic + +hi Repeat guifg=#7fbf58 gui=bold +hi Conditional guifg=#4c8f2f gui=bold + +" Cheetah: #-Symbol, function-names +hi PreProc guifg=#1060a0 gui=NONE +" Cheetah: def, for and so on, Python: Decorators +hi Define guifg=#1060a0 gui=bold + +hi Error guifg=red guibg=white gui=bold,underline +hi Todo guifg=#a0b0c0 guibg=NONE gui=italic,bold,underline + +" Python: %(...)s - constructs, encoding +hi Special guifg=#70a0d0 gui=italic + +hi Operator guifg=#408010 + +" color of s etc... +hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=italic + +" Diff +hi DiffChange guifg=NONE guibg=#e0e0e0 gui=italic,bold +hi DiffText guifg=NONE guibg=#f0c8c8 gui=italic,bold +hi DiffAdd guifg=NONE guibg=#c0e0d0 gui=italic,bold +hi DiffDelete guifg=NONE guibg=#f0e0b0 gui=italic,bold + + diff --git a/.vim/colors/railscasts.vim b/.vim/colors/railscasts.vim new file mode 100644 index 0000000..138e876 --- /dev/null +++ b/.vim/colors/railscasts.vim @@ -0,0 +1,124 @@ +" Vim color scheme +" +" Name: railscast.vim +" Maintainer: Josh O'Rourke +" License: public domain +" +" A GUI Only port of the RailsCasts TextMate theme [1] to Vim. +" Some parts of this theme were borrowed from the well-documented Lucius theme [2]. +" +" [1] http://railscasts.com/about +" [2] http://www.vim.org/scripts/script.php?script_id=2536 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "railscasts" + +" Colors +" Brown #BC9458 +" Dark Blue #6D9CBE +" Dark Green #519F50 +" Dark Orange #CC7833 +" Light Blue #D0D0FF +" Light Green #A5C261 +" Tan #FFC66D + +hi Normal guifg=#E6E1DC guibg=#2B2B2B +hi Cursor guibg=#FFFFFF +hi CursorLine guibg=#333435 +hi LineNr guifg=#888888 guibg=#DEDEDE +hi Search guibg=#5A647E +hi Visual guibg=#5A647E + +" Folds +" ----- +" line used for closed folds +hi Folded guifg=#F6F3E8 guibg=#444444 gui=NONE + +" Misc +" ---- +" directory names and other special names in listings +hi Directory guifg=#A5C261 gui=NONE + +" Popup Menu +" ---------- +" normal item in popup +hi Pmenu guifg=#F6F3E8 guibg=#444444 gui=NONE +" selected item in popup +hi PmenuSel guifg=#000000 guibg=#A5C261 gui=NONE +" scrollbar in popup +hi PMenuSbar guibg=#5A647E gui=NONE +" thumb of the scrollbar in the popup +hi PMenuThumb guibg=#AAAAAA gui=NONE + + +"rubyComment +hi Comment guifg=#BC9458 gui=italic +hi Todo guifg=#BC9458 guibg=NONE gui=italic + +"rubyPseudoVariable +"nil, self, symbols, etc +hi Constant guifg=#6D9CBE + +"rubyClass, rubyModule, rubyDefine +"def, end, include, etc +hi Define guifg=#CC7833 + +"rubyInterpolation +hi Delimiter guifg=#519F50 + +"rubyError, rubyInvalidVariable +hi Error guifg=#FFFFFF guibg=#990000 + +"rubyFunction +hi Function guifg=#FFC66D gui=NONE + +"rubyIdentifier +"@var, @@var, $var, etc +hi Identifier guifg=#D0D0FF gui=NONE + +"rubyInclude +"include, autoload, extend, load, require +hi Include guifg=#CC7833 gui=NONE + +"rubyKeyword, rubyKeywordAsMethod +"alias, undef, super, yield, callcc, caller, lambda, proc +hi Keyword guifg=#CC7833 + +" same as define +hi Macro guifg=#CC7833 gui=NONE + +"rubyInteger +hi Number guifg=#A5C261 + +" #if, #else, #endif +hi PreCondit guifg=#CC7833 gui=NONE + +" generic preprocessor +hi PreProc guifg=#CC7833 gui=NONE + +"rubyControl, rubyAccess, rubyEval +"case, begin, do, for, if unless, while, until else, etc. +hi Statement guifg=#CC7833 gui=NONE + +"rubyString +hi String guifg=#A5C261 + +hi Title guifg=#FFFFFF + +"rubyConstant +hi Type guifg=#DA4939 gui=NONE + +hi DiffAdd guifg=#E6E1DC guibg=#144212 +hi DiffDelete guifg=#E6E1DC guibg=#660000 + +hi link htmlTag xmlTag +hi link htmlTagName xmlTagName +hi link htmlEndTag xmlEndTag + +hi xmlTag guifg=#E8BF6A +hi xmlTagName guifg=#E8BF6A +hi xmlEndTag guifg=#E8BF6A diff --git a/.vim/colors/railscasts2.vim b/.vim/colors/railscasts2.vim new file mode 100644 index 0000000..138e876 --- /dev/null +++ b/.vim/colors/railscasts2.vim @@ -0,0 +1,124 @@ +" Vim color scheme +" +" Name: railscast.vim +" Maintainer: Josh O'Rourke +" License: public domain +" +" A GUI Only port of the RailsCasts TextMate theme [1] to Vim. +" Some parts of this theme were borrowed from the well-documented Lucius theme [2]. +" +" [1] http://railscasts.com/about +" [2] http://www.vim.org/scripts/script.php?script_id=2536 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "railscasts" + +" Colors +" Brown #BC9458 +" Dark Blue #6D9CBE +" Dark Green #519F50 +" Dark Orange #CC7833 +" Light Blue #D0D0FF +" Light Green #A5C261 +" Tan #FFC66D + +hi Normal guifg=#E6E1DC guibg=#2B2B2B +hi Cursor guibg=#FFFFFF +hi CursorLine guibg=#333435 +hi LineNr guifg=#888888 guibg=#DEDEDE +hi Search guibg=#5A647E +hi Visual guibg=#5A647E + +" Folds +" ----- +" line used for closed folds +hi Folded guifg=#F6F3E8 guibg=#444444 gui=NONE + +" Misc +" ---- +" directory names and other special names in listings +hi Directory guifg=#A5C261 gui=NONE + +" Popup Menu +" ---------- +" normal item in popup +hi Pmenu guifg=#F6F3E8 guibg=#444444 gui=NONE +" selected item in popup +hi PmenuSel guifg=#000000 guibg=#A5C261 gui=NONE +" scrollbar in popup +hi PMenuSbar guibg=#5A647E gui=NONE +" thumb of the scrollbar in the popup +hi PMenuThumb guibg=#AAAAAA gui=NONE + + +"rubyComment +hi Comment guifg=#BC9458 gui=italic +hi Todo guifg=#BC9458 guibg=NONE gui=italic + +"rubyPseudoVariable +"nil, self, symbols, etc +hi Constant guifg=#6D9CBE + +"rubyClass, rubyModule, rubyDefine +"def, end, include, etc +hi Define guifg=#CC7833 + +"rubyInterpolation +hi Delimiter guifg=#519F50 + +"rubyError, rubyInvalidVariable +hi Error guifg=#FFFFFF guibg=#990000 + +"rubyFunction +hi Function guifg=#FFC66D gui=NONE + +"rubyIdentifier +"@var, @@var, $var, etc +hi Identifier guifg=#D0D0FF gui=NONE + +"rubyInclude +"include, autoload, extend, load, require +hi Include guifg=#CC7833 gui=NONE + +"rubyKeyword, rubyKeywordAsMethod +"alias, undef, super, yield, callcc, caller, lambda, proc +hi Keyword guifg=#CC7833 + +" same as define +hi Macro guifg=#CC7833 gui=NONE + +"rubyInteger +hi Number guifg=#A5C261 + +" #if, #else, #endif +hi PreCondit guifg=#CC7833 gui=NONE + +" generic preprocessor +hi PreProc guifg=#CC7833 gui=NONE + +"rubyControl, rubyAccess, rubyEval +"case, begin, do, for, if unless, while, until else, etc. +hi Statement guifg=#CC7833 gui=NONE + +"rubyString +hi String guifg=#A5C261 + +hi Title guifg=#FFFFFF + +"rubyConstant +hi Type guifg=#DA4939 gui=NONE + +hi DiffAdd guifg=#E6E1DC guibg=#144212 +hi DiffDelete guifg=#E6E1DC guibg=#660000 + +hi link htmlTag xmlTag +hi link htmlTagName xmlTagName +hi link htmlEndTag xmlEndTag + +hi xmlTag guifg=#E8BF6A +hi xmlTagName guifg=#E8BF6A +hi xmlEndTag guifg=#E8BF6A diff --git a/.vim/colors/rdark.vim b/.vim/colors/rdark.vim new file mode 100644 index 0000000..62c7cdd --- /dev/null +++ b/.vim/colors/rdark.vim @@ -0,0 +1,159 @@ +" Vim color file +" Maintaner: Radu Dineiu +" URL: http://ld.yi.org/vim/rdark/ +" Last Change: 2007 Jun 23 +" Version: 0.6 +" +" Features: +" - let rdark_current_line = 1 if you want to highlight the current line +" +" Changelog: +" 0.5 - fixed the Pmenu colors +" 0.6 - added SignColumn colors + +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "rdark" + +" Current Line +if exists('rdark_current_line') && rdark_current_line == 1 + set cursorline + hi CursorLine guibg=#191f21 +endif + +" Default Colors +hi Normal guifg=#babdb6 guibg=#1e2426 +hi NonText guifg=#2c3032 guibg=#2c3032 gui=none +hi Cursor guibg=#babdb6 +hi ICursor guibg=#babdb6 + +" Search +hi Search guifg=#2e3436 guibg=#fcaf3e +hi IncSearch guibg=#2e3436 guifg=#fcaf3e + +" Window Elements +hi StatusLine guifg=#2e3436 guibg=#babdb6 gui=none +hi StatusLineNC guifg=#2e3436 guibg=#888a85 gui=none +hi VertSplit guifg=#555753 guibg=#888a85 gui=none +hi Visual guibg=#000000 +hi MoreMsg guifg=#729fcf +hi Question guifg=#8ae234 gui=none +hi WildMenu guifg=#eeeeec guibg=#0e1416 +hi LineNr guifg=#3f4b4d guibg=#000000 +hi SignColumn guibg=#1e2426 + +" Pmenu +hi Pmenu guibg=#2e3436 guifg=#eeeeec +hi PmenuSel guibg=#ffffff guifg=#1e2426 +hi PmenuSbar guibg=#555753 +hi PmenuThumb guifg=#ffffff + +" Diff +hi DiffDelete guifg=#2e3436 guibg=#0e1416 +hi DiffAdd guibg=#1f2b2d +hi DiffChange guibg=#2e3436 +hi DiffText guibg=#000000 gui=none + +" Folds +hi Folded guifg=#d3d7cf guibg=#204a87 +hi FoldColumn guifg=#3465a4 guibg=#000000 + +" Specials +hi Title guifg=#fcaf3e +hi Todo guifg=#fcaf3e guibg=bg +hi SpecialKey guifg=#ef2929 + +" Tabs +hi TabLine guibg=#0a1012 guifg=#888a85 +hi TabLineFill guifg=#0a1012 +hi TabLineSel guibg=#555753 guifg=#eeeeec gui=none + +" Matches +hi MatchParen guifg=#2e3436 guibg=#fcaf3e + +" Tree +hi Directory guifg=#ffffff + +" Syntax +hi Comment guifg=#656763 +hi Constant guifg=#8ae234 +hi Number guifg=#8ae234 +hi Statement guifg=#729fcf gui=none +hi Identifier guifg=#ffffff +hi PreProc guifg=#fcaf3e +hi Function guifg=#fcaf3e +hi Type guifg=#e3e7df gui=none +hi Keyword guifg=#eeeeec +hi Special guifg=#888a85 +hi Error guifg=#eeeeec guibg=#cc0000 + +" PHP +hi phpRegionDelimiter guifg=#ad7fa8 +hi phpPropertySelector guifg=#888a85 +hi phpPropertySelectorInString guifg=#888a85 +hi phpOperator guifg=#888a85 +hi phpArrayPair guifg=#888a85 +hi phpAssignByRef guifg=#888a85 +hi phpRelation guifg=#888a85 +hi phpMemberSelector guifg=#888a85 +hi phpUnknownSelector guifg=#888a85 +hi phpVarSelector guifg=#babdb6 +hi phpSemicolon guifg=#888a85 gui=none +hi phpFunctions guifg=#d3d7cf +hi phpParent guifg=#888a85 + +" JavaScript +hi javaScriptBraces guifg=#888a85 +hi javaScriptOperator guifg=#888a85 + +" HTML +hi htmlTag guifg=#888a85 +hi htmlEndTag guifg=#888a85 +hi htmlTagName guifg=#babdb6 +hi htmlSpecialTagName guifg=#babdb6 +hi htmlArg guifg=#d3d7cf +hi htmlTitle guifg=#8ae234 gui=none +hi link htmlH1 htmlTitle +hi link htmlH2 htmlH1 +hi link htmlH3 htmlH1 +hi link htmlH4 htmlH1 +hi link htmlH5 htmlH1 +hi link htmlH6 htmlH1 + +" XML +hi link xmlTag htmlTag +hi link xmlEndTag htmlEndTag +hi link xmlAttrib htmlArg + +" CSS +hi cssSelectorOp guifg=#eeeeec +hi link cssSelectorOp2 cssSelectorOp +hi cssUIProp guifg=#d3d7cf +hi link cssPagingProp cssUIProp +hi link cssGeneratedContentProp cssUIProp +hi link cssRenderProp cssUIProp +hi link cssBoxProp cssUIProp +hi link cssTextProp cssUIProp +hi link cssColorProp cssUIProp +hi link cssFontProp cssUIProp +hi cssPseudoClassId guifg=#eeeeec +hi cssBraces guifg=#888a85 +hi cssIdentifier guifg=#fcaf3e +hi cssTagName guifg=#fcaf3e +hi link cssInclude Function +hi link cssCommonAttr Constant +hi link cssUIAttr Constant +hi link cssTableAttr Constant +hi link cssPagingAttr Constant +hi link cssGeneratedContentAttr Constant +hi link cssAuralAttr Constant +hi link cssRenderAttr Constant +hi link cssBoxAttr Constant +hi link cssTextAttr Constant +hi link cssColorAttr Constant +hi link cssFontAttr Constant diff --git a/.vim/colors/relaxedgreen.vim b/.vim/colors/relaxedgreen.vim new file mode 100644 index 0000000..9d2bf14 --- /dev/null +++ b/.vim/colors/relaxedgreen.vim @@ -0,0 +1,112 @@ +" ---------------------------------------------------------------------------------------------------------------------------------- +" Filename: relaxedgreen.vim +" Last Modified: 13 Feb 2007 09:57:24 PM by Dave V +" Maintainer: Dave Vehrs (dvehrs at gmail.com) +" Copyright: 2002,2003,2004,2005,2006,2007 Dave Vehrs +" This script is free software; you can redistribute it and/or +" modify it under the terms of the GNU General Public License as +" published by the Free Software Foundation; either version 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Place this file in the users colors directory (~/.vim/colors) or +" in the shared colors directory (/usr/shared/vim/vim/colors/), +" then load it with :colorscheme relaxedgreen +" ---------------------------------------------------------------------------------------------------------------------------------- +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "relaxedgreen" +highlight Cursor term=reverse ctermfg=green ctermbg=blue guifg=#000000 guibg=#559955 +highlight CursorIM term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight CursorColumn term=none ctermbg=darkred guibg=#663333 +highlight CursorLine term=none ctermbg=darkblue guibg=#333366 +highlight Comment term=italic ctermfg=darkcyan ctermbg=black guifg=#00a594 +highlight Constant term=underline ctermfg=blue guifg=#0099dd +highlight Debug term=bold ctermfg=red ctermbg=black guifg=#dc0000 guibg=#000000 +highlight DiffAdd term=reverse ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffChange term=underline cterm=reverse ctermfg=darkgreen ctermbg=black guifg=#000000 guibg=#006700 +highlight DiffDelete term=standout ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffText term=bold ctermfg=green ctermbg=black guifg=#00ac00 guibg=#000000 +highlight Directory term=underline ctermfg=green ctermbg=black guifg=#336633 guibg=#000000 +highlight Error term=reverse,bold ctermfg=black ctermbg=red guifg=#000000 guibg=#dc0000 +highlight ErrorMsg term=reverse,bold ctermfg=white ctermbg=red guifg=#ffffff guibg=#dc0000 +highlight Folded ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight FoldColumn ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight Function term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Identifier term=underline ctermfg=darkcyan gui=underline guifg=#008800 +highlight Ignore ctermfg=lightgreen guifg=#33bb33 +highlight IncSearch term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight LineNr term=bold ctermfg=green guifg=#00ff00 +highlight MatchParen term=bold ctermbg=green guifg=#009900 +highlight ModeMsg term=bold cterm=bold gui=bold +highlight MoreMsg term=bold cterm=bold gui=bold +highlight NonText ctermfg=brown guifg=#b26818 +highlight Normal ctermfg=gray ctermbg=black guifg=#aaaaaa guibg=#000000 +highlight Pmenu term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuSel term=bold ctermfg=black ctermbg=gray guifg=#000000 guibg=#999999 +highlight PmenuSbar term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuThumb term=reverse ctermfg=gray ctermbg=black guifg=#999999 guibg=#000000 +highlight PreProc term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Question term=standout ctermfg=red guifg=#ff0000 +highlight Search term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight SignColumn ctermfg=darkgreen guifg=#20de20 guibg=#000000 +highlight Special term=bold ctermfg=green guifg=#00ff00 +highlight SpecialKey term=bold ctermfg=green guifg=#00ff00 +highlight SpellBad term=reverse cterm=underline ctermfg=red ctermbg=black gui=undercurl guisp=#ff0000 +highlight SpellCap term=reverse cterm=underline ctermfg=yellow ctermbg=black gui=undercurl guisp=#00ffff +highlight SpellLocal term=reverse cterm=underline ctermfg=blue ctermbg=black gui=undercurl guisp=#0000ff +highlight SpellRare term=reverse cterm=underline ctermfg=darkgreen ctermbg=black gui=undercurl guisp=#00ff00 +highlight Statement term=standout ctermfg=darkred guifg=#ac0000 +highlight StatusLine term=reverse ctermfg=darkgreen ctermbg=black gui=none guibg=#228822 guifg=#000000 +highlight StatusLineNC term=reverse ctermfg=darkgreen ctermbg=blue gui=none guibg=#336633 guifg=#000000 +highlight TabLine term=reverse cterm=reverse ctermfg=black ctermbg=green guibg=#222222 guifg=#228822 +highlight TabLineFill term=reverse cterm=reverse ctermfg=green ctermbg=black guibg=#222222 guifg=#226622 +highlight TabLineSel ctermfg=black ctermbg=green guibg=#228822 guifg=#222222 +highlight Title term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#00ff00 +highlight Todo term=reverse cterm=reverse ctermfg=darkgreen ctermbg=black guibg=#336633 guifg=#000000 +highlight Type term=standout ctermfg=green guifg=#559955 +highlight Visual term=reverse cterm=reverse ctermfg=darkgreen guifg=#000000 guibg=#336633 +highlight VisualNOS term=reverse,bold cterm=reverse ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight VertSplit term=reverse ctermfg=darkgreen guifg=#336633 +highlight User1 term=standout cterm=bold ctermbg=darkgreen ctermfg=red gui=bold guibg=#228822 guifg=#FF0000 +highlight WarningMsg term=reverse ctermfg=black ctermbg=yellow guifg=#000000 guibg=#007a7a +highlight WildMenu term=reverse ctermfg=blue ctermbg=darkgreen guifg=#000099 guibg=#00ac00 + +" ---------------------------------------------------------------------------------------------------------------------------------- +" Common groups that link to other highlight definitions. + +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Constant +highlight link String Constant + +highlight link Operator LineNr + +highlight link Float Number + +highlight link Define PreProc +highlight link Include PreProc +highlight link Macro PreProc +highlight link PreCondit PreProc + +highlight link Repeat Question + +highlight link Conditional Repeat + +highlight link Delimiter Special +highlight link SpecialChar Special +highlight link SpecialComment Special +highlight link Tag Special + +highlight link Exception Statement +highlight link Keyword Statement +highlight link Label Statement + +highlight link StorageClass Type +highlight link Structure Type +highlight link Typedef Type + +" ---------------------------------------------------------------------------------------------------------------------------------- +" vim:tw=132:ts=4:sw=4 diff --git a/.vim/colors/robinhood.vim b/.vim/colors/robinhood.vim new file mode 100644 index 0000000..ab1d14d --- /dev/null +++ b/.vim/colors/robinhood.vim @@ -0,0 +1,103 @@ +" Vim color file +" Maintainer: Datila Carvalho +" Last Change: May, 19, 2005 +" Version: 0.2 + +" This is a VIM's version of the emacs color theme +" _Robin Hood_ created by Alex Schroede. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "robinhood" + + +""" Colors + +" GUI colors +hi Cursor guifg=fg guibg=gray +hi CursorIM guifg=NONE guibg=gray +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg gui=bold guifg=white guibg=Red +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr gui=bold guifg=yellowgreen guibg=#203010 +"hi ModeMsg +"hi MoreMsg +"hi NonText +hi Normal guibg=#304020 guifg=wheat +"hi Question +hi Search gui=bold guifg=black guibg=gray +"hi SpecialKey +hi StatusLine guifg=darkolivegreen guibg=wheat +hi StatusLineNC guifg=olivedrab guibg=wheat +"hi Title +hi Visual guifg=darkslategrey guibg=fg +hi VisualNOS gui=bold guifg=Black guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +hi User2 guifg=yellowgreen guibg=#091900 gui=bold + +" If using Motif/Athena +hi Menu guibg=#304020 guifg=wheat +hi Scrollbar guibg=bg + +" Colors for syntax highlighting +hi Comment guifg=lightblue + +hi Constant gui=bold guifg=lightcyan + hi String guifg=lightsalmon + hi Character guifg=lightsalmon + hi Number gui=bold guifg=lightcyan + hi Boolean gui=bold guifg=lightcyan + hi Float gui=bold guifg=lightcyan + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=yellowgreen + +hi Statement gui=bold guifg=salmon + hi Conditional gui=bold guifg=salmon + hi Repeat gui=bold guifg=salmon + hi Label guifg=salmon + hi Operator guifg=salmon + "hi Keyword + "hi Exception + +hi PreProc guifg=palegreen + hi Include gui=bold guifg=palegreen + hi Define guifg=palegreen + hi Macro guifg=aquamarine + hi PreCondit guifg=palegreen + +hi Type gui=bold guifg=yellowgreen + hi StorageClass gui=bold guifg=aquamarine + hi Structure gui=bold guifg=aquamarine + hi Typedef gui=bold guifg=aquamarine + +"hi Special + ""Underline Character + "hi SpecialChar gui=underline + "hi Tag gui=bold,underline + ""Statement + "hi Delimiter gui=bold + ""Bold comment (in Java at least) + "hi SpecialComment gui=bold + "hi Debug gui=bold + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/.vim/colors/rootwater.vim b/.vim/colors/rootwater.vim new file mode 100644 index 0000000..4be5aeb --- /dev/null +++ b/.vim/colors/rootwater.vim @@ -0,0 +1,98 @@ +" Name: rootwater.vim +" Maintainer: Kojo Sugita +" Last Change: 2008-11-22 +" Revision: 1.2 +" +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'rootwater' + +" Default colors +hi Normal guifg=#babdb6 guibg=#151b1d +hi NonText guifg=#4f5b5d guibg=#232729 gui=none +hi SpecialKey guifg=#4f5b5d guibg=#2c3032 gui=none +hi Cursor guifg=#3a553a guibg=#77dd88 +hi CursorLine guibg=#303035 +hi CursorColumn guibg=#303035 +hi lCursor guifg=#3a553a guibg=#77dd88 +hi CursorIM guifg=#3a553a guibg=#77dd88 + +" Directory +hi Directory guifg=white gui=bold + +" Diff +hi DiffAdd guifg=#77dd88 guibg=#3a553a gui=none +hi DiffChange guifg=#77dd88 guibg=#3a553a gui=none +hi DiffDelete guifg=#223322 guibg=#223322 gui=none +hi DiffText guifg=#77dd88 guibg=#448844 gui=bold + +hi ErrorMsg guifg=red guibg=black +hi VertSplit guifg=black guibg=#88ee99 + +" Folds +hi Folded guifg=#55af66 guibg=black +hi FoldColumn guifg=#557755 guibg=#102010 + +" Search +hi Search guifg=#223322 guibg=#55af66 gui=none +hi IncSearch guifg=#3a553a guibg=#77dd88 gui=none + +" hi LineNr guifg=#446644 guibg=black gui=none +hi LineNr guifg=#607075 guibg=black gui=none +hi ModeMsg guifg=#55af66 guibg=black +hi MoreMsg guifg=#55af66 guibg=black +hi Question guifg=#55af66 guibg=black + +"\n, \0, %d, %s, etc... +hi Special guifg=pink gui=none + +" status line +hi StatusLine guifg=#88ee99 guibg=black gui=none +hi StatusLineNC guifg=#446644 guibg=black gui=none + +hi Title guifg=#88ee99 guibg=#000000 gui=none +hi Visual guifg=#77dd88 guibg=#448844 gui=none +hi VisualNOS guifg=#55af66 guibg=black +hi WarningMsg guifg=#77dd88 guibg=black +hi WildMenu guifg=#3a553a guibg=#77dd88 + +hi Number guifg=#77dd88 +hi Char guifg=#77dd88 +hi String guifg=#77dd88 +hi Boolean guifg=#77dd88 +hi Comment guifg=#656565 +hi Constant guifg=#88ee99 gui=none +hi Identifier guifg=white +hi Statement guifg=#8fffff gui=none + +" Procedure name +hi Function guifg=#ffaa33 + +" Define, def +hi PreProc guifg=lightred gui=none +hi Type guifg=white gui=none +hi Underlined guifg=gray gui=underline +hi Error guifg=red guibg=black +hi Todo guifg=pink guibg=black gui=none +hi SignColumn guibg=#151b1d + +" Matches +hi MatchParen guifg=#000000 guibg=#ffaa33 + +" Pmenu +if version >= 700 + hi Pmenu guibg=#202530 + hi PmenuSel guifg=#88ee99 guibg=black + hi PmenuSbar guibg=#202530 + + hi TabLine guifg=#446644 guibg=black gui=None + hi TabLineFill guibg=#232729 guibg=#232729 gui=None + hi TabLineSel guifg=#88ee99 guibg=black gui=None +endif + +finish + +" vim:set ts=8 sts=2 sw=2 tw=0: diff --git a/.vim/colors/rubycomplete.vim b/.vim/colors/rubycomplete.vim new file mode 100644 index 0000000..574161b --- /dev/null +++ b/.vim/colors/rubycomplete.vim @@ -0,0 +1,655 @@ +" Vim completion script +" Language: Ruby +" Maintainer: Mark Guzman +" Info: $Id: rubycomplete.vim,v 1.37 2006/09/19 04:10:32 segy Exp $ +" URL: http://vim-ruby.rubyforge.org +" Anon CVS: See above site +" Release Coordinator: Doug Kearns +" Maintainer Version: 0.7 +" ---------------------------------------------------------------------------- +" +" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) +" ---------------------------------------------------------------------------- + +" {{{ requirement checks +if !has('ruby') + s:ErrMsg( "Error: Required vim compiled with +ruby" ) + finish +endif + +if version < 700 + s:ErrMsg( "Error: Required vim >= 7.0" ) + finish +endif +" }}} requirement checks + +if !exists("g:rubycomplete_rails") + let g:rubycomplete_rails = 0 +endif + +if !exists("g:rubycomplete_classes_in_global") + let g:rubycomplete_classes_in_global = 0 +endif + +if !exists("g:rubycomplete_buffer_loading") + let g:rubycomplete_classes_in_global = 0 +endif + +if !exists("g:rubycomplete_rails_proactive") + let g:rubycomplete_rails_proactive = 0 +endif + +" {{{ vim-side support functions +function! s:ErrMsg(msg) + echohl ErrorMsg + echo a:msg + echohl None +endfunction + +function! s:GetBufferRubyModule(name) + let [snum,enum] = s:GetBufferRubyEntity(a:name, "module") + return snum . '..' . enum +endfunction + +function! s:GetBufferRubyClass(name) + let [snum,enum] = s:GetBufferRubyEntity(a:name, "class") + return snum . '..' . enum +endfunction + +function! s:GetBufferRubySingletonMethods(name) +endfunction + +function! s:GetBufferRubyEntity( name, type ) + let stopline = 1 + let crex = '^\s*' . a:type . '\s*' . a:name . '\s*\(<\s*.*\s*\)\?\n*\(\(\s\|#\).*\n*\)*\n*\s*end$' + let [lnum,lcol] = searchpos( crex, 'nbw') + if lnum == 0 && lcol == 0 + return [0,0] + endif + + let [enum,ecol] = searchpos( crex, 'nebw') + if lnum > enum + let realdef = getline( lnum ) + let crexb = '^' . realdef . '\n*\(\(\s\|#\).*\n*\)*\n*\s*end$' + let [enum,ecol] = searchpos( crexb, 'necw' ) + endif + " we found a the class def + return [lnum,enum] +endfunction + +function! s:IsInClassDef() + return s:IsPosInClassDef( line('.') ) +endfunction + +function! s:IsPosInClassDef(pos) + let [snum,enum] = s:GetBufferRubyEntity( '.*', "class" ) + let ret = 'nil' + + if snum < a:pos && a:pos < enum + let ret = snum . '..' . enum + endif + + return ret +endfunction + +function! s:GetRubyVarType(v) + let stopline = 1 + let vtp = '' + let pos = getpos('.') + let sstr = '^\s*#\s*@var\s*'.a:v.'\>\s\+[^ \t]\+\s*$' + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + call setpos('.',pos) + let str = getline(lnum) + let vtp = substitute(str,sstr,'\1','') + return vtp + endif + call setpos('.',pos) + let ctors = '\(now\|new\|open\|get_instance' + if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1 + let ctors = ctors.'\|find\|create' + else + endif + let ctors = ctors.'\)' + + let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%r{\|[A-Za-z0-9@:\-()\.]\+...\?\)' + let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr + let [lnum,lcol] = searchpos(sstr,'nb',stopline) + if lnum != 0 && lcol != 0 + let str = matchstr(getline(lnum),fstr,lcol) + let str = substitute(str,'^=\s*','','') + call setpos('.',pos) + if str == '"' || str == '''' + return 'String' + elseif str == '[' + return 'Array' + elseif str == '{' + return 'Hash' + elseif str == '/' || str == '%r{' + return 'Regexp' + elseif strlen(str) >= 4 && stridx(str,'..') != -1 + return 'Range' + elseif strlen(str) > 4 + let l = stridx(str,'.') + return str[0:l-1] + end + return '' + endif + call setpos('.',pos) + return '' +endfunction + +"}}} vim-side support functions + +function! rubycomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart + let line = getline('.') + let idx = col('.') + while idx > 0 + let idx -= 1 + let c = line[idx-1] + if c =~ '\w' + continue + elseif ! c =~ '\.' + idx = -1 + break + else + break + endif + endwhile + + return idx + "findstart = 0 when we need to return the list of completions + else + let g:rubycomplete_completions = [] + execute "ruby VimRubyCompletion.get_completions('" . a:base . "')" + return g:rubycomplete_completions + endif +endfunction + + +function! s:DefRuby() +ruby << RUBYEOF +# {{{ ruby completion + +begin + require 'rubygems' +rescue Exception + #ignore? +end +class VimRubyCompletion + # {{{ constants + @@debug = false + @@ReservedWords = [ + "BEGIN", "END", + "alias", "and", + "begin", "break", + "case", "class", + "def", "defined", "do", + "else", "elsif", "end", "ensure", + "false", "for", + "if", "in", + "module", + "next", "nil", "not", + "or", + "redo", "rescue", "retry", "return", + "self", "super", + "then", "true", + "undef", "unless", "until", + "when", "while", + "yield", + ] + + @@Operators = [ "%", "&", "*", "**", "+", "-", "/", + "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>", + "[]", "[]=", "^", ] + #}}} constants + + + def load_requires + buf = VIM::Buffer.current + enum = buf.line_number + nums = Range.new( 1, enum ) + nums.each do |x| + ln = buf[x] + begin + eval( "require %s" % $1 ) if /.*require\s*(.*)$/.match( ln ) + rescue Exception + #ignore? + end + end + end + + def load_buffer_class(name) + classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")') + return if classdef == nil + + pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef ) + load_buffer_class( $2 ) if pare != nil + + mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef ) + load_buffer_module( $2 ) if mixre != nil + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading class \"%s\", was it already completed?' )" % name ) + end + end + + def load_buffer_module(name) + classdef = get_buffer_entity(name, 's:GetBufferRubyModule("%s")') + return if classdef == nil + + begin + eval classdef + rescue Exception + VIM::evaluate( "s:ErrMsg( 'Problem loading module \"%s\", was it already completed?' )" % name ) + end + end + + def get_buffer_entity(name, vimfun) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + return nil if loading_allowed != '1' + return nil if /(\"|\')+/.match( name ) + buf = VIM::Buffer.current + nums = eval( VIM::evaluate( vimfun % name ) ) + return nil if nums == nil + return nil if nums.min == nums.max && nums.min == 0 + + cur_line = VIM::Buffer.current.line_number + classdef = "" + nums.each do |x| + if x != cur_line + ln = buf[x] + if /^\s*(module|class|def|include)\s+/.match(ln) + classdef += "%s\n" % ln + classdef += "end\n" if /def\s+/.match(ln) + dprint ln + end + end + end + classdef += "end\n" if classdef.length > 1 + + return classdef + end + + def get_var_type( receiver ) + if /(\"|\')+/.match( receiver ) + "String" + else + VIM::evaluate("s:GetRubyVarType('%s')" % receiver) + end + end + + def dprint( txt ) + print txt if @@debug + end + + def get_buffer_entity_list( type ) + # this will be a little expensive. + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + allow_aggressive_load = VIM::evaluate("exists('g:rubycomplete_classes_in_global') && g:rubycomplete_classes_in_global") + return [] if allow_aggressive_load != '1' || loading_allowed != '1' + + buf = VIM::Buffer.current + eob = buf.length + ret = [] + rg = 1..eob + re = eval( "/^\s*%s\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*/" % type ) + + rg.each do |x| + if re.match( buf[x] ) + next if type == "def" && eval( VIM::evaluate("s:IsPosInClassDef(%s)" % x) ) != nil + ret.push $1 + end + end + + return ret + end + + def get_buffer_modules + return get_buffer_entity_list( "modules" ) + end + + def get_buffer_methods + return get_buffer_entity_list( "def" ) + end + + def get_buffer_classes + return get_buffer_entity_list( "class" ) + end + + + def load_rails + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + return if allow_rails != '1' + + buf_path = VIM::evaluate('expand("%:p")') + file_name = VIM::evaluate('expand("%:t")') + vim_dir = VIM::evaluate('getcwd()') + file_dir = buf_path.gsub( file_name, '' ) + file_dir.gsub!( /\\/, "/" ) + vim_dir.gsub!( /\\/, "/" ) + vim_dir << "/" + dirs = [ vim_dir, file_dir ] + sdirs = [ "", "./", "../", "../../", "../../../", "../../../../" ] + rails_base = nil + + dirs.each do |dir| + sdirs.each do |sub| + trail = "%s%s" % [ dir, sub ] + tcfg = "%sconfig" % trail + + if File.exists?( tcfg ) + rails_base = trail + break + end + end + break if rails_base + end + + return if rails_base == nil + $:.push rails_base unless $:.index( rails_base ) + + rails_config = rails_base + "config/" + rails_lib = rails_base + "lib/" + $:.push rails_config unless $:.index( rails_config ) + $:.push rails_lib unless $:.index( rails_lib ) + + bootfile = rails_config + "boot.rb" + envfile = rails_config + "environment.rb" + if File.exists?( bootfile ) && File.exists?( envfile ) + begin + require bootfile + require envfile + begin + require 'console_app' + require 'console_with_helpers' + rescue Exception + dprint "Rails 1.1+ Error %s" % $! + # assume 1.0 + end + eval( "Rails::Initializer.run" ) + VIM::command('let s:rubycomplete_rails_loaded = 1') + rescue Exception + dprint "Rails Error %s" % $! + VIM::evaluate( "s:ErrMsg('Error loading rails environment')" ) + end + end + end + + def get_rails_helpers + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + path_elm = buf_path.split( "/" ) + i = path_elm.index( "app" ) + + return [] unless i + i += 1 + type = path_elm[i] + type.downcase! + + ret = [] + case type + when "views" + ret += ActionView::Base.instance_methods + ret += ActionView::Base.methods + when "controllers" + ret += ActionController::Base.instance_methods + ret += ActionController::Base.methods + when "models" + ret += ActiveRecord::Base.instance_methods + ret += ActiveRecord::Base.methods + end + + return ret + end + + def add_rails_columns( cls ) + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + begin + eval( "#{cls}.establish_connection" ) + return [] unless eval( "#{cls}.ancestors.include?(ActiveRecord::Base).to_s" ) + col = eval( "#{cls}.column_names" ) + return col if col + rescue + return [] + end + return [] + end + + def clean_sel(sel, msg) + sel.delete_if { |x| x == nil } + sel.uniq! + sel.grep(/^#{Regexp.quote(msg)}/) if msg != nil + end + + def get_rails_view_methods + allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails") + rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded') + return [] if allow_rails != '1' || rails_loaded != '1' + + buf_path = VIM::evaluate('expand("%:p")') + buf_path.gsub!( /\\/, "/" ) + pelm = buf_path.split( "/" ) + idx = pelm.index( "views" ) + + return [] unless idx + idx += 1 + + clspl = pelm[idx].camelize.pluralize + cls = clspl.singularize + + ret = [] + ret += eval( "#{cls}.instance_methods" ) + ret += eval( "#{clspl}Helper.instance_methods" ) + return ret + end + + def self.get_completions(base) + b = VimRubyCompletion.new + b.get_completions base + end + + def get_completions(base) + loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading") + if loading_allowed == '1' + load_requires + load_rails + end + + input = VIM::Buffer.current.line + cpos = VIM::Window.current.cursor[1] - 1 + input = input[0..cpos] + input += base + input.sub!(/.*[ \t\n\"\\'`><=;|&{(]/, '') # Readline.basic_word_break_characters + input.sub!(/self\./, '') + + message = nil + receiver = nil + methods = [] + variables = [] + classes = [] + + case input + when /^(\/[^\/]*\/)\.([^.]*)$/ # Regexp + receiver = $1 + message = Regexp.quote($2) + methods = Regexp.instance_methods(true) + + when /^([^\]]*\])\.([^.]*)$/ # Array + receiver = $1 + message = Regexp.quote($2) + methods = Array.instance_methods(true) + + when /^([^\}]*\})\.([^.]*)$/ # Proc or Hash + receiver = $1 + message = Regexp.quote($2) + methods = Proc.instance_methods(true) | Hash.instance_methods(true) + + when /^(:[^:.]*)$/ # Symbol + dprint "symbol" + if Symbol.respond_to?(:all_symbols) + receiver = $1 + message = $1.sub( /:/, '' ) + methods = Symbol.all_symbols.collect{|s| s.id2name} + methods.delete_if { |c| c.match( /'/ ) } + end + + when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods + dprint "const or cls" + receiver = $1 + methods = Object.constants + methods.grep(/^#{receiver}/).collect{|e| "::" + e} + + when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ # Constant or class methods + dprint "const or cls 2" + receiver = $1 + message = Regexp.quote($4) + begin + methods = eval("#{receiver}.constants | #{receiver}.methods") + rescue Exception + methods = [] + end + methods.grep(/^#{message}/).collect{|e| receiver + "::" + e} + + when /^(:[^:.]+)\.([^.]*)$/ # Symbol + receiver = $1 + message = Regexp.quote($2) + methods = Symbol.instance_methods(true) + + when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/ # Numeric + receiver = $1 + message = Regexp.quote($4) + begin + methods = eval(receiver).methods + rescue Exception + methods = [] + end + + when /^(\$[^.]*)$/ #global + methods = global_variables.grep(Regexp.new(Regexp.quote($1))) + + when /^((\.?[^.]+)+)\.([^.]*)$/ # variable + receiver = $1 + message = Regexp.quote($3) + load_buffer_class( receiver ) + + cv = eval("self.class.constants") + vartype = get_var_type( receiver ) + dprint "vartype: %s" % vartype + if vartype != '' + load_buffer_class( vartype ) + + begin + methods = eval("#{vartype}.instance_methods") + variables = eval("#{vartype}.instance_variables") + rescue Exception + dprint "load_buffer_class err: %s" % $! + end + elsif (cv).include?(receiver) + # foo.func and foo is local var. + methods = eval("#{receiver}.methods") + vartype = receiver + elsif /^[A-Z]/ =~ receiver and /\./ !~ receiver + vartype = receiver + # Foo::Bar.func + begin + methods = eval("#{receiver}.methods") + rescue Exception + end + else + # func1.func2 + ObjectSpace.each_object(Module){|m| + next if m.name != "IRB::Context" and + /^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name + methods.concat m.instance_methods(false) + } + end + variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0 + + when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/ + message = $1 + methods = Range.instance_methods(true) + + when /^\.([^.]*)$/ # unknown(maybe String) + message = Regexp.quote($1) + methods = String.instance_methods(true) + + else + inclass = eval( VIM::evaluate("s:IsInClassDef()") ) + + if inclass != nil + classdef = "%s\n" % VIM::Buffer.current[ inclass.min ] + found = /^\s*class\s*([A-Za-z0-9_-]*)(\s*<\s*([A-Za-z0-9_:-]*))?\s*\n$/.match( classdef ) + + if found != nil + receiver = $1 + message = input + load_buffer_class( receiver ) + begin + methods = eval( "#{receiver}.instance_methods" ) + methods += get_rails_helpers + variables += add_rails_columns( "#{receiver}" ) + rescue Exception + found = nil + end + end + end + + if inclass == nil || found == nil + methods = get_buffer_methods + methods += get_rails_helpers + methods += get_rails_view_methods + classes = eval("self.class.constants") + classes += get_buffer_classes + classes += get_buffer_modules + message = receiver = input + end + + methods += Kernel.public_methods + end + + methods = clean_sel( methods, message ) + methods = (methods-Object.instance_methods) + variables = clean_sel( variables, message ) + classes = clean_sel( classes, message ) + valid = [] + valid += methods.collect { |m| { :name => m, :type => 'f' } } + valid += variables.collect { |v| { :name => v, :type => 'v' } } + valid += classes.collect { |c| { :name => c, :type => 't' } } + valid.sort! { |x,y| x[:name] <=> y[:name] } + + outp = "" + + rg = 0..valid.length + rg.step(150) do |x| + stpos = 0+x + enpos = 150+x + valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ] } + outp.sub!(/,$/, '') + + VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp) + outp = "" + end + end + +end # VimRubyCompletion +# }}} ruby completion +RUBYEOF +endfunction + +let s:rubycomplete_rails_loaded = 0 + +call s:DefRuby() + + +" vim:tw=78:sw=4:ts=8:et:fdm=marker:ft=vim:norl: diff --git a/.vim/colors/satori.vim b/.vim/colors/satori.vim new file mode 100644 index 0000000..5c7b250 --- /dev/null +++ b/.vim/colors/satori.vim @@ -0,0 +1,47 @@ +" Vim color file +" Maintainer: Ruda Moura +" Last Change: Sun Feb 24 18:50:47 BRT 2008 + +highlight clear Normal +set background& + +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "satori" + +" Vim colors +highlight Normal ctermfg=NONE cterm=NONE +highlight Comment ctermfg=Cyan cterm=NONE +highlight Constant ctermfg=Red cterm=NONE +highlight Number ctermfg=Red cterm=NONE +highlight Identifier ctermfg=NONE cterm=NONE +highlight Statement ctermfg=NONE cterm=Bold +highlight PreProc ctermfg=Blue cterm=NONE +highlight Type ctermfg=Magenta cterm=NONE +highlight Special ctermfg=Magenta cterm=NONE + +" Vim monochrome +highlight Normal term=NONE +highlight Comment term=NONE +highlight Constant term=Underline +highlight Number term=Underline +highlight Identifier term=NONE +highlight Statement term=Bold +highlight PreProc term=NONE +highlight Type term=Bold +highlight Special term=NONE + +" GVim colors +highlight Normal guifg=NONE gui=NONE +highlight Comment guifg=DarkCyan gui=NONE +highlight Constant guifg=Red gui=NONE +highlight Number guifg=Red gui=Bold +highlight Identifier guifg=NONE gui=NONE +highlight Statement guifg=NONE gui=Bold +highlight PreProc guifg=Blue gui=NONE +highlight Type guifg=Magenta gui=NONE +highlight Special guifg=Red gui=Bold diff --git a/.vim/colors/sea.vim b/.vim/colors/sea.vim new file mode 100644 index 0000000..0c79c47 --- /dev/null +++ b/.vim/colors/sea.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:01. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "sea" + +hi Normal guifg=#f0f0f8 guibg=#343478 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#ffffff guibg=#c030ff +hi Search gui=BOLD guifg=#f0e0ff guibg=#b020ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#6060ff +hi Question gui=BOLD guifg=#00f0d0 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff90ff + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0080a0 +hi FoldColumn gui=NONE guifg=#9090ff guibg=#3c3c88 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#7070e8 guibg=NONE +hi NonText gui=BOLD guifg=#8080ff guibg=#2c2c78 +hi SpecialKey gui=BOLD guifg=#60c0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060ff +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060ff + +" Syntax group +hi Comment gui=NONE guifg=#b0b0c8 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#f000a0 +hi Identifier gui=NONE guifg=#c0c0ff guibg=NONE +hi Ignore gui=NONE guifg=#303080 guibg=NONE +hi PreProc gui=NONE guifg=#ffb0ff guibg=NONE +hi Special gui=NONE guifg=#ffd858 guibg=NONE +hi Statement gui=NONE guifg=#f0f060 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff70e0 guibg=NONE +hi Type gui=NONE guifg=#40ff80 guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/.vim/colors/settlemyer.vim b/.vim/colors/settlemyer.vim new file mode 100644 index 0000000..91495ff --- /dev/null +++ b/.vim/colors/settlemyer.vim @@ -0,0 +1,53 @@ +" Vim color file +" Maintainer: Max Lynch +" URL: http://muffinpeddler.com +" Version: 0.1 +" +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="settlemyer" + +hi Normal guibg=gray25 guifg=gray85 +hi Cursor guibg=red3 guifg=bg + +" Syntax Highlighting +hi Comment guifg=LightPink +hi Constant guifg=SpringGreen +" hi Identifier gui=bold guifg=SkyBlue +" hi Function guifg=Wheat3 +" hi Type guifg=orange1 +hi Keyword guifg=SkyBlue +hi PreProc guifg=SkyBlue +hi Statement guifg=SkyBlue +hi Type gui=bold guifg=SkyBlue +hi NonText guifg=DarkGray +hi Tags guifg=orange1 + +hi link Character Constant +hi link Number Constant +hi link Float Constant +hi link Function Statement +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Tags diff --git a/.vim/colors/sienna.vim b/.vim/colors/sienna.vim new file mode 100644 index 0000000..08b8eda --- /dev/null +++ b/.vim/colors/sienna.vim @@ -0,0 +1,150 @@ +" Vim colour scheme +" Maintainer: Georg Dahn +" Last Change: 26 April 2006 +" Version: 1.6 +" +" This color scheme has both light and dark styles with harmonic colors +" easy to distinguish. Terminals are not supported, therefore you should +" only try it if you use the GUI version of Vim. +" +" You can choose the style by adding one of the following lines to your +" vimrc or gvimrc file before sourcing the color scheme: +" +" let g:sienna_style = 'dark' +" let g:sienna_style = 'light' +" +" If none of above lines is given, the light style is choosen. +" +" You can switch between these styles by using the :Colo command, like +" :Colo dark or :Colo light (many thanks to Pan Shizhu). + +if exists("g:sienna_style") + let s:sienna_style = g:sienna_style +else + let s:sienna_style = 'light' +endif + +execute "command! -nargs=1 Colo let g:sienna_style = \"\" | colo sienna" + +if s:sienna_style == 'dark' + set background=dark +elseif s:sienna_style == 'light' + set background=light +else + finish +endif + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'sienna' + +if s:sienna_style == 'dark' + hi Normal gui=none guifg=Grey85 guibg=Grey15 + + hi Cursor guifg=Black guibg=Grey85 + hi LineNr gui=none guifg=Grey65 + hi NonText gui=bold guifg=Grey65 guibg=Grey20 + hi SpecialKey gui=none guifg=SkyBlue2 + hi Title gui=bold guifg=Grey85 + hi Visual gui=bold guifg=Black guibg=LightSalmon1 + + hi FoldColumn gui=none guifg=Black guibg=Wheat3 + hi Folded gui=none guifg=White guibg=Wheat4 + hi StatusLine gui=bold guifg=Black guibg=Grey85 + hi StatusLineNC gui=none guifg=White guibg=DimGray + hi VertSplit gui=none guifg=White guibg=DimGray + hi Wildmenu gui=bold guifg=White guibg=Black + + hi Pmenu guibg=Grey55 guifg=Black gui=none + hi PmenuSbar guibg=Grey40 guifg=fg gui=none + hi PmenuSel guibg=Yellow2 guifg=Black gui=none + hi PmenuThumb guibg=Grey80 guifg=bg gui=none + + hi IncSearch gui=none guifg=Grey15 guibg=Grey85 + hi Search gui=none guifg=Black guibg=Yellow2 + + hi MoreMsg gui=bold guifg=PaleGreen2 + hi Question gui=bold guifg=PaleGreen2 + hi WarningMsg gui=bold guifg=Red + + hi Comment gui=italic guifg=SkyBlue3 + hi Error gui=none guifg=White guibg=Red2 + hi Identifier gui=none guifg=LightSalmon2 + hi Special gui=none guifg=SkyBlue2 + hi PreProc gui=none guifg=SkyBlue3 + hi Todo gui=bold guifg=Black guibg=Yellow2 + hi Type gui=bold guifg=SkyBlue2 + hi Underlined gui=underline guifg=DodgerBlue + + hi Boolean gui=bold guifg=PaleGreen2 + hi Constant gui=none guifg=PaleGreen2 + hi Number gui=bold guifg=PaleGreen2 + hi String gui=none guifg=PaleGreen2 + + hi Label gui=bold,underline guifg=LightSalmon2 + hi Statement gui=bold guifg=LightSalmon2 + + hi htmlBold gui=bold + hi htmlItalic gui=italic + hi htmlUnderline gui=underline + hi htmlBoldItalic gui=bold,italic + hi htmlBoldUnderline gui=bold,underline + hi htmlBoldUnderlineItalic gui=bold,underline,italic + hi htmlUnderlineItalic gui=underline,italic +elseif s:sienna_style == 'light' + hi Normal gui=none guifg=Black guibg=White + + hi Cursor guifg=White guibg=Black + hi LineNr gui=none guifg=DarkGray + hi NonText gui=bold guifg=DarkGray guibg=Grey95 + hi SpecialKey gui=none guifg=RoyalBlue4 + hi Title gui=bold guifg=Black + hi Visual gui=bold guifg=Black guibg=Sienna1 + + hi FoldColumn gui=none guifg=Black guibg=Wheat2 + hi Folded gui=none guifg=Black guibg=Wheat1 + hi StatusLine gui=bold guifg=White guibg=Black + hi StatusLineNC gui=none guifg=White guibg=DimGray + hi VertSplit gui=none guifg=White guibg=DimGray + hi Wildmenu gui=bold guifg=Black guibg=White + + hi Pmenu guibg=Grey65 guifg=Black gui=none + hi PmenuSbar guibg=Grey50 guifg=fg gui=none + hi PmenuSel guibg=Yellow guifg=Black gui=none + hi PmenuThumb guibg=Grey75 guifg=fg gui=none + + hi IncSearch gui=none guifg=White guibg=Black + hi Search gui=none guifg=Black guibg=Yellow + + hi MoreMsg gui=bold guifg=ForestGreen + hi Question gui=bold guifg=ForestGreen + hi WarningMsg gui=bold guifg=Red + + hi Comment gui=italic guifg=RoyalBlue3 + hi Error gui=none guifg=White guibg=Red + hi Identifier gui=none guifg=Sienna4 + hi Special gui=none guifg=RoyalBlue4 + hi PreProc gui=none guifg=RoyalBlue3 + hi Todo gui=bold guifg=Black guibg=Yellow + hi Type gui=bold guifg=RoyalBlue4 + hi Underlined gui=underline guifg=Blue + + hi Boolean gui=bold guifg=ForestGreen + hi Constant gui=none guifg=ForestGreen + hi Number gui=bold guifg=ForestGreen + hi String gui=none guifg=ForestGreen + + hi Label gui=bold,underline guifg=Sienna4 + hi Statement gui=bold guifg=Sienna4 + + hi htmlBold gui=bold + hi htmlItalic gui=italic + hi htmlUnderline gui=underline + hi htmlBoldItalic gui=bold,italic + hi htmlBoldUnderline gui=bold,underline + hi htmlBoldUnderlineItalic gui=bold,underline,italic + hi htmlUnderlineItalic gui=underline,italic +endif diff --git a/.vim/colors/silent.vim b/.vim/colors/silent.vim new file mode 100644 index 0000000..679ecd7 --- /dev/null +++ b/.vim/colors/silent.vim @@ -0,0 +1,116 @@ +" Vim color file +" @Author: Pascal Vasilii + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "silent" +set background=light + +hi Cursor guibg=#0057ae guifg=white gui=NONE +hi LineNr guibg=#F1FFC1 guifg=DarkGray gui=bold,italic +hi StatusLineNC guibg=#bbbbbb guifg=White gui=bold,italic +hi StatusLine guibg=#1D343B guifg=#DDDDDD gui=italic +hi Title guibg=white guifg=Black gui=bold +hi TablineSel guibg=white guifg=Black gui=bold +hi CursorLine guibg=#F1FFC1 guifg=Black gui=none +hi CursorColumn guibg=#fafafa guifg=black gui=NONE +hi MatchParen guifg=#141312 guibg=Yellow gui=underline +hi AutoHiGroup guibg=Yellow guifg=black +"hi TabLineFill guibg=red guifg=#606060 gui=none +hi SignColumn guibg=#F1FFC1 guifg=black gui=bold + +hi Directory guibg=white guifg=Black gui=bold,italic +hi Tooltip guibg=#F1FFC1 guifg=DarkGray gui=bold,italic +hi FoldColumn guibg=#F1FFC1 guifg=Black gui=none +hi VertSplit guibg=#F1FFC1 guifg=#F1FFC1 gui=none +hi Wildmenu guibg=White guifg=Black gui=bold + +hi Pmenu guibg=#DDDDDD guifg=Black gui=italic +hi PmenuSbar guibg=#DDDDDD guifg=fg gui=italic +hi PmenuSel guibg=#F1FFC1 guifg=Black gui=italic +hi PmenuThumb guibg=#DDDDDD guifg=fg gui=none + +hi IncSearch guibg=Black guifg=White gui=none +hi Search guibg=Yellow guifg=Black gui=none + +hi Normal guibg=White guifg=#141312 gui=NONE +hi Visual guibg=#4485FF guifg=white gui=bold +hi VisualNos guibg=#4485FF guifg=white gui=bold +hi Comment guibg=white guifg=#888786 gui=italic +hi PerlPOD guibg=white guifg=#B86A18 gui=NONE +" dark green 006e26 +hi Constant guibg=white guifg=#006e26 gui=bold + +hi Character guibg=white guifg=#644A9B gui=NONE +hi String guibg=white guifg=#BF0303 gui=italic +"hi Number guibg=white guifg=black gui=bold +hi Number guibg=white guifg=#B07E00 gui=NONE +hi Boolean guibg=white guifg=#B07E00 gui=NONE +hi Define guibg=white guifg=#006E26 gui=bold + +" vars +hi Identifier guibg=white guifg=#0057AE gui=NONE +hi Exception guibg=white guifg=black gui=bold +" return ~olive +hi Statement guibg=white guifg=#B07E00 gui=NONE +"hi Label guibg=white guifg=#B07E00 gui=NONE +hi PreProc guibg=white guifg=#141312 gui=bold +hi Function guibg=white guifg=#B07E00 gui=NONE +hi Repeat guibg=white guifg=#B07E00 gui=bold +"$='"[ +hi Operator guibg=white guifg=#0057AE gui=NONE +hi Ignore guibg=white guifg=bg +hi Folded guibg=#F1FFC1 guifg=#101010 gui=italic +hi Error guibg=#D80000 guifg=#FFD1CC term=reverse gui=NONE +hi Todo guibg=#AD5500 guifg=Grey term=standout gui=NONE +hi Done guibg=Gray guifg=#CCEEFF term=standout gui=NONE + +hi SpellErrors guibg=white guifg=#9C0D0D gui=NONE +hi SpellBad guibg=white gui=undercurl guisp=#9C0D0D +hi SpellCap guibg=white gui=undercurl guisp=#9C0D0D +hi SpellLocal guibg=white gui=undercurl guisp=#9C0D0D +hi SpellRare guibg=white gui=undercurl guisp=#9C0D0D + +hi MoreMsg guibg=white guifg=black gui=NONE +hi ModeMsg guibg=white guifg=black gui=NONE +hi DiffAdd guibg=#CCFFCC guifg=NONE gui=NONE +hi DiffDelete guibg=#FFCCCC guifg=NONE gui=NONE +hi DiffChange guibg=#F1FFC1 guifg=NONE gui=NONE +hi DiffText guibg=white guifg=NONE gui=NONE + +hi Question guibg=white guifg=black gui=bold +hi Conditional guibg=white guifg=#B07E00 gui=NONE +hi Include guibg=white guifg=#141312 gui=bold +hi SpecialChar guibg=white guifg=#141312 gui=bold +hi Underlined guibg=white guifg=#0057ae gui=underline + +" -> +hi Structure guibg=white guifg=black gui=none +hi Chatacter guibg=white guifg=black gui=none +" dark red #D80000 +hi Float guibg=#CCFFCC guifg=blue gui=NONE +hi Macro guibg=white guifg=black gui=bold +" #ifdef #endif dark blue +hi PreCondit guibg=white guifg=#0057ae gui=bold +hi Delimiter guibg=white guifg=black gui=NONE +" const static +hi StorageClass guibg=white guifg=#006e26 gui=NONE +"type +hi Typedef guibg=#CCFFCC guifg=#006e26 gui=bold +" int char +hi Type guibg=white guifg=black gui=NONE +hi Tag guibg=#CCFFCC guifg=#0057AE gui=NONE +hi Special guibg=white guifg=black gui=NONE +hi SpecialKey guibg=white guifg=black gui=none +"NonText '~' and '@' at the end of the window, characters from + "'showbreak' and other characters that do not really exist in + "the text (e.g., ">" displayed when a double-wide character + "doesn't fit at the end of the line). +hi NonText guibg=white guifg=black gui=none +hi Keyword guibg=white guifg=#141312 gui=NONE + +hi link SpecialComment Special +hi link Debug Special diff --git a/.vim/colors/simpleandfriendly.vim b/.vim/colors/simpleandfriendly.vim new file mode 100644 index 0000000..cd6d8b4 --- /dev/null +++ b/.vim/colors/simpleandfriendly.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Thomas Schmall www.oxpal.com +" Last Change: Nov 2 2009 +" URL: http://www.vim.org/scripts/script.php?script_id=792 +" Version: 1.4 + +" This color scheme uses a light grey background. + +" Last Changes: +" *line number colors changed +" *current line highlighting + + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "simpleandfriendly" + +"set the highlighting of the current line to true - then give it a color +"delete next line to turn off current line highlighting for this color scheme +set cul +hi cursorline gui=underline +"guibg=grey91 +hi visual guibg=grey80 guifg=black + + +"Set nice colors #DC6210 +"Cursor is Cyan when ":lmap" mappings are active +hi lCursor guibg=Cyan guifg=NONE +hi LineNr guifg=white guibg=#acbbff + +"Text below the last line is darker grey +hi NonText guibg=grey80 +"Normal text is black background is grey +hi Normal guifg=black guibg=grey89 ctermfg=Black ctermbg=LightGrey +hi Comment guifg=Orange guibg=grey94 ctermfg=DarkCyan term=bold +"Constants are not underlined but have a slightly lighter background +hi Constant guifg=#8080a0 guibg=grey92 gui=NONE term=underline +hi String guifg=#80a0ff guibg=grey93 gui=NONE term=underline +hi Number guifg=#80a5ff guibg=grey91 gui=NONE ctermfg=Gray term=none +"Words like _if_ or _else_ (Grey27) +hi Statement guifg=#4A2B99 gui=NONE ctermfg=Blue + +hi Title guifg=red ctermfg=red gui=NONE term=BOLD +"color for _NONE_ for instance: +hi PreProc term=underline ctermfg=LightBlue guifg=#DC6210 +"color for _guifg_ for instance: (SlateBlue works here nice too) +hi Type guifg=#008080 ctermfg=LightGreen gui=None term=underline +hi Function guifg=#61577A term=bold +"in lingo the defined functions. (alt: SlateBlue) +hi Identifier guifg=Seagreen +"hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff + +"hi Repeat term=underline ctermfg=White guifg=white +"hi Ignore guifg=bg ctermfg=black +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +"Special Characters +hi Special guibg=grey90 guifg=Slateblue gui=UNDERLINE + +hi operator guifg=gray25 ctermfg=Black term=bold cterm=bold gui=bold diff --git a/.vim/colors/softblue.vim b/.vim/colors/softblue.vim new file mode 100644 index 0000000..8d8ee1b --- /dev/null +++ b/.vim/colors/softblue.vim @@ -0,0 +1,45 @@ +" Vim color file +" Maintainer: Zhang Jing +" Last Change: %[% 2005Äê12ÔÂ07ÈÕ ÐÇÆÚÈý 10ʱ41·Ö49Ãë %]% + +set background=dark +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="softblue" + +hi Normal guibg=#183058 guifg=#b0b0e0 + +hi Cursor guibg=#b3b2df guifg=grey30 gui=bold +hi VertSplit guibg=#466292 guifg=grey50 gui=none +hi Folded guibg=#0d2349 guifg=lightblue +hi FoldColumn guibg=#0d2349 guifg=lightblue +hi IncSearch guifg=slategrey guibg=khaki +hi LineNr guifg=grey30 +hi ModeMsg guifg=SkyBlue +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=#0d2349 +hi Question guifg=#487cc4 +hi Search guibg=#787878 guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#466292 guifg=black gui=none +hi StatusLineNC guibg=#466292 guifg=grey22 gui=none +hi Title guifg=#38d9ff +hi Visual guifg=lightblue guibg=#001146 gui=none +hi WarningMsg guifg=salmon +hi ErrorMsg guifg=white guibg=#b2377a + +hi Comment guifg=#6279a0 +hi Constant guifg=#9b60be +hi Identifier guifg=#00ac55 +hi Statement guifg=SkyBlue2 +hi PreProc guifg=#20a0d0 +hi Type guifg=#8070ff +hi Special guifg=#b6a040"wheat4"#7c9cf5"a2b9e0 +hi Ignore guifg=grey40 +hi Error guifg=white guibg=#b2377a +hi Todo guifg=#54b900 guibg=#622098 gui=bold +"vim:ts=4:tw=4 diff --git a/.vim/colors/soso.vim b/.vim/colors/soso.vim new file mode 100644 index 0000000..c1e1a02 --- /dev/null +++ b/.vim/colors/soso.vim @@ -0,0 +1,67 @@ +"--------------------------------------------------------------------- +" $Id: soso.vim,v 1.3 2007/10/31 06:24:34 soso Exp $ +" +" Maintainer: Soeren Sonntag +" Last Change: $Date: 2007/10/31 06:24:34 $ +" +" Description: Vim color file +"--------------------------------------------------------------------- + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="soso" + +hi Normal guifg=black guibg=#e4e4e4 ctermfg=black ctermbg=white +hi DiffAdd guibg=#c0ffe0 ctermbg=3 +hi DiffDelete guifg=#ff8097 guibg=#ffe0f7 ctermfg=4 ctermbg=5 +hi DiffChange guibg=#cfefff ctermbg=9 +hi DiffText guibg=#bfdfff gui=bold ctermbg=6 cterm=bold +hi NonText guifg=grey50 guibg=grey86 gui=bold ctermfg=darkblue +hi SpecialKey guifg=grey50 guibg=grey86 gui=bold ctermfg=darkblue +hi NonText guifg=grey50 guibg=grey86 ctermfg=blue +hi LineNr guifg=grey50 guibg=grey86 ctermfg=darkblue +hi Search guibg=#fff999 +hi StatusLine guifg=bg guibg=black gui=bold ctermfg=bg ctermbg=black cterm=bold +hi StatusLineNC guifg=bg guibg=grey40 gui=NONE ctermfg=bg ctermbg=black cterm=NONE +hi Visual guifg=fg guibg=#ccccdd gui=NONE +hi VisualNOS guifg=bg guibg=#ccccdd gui=NONE + +" syntax highlighting groups +hi Comment guifg=#000099 guibg=bg ctermfg=darkblue +hi String guifg=#b30000 guibg=bg ctermfg=darkred +hi Constant guifg=#c033ff guibg=bg ctermfg=darkmagenta +hi Statement guifg=black guibg=bg ctermfg=black cterm=bold +hi PreProc guifg=#335588 guibg=bg gui=bold ctermfg=blue +hi Type guifg=#338855 guibg=bg gui=bold ctermfg=darkgreen +hi StorageClass guifg=#990000 guibg=bg ctermfg=red +hi Special guifg=#6688ff guibg=bg ctermfg=darkcyan +hi Function guifg=#117777 guibg=bg ctermfg=red + +" showpairs plugin +" for cursor on paren +hi ShowPairsHL guibg=#c4ffc4 ctermbg=lightgreen +" for cursor between parens +hi ShowPairsHLp guibg=#c4f0c4 ctermbg=lightgreen +" unmatched paren +hi ShowPairsHLe guibg=#ff5555 ctermbg=red + +" settings for Vim7 +if version >= 700 + hi MatchParen guibg=#c4ffc4 ctermbg=lightgreen + " Spell + hi SpellBad guifg=#cc0000 gui=undercurl guisp=#cc0000 ctermfg=red cterm=underline + hi SpellRare guifg=magenta gui=undercurl ctermfg=magenta cterm=underline + hi SpellCap gui=undercurl guisp=#22cc22 cterm=underline + " Completion menu + hi Pmenu guibg=#ffffcc ctermbg=yellow + hi PmenuSel guibg=#ddddaa ctermbg=lightcyan cterm=bold + hi PmenuSbar guibg=#999966 ctermbg=lightcyan + " Tab line + hi TabLine guibg=grey70 cterm=underline + hi TabLineSel gui=bold cterm=bold + hi TabLineFill guifg=black guibg=grey80 cterm=underline +endif diff --git a/.vim/colors/spring.vim b/.vim/colors/spring.vim new file mode 100644 index 0000000..06d79d0 --- /dev/null +++ b/.vim/colors/spring.vim @@ -0,0 +1,71 @@ + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" File Name: spring.vim +" Abstract: A color sheme file (only for GVIM), which make the VIM +" bright with colors. It looks like the flowers are in +" blossom in Spring. +" Author: CHE Wenlong +" Version: 1.0 +" Last Change: September 16, 2008 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +if !has("gui_running") + runtime! colors/default.vim + finish +endif + +set background=light + +hi clear + +" Version control +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let colors_name = "spring" + +" Common +hi Normal guifg=#000000 guibg=#cce8cf gui=NONE +hi Visual guibg=#ccffff gui=NONE +hi Cursor guifg=#f5deb3 guibg=#2f4f4f gui=NONE +hi Cursorline guibg=#ccffff +hi lCursor guifg=#000000 guibg=#ffffff gui=NONE +hi LineNr guifg=#1060a0 guibg=#e0e0e0 gui=NONE +hi Title guifg=#202020 guibg=NONE gui=bold +hi Underlined guifg=#202020 guibg=NONE gui=underline + +" Split +hi StatusLine guifg=#f5deb3 guibg=#2f4f4f gui=bold +hi StatusLineNC guifg=#f5deb3 guibg=#2f4f4f gui=NONE +hi VertSplit guifg=#2f4f4f guibg=#2f4f4f gui=NONE + +" Folder +hi Folded guifg=#006699 guibg=#e0e0e0 gui=NONE + +" Syntax +hi Type guifg=#009933 guibg=NONE gui=bold +hi Define guifg=#1060a0 guibg=NONE gui=bold +hi Comment guifg=#1e90ff guibg=NONE gui=NONE +hi Constant guifg=#a07040 guibg=NONE gui=NONE +hi String guifg=#a07040 guibg=NONE gui=NONE +hi Number guifg=#cd0000 guibg=NONE gui=NONE +hi Statement guifg=#fc548f guibg=NONE gui=bold + +" Others +hi PreProc guifg=#1060a0 guibg=NONE gui=NONE +hi Error guifg=#ff0000 guibg=#ffffff gui=bold,underline +hi Todo guifg=#a0b0c0 guibg=NONE gui=bold,underline +hi Special guifg=#8B038D guibg=NONE gui=NONE +hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=NONE + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" vim:tabstop=4 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/.vim/colors/summerfruit256.vim b/.vim/colors/summerfruit256.vim new file mode 100644 index 0000000..d62cbf8 --- /dev/null +++ b/.vim/colors/summerfruit256.vim @@ -0,0 +1,322 @@ +" Vim color file +" Maintainer: Martin Baeuml +" Last Change: 2008-02-09 +" +" This color file is a modification of the "summerfruit" color scheme by Armin Ronacher +" so that it can be used on 88- and 256-color xterms. The colors are translated +" using Henry So's programmatic approximation of gui colors from his "desert256" +" color scheme. +" +" I removed the "italic" option and the background color from +" comment-coloring because that looks odd on my console. +" +" The original "summerfruit" color scheme and "desert256" are available from vim.org. + +set background=light +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="summerfruit256" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + " functions {{{ + " returns an approximate grey index for the given grey level + fun grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual grey level represented by the grey index + fun grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif + endfun + + " returns the palette index for the given grey index + fun grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif + endfun + + " returns an approximate color index for the given color level + fun rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif + endfun + + " returns the actual color level for the given color index + fun rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif + endfun + + " returns the palette index for the given R/G/B color indices + fun rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif + endfun + + " returns the palette index to approximate the given R/G/B color levels + fun color(r, g, b) + " get the closest grey + let l:gx = grey_number(a:r) + let l:gy = grey_number(a:g) + let l:gz = grey_number(a:b) + + " get the closest color + let l:x = rgb_number(a:r) + let l:y = rgb_number(a:g) + let l:z = rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = grey_level(l:gx) - a:r + let l:dgg = grey_level(l:gy) - a:g + let l:dgb = grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = rgb_level(l:gx) - a:r + let l:dg = rgb_level(l:gy) - a:g + let l:db = rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return grey_color(l:gx) + else + " use the color + return rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + + return color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . rgb(a:fg) + endif + if a:bg != "" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . rgb(a:bg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + " Global + call X("Normal", "000000", "ffffff", "") + call X("NonText", "438ec3", "b7dce8", "") + + " Search + call X("Search", "800000", "ffae00", "") + call X("IncSearch", "800000", "ffae00", "") + + " Interface Elements + call X("StatusLine", "ffffff", "43c464", "bold") + call X("StatusLineNC", "9bd4a9", "51b069", "") + call X("VertSplit", "3687a2", "3687a2", "") + call X("Folded", "3c78a2", "c3daea", "") + call X("IncSearch", "708090", "f0e68c", "") + call X("Pmenu", "ffffff", "cb2f27", "") + call X("SignColumn", "", "", "") + call X("CursorLine", "", "c0d9eb", "") + call X("LineNr", "eeeeee", "438ec3", "bold") + call X("MatchParen", "", "", "") + + " Specials + call X("Todo", "e50808", "dbf3cd", "bold") + call X("Title", "000000", "", "") + call X("Special", "fd8900", "", "") + + " Syntax Elements + call X("String", "0086d2", "", "") + call X("Constant", "0086d2", "", "") + call X("Number", "0086f7", "", "") + call X("Statement", "fb660a", "", "") + call X("Function", "ff0086", "", "") + call X("PreProc", "ff0007", "", "") + call X("Comment", "22a21f", "", "bold") + call X("Type", "70796b", "", "") + call X("Error", "ffffff", "d40000", "") + call X("Identifier", "ff0086", "", "") + call X("Label", "ff0086", "", "") + + " Python Highlighting + call X("pythonCoding", "ff0086", "", "") + call X("pythonRun", "ff0086", "", "") + call X("pythonBuiltinObj", "2b6ba2", "", "") + call X("pythonBuiltinFunc", "2b6ba2", "", "") + call X("pythonException", "ee0000", "", "") + call X("pythonExClass", "66cd66", "", "") + call X("pythonSpaceError", "", "", "") + call X("pythonDocTest", "2f5f49", "", "") + call X("pythonDocTest2", "3b916a", "", "") + call X("pythonFunction", "ee0000", "", "") + call X("pythonClass", "ff0086", "", "") + + " HTML Highlighting + call X("htmlTag", "00bdec", "", "") + call X("htmlEndTag", "00bdec", "", "") + call X("htmlSpecialTagName", "4aa04a", "", "") + call X("htmlTagName", "4aa04a", "", "") + call X("htmlTagN", "4aa04a", "", "") + + " Jinja Highlighting + call X("jinjaTagBlock", "ff0007", "fbf4c7", "bold") + call X("jinjaVarBlock", "ff0007", "fbf4c7", "") + call X("jinjaString", "0086d2", "fbf4c7", "") + call X("jinjaNumber", "bf0945", "fbf4c7", "bold") + call X("jinjaStatement", "fb660a", "fbf4c7", "bold") + call X("jinjaComment", "008800", "002300", "italic") + call X("jinjaFilter", "ff0086", "fbf4c7", "") + call X("jinjaRaw", "aaaaaa", "fbf4c7", "") + call X("jinjaOperator", "ffffff", "fbf4c7", "") + call X("jinjaVariable", "92cd35", "fbf4c7", "") + call X("jinjaAttribute", "dd7700", "fbf4c7", "") + call X("jinjaSpecial", "008ffd", "fbf4c7", "") + + " delete functions {{{ + delf X + delf rgb + delf color + delf rgb_color + delf rgb_level + delf rgb_number + delf grey_color + delf grey_level + delf grey_number + " }}} +endif + +" vim: set fdl=0 fdm=marker: + diff --git a/.vim/colors/synic.vim b/.vim/colors/synic.vim new file mode 100644 index 0000000..1f47a5c --- /dev/null +++ b/.vim/colors/synic.vim @@ -0,0 +1,81 @@ +" ------------------------------------------------------------------ +" Filename: synic.vim +" Last Modified: May, 14 2007 (10:47) +" Maintainer: Adam Olsen (arolsen@gmail.com) +" Copyright: 2007 Adam Olsen +" This script is free software; you can redistribute it and/or +" modify it under the terms of the GNU General Public License as +" published by the Free Software Foundation; either version 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme file. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme synic +" ------------------------------------------------------------------ +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"" +"" SPECIAL NOTE: +"" I believe this colorscheme is based off of Hans +"" Fugal's colorscheme "desert". +"" http://hans.fugal.net/vim/colors/desert.html +"" I might be wrong on this... if it looks like it was based off +"" of your colorscheme, let me know so I can give you credits. +"" +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "synic" + +hi Normal guifg=ivory guibg=Black + +hi TabLineFill guifg=#272d2f guibg=#272d2f gui=None +hi TabLine guifg=MistyRose3 guibg=#272d2f gui=None +hi TabLineSel guifg=LightBlue3 guibg=#272d2f gui=None +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guibg=LightGreen guifg=Black +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=LightBlue3 guibg=#272d2f +hi StatusLineNC gui=NONE guifg=MistyRose3 guibg=#272d2f +hi VertSplit gui=NONE guifg=LightBlue4 guibg=Black +hi Visual gui=reverse guifg=LightBlue4 guibg=Black +hi VisualNOS gui=underline guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 +hi Cursor guibg=Lavender guifg=Black +hi lCursor guibg=Lavender guifg=Black +hi Directory guifg=LightGreen guibg=bg +hi LineNr guifg=LightBlue3 guibg=bg +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Cyan4 guibg=Black +hi Question gui=NONE guifg=LimeGreen guibg=bg +hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque +hi SpecialKey guifg=Cyan guibg=bg +hi Title gui=NONE guifg=Yellow2 guibg=bg +hi WarningMsg guifg=Tomato3 guibg=Black +hi WildMenu gui=NONE guifg=Black guibg=SkyBlue4 +hi Folded guifg=#f4aba2 guibg=bg +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=white guibg=LightCyan4 +hi DiffDelete gui=None guifg=LightBlue guibg=LightCyan + +hi Constant gui=NONE guifg=MistyRose3 guibg=bg +hi String gui=NONE guifg=LightBlue3 guibg=bg +hi Special gui=NONE guifg=GoldenRod guibg=bg +hi Statement gui=NONE guifg=khaki guibg=bg +hi Operator gui=NONE guifg=#8673e8 guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +hi ToDo gui=NONE guifg=DodgerBlue guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=SlateGrey guibg=bg +hi Comment gui=NONE guifg=#62c600 guibg=bg +hi Identifier gui=bold guifg=LightBlue4 guibg=bg +hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg +hi Type gui=NONE guifg=NavajoWhite guibg=bg +hi Underlined gui=underline guifg=fg guibg=bg + +" vim: sw=2 diff --git a/.vim/colors/tabula.vim b/.vim/colors/tabula.vim new file mode 100644 index 0000000..61cd0ee --- /dev/null +++ b/.vim/colors/tabula.vim @@ -0,0 +1,698 @@ +" ============================================================================ +" Filename: tabula.vim +" Last Modified: 2007-02-08 +" Version: 1.3.2 +" Maintainer: Bernd Pol (bernd.pol AT online DOT de) +" Copyright: 2006 Bernd Pol +" This script is free software; you can redistribute it and/or +" modify it under the terms of the GNU General Public License as +" published by the Free Software Foundation; either version 2 of +" the License, or (at your option) any later version. +" Description: Vim colorscheme based on marklar.vim by SM Smithfield, +" slightly modified for harmonic, yet easily distinguishable +" display on GUI and a 256 color xterm as well. +" Install: Put this file in the users colors directory (~/.vim/colors) +" then load it with :colorscheme tabula +" ============================================================================= +" Latest Changes: +" ============================================================================= +" TODO +" - automize options setting +" - keep options in some setup file, e.g.: +" tabula.rc, sub e.g. " ... " marks +" - options set up per directory (autoload option) +" such that text files be displayed other than e.g. c sources +" ============================================================================= + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "tabula" +"let g:Tabula_setOptions = 0 + +"============================================================================== +" Option Settings {{{1 +"============================================================================== +" +" Use these in your .vimrc file before the ':colorscheme tabula' line +" +" Alternatively set the options variable from the command line, e.g. +" :let Tabula_LNumUnderline=1 +" and then call +" :colorscheme tabula +" again. + +"------------------------------------------------------------------------------ +" Display Statements In Bold: {{{2 +" Tabula_BoldStatement = 0 statements display not bold +" Tabula_BoldStatement = 1 statements display bold +" Defaults to non-bold display. +"------------------------------------------------------------------------------ +" +let s:BoldStatement = 0 +if exists("g:Tabula_BoldStatement") + let s:BoldStatement = g:Tabula_BoldStatement +endif + +"------------------------------------------------------------------------------ +" Set GUI Cursor Color: {{{2 +" Tabula_CurColor = 'blue' +" Tabula_CurColor = 'red' +" Tabula_CurColor = 'yellow' +" Tabula_CurColor = 'white' +" Defaults to 'blue'. +"------------------------------------------------------------------------------ +" +let s:CurColor = "blue" +if exists("g:Tabula_CurColor") + let s:CurColor = g:Tabula_CurColor +endif + +"------------------------------------------------------------------------------ +" Set Color For Preprocessor Statements: {{{2 +" Tabula_ColorPre = 'blue' purple-blue +" Tabula_ColorPre = 'red' orange-red +" Tabula_ColorPre = 'yellow' lightgreen-yellow +" Defaults to 'blue'. +"------------------------------------------------------------------------------ +" +let s:ColorPre = "blue" +if exists("g:Tabula_ColorPre") + if g:Tabula_ColorPre == "red" || g:Tabula_ColorPre == "yellow" + let s:ColorPre = g:Tabula_ColorPre + endif +endif + +"------------------------------------------------------------------------------ +" Use Dark Error Background: {{{2 +" Sometimes desirable for less distracting error highlighting. +" Tabula_DarkError = 0 light red error background +" Tabula_DarkError = 1 dark red error background +" Defaults to light error background. +"------------------------------------------------------------------------------ +" +let s:DarkError = 0 +if exists("g:Tabula_DarkError") + let s:DarkError = g:Tabula_DarkError +endif + +"------------------------------------------------------------------------------ +" Use Multiple Colors For Constant Values: {{{2 +" Tabula_FlatConstants = 0 use different color for each type +" Tabula_FlatConstants = 1 use common color for all +" Defaults to using common colors. +"------------------------------------------------------------------------------ +" +let s:FlatConstants = 1 +if exists("g:Tabula_FlatConstants") + let s:FlatConstants = g:Tabula_FlatConstants +endif + +"------------------------------------------------------------------------------ +" How To Display Ignore And NonText Characters: {{{2 +" Tabula_InvisibleIgnore = 0 slightly visible +" (good for Vim documentation editing) +" Tabula_InvisibleIgnore = 1 invisible on standard background +" Defaults to invisible display. +"------------------------------------------------------------------------------ +" +let s:InvisibleIgnore = 1 +if exists("g:Tabula_InvisibleIgnore") + let s:InvisibleIgnore = g:Tabula_InvisibleIgnore +endif + +"------------------------------------------------------------------------------ +" Show Line Numbers Underlined: {{{2 +" Sometimes useful to spot a line more easily. +" Tabula_LNumUnderline = 0 not underlined +" Tabula_LNumUnderline = 1 line numbers are underlined +" Defaults to not underlined. +"------------------------------------------------------------------------------ +" +let s:LNumUnderline = 0 +if exists("g:Tabula_LNumUnderline") + let s:LNumUnderline = g:Tabula_LNumUnderline +endif + +"------------------------------------------------------------------------------ +" Let Search Occurrences Stand Out More Prominently: {{{2 +" Tabula_SearchStandOut = 0 normal dark background display +" Tabula_SearchStandOut = 1 prominent underlined display +" Tabula_SearchStandOut = 2 even more prominent display +" Defaults to normal display. +"------------------------------------------------------------------------------ +" +let s:SearchStandOut=0 +if exists("g:Tabula_SearchStandOut") + let s:SearchStandOut = g:Tabula_SearchStandOut +endif + +"------------------------------------------------------------------------------ +" How To Display TODOs And Similar: {{{2 +" Tabula_TodoUnderline = 0 display on a blue background +" Tabula_TodoUnderline = 1 display them underlined white +" Defaults to underlined display. +"------------------------------------------------------------------------------ +" +let s:TodoUnderline=1 +if exists("g:Tabula_TodoUnderline") + let s:TodoUnderline = g:Tabula_TodoUnderline +endif + +"============================================================================== +" Color Definitions {{{1 +"============================================================================== + +if version >= 700 + hi SpellBad guisp=#FF0000 + hi SpellCap guisp=#afaf00 + hi SpellRare guisp=#bf4040 + hi SpellLocal guisp=#00afaf ctermbg=0 + hi Pmenu guifg=#00ffff guibg=#000000 ctermfg=51 ctermbg=0 + hi PmenuSel guifg=#ffff00 guibg=#000000 gui=bold ctermfg=226 cterm=bold + hi PmenuSbar guibg=#204d40 ctermbg=6 + hi PmenuThumb guifg=#38ff56 ctermfg=3 + hi CursorColumn guibg=#096354 ctermbg=29 + hi CursorLine guibg=#096354 ctermbg=29 + hi Tabline guifg=bg guibg=fg gui=NONE ctermfg=NONE ctermbg=NONE cterm=reverse,bold + hi TablineSel guifg=#20012e guibg=#00a675 gui=bold + hi TablineFill guifg=#689C7C + hi MatchParen guifg=#38ff56 guibg=#0000ff gui=bold ctermfg=14 ctermbg=21 cterm=bold +endif +"------------------------------------------------------------------------------ + +"hi Comment guifg=#00C5E7 ctermfg=39 +hi Comment guifg=#00C5E7 ctermfg=51 + +"------------------------------------------------------------------------------ +" Constant Colors: +"------------------------------------------------------------------------------ +" +if s:FlatConstants + hi Constant guifg=#7DDCDB ctermfg=123 +else + hi Boolean guifg=#7EDBD8 ctermfg=123 + hi Character guifg=#AFD000 ctermfg=148 + hi Float guifg=#AF87DF ctermfg=141 + hi Number guifg=#00A7F7 ctermfg=39 + hi String guifg=#00DF00 ctermfg=46 +endif + +"------------------------------------------------------------------------------ +" Cursor Colors: +"------------------------------------------------------------------------------ +" +if s:CurColor == "yellow" + hi Cursor guifg=#000000 guibg=#EFEF00 +elseif s:CurColor == "red" + " Note: Input cursor will be invisible on Error Group + hi Cursor guifg=#00007F guibg=#F70000 +elseif s:CurColor == "blue" + hi Cursor guifg=#00007F guibg=#00EFEF +elseif s:CurColor == "white" + hi Cursor guifg=#000000 guibg=#FFFFFF +endif +"------------------------------------------------------------------------------ + +hi DiffAdd guifg=NONE guibg=#136769 ctermfg=4 ctermbg=7 cterm=NONE +hi DiffDelete guifg=NONE guibg=#50694A ctermfg=1 ctermbg=7 cterm=NONE +hi DiffChange guifg=fg guibg=#00463c gui=None ctermfg=4 ctermbg=2 cterm=NONE +hi DiffText guifg=#7CFC94 guibg=#00463c gui=bold ctermfg=4 ctermbg=3 cterm=NONE +hi Directory guifg=#25B9F8 guibg=NONE ctermfg=2 + +"------------------------------------------------------------------------------ +" Error Colors: +"------------------------------------------------------------------------------ +" +if s:DarkError +" hi Error guifg=#FF0000 guibg=#303800 gui=NONE ctermfg=9 ctermbg=236 cterm=NONE + hi Error guifg=NONE guibg=#303800 gui=NONE ctermfg=NONE ctermbg=236 cterm=NONE +else + if s:CurColor == "red" + " Note: We need another background in this case to keep the cursor visible. + hi Error guifg=#FF0000 guibg=#FFFF00 gui=bold ctermfg=11 ctermbg=9 cterm=NONE + else + hi Error guifg=#FFFF00 guibg=#FF0000 gui=NONE ctermfg=11 ctermbg=9 cterm=NONE + endif +endif +"------------------------------------------------------------------------------ + +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 ctermfg=7 ctermbg=1 +hi FoldColumn guifg=#00BBBB guibg=#4E4E4E ctermfg=14 ctermbg=240 +hi Folded guifg=#44DDDD guibg=#4E4E4E ctermfg=14 ctermbg=240 +hi Identifier guifg=#FDAE5A ctermfg=215 cterm=NONE + +"------------------------------------------------------------------------------ +" Ignore Variants: +"------------------------------------------------------------------------------ +" +if s:InvisibleIgnore + " completely invisible + hi Ignore guifg=bg guibg=NONE ctermfg=23 + hi NonText guifg=bg guibg=NONE ctermfg=23 +else + " nearly invisible + hi Ignore guifg=#005FAF guibg=NONE ctermfg=26 + hi NonText guifg=#005FAF guibg=NONE ctermfg=26 +endif +"------------------------------------------------------------------------------ + +"------------------------------------------------------------------------------ +" Line Number Variants: +" Lines can sometimes be more precisely identified if the line numbers are +" underlined. +"------------------------------------------------------------------------------ +" +if s:LNumUnderline + hi LineNr guifg=#00FF00 guibg=#005080 gui=underline ctermfg=84 ctermbg=24 cterm=underline +else + hi LineNr guifg=#00FF00 guibg=#005080 ctermfg=84 ctermbg=24 +endif +"------------------------------------------------------------------------------ + +hi ModeMsg guifg=#FFFFFF guibg=#0000FF gui=NONE ctermfg=7 ctermbg=4 cterm=NONE +hi MoreMsg guifg=#FFFFFF guibg=#00A261 gui=NONE ctermfg=7 ctermbg=28 cterm=NONE + +hi Normal guifg=#71D289 guibg=#004A41 ctermfg=84 ctermbg=23 + +"------------------------------------------------------------------------------ +" Preprocessor Variants: +"------------------------------------------------------------------------------ +" +if s:ColorPre == "red" + hi PreProc guifg=#FF5F5F guibg=bg ctermfg=203 +elseif s:ColorPre == "yellow" + hi PreProc guifg=#AFFF00 guibg=bg ctermfg=154 +elseif s:ColorPre == "blue" + hi PreProc guifg=#918EE4 guibg=bg ctermfg=105 +endif +"------------------------------------------------------------------------------ + +hi Question guifg=#E5E500 guibg=NONE gui=NONE ctermfg=11 ctermbg=NONE cterm=NONE + +"------------------------------------------------------------------------------ +" Search Stand Out Variants: +"------------------------------------------------------------------------------ +" +if s:SearchStandOut == 0 + hi IncSearch guifg=#D0D0D0 guibg=#206828 gui=NONE ctermfg=NONE ctermbg=22 cterm=NONE + hi Search guifg=NONE guibg=#212a81 ctermfg=NONE ctermbg=18 +elseif s:SearchStandOut == 1 + hi IncSearch guifg=#D0D0D0 guibg=#206828 gui=underline ctermfg=252 ctermbg=22 cterm=underline + hi Search guifg=#FDAD5D guibg=#202880 gui=underline ctermfg=215 ctermbg=18 cterm=underline +elseif s:SearchStandOut == 2 + hi IncSearch guibg=#D0D0D0 guifg=#206828 gui=underline ctermbg=252 ctermfg=22 cterm=underline + hi Search guibg=#FDAD5D guifg=#202880 gui=underline ctermbg=215 ctermfg=18 cterm=underline +endif +"------------------------------------------------------------------------------ + +hi SignColumn guifg=#00BBBB guibg=#204d40 +hi Special guifg=#00E0F2 guibg=NONE gui=NONE ctermfg=45 +hi SpecialKey guifg=#00F4F4 guibg=#266955 + +"------------------------------------------------------------------------------ +" Statement Variants: +"------------------------------------------------------------------------------ +" +if s:BoldStatement + hi Statement guifg=#DEDE00 gui=bold ctermfg=11 cterm=bold +else + hi Statement guifg=#E4E300 gui=NONE ctermfg=11 +endif +"------------------------------------------------------------------------------ + +hi StatusLine guifg=#000000 guibg=#7DCEAD gui=NONE ctermbg=00 cterm=reverse +hi StatusLineNC guifg=#245748 guibg=#689C7C gui=NONE ctermfg=72 ctermbg=23 cterm=reverse +hi Title guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + +"------------------------------------------------------------------------------ +" Todo Variants: +"------------------------------------------------------------------------------ +" +if s:TodoUnderline + " Underlined + hi Todo guifg=#AFD7D7 guibg=NONE gui=underline ctermfg=159 ctermbg=NONE cterm=underline +else + " Blue background + hi Todo guifg=#00FFFF guibg=#0000FF ctermfg=51 ctermbg=4 +endif +"------------------------------------------------------------------------------ + +hi Type guifg=#F269E4 guibg=bg gui=NONE ctermfg=213 +hi Underlined gui=underline cterm=underline +hi VertSplit guifg=#245748 guibg=#689C7C gui=NONE ctermfg=72 ctermbg=23 cterm=reverse +hi Visual guibg=#0B7260 gui=NONE +hi WarningMsg guifg=#000087 guibg=#FFFF00 ctermfg=18 ctermbg=11 +hi WildMenu guifg=#20012e guibg=#00a675 gui=bold ctermfg=NONE ctermbg=NONE cterm=bold +" +hi pythonPreCondit ctermfg=2 cterm=NONE +hi tkWidget guifg=#D5B11C guibg=bg gui=bold ctermfg=7 cterm=bold +hi tclBookends guifg=#7CFC94 guibg=NONE gui=bold ctermfg=2 cterm=bold + +" ------------------------------------------------------------------------------------------------ +" Custom HTML Groups: +" (see ':help html.vim' for more info) +"------------------------------------------------------------------------------ + +let html_my_rendering=1 + +hi htmlBold guifg=#87FFD7 gui=bold ctermfg=122 cterm=bold +hi htmlBoldItalic guifg=#87D7EF gui=bold ctermfg=117 cterm=bold +hi htmlBoldUnderline guifg=#87FFD7 gui=bold,underline ctermfg=122 cterm=bold,underline +hi htmlBoldUnderlineItalic guifg=#87D7EF gui=bold,underline ctermfg=117 cterm=bold,underline +hi htmlH1 guifg=#00FF00 guibg=NONE gui=bold,underline ctermfg=2 cterm=bold,underline +hi htmlH2 guifg=#00FF00 guibg=NONE gui=bold ctermfg=2 cterm=bold +hi htmlH3 guifg=#00FF00 guibg=NONE gui=NONE ctermfg=2 +hi htmlH4 guifg=#00C700 guibg=NONE gui=underline ctermfg=34 cterm=underline +hi htmlH5 guifg=#00C700 guibg=NONE gui=NONE ctermfg=34 +hi htmlH6 guifg=#00A700 guibg=NONE gui=underline ctermfg=28 cterm=underline +hi htmlItalic guifg=#87D7D7 gui=NONE ctermfg=116 +hi htmlLink guifg=#8787D7 gui=underline ctermfg=105 cterm=underline +hi htmlUnderline gui=underline cterm=underline +hi htmlUnderlineItalic guifg=#87D7D7 gui=underline ctermfg=116 cterm=underline + +"------------------------------------------------------------------------------ +" VimOutliner Groups: +" (see http://www.vimoutliner.org) +" Note: Make sure to add "colorscheme tabula" to the .vimoutlinerrc file. +"------------------------------------------------------------------------------ +" +" Indent level colors + +hi OL1 guifg=#02AAFF ctermfg=33 +hi OL2 guifg=#02CAE9 ctermfg=39 +hi OL3 guifg=#87D7D7 ctermfg=44 +hi OL4 guifg=#87D7D7 ctermfg=44 +hi OL5 guifg=#87D7D7 ctermfg=44 +hi OL6 guifg=#87D7D7 ctermfg=44 +hi OL7 guifg=#87D7D7 ctermfg=44 +hi OL8 guifg=#87D7D7 ctermfg=44 +hi OL9 guifg=#87D7D7 ctermfg=44 + +" colors for tags +hi outlTags guifg=#F269E4 ctermfg=213 + +" color for body text +hi BT1 guifg=#71D289 ctermfg=84 +hi BT2 guifg=#71D289 ctermfg=84 +hi BT3 guifg=#71D289 ctermfg=84 +hi BT4 guifg=#71D289 ctermfg=84 +hi BT5 guifg=#71D289 ctermfg=84 +hi BT6 guifg=#71D289 ctermfg=84 +hi BT7 guifg=#71D289 ctermfg=84 +hi BT8 guifg=#71D289 ctermfg=84 +hi BT9 guifg=#71D289 ctermfg=84 + +" color for pre-formatted text +hi PT1 guifg=#7DDCDB ctermfg=123 +hi PT2 guifg=#7DDCDB ctermfg=123 +hi PT3 guifg=#7DDCDB ctermfg=123 +hi PT4 guifg=#7DDCDB ctermfg=123 +hi PT5 guifg=#7DDCDB ctermfg=123 +hi PT6 guifg=#7DDCDB ctermfg=123 +hi PT7 guifg=#7DDCDB ctermfg=123 +hi PT8 guifg=#7DDCDB ctermfg=123 +hi PT9 guifg=#7DDCDB ctermfg=123 + +" color for tables +hi TA1 guifg=#918EE4 ctermfg=105 +hi TA2 guifg=#918EE4 ctermfg=105 +hi TA3 guifg=#918EE4 ctermfg=105 +hi TA4 guifg=#918EE4 ctermfg=105 +hi TA5 guifg=#918EE4 ctermfg=105 +hi TA6 guifg=#918EE4 ctermfg=105 +hi TA7 guifg=#918EE4 ctermfg=105 +hi TA8 guifg=#918EE4 ctermfg=105 +hi TA9 guifg=#918EE4 ctermfg=105 + +" color for user text (wrapping) +hi UT1 guifg=#71D289 ctermfg=84 +hi UT2 guifg=#71D289 ctermfg=84 +hi UT3 guifg=#71D289 ctermfg=84 +hi UT4 guifg=#71D289 ctermfg=84 +hi UT5 guifg=#71D289 ctermfg=84 +hi UT6 guifg=#71D289 ctermfg=84 +hi UT7 guifg=#71D289 ctermfg=84 +hi UT8 guifg=#71D289 ctermfg=84 +hi UT9 guifg=#71D289 ctermfg=84 + +" color for user text (non-wrapping) +hi UT1 guifg=#71D289 ctermfg=84 +hi UT2 guifg=#71D289 ctermfg=84 +hi UT3 guifg=#71D289 ctermfg=84 +hi UT4 guifg=#71D289 ctermfg=84 +hi UT5 guifg=#71D289 ctermfg=84 +hi UT6 guifg=#71D289 ctermfg=84 +hi UT7 guifg=#71D289 ctermfg=84 +hi UT8 guifg=#71D289 ctermfg=84 +hi UT9 guifg=#71D289 ctermfg=84 + +" colors for experimental spelling error highlighting +" this only works for spellfix.vim with will be cease to exist soon +hi spellErr guifg=#E4E300 gui=underline ctermfg=11 cterm=underline +hi BadWord guifg=#E4E300 gui=underline ctermfg=11 cterm=underline + + +"============================================================================== +" Options Processor {{{1 +"============================================================================== +" +"------------------------------------------------------------------------------ +" Main Dialog: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula() + call inputsave() + let thisOption = 1 + while thisOption >= 1 && thisOption <= 9 + redraw + let thisOption = inputlist([ + \ "Select a 'Tabula_' option:", + \ "1. BoldStatement Display statements in bold", + \ "2. ColorPre Set Color for preprocessor statements", + \ "3. CurColor Set GUI cursor color", + \ "4. DarkError Use dark error background", + \ "5. FlatConstants Use multiple colors for constant values", + \ "6. InvisibleIgnore Display of Ignore and NonText characters", + \ "7. LNumUnderline Show line numbers underlined", + \ "8. SearchStandOut Display of search occurrences", + \ "9. TodoUnderline Display of TODOs and similar" + \ ]) + + redraw + if thisOption >= 1 && thisOption <= 9 + call Tabula_{thisOption}() + "let g:Tabula_setOptions = 1 + endif + endwhile + call inputrestore() +endfunction + +"------------------------------------------------------------------------------ +" Bold Statements: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_1() + let curOption = "" + if s:BoldStatement == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display statements (currently ".curOption."bold)?", + \ "1. bold", + \ "2. not bold" + \ ]) + if optionValue == 1 + let g:Tabula_BoldStatement = 1 + elseif optionValue == 2 + let g:Tabula_BoldStatement = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Color For Preprocessor Statements: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_2() + let optionValue = inputlist([ + \ "How to display preprocessor statements (currently ".s:ColorPre.")?", + \ "1. blue", + \ "2. red", + \ "3. yellow" + \ ]) + if optionValue == 1 + let g:Tabula_ColorPre = "blue" + elseif optionValue == 2 + let g:Tabula_ColorPre = "red" + elseif optionValue == 3 + let g:Tabula_ColorPre = "yellow" + endif +endfunction + +"------------------------------------------------------------------------------ +" GUI Cursor Color: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_3() + let optionValue = inputlist([ + \ "Use which cursor color (currently ".s:CurColor.")?", + \ "1. blue", + \ "2. red", + \ "3. yellow", + \ "4. white" + \ ]) + if optionValue == 1 + let g:Tabula_CurColor = "blue" + elseif optionValue == 2 + let g:Tabula_CurColor = "red" + elseif optionValue == 3 + let g:Tabula_CurColor = "yellow" + elseif optionValue == 4 + let g:Tabula_CurColor = "white" + endif +endfunction + +"------------------------------------------------------------------------------ +" Use Dark Error Background: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_4() + let curOption = "light " + if s:DarkError + let curOption = "dark " + endif + let optionValue = inputlist([ + \ "How to display errors in the text (currently ".curOption."background)?", + \ "1. light background", + \ "2. dark background" + \ ]) + if optionValue == 1 + let g:Tabula_DarkError = 0 + elseif optionValue == 2 + let g:Tabula_DarkError = 1 + endif +endfunction + +"------------------------------------------------------------------------------ +" Multiple Constant Colors: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_5() + let curOption = "one color" + if s:FlatConstants == 0 + let curOption = "multiple colors" + endif + let optionValue = inputlist([ + \ "How to display constant values (currently ".curOption.")?", + \ "1. use one common color for all", + \ "2. use different color for each type" + \ ]) + if optionValue == 1 + let g:Tabula_FlatConstants = 1 + elseif optionValue == 2 + let g:Tabula_FlatConstants = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Ignore And NonText Characters: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_6() + let curOption = "invisible" + if s:InvisibleIgnore == 0 + let curOption = "slightly visible" + endif + let optionValue = inputlist([ + \ "Show Ignore and NonText characters (currently ".curOption.")?", + \ "1. invisible", + \ "2. slightly visible" + \ ]) + if optionValue == 1 + let g:Tabula_InvisibleIgnore = 1 + elseif optionValue == 2 + let g:Tabula_InvisibleIgnore = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Underlined Line Numbers: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_7() + let curOption = "" + if s:LNumUnderline == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display line numbers(currently ".curOption."underlined)?", + \ "1. underlined", + \ "2. not underlined" + \ ]) + if optionValue == 1 + let g:Tabula_LNumUnderline = 1 + elseif optionValue == 2 + let g:Tabula_LNumUnderline = 0 + endif +endfunction + +"------------------------------------------------------------------------------ +" Let Search Occurrences Stand Out More Prominently: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_8() + if s:SearchStandOut == 0 + let curOption = "normal" + elseif s:SearchStandOut == 1 + let curOption = "prominent" + elseif s:SearchStandOut == 2 + let curOption = "very prominent" + endif + let optionValue = inputlist([ + \ "How to display search occurrences (currently ".curOption.")?", + \ "1. normal", + \ "2. prominent", + \ "3. very prominent" + \ ]) + if optionValue == 1 + let g:Tabula_SearchStandOut = 0 + elseif optionValue == 2 + let g:Tabula_SearchStandOut = 1 + elseif optionValue == 3 + let g:Tabula_SearchStandOut = 2 + endif +endfunction + +"------------------------------------------------------------------------------ +" TODOs Display: {{{2 +"------------------------------------------------------------------------------ +" +function! Tabula_9() + let curOption = "" + if s:TodoUnderline == 0 + let curOption = "not " + endif + let optionValue = inputlist([ + \ "How to display TODOs and similar (currently ".curOption."underlined)?", + \ "1. underlined", + \ "2. not underlined" + \ ]) + if optionValue == 1 + let g:Tabula_TodoUnderline = 1 + elseif optionValue == 2 + let g:Tabula_TodoUnderline = 0 + endif +endfunction + +"==========================================================================}}}1 +" +" FIXME: This can't work! +" +"if g:Tabula_setOptions +" :exe "color tabula" +" let g:Tabula_setOptions = 0 +"endif + +" vim:tw=0:fdm=marker:fdl=0:fdc=3:fen diff --git a/.vim/colors/tango.vim b/.vim/colors/tango.vim new file mode 100644 index 0000000..cdb6c9c --- /dev/null +++ b/.vim/colors/tango.vim @@ -0,0 +1,78 @@ +" +" Tango Vim Color Scheme +" ======================= +" +" For best results, set up your terminal with a Tango palette. +" Instructions for GNOME Terminal: +" http://uwstopia.nl/blog/2006/07/tango-terminal +" +" author: Michele Campeotto +" +set background=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "tango" + +" Default Colors +hi Normal guifg=#eeeeec guibg=#000000 +hi NonText guifg=#555753 guibg=#000000 gui=none +hi NonText ctermfg=darkgray +hi Cursor guibg=#d3d7cf +hi lCursor guibg=#d3d7cf + +" Search +hi Search guifg=#eeeeec guibg=#c4a000 +hi Search cterm=none ctermfg=grey ctermbg=blue +hi IncSearch guibg=#eeeeec guifg=#729fcf +hi IncSearch cterm=none ctermfg=yellow ctermbg=green + +" Window Elements +hi StatusLine guifg=#eeeeec guibg=#4e9a06 gui=bold +hi StatusLine ctermfg=white ctermbg=green cterm=bold +hi StatusLineNC guifg=#d3d7df guibg=#4e9a06 +hi StatusLineNC ctermfg=lightgray ctermbg=darkgreen +hi VertSplit guifg=#eeeeec guibg=#eeeeec +hi Folded guifg=#eeeeec guibg=#75507b +hi Folded ctermfg=white ctermbg=magenta +hi Visual guifg=#d3d7cf guibg=#4e9a06 +hi Visual ctermbg=white ctermfg=lightgreen cterm=reverse + +" Specials +hi Todo guifg=#8ae234 guibg=#4e9a06 gui=bold +hi Todo ctermfg=white ctermbg=green +hi Title guifg=#eeeeec gui=bold +hi Title ctermfg=white cterm=bold + +" Syntax +hi Constant guifg=#c4a000 +hi Constant ctermfg=darkyellow +hi Number guifg=#729fcf +hi Number ctermfg=darkblue +hi Statement guifg=#4e9a06 gui=bold +hi Statement ctermfg=green +hi Identifier guifg=#8ae234 +hi Identifier ctermfg=darkgreen +hi PreProc guifg=#cc0000 +hi PreProc ctermfg=darkred +hi Comment guifg=#06989a gui=italic +hi Comment ctermfg=cyan cterm=none +hi Type guifg=#d3d7cf gui=bold +hi Type ctermfg=gray cterm=bold +hi Special guifg=#75507b +hi Special ctermfg=magenta cterm=none +hi Error guifg=#eeeeec guibg=#ef2929 +hi Error ctermfg=white ctermbg=red + +" Diff +hi DiffAdd guifg=fg guibg=#3465a4 gui=none +hi DiffAdd ctermfg=gray ctermbg=blue cterm=none +hi DiffChange guifg=fg guibg=#555753 gui=none +hi DiffChange ctermfg=gray ctermbg=darkgray cterm=none +hi DiffDelete guibg=bg +hi DiffDelete ctermfg=gray ctermbg=none cterm=none +hi DiffText guifg=fg guibg=#c4a000 gui=none +hi DiffText ctermfg=gray ctermbg=yellow cterm=none diff --git a/.vim/colors/tango2.vim b/.vim/colors/tango2.vim new file mode 100644 index 0000000..330fe89 --- /dev/null +++ b/.vim/colors/tango2.vim @@ -0,0 +1,62 @@ +" ============================================================================= +" Name: Tango2 +" Purpose: Another colour scheme using the Tango colour palette +" Maintainer: Pranesh Srinivasan +" Last Modified: Saturday 04 October 2008 02:06:26 AM IST +" ============================================================================= + +" Inspired from some Gnome renditions of the Tango colour scheme. + +" ============================================================================= +" Preamble +" ============================================================================= + +set background=dark + +hi clear + +if exists("syntax-on") +syntax reset +endif + +let colors_name = "tango2" + +" ============================================================================= +" Vim >= 7.0 specific colours +" ============================================================================= + +if version >= 700 +" No support for cursor line yet +" hi CursorLine term=underline cterm=underline guibg=#111133 +" hi CursorColoumn +" hi MatchParen +" hi Pmenu +" hi PmenuSel +endif + +" ============================================================================= +" General colours +" ============================================================================= + +hi Normal guibg=#2E3436 guifg=#eeeeec +hi Cursor gui=none guibg=White guifg=Black + +hi Folded guibg=#4D585B guibg=#d2d2d2 +" No fold column support yet +" hi FoldColumn guifg=Orange guibg=DarkBlue +" ============================================================================= +" Syntax highlighting +" ============================================================================= + +hi Comment gui=italic guifg=#6d7e8a ctermfg=Grey +hi Todo term=bold guifg=#EBC450 +hi Constant guifg=#8ae234 +hi Type guifg=#8AE234 +hi Function gui=bold guifg=#9BCF8D +hi Statement guifg=#729FCF +hi Identifier guifg=#AD7FA8 +hi PreProc guifg=#e9ba6e +hi Special term=underline guifg=#5EAFE5 + +hi Search guibg=#81ABBD +" hi QtClass guifg=Orange ctermfg=LightBlue diff --git a/.vim/colors/taqua.vim b/.vim/colors/taqua.vim new file mode 100644 index 0000000..51e7039 --- /dev/null +++ b/.vim/colors/taqua.vim @@ -0,0 +1,84 @@ +" Vim color file +" Maintainer: TaQ +" Last Change: 18 March 2003 +" URL: http://taq.cjb.net + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name="taqua" + +hi Normal gui=NONE guifg=#303030 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#303030 guibg=#FFFFFF + +" Search +hi IncSearch gui=BOLD guifg=#008000 guibg=#CCFF00 +hi Search gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Messages +hi ErrorMsg gui=BOLD guifg=#FFFFFF guibg=#FF0000 +hi WarningMsg gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Split area +hi StatusLine gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi StatusLineNC gui=BOLD guifg=#FFFFFF guibg=#0A6799 + +" Diff +hi DiffText gui=BOLD guifg=#FF0000 guibg=#FFEAE0 +hi DiffChange gui=BOLD guifg=#303030 guibg=#FFFFFF +hi DiffDelete gui=NONE guifg=#FFFFFF guibg=#FF0000 +hi DiffAdd gui=NONE guifg=#008000 guibg=#00FF00 + +" Cursor +hi Cursor gui=BOLD guifg=#FFFFFF guibg=#000000 +hi lCursor gui=BOLD guifg=#f8f8f8 guibg=#162CF7 +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#162CF7 + +" Fold +hi Folded gui=BOLD guifg=#0E8ED3 guibg=#DBF2FF +hi FoldColumn gui=NONE guifg=#0E8ED3 guibg=#DBF2FF + +" Other +hi LineNr gui=BOLD guifg=#00A0FF guibg=#DBF2FF +hi Directory gui=BOLD guifg=#0A6799 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#009999 guibg=#FFFFFF +hi SpecialKey gui=BOLD guifg=#2020FF guibg=#FFFFFF +hi Title gui=BOLD guifg=#0000A0 guibg=#FFFFFF +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +" purple was #8000FF +hi Comment gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Constant gui=BOLD guifg=#0384F6 guibg=#DBF2FF +hi Error gui=BOLD guifg=#FF0000 guibg=#FFFFFF +" hi Identifier gui=NONE guifg=#1F89E0 guibg=#FFFFFF +hi Identifier gui=NONE guifg=#000000 guibg=#FFFFFF +hi Ignore gui=NONE guifg=#f8f8f8 guibg=#FFFFFF +hi PreProc gui=BOLD guifg=#0BBF20 guibg=#FFFFFF +hi Special gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Statement gui=BOLD guifg=#F36CE5 guibg=#FFFFFF +hi Todo gui=NONE guifg=#FF0070 guibg=#FFE0F4 +hi Type gui=BOLD guifg=#0971F9 guibg=#FFFFFF +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Scrollbar +hi Scrollbar gui=BOLD guifg=#00C0FF guibg=#FFFFFF +hi VertSplit gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi Visual gui=BOLD guifg=#FFFFFF guibg=#1679F9 diff --git a/.vim/colors/tcsoft.vim b/.vim/colors/tcsoft.vim new file mode 100644 index 0000000..3198341 --- /dev/null +++ b/.vim/colors/tcsoft.vim @@ -0,0 +1,83 @@ +" Vim Farben-Datei +" Ersteller: Ingo Fabbri +" Letzte Änderung: 2007 Jan 19 + +" Mein persönliches Farbschema. Es schont die Augen, da es keine grellen Farben verwendet. +" Am Besten geignet für PHP + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "TCSoft" + +if version >= 700 + hi CursorLine guibg=#FFFF33 gui=NONE "hellgelb + hi CursorColumn guibg=#EAEAEA + hi MatchParen guifg=white guibg=#99CC00 gui=bold + + "Tabpages + hi TabLine guifg=black guibg=#B0B8C0 gui=italic + hi TabLineFill guifg=#9098A0 + hi TabLineSel guifg=black guibg=#F0F0F0 gui=italic,bold + + "P-Menu (auto-completion) + hi Pmenu guifg=white guibg=#808080 + "PmenuSel + "PmenuSbar + "PmenuThumb +endif + +" Farb-Einstellungen für das GUI +hi Normal guifg=#000000 guibg=#FFFFFF "Schwarze Schrift auf weißem Hintergrund + +hi Ignore guifg=bg + +hi Comment guifg=#000099 gui=italic "dunkelblau +hi Constant guifg=#666666 gui=NONE "grau +hi Special guifg=#FF0000 gui=NONE "rot +hi Identifier guifg=#993300 gui=NONE "rostfarbig +hi Statement guifg=#FF9900 gui=NONE "orange +hi PreProc guifg=#009900 gui=NONE "dunkelgrün +hi Type guifg=#FF9900 gui=bold "orange +hi Cursor guifg=#000000 gui=reverse "schwarz +hi LineNr guifg=#000000 guibg=#EFEFEF gui=NONE "schwarz +hi StatusLine guifg=#000000 gui=reverse,bold "schwarz + +hi Todo guifg=Blue guibg=Yellow +syn keyword Todo TODO FIXME XXX +syn keyword Error FEHLER + +hi link Function PreProc +hi link String Constant +hi link Character Constant + +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment + +hi link Number Special +hi link Boolean Constant +hi link Float Number + +hi link Operator Identifier +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc + +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement + +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Comment +hi link Debug Special diff --git a/.vim/colors/tir_black.vim b/.vim/colors/tir_black.vim new file mode 100644 index 0000000..802dec1 --- /dev/null +++ b/.vim/colors/tir_black.vim @@ -0,0 +1,130 @@ +" tir_black color scheme +" Based on ir_black from: http://blog.infinitered.com/entries/show/8 +" adds 256 color console support +" changed WildMenu color to be the same as PMenuSel + +set background=dark +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "tir_black" + +" General colors +hi Normal guifg=#f6f3e8 guibg=black ctermfg=white ctermbg=0 +hi NonText guifg=#070707 guibg=black ctermfg=232 ctermbg=0 + +hi Cursor guifg=black guibg=white ctermfg=0 ctermbg=15 +hi LineNr guifg=#3D3D3D guibg=black ctermfg=239 ctermbg=0 + +hi VertSplit guifg=#202020 guibg=#202020 ctermfg=235 ctermbg=235 +hi StatusLine guifg=#CCCCCC guibg=#202020 gui=italic ctermfg=235 ctermbg=254 +hi StatusLineNC guifg=black guibg=#202020 ctermfg=0 ctermbg=235 + +hi Folded guifg=#a0a8b0 guibg=#384048 ctermfg=103 ctermbg=60 +hi Title guifg=#f6f3e8 gui=bold ctermfg=187 cterm=bold +hi Visual guibg=#262D51 ctermbg=60 + +hi SpecialKey guifg=#808080 guibg=#343434 ctermfg=8 ctermbg=236 + +hi WildMenu guifg=black guibg=#cae682 ctermfg=0 ctermbg=195 +hi PmenuSbar guifg=black guibg=white ctermfg=0 ctermbg=15 + +hi Error gui=undercurl ctermfg=203 ctermbg=none cterm=underline guisp=#FF6C60 +hi ErrorMsg guifg=white guibg=#FF6C60 gui=bold ctermfg=white ctermbg=203 cterm=bold +hi WarningMsg guifg=white guibg=#FF6C60 gui=bold ctermfg=white ctermbg=203 cterm=bold + +hi ModeMsg guifg=black guibg=#C6C5FE gui=bold ctermfg=0 ctermbg=189 cterm=bold + +if version >= 700 " Vim 7.x specific colors + hi CursorLine guibg=#121212 gui=none ctermbg=234 cterm=none + hi CursorColumn guibg=#121212 gui=none ctermbg=234 cterm=none + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold ctermfg=white ctermbg=darkgray + hi Pmenu guifg=#f6f3e8 guibg=#444444 ctermfg=white ctermbg=242 + hi PmenuSel guifg=#000000 guibg=#cae682 ctermfg=0 ctermbg=195 + hi Search guifg=#000000 guibg=#cae682 ctermfg=0 ctermbg=195 +endif + +" Syntax highlighting +hi Comment guifg=#7C7C7C ctermfg=8 +hi String guifg=#A8FF60 ctermfg=155 +hi Number guifg=#FF73FD ctermfg=207 + +hi Keyword guifg=#96CBFE ctermfg=117 +hi PreProc guifg=#96CBFE ctermfg=117 +hi Conditional guifg=#6699CC ctermfg=110 + +hi Todo guifg=#000000 guibg=#cae682 ctermfg=0 ctermbg=195 +hi Constant guifg=#99CC99 ctermfg=151 + +hi Identifier guifg=#C6C5FE ctermfg=189 +hi Function guifg=#FFD2A7 ctermfg=223 +hi Type guifg=#FFFFB6 ctermfg=229 +hi Statement guifg=#6699CC ctermfg=110 + +hi Special guifg=#E18964 ctermfg=173 +hi Delimiter guifg=#00A0A0 ctermfg=37 +hi Operator guifg=white ctermfg=white + +hi link Character Constant +hi link Boolean Constant +hi link Float Number +hi link Repeat Statement +hi link Label Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + +" Special for Ruby +hi rubyRegexp guifg=#B18A3D ctermfg=brown +hi rubyRegexpDelimiter guifg=#FF8000 ctermfg=brown +hi rubyEscape guifg=white ctermfg=cyan +hi rubyInterpolationDelimiter guifg=#00A0A0 ctermfg=blue +hi rubyControl guifg=#6699CC ctermfg=blue "and break, etc +hi rubyStringDelimiter guifg=#336633 ctermfg=lightgreen +hi link rubyClass Keyword +hi link rubyModule Keyword +hi link rubyKeyword Keyword +hi link rubyOperator Operator +hi link rubyIdentifier Identifier +hi link rubyInstanceVariable Identifier +hi link rubyGlobalVariable Identifier +hi link rubyClassVariable Identifier +hi link rubyConstant Type + +" Special for Java +hi link javaScopeDecl Identifier +hi link javaCommentTitle javaDocSeeTag +hi link javaDocTags javaDocSeeTag +hi link javaDocParam javaDocSeeTag +hi link javaDocSeeTagParam javaDocSeeTag + +hi javaDocSeeTag guifg=#CCCCCC ctermfg=darkgray +hi javaDocSeeTag guifg=#CCCCCC ctermfg=darkgray + +" Special for XML +hi link xmlTag Keyword +hi link xmlTagName Conditional +hi link xmlEndTag Identifier + +" Special for HTML +hi link htmlTag Keyword +hi link htmlTagName Conditional +hi link htmlEndTag Identifier + +" Special for Javascript +hi link javaScriptNumber Number + +" Special for CSharp +hi link csXmlTag Keyword diff --git a/.vim/colors/tolerable.vim b/.vim/colors/tolerable.vim new file mode 100644 index 0000000..7b97b9a --- /dev/null +++ b/.vim/colors/tolerable.vim @@ -0,0 +1,43 @@ +" Vim color file +" Maintainer: Ian Langworth +" Last Change: 2004 Dec 24 +" Email: + +" Color settings inspired by BBEdit for Mac OS, plus I liked +" the low-contrast comments from the 'oceandeep' colorscheme + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="tolerable" + +hi Cursor guifg=white guibg=darkgreen + +hi Normal gui=none guifg=black guibg=white +hi NonText gui=none guifg=orange guibg=white + +hi Statement gui=none guifg=blue +hi Special gui=none guifg=red +hi Constant gui=none guifg=darkred +hi Comment gui=none guifg=#555555 +hi Preproc gui=none guifg=darkcyan +hi Type gui=none guifg=darkmagenta +hi Identifier gui=none guifg=darkgreen +hi Title gui=none guifg=black + +hi StatusLine gui=none guibg=#333333 guifg=white +hi StatusLineNC gui=none guibg=#333333 guifg=white +hi VertSplit gui=none guibg=#333333 guifg=white + +hi Visual gui=none guibg=green guifg=black +hi Search gui=none guibg=yellow +hi Directory gui=none guifg=darkblue +hi WarningMsg gui=none guifg=red +hi Error gui=none guifg=white guibg=red +hi Todo gui=none guifg=black guibg=yellow + +hi MoreMsg gui=none +hi ModeMsg gui=none + diff --git a/.vim/colors/torte.vim b/.vim/colors/torte.vim new file mode 100644 index 0000000..2971360 --- /dev/null +++ b/.vim/colors/torte.vim @@ -0,0 +1,51 @@ +" Vim color file +" Maintainer: Thorsten Maerz +" Last Change: 2001 Jul 23 +" grey on black +" optimized for TFT panels +" $Revision: 1.1 $ + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "torte" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Black guibg=Red gui=bold +highlight Visual guifg=Grey25 gui=bold +highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/.vim/colors/twilight.vim b/.vim/colors/twilight.vim new file mode 100644 index 0000000..f2ccdd3 --- /dev/null +++ b/.vim/colors/twilight.vim @@ -0,0 +1,114 @@ + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "twilight" + +let s:grey_blue = '#8a9597' +let s:light_grey_blue = '#a0a8b0' +let s:dark_grey_blue = '#34383c' +let s:mid_grey_blue = '#64686c' +let s:beige = '#ceb67f' +let s:light_orange = '#ebc471' +let s:yellow = '#e3d796' +let s:violet = '#a999ac' +let s:green = '#a2a96f' +let s:lightgreen = '#c2c98f' +let s:red = '#d08356' +let s:cyan = '#74dad9' +let s:darkgrey = '#1a1a1a' +let s:grey = '#303030' +let s:lightgrey = '#605958' +let s:white = '#fffedc' + +if version >= 700 + hi CursorLine guibg=#262626 + hi CursorColumn guibg=#262626 + hi MatchParen guifg=white guibg=#80a090 gui=bold + + "Tabpages + hi TabLine guifg=#a09998 guibg=#202020 gui=underline + hi TabLineFill guifg=#a09998 guibg=#202020 gui=underline + hi TabLineSel guifg=#a09998 guibg=#404850 gui=underline + + "P-Menu (auto-completion) + hi Pmenu guifg=#605958 guibg=#303030 gui=underline + hi PmenuSel guifg=#a09998 guibg=#404040 gui=underline + "PmenuSbar + "PmenuThumb +endif + +hi Visual guibg=#404040 + +"hi Cursor guifg=NONE guibg=#586068 +hi Cursor guibg=#b0d0f0 + + +exe 'hi Normal guifg='.s:white .' guibg='.s:darkgrey +exe 'hi Underlined guifg='.s:white .' guibg='.s:darkgrey .' gui=underline' +exe 'hi NonText guifg='.s:lightgrey .' guibg='.s:grey +exe 'hi SpecialKey guifg='.s:grey .' guibg='.s:darkgrey + +exe 'hi LineNr guifg='.s:mid_grey_blue .' guibg='.s:dark_grey_blue .' gui=none' +exe 'hi StatusLine guifg='.s:white .' guibg='.s:grey .' gui=italic,underline' +exe 'hi StatusLineNC guifg='.s:lightgrey .' guibg='.s:grey .' gui=italic,underline' +exe 'hi VertSplit guifg='.s:grey .' guibg='.s:grey .' gui=none' + +exe 'hi Folded guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none' +exe 'hi FoldColumn guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none' +exe 'hi SignColumn guifg='.s:grey_blue .' guibg='.s:dark_grey_blue .' gui=none' + +exe 'hi Comment guifg='.s:mid_grey_blue .' guibg='.s:darkgrey .' gui=italic' +exe 'hi TODO guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=italic,bold' + +exe 'hi Title guifg='.s:red .' guibg='.s:darkgrey .' gui=underline' + +exe 'hi Constant guifg='.s:red .' guibg='.s:darkgrey .' gui=none' +exe 'hi String guifg='.s:green .' guibg='.s:darkgrey .' gui=none' +exe 'hi Special guifg='.s:lightgreen .' guibg='.s:darkgrey .' gui=none' + +exe 'hi Identifier guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=none' +exe 'hi Statement guifg='.s:beige .' guibg='.s:darkgrey .' gui=none' +exe 'hi Conditional guifg='.s:beige .' guibg='.s:darkgrey .' gui=none' +exe 'hi Repeat guifg='.s:beige .' guibg='.s:darkgrey .' gui=none' +exe 'hi Structure guifg='.s:beige .' guibg='.s:darkgrey .' gui=none' +exe 'hi Function guifg='.s:violet .' guibg='.s:darkgrey .' gui=none' + +exe 'hi PreProc guifg='.s:grey_blue .' guibg='.s:darkgrey .' gui=none' +exe 'hi Operator guifg='.s:light_orange .' guibg='.s:darkgrey .' gui=none' +exe 'hi Type guifg='.s:yellow .' guibg='.s:darkgrey .' gui=italic' + +"hi Identifier guifg=#7587a6 +" Type d: 'class' +"hi Structure guifg=#9B859D gui=underline +"hi Function guifg=#dad085 +" dylan: method, library, ... d: if, return, ... +"hi Statement guifg=#7187a1 gui=NONE +" Keywords d: import, module... +"hi PreProc guifg=#8fbfdc +"gui=underline +"hi Operator guifg=#a07020 +"hi Repeat guifg=#906040 gui=underline +"hi Type guifg=#708090 + +"hi Type guifg=#f9ee98 gui=NONE + +"hi NonText guifg=#808080 guibg=#303030 + +"hi Macro guifg=#a0b0c0 gui=underline + +"Tabs, trailing spaces, etc (lcs) +"hi SpecialKey guifg=#808080 guibg=#343434 + +"hi TooLong guibg=#ff0000 guifg=#f8f8f8 + +hi Search guifg=#606000 guibg=#c0c000 gui=bold + +hi Directory guifg=#dad085 gui=NONE +hi Error guibg=#602020 + diff --git a/.vim/colors/two2tango.vim b/.vim/colors/two2tango.vim new file mode 100644 index 0000000..8fa42be --- /dev/null +++ b/.vim/colors/two2tango.vim @@ -0,0 +1,101 @@ +" Vim color file +" Name: two2tango +" Maintainer: Erik Falor +" Version: 1.1 +" +" Big props to Panos Laganakos +" for the original darktango.vim colorscheme upon which +" this scheme is based. + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name="two2tango" + +"Tango palette +"http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines +" {{{ +let s:Butter = ['#fce94f', '#edd400', '#c4a000'] +let s:Chameleon = ['#8ae234', '#73d216', '#4e9a06'] +let s:Orange = ['#fcaf3e', '#f57900', '#ce5c00'] +let s:SkyBlue = ['#729fcf', '#3465a4', '#204a87'] +let s:Plum = ['#ad7fa8', '#75507b', '#5c3566'] +let s:Chocolate = ['#e9b96e', '#c17d11', '#8f5902'] +let s:ScarletRed = ['#ef2929', '#cc0000', '#a40000'] +let s:Aluminium = ['#eeeeec', '#d3d7cf', '#babdb6', + \'#888a85', '#555753', '#2e3436'] +"This color isn't part of the Tango Palette; I use it because there +"isn't a Tango color that provides enough contrast +let s:Background = '#212628' +" }}} + +hi Normal guibg=#2e3436 guifg=#d3d7cf +execute "hi Normal guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[1] + +" {{{ syntax +execute "hi Comment gui=italic guifg=" . s:Aluminium[4] +execute "hi Conditional gui=bold guifg=" . s:Butter[2] +execute "hi Constant guifg=" . s:Chocolate[1] +execute "hi Error guifg=" . s:Aluminium[0] . " guibg=" . s:ScarletRed[2] +execute "hi Identifier guifg=" . s:Orange[2] +execute "hi Ignore guifg=" . s:Aluminium[5] . " guibg=" . s:Aluminium[5] +execute "hi Operator guifg=" . s:Butter[1] +execute "hi PreProc guifg=" . s:Chocolate[0] +execute "hi Repeat gui=bold guifg=" . s:Butter[2] +execute "hi Special guifg=" . s:SkyBlue[1] +execute "hi Statement guifg=" . s:Aluminium[3] +execute "hi String guifg=" . s:SkyBlue[0] +execute "hi Title guifg=" . s:Aluminium[0] +execute "hi Todo gui=bold guisp=NONE guibg=" . s:Orange[2] + \. " guifg=" . s:Aluminium[0] +execute "hi Type guifg=" . s:Orange[2] +execute "hi Underlined gui=underline guifg=" . s:SkyBlue[0] +" }}} + +" {{{ groups +execute "hi Cursor guibg=" . s:ScarletRed[0] . " guifg=" . s:Aluminium[5] +execute "hi CursorLine guibg=" . s:Background +execute "hi CursorColumn guibg=" . s:Background +"hi CursorIM TODO +execute "hi Directory guifg=" . s:SkyBlue[0] +execute "hi ErrorMsg guifg=" . s:Aluminium[0] . " guibg=" . s:ScarletRed[2] +execute "hi FoldColumn guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi Folded guibg=" . s:Aluminium[4] . " guifg=" . s:Aluminium[2] +execute "hi IncSearch gui=none guibg=" . s:Butter[0] . " guifg=" . s:Butter[2] +execute "hi LineNr guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi MatchParen guibg=" . s:Aluminium[2] . " guifg=" . s:Aluminium[5] +"hi Menu TODO +execute "hi ModeMsg guifg=" . s:Orange[2] +execute "hi MoreMsg guifg=" . s:Orange[2] +execute "hi NonText guibg=" . s:Aluminium[5] . " guifg=" . s:Aluminium[4] +execute "hi Pmenu guibg=" . s:Aluminium[2] . " guifg=" . s:Aluminium[4] +execute "hi PmenuSel guibg=" . s:Aluminium[0] . " guifg=" . s:Aluminium[5] +execute "hi Question guifg=" . s:Plum[0] +"hi Scrollbar TODO +execute "hi Search guibg=" . s:Butter[0] . " guifg=" . s:Butter[2] +execute "hi SpecialKey guifg=" . s:Orange[2] +execute "hi StatusLine gui=none guibg=" . s:Orange[2] . " guifg=" . s:Aluminium[0] +execute "hi StatusLineNC gui=none guibg=" . s:Aluminium[3] . " guifg=" . s:Aluminium[5] +"hi TabLine TODO - non-active tab page label +"hi TabLineFill TODO - fill color where there are no tabs +"hi TabLineSel TODO - active tab page label +execute "hi Tooltip gui=none guibg=" . s:SkyBlue[0] . " guifg=" . s:Aluminium[0] +execute "hi VertSplit gui=none guibg=" . s:Aluminium[3] . " guifg=" . s:Aluminium[5] +execute "hi Visual guibg=" . s:Orange[0] . " guifg=" . s:Orange[2] +"hi VisualNOS TODO - Visual mode selection when vim is "Not Owning the Selection". +execute "hi WarningMsg guifg=" . s:Orange[0] +execute "hi WildMenu guifg=" . s:Butter[2] . " guibg=" . s:Butter[0] +" }}} + +" {{{ terminal +" TODO +" }}} + +" vim: sw=4 foldmethod=marker diff --git a/.vim/colors/vc.vim b/.vim/colors/vc.vim new file mode 100644 index 0000000..53ecc22 --- /dev/null +++ b/.vim/colors/vc.vim @@ -0,0 +1,24 @@ +" Vim color file +" Maintainer: Vladimir Vrzic +" Last Change: 28. june 2003. +" URL: http://galeb.etf.bg.ac.yu/~random/pub/vim/ + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vc" + +hi Comment gui=NONE guifg=SeaGreen guibg=NONE +hi Constant gui=NONE guifg=#004488 guibg=NONE +"hi Identifier gui=NONE guifg=Blue guibg=NONE +hi Statement gui=NONE guifg=Blue guibg=NONE +hi PreProc gui=NONE guifg=Blue guibg=NONE +hi Type gui=NONE guifg=Blue guibg=NONE +hi Special gui=NONE guifg=SteelBlue guibg=NONE +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/.vim/colors/vibrantink.vim b/.vim/colors/vibrantink.vim new file mode 100644 index 0000000..46aa23f --- /dev/null +++ b/.vim/colors/vibrantink.vim @@ -0,0 +1,68 @@ +" Vim color scheme +" +" Name: vibrantink.vim +" Maintainer: Jo Vermeulen +" Last Change: 5 Mar 2009 +" License: public domain +" Version: 1.3 +" +" This scheme should work in the GUI and in xterm's 256 color mode. It +" won't work in 8/16 color terminals. +" +" I based it on John Lam's initial Vibrant Ink port to Vim [1]. Thanks +" to a great tutorial [2], I was able to convert it to xterm 256 color +" mode. And of course, credits go to Justin Palmer for creating the +" original Vibrant Ink TextMate color scheme [3]. +" +" [1] http://www.iunknown.com/articles/2006/09/04/vim-can-save-your-hands-too +" [2] http://frexx.de/xterm-256-notes/ +" [3] http://encytemedia.com/blog/articles/2006/01/03/textmate-vibrant-ink-theme-and-prototype-bundle + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "vibrantink" + +if has("gui_running") + highlight Normal guifg=White guibg=Black + highlight Cursor guifg=Black guibg=Yellow + highlight Keyword guifg=#FF6600 + highlight Define guifg=#FF6600 + highlight Comment guifg=#9933CC + highlight Type guifg=White gui=NONE + highlight rubySymbol guifg=#339999 gui=NONE + highlight Identifier guifg=White gui=NONE + highlight rubyStringDelimiter guifg=#66FF00 + highlight rubyInterpolation guifg=White + highlight rubyPseudoVariable guifg=#339999 + highlight Constant guifg=#FFEE98 + highlight Function guifg=#FFCC00 gui=NONE + highlight Include guifg=#FFCC00 gui=NONE + highlight Statement guifg=#FF6600 gui=NONE + highlight String guifg=#66FF00 + highlight Search guibg=White + highlight CursorLine guibg=#323300 +else + set t_Co=256 + highlight Normal ctermfg=White ctermbg=Black + highlight Cursor ctermfg=Black ctermbg=Yellow + highlight Keyword ctermfg=202 + highlight Define ctermfg=202 + highlight Comment ctermfg=98 + highlight Type ctermfg=White + highlight rubySymbol ctermfg=66 + highlight Identifier ctermfg=White + highlight rubyStringDelimiter ctermfg=82 + highlight rubyInterpolation ctermfg=White + highlight rubyPseudoVariable ctermfg=66 + highlight Constant ctermfg=228 + highlight Function ctermfg=220 + highlight Include ctermfg=220 + highlight Statement ctermfg=202 + highlight String ctermfg=82 + highlight Search ctermbg=White + highlight CursorLine cterm=NONE ctermbg=235 +endif diff --git a/.vim/colors/vividchalk.vim b/.vim/colors/vividchalk.vim new file mode 100644 index 0000000..44488b4 --- /dev/null +++ b/.vim/colors/vividchalk.vim @@ -0,0 +1,172 @@ +" Vim color scheme +" Name: vividchalk.vim +" Author: Tim Pope +" GetLatestVimScripts: 1891 1 :AutoInstall: vividchalk.vim +" $Id: vividchalk.vim,v 1.8 2007-07-11 18:50:16 tpope Exp $ + +" Based on the Vibrank Ink theme for TextMate +" Distributable under the same terms as Vim itself (see :help license) + +if has("gui_running") + set background=dark +endif +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "vividchalk" + +" First two functions adapted from inkpot.vim + +" map a urxvt cube number to an xterm-256 cube number +fun! s:M(a) + return strpart("0245", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! s:X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + s:M(l:x) + (6 * s:M(l:y)) + (36 * s:M(l:z)) + endif + endif +endfun + +function! E2T(a) + return s:X(a:a) +endfunction + +function! s:choose(mediocre,good) + if &t_Co != 88 && &t_Co != 256 + return a:mediocre + else + return s:X(a:good) + endif +endfunction + +function! s:hifg(group,guifg,first,second,...) + if a:0 && &t_Co == 256 + let ctermfg = a:1 + else + let ctermfg = s:choose(a:first,a:second) + endif + exe "highlight ".a:group." guifg=".a:guifg." ctermfg=".ctermfg +endfunction + +function! s:hibg(group,guibg,first,second) + let ctermbg = s:choose(a:first,a:second) + exe "highlight ".a:group." guibg=".a:guibg." ctermbg=".ctermbg +endfunction + +hi link railsMethod PreProc +hi link rubyDefine Keyword +hi link rubySymbol Constant +hi link rubyAccess rubyMethod +hi link rubyAttribute rubyMethod +hi link rubyEval rubyMethod +hi link rubyException rubyMethod +hi link rubyInclude rubyMethod +hi link rubyStringDelimiter rubyString +hi link rubyRegexp Regexp +hi link rubyRegexpDelimiter rubyRegexp +"hi link rubyConstant Variable +"hi link rubyGlobalVariable Variable +"hi link rubyClassVariable Variable +"hi link rubyInstanceVariable Variable +hi link javascriptRegexpString Regexp +hi link javascriptNumber Number +hi link javascriptNull Constant + +call s:hifg("Normal","#EEEEEE","White",87) +if &background == "light" || has("gui_running") + hi Normal guibg=Black ctermbg=Black +else + hi Normal guibg=Black ctermbg=NONE +endif +highlight StatusLine guifg=Black guibg=#aabbee gui=bold ctermfg=Black ctermbg=White cterm=bold +highlight StatusLineNC guifg=#444444 guibg=#aaaaaa gui=none ctermfg=Black ctermbg=Grey cterm=none +"if &t_Co == 256 + "highlight StatusLine ctermbg=117 +"else + "highlight StatusLine ctermbg=43 +"endif +highlight WildMenu guifg=Black guibg=#ffff00 gui=bold ctermfg=Black ctermbg=Yellow cterm=bold +highlight Cursor guifg=Black guibg=White ctermfg=Black ctermbg=White +highlight CursorLine guibg=#333333 guifg=NONE +highlight CursorColumn guibg=#333333 guifg=NONE +highlight NonText guifg=#404040 ctermfg=8 +highlight SpecialKey guifg=#404040 ctermfg=8 +highlight Directory none +high link Directory Identifier +highlight ErrorMsg guibg=Red ctermbg=DarkRed guifg=NONE ctermfg=NONE +highlight Search guifg=NONE ctermfg=NONE gui=none cterm=none +call s:hibg("Search" ,"#555555","Black",81) +highlight IncSearch guifg=White guibg=Black ctermfg=White ctermbg=Black +highlight MoreMsg guifg=#00AA00 ctermfg=Green +highlight LineNr guifg=#DDEEFF ctermfg=White +call s:hibg("LineNr" ,"#222222","DarkBlue",80) +highlight Question none +high link Question MoreMsg +highlight Title guifg=Magenta ctermfg=Magenta +highlight VisualNOS gui=none cterm=none +call s:hibg("Visual" ,"#555577","LightBlue",83) +call s:hibg("VisualNOS" ,"#444444","DarkBlue",81) +highlight WarningMsg guifg=Red ctermfg=Red +highlight Folded guibg=#1100aa ctermbg=DarkBlue +call s:hibg("Folded" ,"#110077","DarkBlue",17) +call s:hifg("Folded" ,"#aaddee","LightCyan",63) +highlight FoldColumn none +high link FoldColumn Folded +highlight Pmenu guifg=White ctermfg=White gui=bold cterm=bold +highlight PmenuSel guifg=White ctermfg=White gui=bold cterm=bold +call s:hibg("Pmenu" ,"#000099","Blue",18) +call s:hibg("PmenuSel" ,"#5555ff","DarkCyan",39) +highlight PmenuSbar guibg=Grey ctermbg=Grey +highlight PmenuThumb guibg=White ctermbg=White +highlight TabLine gui=underline cterm=underline +call s:hifg("TabLine" ,"#bbbbbb","LightGrey",85) +call s:hibg("TabLine" ,"#333333","DarkGrey",80) +highlight TabLineSel guifg=White guibg=Black ctermfg=White ctermbg=Black +highlight TabLineFill gui=underline cterm=underline +call s:hifg("TabLineFill","#bbbbbb","LightGrey",85) +call s:hibg("TabLineFill","#808080","Grey",83) + +hi Type gui=none +hi Statement gui=none +if !has("gui_mac") + " Mac GUI degrades italics to ugly underlining. + hi Comment gui=italic + hi railsUserClass gui=italic + hi railsUserMethod gui=italic +endif +hi Identifier cterm=none +" Commented numbers at the end are *old* 256 color values +"highlight PreProc guifg=#EDF8F9 +call s:hifg("Comment" ,"#9933CC","DarkMagenta",34) " 92 +" 26 instead? +call s:hifg("Constant" ,"#339999","DarkCyan",21) " 30 +call s:hifg("rubyNumber" ,"#CCFF33","Yellow",60) " 190 +call s:hifg("String" ,"#66FF00","LightGreen",44,82) " 82 +call s:hifg("Identifier" ,"#FFCC00","Yellow",72) " 220 +call s:hifg("Statement" ,"#FF6600","Brown",68) " 202 +call s:hifg("PreProc" ,"#AAFFFF","LightCyan",47) " 213 +call s:hifg("railsUserMethod","#AACCFF","LightCyan",27) +call s:hifg("Type" ,"#AAAA77","Grey",57) " 101 +call s:hifg("railsUserClass" ,"#AAAAAA","Grey",7) " 101 +call s:hifg("Special" ,"#33AA00","DarkGreen",24) " 7 +call s:hifg("Regexp" ,"#44B4CC","DarkCyan",21) " 74 +call s:hifg("rubyMethod" ,"#DDE93D","Yellow",77) " 191 +"highlight railsMethod guifg=#EE1122 ctermfg=1 diff --git a/.vim/colors/vylight.vim b/.vim/colors/vylight.vim new file mode 100644 index 0000000..156adf3 --- /dev/null +++ b/.vim/colors/vylight.vim @@ -0,0 +1,81 @@ +" +" Vim colour file +" +" Maintainer: Vy-Shane Sin Fat +" Last Change: 20 November 2009 +" Version: 1.1 +" +" This colour file is meant for GUI use. +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vylight" + + +hi Normal guifg=#1a1a1a guibg=white +hi Title guifg=black guibg=white +hi Cursor guibg=#111111 +hi LineNr guifg=#aaaaaa guibg=#f8f8f8 +hi Visual guibg=#bbddff +hi NonText guifg=#cccccc guibg=#fafafa +hi StatusLine guifg=#222222 guibg=#eeeeee gui=none +hi StatusLineNC guifg=#666666 guibg=#eeeeee gui=none +hi VertSplit guifg=#eeeeee guibg=#eeeeee gui=none +hi ModeMsg guifg=#007050 guibg=#eeeeee gui=none +hi ErrorMsg guifg=#f03050 guibg=#eeeeee gui=none +hi Error guifg=#bb3355 guibg=white gui=none + + +" Vim 7.x specific +if version >= 700 + hi CursorLine guibg=#eeeeee gui=none + hi MatchParen guibg=#ccffdd gui=none + hi Pmenu guifg=#60656f guibg=#f0f5ff gui=none + hi PmenuSel guifg=white guibg=#3585ef gui=bold + hi PmenuSbar guifg=#d0d5dd guibg=#e0e5ee gui=bold + hi PmenuThumb guifg=#e0e5ee guibg=#c0c5dd gui=bold + hi Search guibg=#fcfcaa gui=none + hi IncSearch guibg=#ffff33 gui=bold +endif + + +" Syntax highlighting +hi Comment guifg=#668866 gui=none +"hi Todo guifg=#225522 guibg=white gui=italic +hi Todo guifg=#446644 guibg=#ddeecc gui=italic +hi Operator guifg=#1a1a1a gui=none +hi Identifier guifg=#1a1a1a gui=none +hi Statement guifg=#0050b0 gui=none +hi Type guifg=#0050b0 gui=none +hi Constant guifg=#204070 gui=none +hi Conditional guifg=#006040 gui=none +hi Delimiter guifg=#1a1a1a gui=none +hi PreProc guifg=#007050 gui=none +hi Special guifg=#a05050 gui=none +hi Keyword guifg=#007050 gui=none + +hi link Function Normal +hi link Character Constant +hi link String Constant +hi link Boolean Constant +hi link Number Constant +hi link Float Number +hi link Repeat Conditional +hi link Label Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link SpecialComment Special +hi link Debug Special + diff --git a/.vim/colors/winter.vim b/.vim/colors/winter.vim new file mode 100644 index 0000000..4212187 --- /dev/null +++ b/.vim/colors/winter.vim @@ -0,0 +1,87 @@ + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" " +" File_Name__: winter.vim " +" Abstract___: A color sheme file (only for GVIM) which uses a light grey " +" background makes the VIM look like the scenes of winter. " +" Author_____: CHE Wenlong " +" Version____: 1.3 " +" Last_Change: February 26, 2009 " +" " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Preprocess {{{ + +if !has("gui_running") + runtime! colors/default.vim + finish +endif + +set background=light + +hi clear + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let colors_name = "winter" + +" }}} + +" Common {{{ + +hi Normal guifg=#000000 guibg=#D4D0C8 gui=NONE +hi Visual guifg=#FFFFFF guibg=#000080 gui=NONE +hi Cursor guifg=#D4D0C8 guibg=#FF0000 gui=NONE +hi LineNr guifg=#707070 guibg=NONE gui=NONE +hi Title guifg=#202020 guibg=NONE gui=NONE +hi Underlined guifg=#202020 guibg=NONE gui=UNDERLINE + +" }}} + +" Split {{{ + +hi StatusLine guifg=#E0E0E0 guibg=#707070 gui=NONE +hi StatusLineNC guifg=#E0E0E0 guibg=#909090 gui=NONE +hi VertSplit guifg=#909090 guibg=#909090 gui=NONE + +" }}} + +" Folder {{{ + +hi Folded guifg=#707070 guibg=#E0E0E0 gui=NONE + +" }}} + +" Syntax {{{ + +hi Type guifg=#0000FF guibg=NONE gui=NONE +hi Define guifg=#0000FF guibg=NONE gui=NONE +hi Comment guifg=#008000 guibg=NONE gui=NONE +hi Constant guifg=#A000A0 guibg=NONE gui=NONE +hi String guifg=#008080 guibg=NONE gui=NONE +hi Number guifg=#FF0000 guibg=NONE gui=NONE +hi Statement guifg=#0000FF guibg=NONE gui=NONE + +" }}} + +" Others {{{ + +hi PreProc guifg=#A000A0 guibg=NONE gui=NONE +hi Special guifg=#A000A0 guibg=NONE gui=NONE +hi SpecialKey guifg=#707070 guibg=#E0E0E0 gui=NONE +hi Error guifg=#FF0000 guibg=#FFFFFF gui=UNDERLINE +hi Todo guifg=#FF0000 guibg=#FFFF00 gui=UNDERLINE + +" }}} + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" " +" vim:foldmethod=marker:tabstop=4 +" " +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + diff --git a/.vim/colors/wombat.vim b/.vim/colors/wombat.vim new file mode 100644 index 0000000..9ad1e56 --- /dev/null +++ b/.vim/colors/wombat.vim @@ -0,0 +1,51 @@ +" Maintainer: Lars H. Nielsen (dengmao@gmail.com) +" Last Change: January 22 2007 + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "wombat" + + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#2d2d2d + hi CursorColumn guibg=#2d2d2d + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold + hi Pmenu guifg=#f6f3e8 guibg=#444444 + hi PmenuSel guifg=#000000 guibg=#cae682 +endif + +" General colors +hi Cursor guifg=NONE guibg=#656565 gui=none +hi Normal guifg=#f6f3e8 guibg=#242424 gui=none +hi NonText guifg=#808080 guibg=#303030 gui=none +hi LineNr guifg=#857b6f guibg=#000000 gui=none +hi StatusLine guifg=#f6f3e8 guibg=#444444 gui=italic +hi StatusLineNC guifg=#857b6f guibg=#444444 gui=none +hi VertSplit guifg=#444444 guibg=#444444 gui=none +hi Folded guibg=#384048 guifg=#a0a8b0 gui=none +hi Title guifg=#f6f3e8 guibg=NONE gui=bold +hi Visual guifg=#f6f3e8 guibg=#444444 gui=none +hi SpecialKey guifg=#808080 guibg=#343434 gui=none + +" Syntax highlighting +hi Comment guifg=#99968b gui=italic +hi Todo guifg=#8f8f8f gui=italic +hi Constant guifg=#e5786d gui=none +hi String guifg=#95e454 gui=italic +hi Identifier guifg=#cae682 gui=none +hi Function guifg=#cae682 gui=none +hi Type guifg=#cae682 gui=none +hi Statement guifg=#8ac6f2 gui=none +hi Keyword guifg=#8ac6f2 gui=none +hi PreProc guifg=#e5786d gui=none +hi Number guifg=#e5786d gui=none +hi Special guifg=#e7f6da gui=none + + diff --git a/.vim/colors/wombat256.vim b/.vim/colors/wombat256.vim new file mode 100644 index 0000000..73be6db --- /dev/null +++ b/.vim/colors/wombat256.vim @@ -0,0 +1,302 @@ +" Vim color file +" Maintainer: David Liang (bmdavll at gmail dot com) +" Last Change: November 28 2008 +" +" wombat256.vim - a modified version of Wombat by Lars Nielsen that also +" works on xterms with 88 or 256 colors. The algorithm for approximating the +" GUI colors with the xterm palette is from desert256.vim by Henry So Jr. + +set background=dark + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name = "wombat256" + +if !has("gui_running") && &t_Co != 88 && &t_Co != 256 + finish +endif + +" functions {{{ +" returns an approximate grey index for the given grey level +fun grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun color(r, g, b) + " get the closest grey + let l:gx = grey_number(a:r) + let l:gy = grey_number(a:g) + let l:gz = grey_number(a:b) + + " get the closest color + let l:x = rgb_number(a:r) + let l:y = rgb_number(a:g) + let l:z = rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = grey_level(l:gx) - a:r + let l:dgg = grey_level(l:gy) - a:g + let l:dgb = grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = rgb_level(l:gx) - a:r + let l:dg = rgb_level(l:gy) - a:g + let l:db = rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return grey_color(l:gx) + else + " use the color + return rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun X(group, fg, bg, attr) + if a:fg != "" + exec "hi ".a:group." guifg=#".a:fg." ctermfg=".rgb(a:fg) + endif + if a:bg != "" + exec "hi ".a:group." guibg=#".a:bg." ctermbg=".rgb(a:bg) + endif + if a:attr != "" + if a:attr == 'italic' + exec "hi ".a:group." gui=".a:attr." cterm=none" + else + exec "hi ".a:group." gui=".a:attr." cterm=".a:attr + endif + endif +endfun +" }}} + +call X("Normal", "cccccc", "242424", "none") +call X("Cursor", "222222", "ecee90", "none") +call X("CursorLine", "", "32322e", "none") +call X("CursorColumn", "", "2d2d2d", "") + "CursorIM + "Question + "IncSearch +call X("Search", "444444", "af87d7", "") +call X("MatchParen", "ecee90", "857b6f", "bold") +call X("SpecialKey", "6c6c6c", "2d2d2d", "none") +call X("Visual", "ecee90", "597418", "none") +call X("LineNr", "857b6f", "121212", "none") +call X("Folded", "a0a8b0", "404048", "none") +call X("Title", "f6f3e8", "", "bold") +call X("VertSplit", "444444", "444444", "none") +call X("StatusLine", "f6f3e8", "444444", "italic") +call X("StatusLineNC", "857b6f", "444444", "none") + "Scrollbar + "Tooltip + "Menu + "WildMenu +call X("Pmenu", "f6f3e8", "444444", "") +call X("PmenuSel", "121212", "caeb82", "") +call X("WarningMsg", "ff0000", "", "") + "ErrorMsg + "ModeMsg + "MoreMsg + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + +" syntax highlighting +call X("Number", "e5786d", "", "none") +call X("Constant", "e5786d", "", "none") +call X("String", "95e454", "", "italic") +call X("Comment", "c0bc6c", "", "italic") +call X("Identifier", "caeb82", "", "none") +call X("Keyword", "87afff", "", "none") +call X("Statement", "87afff", "", "none") +call X("Function", "caeb82", "", "none") +call X("PreProc", "e5786d", "", "none") +call X("Type", "caeb82", "", "none") +call X("Special", "ffdead", "", "none") +call X("Todo", "857b6f", "", "italic") + "Underlined + "Error + "Ignore + +hi! link VisualNOS Visual +hi! link NonText LineNr +hi! link FoldColumn Folded + +" delete functions {{{ +delf X +delf rgb +delf color +delf rgb_color +delf rgb_level +delf rgb_number +delf grey_color +delf grey_level +delf grey_number +" }}} + +" vim:set ts=4 sw=4 noet fdm=marker: diff --git a/.vim/colors/wood.vim b/.vim/colors/wood.vim new file mode 100644 index 0000000..2f6059e --- /dev/null +++ b/.vim/colors/wood.vim @@ -0,0 +1,39 @@ +" Vim color file +" Maintainer: freddydaoud@netscape.net +" Last Change: 09 Apr 2005 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="wood" + +hi Normal guibg=#81816A guifg=linen +hi Cursor guibg=#CFCFC6 guifg=black gui=bold +hi VertSplit guifg=#81816A guibg=#CCCCAA gui=none +hi Folded guibg=black guifg=white +hi FoldColumn guibg=lightgray guifg=#292926 +hi ModeMsg guifg=black guibg=#CFCFC6 +hi MoreMsg guifg=black guibg=#CFCFC6 +hi NonText guifg=white guibg=#61614A gui=none +hi Question guifg=snow +hi Search guibg=#CFCFC6 guifg=black gui=bold +hi SpecialKey guifg=yellow +hi StatusLine guibg=#DFDFD6 guifg=black gui=none +hi StatusLineNC guibg=#BFBFB6 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guifg=#292926 guibg=#CFCFC6 gui=none +hi WarningMsg guifg=salmon4 guibg=gray60 gui=bold +hi Comment guifg=#D1D1BA +hi Constant guifg=#FFFFCC gui=bold +hi Identifier guifg=#FFFFCC +hi Statement guifg=#000000 +hi PreProc guifg=black gui=bold +hi Type guifg=#FFE0C0 +hi Special guifg=navajowhite +hi Ignore guifg=grey29 +hi Todo guibg=black guifg=white +hi WildMenu guibg=brown +hi LineNr guifg=#CCCCAA guibg=#61614A diff --git a/.vim/colors/wuye.vim b/.vim/colors/wuye.vim new file mode 100644 index 0000000..88a6126 --- /dev/null +++ b/.vim/colors/wuye.vim @@ -0,0 +1,82 @@ +" Vim color file +" Name: WuYe +" Maintainer: Yeii +" Last Change: 2009-08-12 +" Version: 1.2.1 +" URL: http://www.vim.org/scripts/script.php?script_id=2088 + +" Init +highlight clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "wuye" + +""""""""\ Highlighting groups for various occasions \"""""""" +hi SpecialKey guifg=SlateBlue ctermfg=Blue +hi NonText guifg=MidnightBlue ctermfg=DarkBlue +hi Directory gui=BOLD guifg=LightSeaGreen ctermfg=DarkCyan +hi ErrorMsg guifg=Yellow guibg=Firebrick ctermfg=Yellow ctermbg=DarkRed +hi IncSearch gui=BOLD guifg=Red cterm=BOLD ctermfg=Red +hi Search gui=BOLD guifg=MintCream guibg=Red cterm=BOLD ctermfg=White ctermbg=Red +hi MoreMsg gui=BOLD guifg=MediumSpringGreen cterm=BOLD ctermfg=DarkCyan +hi ModeMsg guifg=LawnGreen guibg=DeepSkyBlue4 ctermfg=Yellow ctermbg=DarkCyan +hi LineNr gui=UNDERLINE guifg=LightSkyBlue3 guibg=Gray10 cterm=UNDERLINE ctermfg=DarkGray +hi Question gui=BOLD guifg=green cterm=BOLD ctermfg=green +hi StatusLine gui=BOLD guifg=White guibg=RoyalBlue4 cterm=BOLD ctermfg=White ctermbg=DarkBlue +hi StatusLineNC gui=BOLD guifg=Bisque guibg=DimGray cterm=BOLD ctermfg=Black ctermbg=Gray +hi VertSplit gui=BOLD guifg=Bisque guibg=DimGray cterm=BOLD ctermfg=Black ctermbg=Gray +hi Title gui=BOLD guifg=DodgerBlue cterm=BOLD ctermfg=LightBlue +hi Visual gui=REVERSE guibg=Yellow guifg=SlateBlue4 cterm=REVERSE ctermbg=Yellow ctermfg=DarkBlue +hi WarningMsg guifg=Gold ctermfg=Yellow +hi WildMenu gui=BOLD guifg=Black guibg=Chartreuse cterm=BOLD ctermfg=Black ctermbg=Darkgreen +hi Folded guifg=LightCyan guibg=DodgerBlue4 ctermfg=White ctermbg=DarkBlue +hi FoldColumn gui=BOLD guifg=DodgerBlue guibg=Gray16 cterm=BOLD ctermfg=Blue ctermbg=DarkGray +hi DiffAdd guifg=White guibg=Turquoise4 ctermfg=White ctermbg=Darkcyan +hi DiffChange guifg=White guibg=ForestGreen ctermbg=Darkgreen +hi DiffDelete guifg=HotPink4 guibg=SlateGray4 ctermfg=DarkMagenta ctermbg=DarkGray +hi DiffText gui=BOLD guifg=Tomato guibg=DarkBlue cterm=BOLD ctermfg=Magenta ctermbg=DarkBlue +hi Cursor guifg=Black guibg=Green ctermfg=Black ctermbg=Green +hi CursorIM guifg=Black guibg=Red ctermfg=Black ctermbg=Red +hi CursorLine gui=BOLD guibg=Black +hi CursorColumn gui=BOLD guibg=Black + +""""""\ Syntax highlighting groups \"""""" +hi Normal gui=NONE guifg=GhostWhite guibg=Gray8 cterm=NONE ctermfg=LightGray ctermbg=NONE +hi MatchParen gui=BOLD guifg=Gold cterm=BOLD ctermfg=Yellow +hi Comment guifg=LightSlateGray ctermfg=DarkGray +hi Constant guifg=CornflowerBlue ctermfg=DarkCyan + hi String guifg=SteelBlue1 ctermfg=DarkCyan + hi Character guifg=SteelBlue ctermfg=DarkCyan + hi Number guifg=Turquoise ctermfg=DarkCyan + hi Boolean gui=BOLD guifg=DarkTurquoise cterm=BOLD ctermfg=DarkCyan + hi Float guifg=Turquoise ctermfg=DarkCyan +hi Identifier guifg=DeepSkyBlue ctermfg=lightcyan + hi Function gui=BOLD guifg=DeepSkyBlue cterm=BOLD ctermfg=lightcyan +hi Statement guifg=SpringGreen ctermfg=LightGreen + hi Conditional guifg=SeaGreen1 ctermfg=LightGreen + hi Repeat guifg=SpringGreen ctermfg=LightGreen + hi Label guifg=MediumSpringGreen ctermfg=LightGreen + hi Operator guifg=Green2 ctermfg=LightGreen + hi Keyword gui=BOLD guifg=SpringGreen cterm=BOLD ctermfg=LightGreen + hi Exception gui=BOLD guifg=SpringGreen2 cterm=BOLD ctermfg=LightGreen +hi PreProc guifg=Purple ctermfg=DarkMagenta + hi Include guifg=Purple2 ctermfg=DarkMagenta + hi Define guifg=BlueViolet ctermfg=DarkMagenta + hi Macro guifg=DarkViolet ctermfg=DarkMagenta + hi PreCondit guifg=DarkOrchid ctermfg=DarkMagenta +hi Type gui=BOLD guifg=RoyalBlue cterm=BOLD ctermfg=LightBlue + hi StorageClass gui=BOLD guifg=RoyalBlue2 cterm=BOLD ctermfg=LightBlue + hi Structure gui=BOLD guifg=DodgerBlue3 cterm=BOLD ctermfg=LightBlue + hi Typedef gui=BOLD guifg=RoyalBlue1 cterm=BOLD ctermfg=LightBlue +hi Special guifg=BurlyWood ctermfg=DarkYellow + hi Tag guifg=Moccasin ctermfg=DarkYellow + hi Specialchar guifg=Tan ctermfg=DarkYellow + hi Delimiter guifg=Wheat3 ctermfg=DarkYellow + hi Debug guifg=peru ctermfg=DarkYellow +hi Underlined gui=UNDERLINE cterm=UNDERLINE +hi Ignore guifg=Gray75 ctermfg=DarkGray +hi Error guifg=Khaki guibg=VioletRed ctermfg=Yellow ctermbg=LightMagenta +hi Todo guifg=Yellow guibg=NavyBlue ctermfg=Yellow ctermbg=DarkBlue + diff --git a/.vim/colors/xemacs.vim b/.vim/colors/xemacs.vim new file mode 100644 index 0000000..fcd8761 --- /dev/null +++ b/.vim/colors/xemacs.vim @@ -0,0 +1,46 @@ + +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 5 June 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="xemacs" + +hi Normal guibg=#cdcecd guifg=black +hi Cursor guibg=red guifg=grey gui=bold +hi VertSplit guibg=grey60 guifg=black gui=none +hi Folded guibg=royalblue3 guifg=white +hi FoldColumn guibg=royalblue4 guifg=white +hi ModeMsg guifg=#cdcecd guibg=black +hi MoreMsg guifg=#cdcecd guibg=black +hi NonText guifg=black guibg=#cdcecd gui=none +hi Question guifg=black +hi Search guibg=#aceeee +hi SpecialKey guifg=navyblue +hi Special guifg=navyblue +hi StatusLine guibg=#b7b7b7 guifg=black gui=none +hi StatusLineNC guibg=#a6b7b7 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guibg=#a4a5a3 guifg=black gui=none +hi WarningMsg guibg=#cdcecd guifg=black gui=bold +hi Comment guifg=#00008b +hi Constant guifg=#008900 +hi Identifier guibg=#cdcecd guifg=black +hi Statement guifg=royalblue4 +hi PreProc guifg=#0000cd +hi Type guifg=#4a81b4 gui=NONE +hi Ignore guifg=grey29 +hi Todo guibg=gold guifg=black +hi WildMenu guibg=#b7b7b7 guibg=grey91 +hi Directory guibg=#cdcecd guifg=navyblue diff --git a/.vim/colors/xoria256.vim b/.vim/colors/xoria256.vim new file mode 100644 index 0000000..bb7c3be --- /dev/null +++ b/.vim/colors/xoria256.vim @@ -0,0 +1,94 @@ +" Vim color file +" +" Name: xoria256.vim +" Version: 1.1 +" Maintainer: Dmitriy Y. Zotikov (xio) +" +" Should work in recent 256 color terminals. 88-color terms like urxvt are +" unsupported. +" +" Don't forget to install 'ncurses-term' and set TERM to xterm-256color or +" similar value. +" +" Color numbers (0-255) see: +" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html + + + +" Bla-bla ---------------------------------------------------------------------- + +if &t_Co != 256 && ! has("gui_running") + echomsg "" + echomsg "err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)" + echomsg "" + finish +endif + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "xoria256" + + + +" The real part ---------------------------------------------------------------- + +"" General colors +hi Normal ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none +hi CursorColumn ctermbg=238 guibg=#444444 +hi Cursor ctermbg=214 guibg=#ffaf00 +hi CursorLine ctermbg=238 guibg=#444444 +hi FoldColumn ctermfg=248 guifg=#a8a8a8 ctermbg=bg guibg=bg +hi Folded ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87 +hi IncSearch ctermfg=0 guifg=#000000 ctermbg=223 guibg=#ffdfaf cterm=none gui=none +hi NonText ctermfg=248 guifg=#a8a8a8 cterm=bold gui=bold +hi Pmenu ctermfg=0 guifg=#000000 ctermbg=246 guibg=#949494 +hi PmenuSbar ctermbg=243 guibg=#767676 +hi PmenuSel ctermfg=0 guifg=#000000 ctermbg=243 guibg=#767676 +hi PmenuThumb ctermbg=252 guibg=#d0d0d0 +hi Search ctermfg=0 guifg=#000000 ctermbg=149 guibg=#afdf5f +hi SignColumn ctermfg=248 guifg=#a8a8a8 +hi SpecialKey ctermfg=77 guifg=#5fdf5f +hi StatusLine ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold +hi StatusLineNC ctermbg=237 guibg=#3a3a3a cterm=none gui=none +hi TabLine ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=underline gui=underline +hi TabLineFill ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=underline gui=underline +hi VertSplit ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none +hi Visual ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff +hi VIsualNOS ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none +hi WildMenu ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00 cterm=bold gui=bold + +"" Syntax highlighting +hi Comment ctermfg=244 guifg=#808080 +hi Constant ctermfg=229 guifg=#ffffaf +hi Error ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000 +hi ErrorMsg ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000 +hi Identifier ctermfg=182 guifg=#dfafdf cterm=none +hi Ignore ctermfg=238 guifg=#444444 +hi LineNr ctermfg=248 guifg=#a8a8a8 +hi MatchParen ctermfg=188 guifg=#dfdfdf ctermbg=68 guibg=#5f87df cterm=bold gui=bold +hi Number ctermfg=180 guifg=#dfaf87 +hi PreProc ctermfg=150 guifg=#afdf87 +hi Special ctermfg=174 guifg=#df8787 +hi Statement ctermfg=110 guifg=#87afdf cterm=none gui=none +hi Todo ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00 +hi Type ctermfg=146 guifg=#afafdf cterm=none gui=none +hi Underlined ctermfg=39 guifg=#00afff cterm=underline gui=underline + +"" Special +""" .diff +hi diffAdded ctermfg=150 guifg=#afdf87 +hi diffRemoved ctermfg=174 guifg=#df8787 +""" vimdiff +hi diffAdd ctermfg=bg guifg=bg ctermbg=151 guibg=#afdfaf +"hi diffDelete ctermfg=bg guifg=bg ctermbg=186 guibg=#dfdf87 cterm=none gui=none +hi diffDelete ctermfg=bg guifg=bg ctermbg=246 guibg=#949494 cterm=none gui=none +hi diffChange ctermfg=bg guifg=bg ctermbg=181 guibg=#dfafaf +hi diffText ctermfg=bg guifg=bg ctermbg=174 guibg=#df8787 cterm=none gui=none + +" vim: set expandtab tabstop=2 shiftwidth=2 smarttab softtabstop=2: diff --git a/.vim/colors/zenburn.vim b/.vim/colors/zenburn.vim new file mode 100644 index 0000000..edbd6d7 --- /dev/null +++ b/.vim/colors/zenburn.vim @@ -0,0 +1,351 @@ +" Vim color file +" Maintainer: Jani Nurminen +" Last Change: $Id: zenburn.vim,v 2.13 2009/10/24 10:16:01 slinky Exp $ +" URL: http://slinky.imukuppi.org/zenburnpage/ +" License: GPL +" +" Nothing too fancy, just some alien fruit salad to keep you in the zone. +" This syntax file was designed to be used with dark environments and +" low light situations. Of course, if it works during a daybright office, go +" ahead :) +" +" Owes heavily to other Vim color files! With special mentions +" to "BlackDust", "Camo" and "Desert". +" +" To install, copy to ~/.vim/colors directory. +" +" Alternatively, you can use Vimball installation: +" vim zenburn.vba +" :so % +" :q +" +" For details, see :help vimball +" +" After installation, use it with :colorscheme zenburn. +" See also :help syntax +" +" Credits: +" - Jani Nurminen - original Zenburn +" - Steve Hall & Cream posse - higher-contrast Visual selection +" - Kurt Maier - 256 color console coloring, low and high contrast toggle, +" bug fixing +" - Charlie - spotted too bright StatusLine in non-high contrast mode +" - Pablo Castellazzi - CursorLine fix for 256 color mode +" - Tim Smith - force dark background +" - John Gabriele - spotted bad Ignore-group handling +" - Zac Thompson - spotted invisible NonText in low contrast mode +" - Christophe-Marie Duquesne - suggested making a Vimball +" +" CONFIGURABLE PARAMETERS: +" +" You can use the default (don't set any parameters), or you can +" set some parameters to tweak the Zenburn colours. +" +" To use them, put them into your .vimrc file before loading the color scheme, +" example: +" let g:zenburn_high_Contrast=1 +" colors zenburn +" +" * You can now set a darker background for bright environments. To activate, use: +" contrast Zenburn, use: +" +" let g:zenburn_high_Contrast = 1 +" +" * For example, Vim help files uses the Ignore-group for the pipes in tags +" like "|somelink.txt|". By default, the pipes are not visible, as they +" map to Ignore group. If you wish to enable coloring of the Ignore group, +" set the following parameter to 1. Warning, it might make some syntax files +" look strange. +" +" let g:zenburn_color_also_Ignore = 1 +" +" * To get more contrast to the Visual selection, use +" +" let g:zenburn_alternate_Visual = 1 +" +" * To use alternate colouring for Error message, use +" +" let g:zenburn_alternate_Error = 1 +" +" * The new default for Include is a duller orange. To use the original +" colouring for Include, use +" +" let g:zenburn_alternate_Include = 1 +" +" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237 +" as light values, and sets background to light for some people. If you have +" this problem, use: +" +" let g:zenburn_force_dark_Background = 1 +" +" NOTE: +" +" * To turn the parameter(s) back to defaults, use UNLET: +" +" unlet g:zenburn_alternate_Include +" +" Setting to 0 won't work! +" +" That's it, enjoy! +" +" TODO +" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble +" - IME colouring (CursorIM) + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="zenburn" + +hi Boolean guifg=#dca3a3 +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f9f7f gui=italic +hi Conditional guifg=#f0dfaf gui=bold +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold +hi Debug guifg=#bca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 +hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold +hi Directory guifg=#dcdccc gui=bold +hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold +hi Exception guifg=#c3bf9f gui=bold +hi Float guifg=#c0bed1 +hi FoldColumn guifg=#93b3a3 guibg=#3f4040 +hi Folded guifg=#93b3a3 guibg=#3f4040 +hi Function guifg=#efef8f +hi Identifier guifg=#efdcbc +hi IncSearch guibg=#f8f893 guifg=#385f38 +hi Keyword guifg=#f0dfaf gui=bold +hi Label guifg=#dfcfaf gui=underline +hi LineNr guifg=#9fafaf guibg=#262626 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#ffcfaf gui=none +hi MoreMsg guifg=#ffffff gui=bold +hi Number guifg=#8cd0d3 +hi Operator guifg=#f0efd0 +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#ffd7a7 gui=bold +hi Search guifg=#ffffe0 guibg=#284f28 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#82a282 gui=bold +hi Special guifg=#cfbfaf +hi SpecialKey guifg=#9ece9e +hi Statement guifg=#e3ceab gui=none +hi StatusLine guifg=#313633 guibg=#ccdc90 +hi StatusLineNC guifg=#2e3330 guibg=#88b090 +hi StorageClass guifg=#c3bf9f gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#efefaf gui=bold +hi Tag guifg=#e89393 gui=bold +hi Title guifg=#efefef gui=bold +hi Todo guifg=#dfdfdf guibg=bg gui=bold +hi Typedef guifg=#dfe4cf gui=bold +hi Type guifg=#dfdfbf gui=bold +hi Underlined guifg=#dcdccc gui=underline +hi VertSplit guifg=#2e3330 guibg=#688060 +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guibg=#2c302d guifg=#cbecd0 gui=underline + +hi SpellBad guisp=#bc6c4c guifg=#dc8c6c +hi SpellCap guisp=#6c6c9c guifg=#8c8cbc +hi SpellRare guisp=#bc6c9c guifg=#bc8cbc +hi SpellLocal guisp=#7cac7c guifg=#9ccc9c + +" Entering Kurt zone +if &t_Co > 255 + hi Boolean ctermfg=181 + hi Character ctermfg=181 cterm=bold + hi Comment ctermfg=108 + hi Conditional ctermfg=223 cterm=bold + hi Constant ctermfg=181 cterm=bold + hi Cursor ctermfg=233 ctermbg=109 cterm=bold + hi Debug ctermfg=181 cterm=bold + hi Define ctermfg=223 cterm=bold + hi Delimiter ctermfg=245 + hi DiffAdd ctermfg=66 ctermbg=237 cterm=bold + hi DiffChange ctermbg=236 + hi DiffDelete ctermfg=236 ctermbg=238 + hi DiffText ctermfg=217 ctermbg=237 cterm=bold + hi Directory ctermfg=188 cterm=bold + hi ErrorMsg ctermfg=115 ctermbg=236 cterm=bold + hi Exception ctermfg=249 cterm=bold + hi Float ctermfg=251 + hi FoldColumn ctermfg=109 ctermbg=238 + hi Folded ctermfg=109 ctermbg=238 + hi Function ctermfg=228 + hi Identifier ctermfg=223 + hi IncSearch ctermbg=228 ctermfg=238 + hi Keyword ctermfg=223 cterm=bold + hi Label ctermfg=187 cterm=underline + hi LineNr ctermfg=248 ctermbg=235 + hi Macro ctermfg=223 cterm=bold + hi ModeMsg ctermfg=223 cterm=none + hi MoreMsg ctermfg=15 cterm=bold + hi Number ctermfg=116 + hi Operator ctermfg=230 + hi PreCondit ctermfg=180 cterm=bold + hi PreProc ctermfg=223 cterm=bold + hi Question ctermfg=15 cterm=bold + hi Repeat ctermfg=223 cterm=bold + hi Search ctermfg=230 ctermbg=236 + hi SpecialChar ctermfg=181 cterm=bold + hi SpecialComment ctermfg=108 cterm=bold + hi Special ctermfg=181 + hi SpecialKey ctermfg=151 + hi Statement ctermfg=187 ctermbg=234 cterm=none + hi StatusLine ctermfg=236 ctermbg=186 + hi StatusLineNC ctermfg=235 ctermbg=108 + hi StorageClass ctermfg=249 cterm=bold + hi String ctermfg=174 + hi Structure ctermfg=229 cterm=bold + hi Tag ctermfg=181 cterm=bold + hi Title ctermfg=7 ctermbg=234 cterm=bold + hi Todo ctermfg=108 ctermbg=234 cterm=bold + hi Typedef ctermfg=253 cterm=bold + hi Type ctermfg=187 cterm=bold + hi Underlined ctermfg=188 ctermbg=234 cterm=bold + hi VertSplit ctermfg=236 ctermbg=65 + hi VisualNOS ctermfg=236 ctermbg=210 cterm=bold + hi WarningMsg ctermfg=15 ctermbg=236 cterm=bold + hi WildMenu ctermbg=236 ctermfg=194 cterm=bold + hi CursorLine ctermbg=236 cterm=none + + " spellchecking, always "bright" background + hi SpellLocal ctermfg=14 ctermbg=237 + hi SpellBad ctermfg=9 ctermbg=237 + hi SpellCap ctermfg=12 ctermbg=237 + hi SpellRare ctermfg=13 ctermbg=237 + + " pmenu + hi PMenu ctermfg=248 ctermbg=0 + hi PMenuSel ctermfg=223 ctermbg=235 + + if exists("g:zenburn_high_Contrast") + hi Normal ctermfg=188 ctermbg=234 + hi NonText ctermfg=238 + + if exists("g:zenburn_color_also_Ignore") + hi Ignore ctermfg=238 + endif + else + hi Normal ctermfg=188 ctermbg=237 + hi Cursor ctermbg=109 + hi diffadd ctermbg=237 + hi diffdelete ctermbg=238 + hi difftext ctermbg=237 + hi errormsg ctermbg=237 + hi foldcolumn ctermbg=238 + hi folded ctermbg=238 + hi incsearch ctermbg=228 + hi linenr ctermbg=238 + hi search ctermbg=238 + hi statement ctermbg=237 + hi statusline ctermbg=144 + hi statuslinenc ctermbg=108 + hi title ctermbg=237 + hi todo ctermbg=237 + hi underlined ctermbg=237 + hi vertsplit ctermbg=65 + hi visualnos ctermbg=210 + hi warningmsg ctermbg=236 + hi wildmenu ctermbg=236 + hi NonText ctermfg=240 + + if exists("g:zenburn_color_also_Ignore") + hi Ignore ctermfg=240 + endif + endif + + if exists("g:zenburn_alternate_Error") + " use more jumpy Error + hi Error ctermfg=210 ctermbg=52 gui=bold + else + " default is something more zenburn-compatible + hi Error ctermfg=228 ctermbg=95 gui=bold + endif +endif + +if exists("g:zenburn_force_dark_Background") + " Force dark background, because of a bug in VIM: VIM sets background + " automatically during "hi Normal ctermfg=X"; it misinterprets the high + " value (234 or 237 above) as a light color, and wrongly sets background to + " light. See ":help highlight" for details. + set background=dark +endif + +if exists("g:zenburn_high_Contrast") + " use new darker background + hi Normal guifg=#dcdccc guibg=#1f1f1f + hi CursorLine guibg=#121212 gui=bold + hi Pmenu guibg=#242424 guifg=#ccccbc + hi PMenuSel guibg=#353a37 guifg=#ccdc90 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold + hi SignColumn guifg=#9fafaf guibg=#181818 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#181818 gui=bold + hi TabLineSel guifg=#efefef guibg=#1c1c1b gui=bold + hi TabLine guifg=#b6bf98 guibg=#181818 gui=bold + hi CursorColumn guifg=#dcdccc guibg=#2b2b2b + hi NonText guifg=#404040 gui=bold +else + " Original, lighter background + hi Normal guifg=#dcdccc guibg=#3f3f3f + hi CursorLine guibg=#434443 + hi Pmenu guibg=#2c2e2e guifg=#9f9f9f + hi PMenuSel guibg=#242424 guifg=#d0d0a0 gui=bold + hi PmenuSbar guibg=#2e3330 guifg=#000000 + hi PMenuThumb guibg=#a0afa0 guifg=#040404 + hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold + hi SignColumn guifg=#9fafaf guibg=#343434 gui=bold + hi TabLineFill guifg=#cfcfaf guibg=#353535 gui=bold + hi TabLineSel guifg=#efefef guibg=#3a3a39 gui=bold + hi TabLine guifg=#b6bf98 guibg=#353535 gui=bold + hi CursorColumn guifg=#dcdccc guibg=#4f4f4f + hi NonText guifg=#5b605e gui=bold +endif + + +if exists("g:zenburn_alternate_Visual") + " Visual with more contrast, thanks to Steve Hall & Cream posse + " gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier + hi Visual guifg=#000000 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none +else + " use default visual + hi Visual guifg=#233323 guibg=#71d3b4 gui=none + hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none +endif + +if exists("g:zenburn_alternate_Error") + " use more jumpy Error + hi Error guifg=#e37170 guibg=#664040 gui=bold +else + " default is something more zenburn-compatible + hi Error guifg=#e37170 guibg=#3d3535 gui=none +endif + +if exists("g:zenburn_alternate_Include") + " original setting + hi Include guifg=#ffcfaf gui=bold +else + " new, less contrasted one + hi Include guifg=#dfaf8f gui=bold +endif + +if exists("g:zenburn_color_also_Ignore") + " color the Ignore groups + " note: if you get strange coloring for your files, turn this off (unlet) + hi Ignore guifg=#545a4f +endif + +" TODO check for more obscure syntax groups that they're ok diff --git a/.vim/colors/zmrok.vim b/.vim/colors/zmrok.vim new file mode 100644 index 0000000..122b051 --- /dev/null +++ b/.vim/colors/zmrok.vim @@ -0,0 +1,59 @@ +" Maintainer: Krzysztof Goj +" Last Change: 27th March 2009 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="zmrok" + +" general colors +hi Normal guifg=#F8F8F8 guibg=#141414 +hi Cursor guifg=Black guibg=Green gui=none +hi LineNr guifg=#777777 guibg=Black +hi NonText guifg=#808080 guibg=#202020 + +hi StatusLine guifg=#F8F8F8 guibg=#202020 gui=bold +hi StatusLineNC guifg=#777777 guibg=#202020 gui=none +hi VertSplit guifg=#202020 guibg=#202020 gui=none + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#0d0d0d + hi CursorColumn guibg=#0d0d0d + hi MatchParen guifg=Black guibg=#FFCC20 gui=bold + + hi Pmenu guifg=#141414 guibg=#CDA869 + hi PmenuSel guifg=#F8F8F8 guibg=#9B703F + hi PmenuSbar guibg=#DAEFA3 + hi PmenuThumb guifg=#8F9D6A +endif + +"Syntax hilighting + +hi Comment guifg=#888888 +hi Error guifg=red guibg=#141414 +hi Todo guifg=red guibg=#141414 gui=bold + +hi Constant guifg=#CF593C +hi Exception guifg=#CF593C +hi Operator guifg=#DFCC77 + +hi Special guifg=orange +hi SpecialChar guifg=orange +hi String guifg=#D9FF77 +hi Character guifg=#FFCE43 +hi Number guifg=#FACE43 + +hi Statement guifg=#A56A30 gui=bold +hi Keyword guifg=#A56A30 gui=bold +hi Label guifg=#A56A30 gui=bold + +hi Identifier guifg=#C7CA87 gui=none +hi Type guifg=#C7CA87 gui=none +hi Function guifg=#C7CA87 gui=none +hi StorageClass guifg=#C7CA87 gui=none + +hi PreProc guifg=khaki4 diff --git a/.vim/doc/Align.txt b/.vim/doc/Align.txt new file mode 100644 index 0000000..8c8c716 --- /dev/null +++ b/.vim/doc/Align.txt @@ -0,0 +1,1602 @@ +*align.txt* The Alignment Tool Jan 07, 2013 + +Author: Charles E. Campbell + (remove NOSPAM from Campbell's email first) +Copyright: (c) 2004-2012 by Charles E. Campbell *Align-copyright* + The VIM LICENSE applies to Align.vim, AlignMaps.vim, and Align.txt + (see |copyright|) except use "Align and AlignMaps" instead of "Vim" + NO WARRANTY, EXPRESS OR IMPLIED. USE AT-YOUR-OWN-RISK. + +============================================================================== +1. Contents *align* *align-contents* {{{1 + + 1. Contents.................: |align-contents| + 2. Alignment Manual.........: |align-manual| + 3. Alignment Usage..........: |align-usage| + Alignment Concepts.......: |align-concepts| + Alignment Commands.......: |align-commands| + Alignment Control........: |align-control| + Separators.............: |alignctrl-separators| + Initial Whitespace.....: |alignctrl-w| |alignctrl-W| |alignctrl-I| + Justification..........: |alignctrl-l| |alignctrl-r| |alignctrl-c| + Justification Control..: |alignctrl--| |alignctrl-+| |alignctrl-:| + Cyclic/Sequential......: |alignctrl-=| |alignctrl-C| + Separator Justification: |alignctrl-<| |alignctrl->| |alignctrl-|| + Line (de)Selection.....: |alignctrl-g| |alignctrl-v| + Temporary Settings.....: |alignctrl-m| + Padding................: |alignctrl-p| |alignctrl-P| + Current Options........: |alignctrl-settings| |alignctrl-| + Alignment Control Init...: |alignctrl-init| + Alignment................: |align-align| + 4. Alignment Maps...........: |align-maps| + \a,....................: |alignmap-a,| + \a?....................: |alignmap-a?| + \a<....................: |alignmap-a<| + \abox..................: |alignmap-abox| + \acom..................: |alignmap-acom| + \anum..................: |alignmap-anum| + \ascom.................: |alignmap-ascom| + \adec..................: |alignmap-adec| + \adef..................: |alignmap-adef| + \afnc..................: |alignmap-afnc| + \adcom.................: |alignmap-adcom| + \aocom.................: |alignmap-aocom| + \tsp...................: |alignmap-tsp| + \tsq...................: |alignmap-tsq| + \tt....................: |alignmap-tt| + \t=....................: |alignmap-t=| + \T=....................: |alignmap-T=| + \Htd...................: |alignmap-Htd| + 5. Alignment Tool History...: |align-history| + +============================================================================== +2. Align Manual *alignman* *alignmanual* *align-manual* {{{1 + + Align comes as a vimball; simply typing > + vim Align.vba.gz + :so % +< should put its components where they belong. The components are: > + .vim/plugin/AlignPlugin.vim + .vim/plugin/AlignMapsPlugin.vim + .vim/plugin/cecutil.vim + .vim/autoload/Align.vim + .vim/autoload/AlignMaps.vim + .vim/doc/Align.txt +< To see a user's guide, see |align-userguide| + To see examples, see |alignctrl| and |alignmaps| +> +/=============+=========+=====================================================\ +|| \ Default/ || +|| Commands \ Value/ Explanation || +|| | | || +++==============+====+=======================================================++ +|| AlignCtrl | | =Clrc-+:pPIWw [..list-of-separator-patterns..] || +|| | +-------------------------------------------------------+| +|| | | may be called as a command or as a function: || +|| | | :AlignCtrl =lp0P0W & \\ || +|| | | :call Align#AlignCtrl('=lp0P0W','&','\\') || +|| | | || +|| | +-------------------------------------------------------++ +|| 1st arg | = | = all separator patterns are equivalent and are || +|| | | simultaneously active. Patterns are |regexp|. || +|| | | C cycle through separator patterns. Patterns are || +|| | | |regexp| and are active sequentially. || +|| | | || +|| | < | < left justify separator Separators are justified, || +|| | | > right justify separator too. Separator styles || +|| | | | center separator are cyclic. || +|| | | || +|| | l | l left justify Justification styles are always || +|| | | r right justify cyclic (ie. lrc would mean left j., || +|| | | c center then right j., then center, repeat. || +|| | | - skip this separator || +|| | | + re-use last justification method || +|| | | : treat rest of text as a field || +|| | | * use AlignSkip() function (to skip or not) || +|| | | || +|| | p1 | p### pad separator on left by # blanks || +|| | P1 | P### pad separator on right by # blanks || +|| | | || +|| | I | I preserve and apply first line's leading white || +|| | | space to all lines || +|| | | W preserve leading white space on every line, even || +|| | | if it varies from line to line || +|| | | w don't preserve leading white space || +|| | | || +|| | | g second argument is a selection pattern -- only || +|| | | align on lines that have a match (inspired by || +|| | | :g/selection pattern/command) || +|| | | v second argument is a selection pattern -- only || +|| | | align on lines that _don't_ have a match (inspired || +|| | | by :v/selection pattern/command) || +|| | | || +|| | | m Map support: AlignCtrl will immediately do an || +|| | | AlignPush() and the next call to Align() will do || +|| | | an AlignPop at the end. This feature allows maps || +|| | | to preserve user settings. || +|| | | || +|| | | default || +|| | | AlignCtrl default || +|| | | will clear the AlignCtrl || +|| | | stack & set the default: AlignCtrl "Ilp1P1=" '=' || +|| | | || +|| +----+-------------------------------------------------------+| +|| More args | More arguments are interpreted as describing separators || +|| +------------------------------------------------------------+| +|| No args | AlignCtrl will display its current settings || +||==============+============================================================+| +||[range]Align | [..list-of-separators..] || +||[range]Align! | [AlignCtrl settings] [..list-of-separators..] || +|| +------------------------------------------------------------+| +|| | Aligns text over the given range. The range may be || +|| | selected via visual mode (v, V, or ctrl-v) or via || +|| | the command line. The Align operation may be invoked || +|| | as a command or as a function; as a function, the first || +|| | argument is 0=separators only, 1=AlignCtrl option string || +|| | followed by a list of separators. || +|| | :[range]Align || +|| | :[range]Align [list of separators] || +|| | :[range]call Align#Align(0) || +|| | :[range]call Align#Align(0,"list","of","separators",...) || +\=============================================================================/ + +============================================================================== +3. Alignment Usage *alignusage* *align-usage* *align-userguide* {{{1 + + +ALIGNMENT CONCEPTS *align-concept* *align-concepts* *alignctrl* {{{1 + + The typical text to be aligned is considered to be: + + * composed of two or more fields + * separated by one or more separator pattern(s): + * two or more lines +> + ws field ws separator ws field ws separator ... + ws field ws separator ws field ws separator ... +< + where "ws" stands for "white space" such as blanks and/or tabs, + and "fields" are arbitrary text. For example, consider > + + x= y= z= 3; + xx= yy= zz= 4; + zzz= yyy= zzz= 5; + a= b= c= 3; +< + Assume that it is desired to line up all the "=" signs; these, + then, are the separators. The fields are composed of all the + alphameric text. Assuming they lie on lines 1-4, one may align + those "=" signs with: > + :AlignCtrl l + :1,4Align = +< The result is: > + x = y = z = 3; + xx = yy = zz = 4; + zzz = yyy = zzz = 5; + a = b = c = 3; + +< Note how each "=" sign is surrounded by a single space; the + default padding is p1P1 (p1 means one space before the separator, + and P1 means one space after it). If you wish to change the + padding, say, to no padding, use (see |alignctrl-p|) > + + :AlignCtrl lp0P0 + +< Next, note how each field is left justified; that's what the "l" + in the AlignCtrl parameters (a small letter "ell") does. If + right-justification of the fields had been desired, an "r" + could've been used: > + :AlignCtrl r +< yielding > + x = y = z = 3; + xx = yy = zz = 4; + zzz = yyy = zzz = 5; + a = b = c = 3; +< There are many more options available for field justification: see + |alignctrl-c| and |alignctrl--|. + + Separators, although commonly only one character long, are actually + specified by regular expressions (see |regexp|), and one may left + justify, right justify, or center them, too (see |alignctrl-<|). + + Assume that for some reason a left-right-left-right-... justification + sequence was desired. This wish is simply achieved with > + :AlignCtrl lr + :1,4Align = +< because the justification commands are considered to be "cyclic"; ie. + lr is the same as lrlrlrlrlrlrlr... + + There's a lot more discussed under |alignctrl|; hopefully the examples + there will help, too. + + +ALIGNMENT COMMANDS *align-command* *align-commands* {{{2 + + The script includes two primary commands and two + minor commands: + + AlignCtrl : this command/function sets up alignment options + which persist until changed for later Align calls. + It controls such things as: how to specify field + separators, initial white space, padding about + separators, left/right/center justification, etc. > + ex. AlignCtrl wp0P1 + Interpretation: during subsequent alignment + operations, preserve each line's initial + whitespace. Use no padding before separators + but provide one padding space after separators. +< + Align : this command/function operates on the range given it to + align text based on one or more separator patterns. The + patterns may be provided via AlignCtrl or via Align + itself. > + + ex. :%Align , + Interpretation: align all commas over the entire + file. +< The :Align! format permits alignment control commands + to precede the alignment patterns. > + ex. :%Align! p2P2 = +< This will align all "=" in the file with two padding + spaces on both sides of each "=" sign. + + NOTE ON USING PATTERNS WITH ALIGN:~ + Align and AlignCtrl use || to obtain their + input patterns and they use an internal function to + split arguments at whitespace unless inside "..."s. + One may escape characters inside a double-quote string + by preceding such characters with a backslash. + + AlignPush : this command/function pushes the current AlignCtrl + state onto an internal stack. > + ex. :AlignPush + Interpretation: save the current AlignCtrl + settings, whatever they may be. They'll + also remain as the current settings until + AlignCtrl is used to change them. +< + AlignPop : this command/function pops the current AlignCtrl + state from an internal stack. > + ex. :AlignPop + Interpretation: presumably AlignPush was + used (at least once) previously; this command + restores the AlignCtrl settings when AlignPush + was last used. +< Also see |alignctrl-m| for a way to automatically do + an AlignPop after an Align (primarily this is for maps). + +ALIGNMENT OPTIONS *align-option* *align-options* *align-xstrlen* {{{2 + *align-utf8* *align-utf* *align-codepoint* *align-strlen* *align-multibyte* + + For those of you who are using 2-byte (or more) characters such as are + available with utf-8, Align now provides a special option which you + may choose based upon your needs: + + Use Built-in strlen() ~ +> + let g:Align_xstrlen= 0 + +< This is the fastest method, but it doesn't handle multibyte characters + well. It is the default for: + + enc=latin1 + vim compiled without multi-byte support + $LANG is en_US.UTF-8 (assuming USA english) + + Number of codepoints (Latin a + combining circumflex are two codepoints)~ +> + let g:Align_xstrlen= 1 (default) +< + Number of spacing codepoints (Latin a + combining circumflex is one~ + spacing codepoint; a hard tab is one; wide and narrow CJK are one~ + each; etc.)~ +> + let g:Align_xstrlen= 2 +< + Virtual length (counting, for instance, tabs as anything between 1 and~ + 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when~ + immediately preceded by lam, one otherwise, etc.)~ +> + let g:Align_xstrlen= 3 +< + User may specify a function to compute the string length~ +> + let g:Align_xstrlen= "strlen" +< This method will cause Align to call upon the named function returning + string length. it should resemble the |strlen()| function, taking one + argument (the string) for input and returning the string length. + + By putting one of these settings into your <.vimrc>, Align will use an + internal (interpreted) function to determine a string's length instead + of Vim's built-in |strlen()| function. Since the function is + interpreted, Align will run a bit slower but will handle such strings + correctly. The last settings (g:Align_xstrlen= 3 and + g:Align_xstrlen="userfuncname") probably will run the slowest but be + the most accurate. (thanks to Tony Mechelynck for these) + + +ALIGNMENT CONTROL *:AlignCtrl* *align-control* {{{2 + + This command doesn't do the alignment operation itself; instead, it + controls subsequent alignment operation(s). + + The first argument to AlignCtrl is a string which may contain one or + more alignment control settings. Most of the settings are specified + by single letters; the exceptions are the p# and P# commands which + interpret a digit following the p or P as specifying padding about the + separator. + + The typical text line is considered to be composed of two or more + fields separated by one or more separator pattern(s): > + + ws field ws separator ws field ws separator ... +< + where "ws" stands for "white space" such as blanks and/or tabs. + + + SEPARATORS *alignctrl-separators* {{{3 + + As a result, separators may not have white space (tabs or blanks) on + their outsides (ie. ": :" is fine as a separator, but " :: " is + not). Usually such separators are not needed, although a map has been + provided which works around this limitation and aligns on whitespace + (see |alignmap-tsp|). + + However, if you really need to have separators with leading or + trailing whitespace, consider handling them by performing a substitute + first (ie. s/ :: /@/g), do the alignment on the temporary pattern + (ie. @), and then perform a substitute to revert the separators back + to their desired condition (ie. s/@/ :: /g). + + The Align#Align() function (which is invoked by the :Align command) + will first convert tabs over the region into spaces and then apply + alignment control. Except for initial white space, white space + surrounding the fields is ignored. One has three options just for + handling initial white space: + + + --- *alignctrl-w* + wWI INITIAL WHITE SPACE *alignctrl-W* {{{3 + --- *alignctrl-I* + w : ignore all selected lines' initial white space + W : retain all selected lines' initial white space + I : retain only the first line's initial white space and + re-use it for subsequent lines + + Example: Leading white space options: > + +---------------+-------------------+-----------------+ + |AlignCtrl w= :=| AlignCtrl W= := | AlignCtrl I= := | + +------------------+---------------+-------------------+-----------------+ + | Original | w option | W option | I option | + +------------------+---------------+-------------------+-----------------+ + | a := baaa |a := baaa | a := baaa | a := baaa | + | caaaa := deeee |caaaa := deeee | caaaa := deeee | caaaa := deeee| + | ee := f |ee := f | ee := f | ee := f | + +------------------+---------------+-------------------+-----------------+ +< + The original has at least one leading white space on every line. + Using Align with w eliminated each line's leading white space. + Using Align with W preserved each line's leading white space. + Using Align with I applied the first line's leading white space + (three spaces) to each line. + + + ------ *alignctrl-l* + lrc-+: FIELD JUSTIFICATION *alignctrl-r* {{{3 + ------ *alignctrl-c* + + With "lrc", the fields will be left-justified, right-justified, or + centered as indicated by the justification specifiers (lrc). The + "lrc" options are re-used by cycling through them as needed: + + l means llllll.... + r means rrrrrr.... + lr means lrlrlr.... + llr means llrllr.... + + Example: Justification options: Align = > + +------------+-------------------+-------------------+-------------------+ + | Original | AlignCtrl l | AlignCtrl r | AlignCtrl lr | + +------------+-------------------+-------------------+-------------------+ + | a=bb=ccc=1 |a = bb = ccc = 1| a = bb = ccc = 1|a = bb = ccc = 1| + | ccc=a=bb=2 |ccc = a = bb = 2|ccc = a = bb = 2|ccc = a = bb = 2| + | dd=eee=f=3 |dd = eee = f = 3| dd = eee = f = 3|dd = eee = f = 3| + +------------+-------------------+-------------------+-------------------+ + | Alignment |l l l l| r r r r|l r l r| + +------------+-------------------+-------------------+-------------------+ +< + AlignCtrl l : The = separator is repeatedly re-used, as the + cycle only consists of one character (the "l"). + Every time left-justification is used for fields. + AlignCtrl r : The = separator is repeatedly re-used, as the + cycle only consists of one character (the "r"). + Every time right-justification is used for fields + AlignCtrl lr: Again, the "=" separator is repeatedly re-used, + but the fields are justified alternately between + left and right. + + Even more separator control is available! With "-+:": + + - : skip treating the separator as a separator. *alignctrl--* + + : repeat use of the last "lrc" justification *alignctrl-+* + : : treat the rest of the line as a single field *alignctrl-:* + * : like -, but only if g:AlignSkip() returns true *alignctrl-star* + (see |alignctrl-alignskip|) + + Example: More justification options: Align = > + +------------+---------------+--------------------+---------------+ + | Original | AlignCtrl -l | AlignCtrl rl+ | AlignCtrl l: | + +------------+---------------+--------------------+---------------+ + | a=bb=ccc=1 |a=bb = ccc=1 | a = bb = ccc = 1 |a = bb=ccc=1 | + | ccc=a=bb=2 |ccc=a = bb=2 |ccc = a = bb = 2 |ccc = a=bb=2 | + | dd=eee=f=3 |dd=eee = f=3 | dd = eee = f = 3 |dd = eee=f=3 | + +------------+---------------+--------------------+---------------+ + | Alignment |l l | r l l l |l l | + +------------+---------------+--------------------+---------------+ +< + In the first example in "More justification options": + + The first "=" separator is skipped by the "-" specification, + and so "a=bb", "ccc=a", and "dd=eee" are considered as single fields. + + The next "=" separator has its (left side) field left-justified. + Due to the cyclic nature of separator patterns, the "-l" + specification is equivalent to "-l-l-l ...". + + Hence the next specification is a "skip", so "ccc=1", etc are fields. + + In the second example in "More justification options": + + The first field is right-justified, the second field is left + justified, and all remaining fields repeat the last justification + command (ie. they are left justified, too). + + Hence rl+ is equivalent to rlllllllll ... + (whereas plain rl is equivalent to rlrlrlrlrl ... ). + + In the third example in "More justification options": + + The text following the first separator is treated as a single field. + + Thus using the - and : operators one can apply justification to a + single separator. + + ex. 1st separator only: AlignCtrl l: + 2nd separator only: AlignCtrl -l: + 3rd separator only: AlignCtrl --l: + etc. + + *g:AlignSkip* + Align Skip Control *alignctrl-alignskip* + + The separator control '*' permits a function to decide whether or + not a character which matches the current separator pattern should + instead be skipped. + + 1. Define a function; example: > + + fun! AlignSkipString(lineno,indx) + let synid = synID(a:lineno,a:indx+1,1) + let synname = synIDattr(synIDtrans(synid),"name") + let ret= (synname == "String")? 1 : 0 + return ret + endfun +< + Input: lineno: current line number + indx : index to character; leftmost character + in the line has an indx of 0 (like |strpart()|) + Output: 0 : if separator is ok + 1 : skip separator like it was a '-' + + 2. Set up |g:AlignSkip| as a function reference (see |Funcref|): > + + let g:AlignSkip= function("AlignSkipString") +< + 3. Use * as a separator control where a separator potentially should + be skipped over. + + + --- *alignctrl-=* + =C CYCLIC VS ALL-ACTIVE SEPARATORS *alignctrl-C* {{{3 + --- + + The separators themselves may be considered as equivalent and + simultaneously active ("=") or sequentially cycled through ("C"). + Separators are regular expressions (|regexp|) and are specified as the + second, third, etc arguments. When the separator patterns are + equivalent and simultaneously active, there will be one pattern + constructed: > + + AlignCtrl ... pat1 pat2 pat3 +< becomes > + \(pat1\|pat2\|pat3\) +< (ie. pat1 -or- pat2 -or- pat3; see |/bar|) + + Each separator pattern is thus equivalent and simultaneously active. + The cyclic separator AlignCtrl option stores a list of patterns, only + one of which is active for each field at a time. + + Example: Equivalent/Simultaneously-Active vs Cyclic Separators > + +-------------+------------------+---------------------+----------------------+ + | Original | AlignCtrl = = + -| AlignCtrl = = | AlignCtrl C = + - | + +-------------+------------------+---------------------+----------------------+ + |a = b + c - d|a = b + c - d |a = b + c - d |a = b + c - d | + |x = y = z + 2|x = y = z + 2 |x = y = z + 2|x = y = z + 2 | + |w = s - t = 0|w = s - t = 0 |w = s - t = 0 |w = s - t = 0 | + +-------------+------------------+---------------------+----------------------+ +< + The original is initially aligned with all operators (=+-) being + considered as equivalent and simultaneously active field separators. + Thus the "AlignCtrl = = + -" example shows no change. + + The second example only accepts the '=' as a field separator; + consequently "b + c - d" is now a single field. + + The third example illustrates cyclic field separators and is analyzed + in the following illustration: > + + field1 separator field2 separator field3 separator field4 + a = b + c - d + x = y = z + 2 + w = s - t = 0 +< + The word "cyclic" is used because the patterns form a cycle of use; in + the above case, its = + - = + - = + - = + -... + + Example: Cyclic separators > + Label : this is some text discussing ":"s | ex. abc:def:ghi + Label : this is some text with a ":" in it | ex. abc:def +< + apply AlignCtrl lWC : | | + (select lines)Align > + Label : this is some text discussing ":"s | ex. abc:def:ghi + Label : this is some text with a ":" in it | ex. abcd:efg +< + In the current example, + : is the first separator So the first ":"s are aligned + | is the second separator but subsequent ":"s are not. + | is the third separator The "|"s are aligned, too. + : is the fourth separator Since there aren't two bars, + | is the fifth separator the subsequent potential cycles + | is the sixth separator don't appear. + ... + + In this case it would probably have been a better idea to have used > + AlignCtrl WCl: : | +< as that alignment control would guarantee that no more cycling + would be used after the vertical bar. + + Example: Cyclic separators + + Original: > + a| b&c | (d|e) & f-g-h + aa| bb&cc | (dd|ee) & ff-gg-hh + aaa| bbb&ccc | (ddd|eee) & fff-ggg-hhh +< + AlignCtrl C | | & - > + a | b&c | (d|e) & f - g-h + aa | bb&cc | (dd|ee) & ff - gg-hh + aaa | bbb&ccc | (ddd|eee) & fff - ggg-hhh +< + In this example, + the first and second separators are "|", + the third separator is "&", and + the fourth separator is "-", + + (cycling) + the fifth and sixth separators are "|", + the seventh separator is "&", and + the eighth separator is "-", etc. + + Thus the first "&"s are (not yet) separators, and hence are treated as + part of the field. Ignoring white space for the moment, the AlignCtrl + shown here means that Align will work with > + + field | field | field & field - field | field | field & field - ... +< + + --- *alignctrl-<* + <>| SEPARATOR JUSTIFICATION *alignctrl->* {{{3 + --- *alignctrl-|* + + Separators may be of differing lengths as shown in the example below. + Hence they too may be justified left, right, or centered. + Furthermore, separator justification specifications are cyclic: + + < means <<<<<... justify separator(s) to the left + > means >>>>>... justify separator(s) to the right + | means |||||... center separator(s) + + Example: Separator Justification: Align -\+ > + +-----------------+ + | Original | + +-----------------+ + | a - bbb - c | + | aa -- bb -- ccc | + | aaa --- b --- cc| + +---------------------+-+-----------------+-+---------------------+ + | AlignCtrl < | AlignCtrl > | AlignCtrl | | + +---------------------+---------------------+---------------------+ + | a - bbb - c | a - bbb - c | a - bbb - c | + | aa -- bb -- ccc | aa -- bb -- ccc | aa -- bb -- ccc | + | aaa --- b --- cc | aaa --- b --- cc | aaa --- b --- cc | + +---------------------+---------------------+---------------------+ +< + + --- *alignctrl-g* + gv SELECTIVE APPLICATION *alignctrl-v* {{{3 + --- + + + These two options provide a way to select (g) or to deselect (v) lines + based on a pattern. Ideally :g/pat/Align would work; unfortunately + it results in Align#Align() being called on each line satisfying the + pattern separately. > + + AlignCtrl g pattern +< + Align will only consider those lines which have the given pattern. > + + AlignCtrl v pattern +< + Align will only consider those lines without the given pattern. As an + example of use, consider the following example: > + + :AlignCtrl v ^\s*/\* + Original :Align = :Align = + +----------------+------------------+----------------+ + |one= 2; |one = 2; |one = 2; | + |three= 4; |three = 4; |three = 4; | + |/* skip=this */ |/* skip = this */ |/* skip=this */ | + |five= 6; |five = 6; |five = 6; | + +----------------+------------------+----------------+ +< + The first "Align =" aligned with all "="s, including the one in the + "/* skip=this */" comment. + + The second "Align =" had a AlignCtrl v-pattern which caused it to skip + (ignore) the "/* skip=this */" line when aligning. + + To remove AlignCtrl's g and v patterns, use (as appropriate) > + + AlignCtrl g + AlignCtrl v +< + To see what g/v patterns are currently active, just use the reporting + capability of an unadorned call to AlignCtrl: > + + AlignCtrl +< + + --- + m MAP SUPPORT *alignctrl-m* {{{3 + --- + + This option primarily supports the development of maps. The + Align#AlignCtrl() call will first do an Align#AlignPush() (ie. retain + current alignment control settings). The next Align#Align() will, in + addition to its alignment job, finish up with an Align#AlignPop(). + Thus the Align#AlignCtrl settings that follow the "m" are only + temporarily in effect for just the next Align#Align(). + + + --- + p### *alignctrl-p* + P### PADDING *alignctrl-P* {{{3 + --- + + These two options control pre-padding and post-padding with blanks + about the separator. One may pad separators with zero to nine spaces; + the padding number(s) is/are treated as a cyclic parameter. Thus one + may specify padding separately for each field or re-use a padding + pattern. > + + Example: AlignCtrl p102P0 + +---------+----------------------------------+ + | Original| a=b=c=d=e=f=g=h=1 | + | Align = | a =b=c =d =e=f =g =h=1 | + +---------+----------------------------------+ + | prepad | 1 0 2 1 0 2 1 0 | + +---------+----------------------------------+ +< + This example will cause Align to: + + pre-pad the first "=" with a single blank, + pre-pad the second "=" with no blanks, + pre-pad the third "=" with two blanks, + pre-pad the fourth "=" with a single blank, + pre-pad the fifth "=" with no blanks, + pre-pad the sixth "=" with two blanks, + etc. + + --------------- *alignctrl-settings* + No option given DISPLAY STATUS *alignctrl-* {{{3 + --------------- *alignctrl-no-option* + + AlignCtrl, when called with no arguments, will display the current + alignment control settings. A typical display is shown below: > + + AlignCtrl<=> qty=1 AlignStyle Padding<1|1> + Pat1<\(=\)> +< + Interpreting, this means that the separator patterns are all + equivalent; in this case, there's only one (qty=1). Fields will be + padded on the right with spaces (left justification), and separators + will be padded on each side with a single space. + + To change one of these items, see: + + AlignCtrl......|alignctrl| + qty............|align-concept| + AlignStyle.....|alignctrl--| |alignctrl-+| |alignctrl-:| |alignctrl-c| + Padding........|alignctrl-p| |alignctrl-P| + + One may get a string which can be fed back into AlignCtrl: > + + :let alignctrl= Align#AlignCtrl() +< + This form will put a string describing the current AlignCtrl options, + except for the "g" and "v" patterns, into a variable. The + Align#AlignCtrl() function will still echo its settings, however. One + can feed any non-supported "option" to AlignCtrl() to prevent this, + however: > + + :let alignctrl= Align#AlignCtrl("d") + + +ALIGNMENT CONTROL INITIALIZATION *alignctrl-init* *alignctrl-initialization* {{{2 + + If you'd like to have your own default AlignCtrl, you'll be wanting to + put it in a file such as: > + + $HOME/.vim/after/plugin/AlignPlugin.vim + +< Anything in that file would be sourced at startup, but after your + .vimrc and after $HOME/.vim/plugin/AlignPlugin.vim; hence, :Align + and :AlignCtrl will then be defined. + + +ALIGNMENT *:Align* *align-align* {{{2 + + Once the alignment control has been determined, the user specifies a + range of lines for the Align command/function to do its thing. + Alignment is often done on a line-range basis, but one may also + restrict alignment to a visual block using ctrl-v. For any visual + mode, one types the colon (:) and then "Align". One may, of course, + specify a range of lines: > + + :[range]Align [list-of-separators] +< + where the |:range| is the usual Vim-powered set of possibilities; the + list of separators is the same as the AlignCtrl capability. There is + only one list of separators, but either AlignCtrl or Align can be used + to specify that list. + + An alternative form of the Align command can handle both alignment + control and the separator list: > + + :[range]Align! [alignment-control-string] [list-of-separators] +< + The alignment control string will be applied only for this particular + application of Align (it uses |alignctrl-m|). The "g pattern" and + "v pattern" alignment controls (see |alignctrl-g| and |alignctrl-v|) + are also available via this form of the Align command. + + Align makes two passes over the text to be aligned. The first pass + determines how many fields there are and determines the maximum sizes + of each field; these sizes are then stored in a vector. The second + pass pads the field (left/right/centered as specified) to bring its + length up to the maximum size of the field. Then the separator and + its AlignCtrl-specified padding is appended. + + Pseudo-Code:~ + During pass 1 + | For all fields in the current line + || Determine current separator + || Examine field specified by current separator + || Determine length of field and save if largest thus far + Initialize newline based on initial whitespace option (wWI) + During pass 2 + | For all fields in current line + || Determine current separator + || Extract field specified by current separator + || Prepend/append padding as specified by AlignCtrl + || (right/left/center)-justify to fit field into max-size field + || Append separator with AlignCtrl-specified separator padding + || Delete current line, install newly aligned line + + The g and v AlignCtrl patterns cause the passes not to consider lines + for alignment, either by requiring that the g-pattern be present or + that the v-pattern not be present. + + The whitespace on either side of a separator is ignored. + + +============================================================================== +4. Alignment Maps *alignmaps* *align-maps* {{{1 + + There are a number of maps provided in the AlignMaps plugin which + depend upon the Align plugin. The maps provided by AlignMaps + typically start with a leading "t" (for the older "textab" program + which Align supercedes) or with an "a" for the more complicated + alignment maps. + + The AlignMaps plugin, although provided in the vimball containing + Align.vim, is really a separate plugin (Align doesn't depend on + AlignMaps). Consequently, if you'd rather not have AlignMaps's + mappings, just use the *:AlignMapsClean* command to remove its + components. The :AlignMapsClean command does not remove any maps + generated by AlignMaps in the current instance of vim. + + The maps are shown below with a leading backslash (\). However, the + actual maps use the construct (see |mapleader|), so the maps' + leading kick-off character is easily customized. + + Furthermore, all the maps specified by the AlignMaps plugin use the + construct (see ||and |usr_41.txt|). Hence, if one wishes + to override the mapping(s) entirely, one may do that, too. As an + example: > + map ACOM AM_acom +< would have \ACOM do + what \acom previously did (assuming that the mapleader has been left + at its default value of a backslash). + + \a, : useful for breaking up comma-separated + declarations prior to \adec |alignmap-a,| + \a( : aligns ( and , (useful for prototypes) *alignmap-a(* + \a? : aligns (...)? ...:... expressions on ? and : |alignmap-a?| + \a< : aligns << and >> for c++ |alignmap-a<| + \a= : aligns := assignments |alignmap-a=| + \abox : draw a C-style comment box around text lines |alignmap-abox| + \acom : useful for aligning comments |alignmap-acom| + \adcom: useful for aligning comments in declarations |alignmap-adcom| + \anum : useful for aligning numbers |alignmap-anum| + NOTE: For the visual-mode use of \anum, is needed! + See http://www.drchip.org/astronaut/vim/index.html#VIS + \aenum: align a European-style number |alignmap-anum| + \aunum: align a USA-style number |alignmap-anum| + \adec : useful for aligning declarations |alignmap-adec| + \adef : useful for aligning definitions |alignmap-adef| + \afnc : useful for aligning ansi-c style functions' + argument lists |alignmap-afnc| + \adcom: a variant of \acom, restricted to comment |alignmap-adcom| + containing lines only, but also only for + those which don't begin with a comment. + Good for certain declaration styles. + \aocom: a variant of \acom, restricted to comment |alignmap-aocom| + containing lines only + \tab : align a table based on tabs *alignmap-tab* + (converts to spaces) + \tml : useful for aligning the trailing backslashes |alignmap-tml| + used to continue lines (shell programming, etc) + \tsp : use Align to make a table separated by blanks |alignmap-tsp| + (left justified) + \ts, : like \t, but swaps whitespace on the right of *alignmap-ts,* + the commas to their left + \ts: : like \t: but swaps whitespace on the right of *alignmap-ts:* + the colons to their left + \ts< : like \t< but swaps whitespace on the right of *alignmap-ts<* + the less-than signs to their left + \ts= : like \t= but swaps whitespace on the right of *alignmap-ts=* + the equals signs to their left + \Tsp : use Align to make a table separated by blanks |alignmap-Tsp| + (right justified) + \tsq : use Align to make a table separated by blanks |alignmap-tsq| + (left justified) -- "strings" are not split up + \tt : useful for aligning LaTeX tabular tables |alignmap-tt| + \Htd : tabularizes html tables: |alignmap-Htd| + ...field... ...field... + + *alignmap-t|* *alignmap-t#* *alignmap-t,* *alignmap-t:* + *alignmap-t;* *alignmap-t<* *alignmap-t?* *alignmap-t~* + *alignmap-m=* + \tx : make a left-justified alignment on + character "x" where "x" is: ,:<=@|# |alignmap-t=| + \Tx : make a right-justified alignment on + character "x" where "x" is: ,:<=@# |alignmap-T=| + \m= : like \t= but aligns with %... style comments + + The leading backslash is actually (see |mapleader| to learn + how to customize the leader to be whatever you like). These maps use + the package and are defined in the file. + Although the maps use AlignCtrl options, they typically use the "m" + option which pushes the options (AlignPush). The associated Align + call which follows will then AlignPop the user's original options + back. + + ALIGNMENT MAP USE WITH MARK AND MOVE~ + In the examples below, one may select the text with a "ma" at the + first line, move to the last line, then execute the map. + + ALIGNMENT MAP USE WITH VISUAL MODE~ + Alternatively, one may select the text with the "V" visual mode + command. + + If you want to use visual-block mode (ctrl-v), I suggest using + an AlignMap with the vis.vim plugin, available at either + + stable: http://vim.sourceforge.net/scripts/script.php?script_id=1195 + devel : http://www.drchip.org/astronaut/vim/index.html#VIS + + Use it with commands such as > + + ctrl-v (move) + :B norm \alignmap_sequence +< + + ALIGNMENT MAP USE WITH MENUS~ + One may use the mark-and-move style (ma, move, use the menu) or + the visual mode style (use the V visual mode, move, then select + the alignment map with menu selection). The alignment map menu + items are under DrChip.AlignMaps . + + One may even change the top level menu name to whatever is wished; by + default, its > + let g:DrChipTopLvlMenu= "DrChip." +< If you set the variable to the empty string (""), then no menu items + will be produced. Of course, one must have a vim with +menu, the gui + must be running, and |'go'| must have the menu bar suboption (ie. m + must be included). + + COMPLEX ALIGNMENT MAP METHOD~ + For those complex alignment maps which do alignment on constructs + (e.g. \acom, \adec, etc), a series of substitutes is used to insert + "@" symbols in appropriate locations. Align#Align() is then used to + do alignment directly on "@"s; then it is followed by further + substitutes to do clean-up. However, the maps \WS and \WE, used by + every map supported by AlignMaps, protect any original embedded "@" + symbols by first converting them to characters, doing the + requested job, and then converting them back. > + + \WS calls AlignMaps#WrapperStart() + \WE calls AlignMaps#WrapperEnd() +< + + --------------------------- + Alignment Map Examples: \a, *alignmap-a,* {{{3 + --------------------------- + + Original: illustrates comma-separated declaration splitting: > + int a,b,c; + struct ABC_str abc,def; +< + Becomes: > + int a; + int b; + int c; + struct ABC_str abc; + struct ABC_str def; +< + + --------------------------- + Alignment Map Examples: \a? *alignmap-a?* {{{3 + --------------------------- + + Original: illustrates ()?: aligning > + printf("<%s>\n", + (x == ABC)? "abc" : + (x == DEFG)? "defg" : + (x == HIJKL)? "hijkl" : "???"); +< + Becomes: select "(x == ..." lines, then \a? > + printf("<%s>\n", + (x == ABC)? "abc" : + (x == DEFG)? "defg" : + (x == HIJKL)? "hijkl" : "???"); +< + + --------------------------- + Alignment Map Examples: \a< *alignmap-a<* {{{3 + --------------------------- + + Original: illustrating aligning of << and >> > + cin << x; + cin << y; + cout << "this is x=" << x; + cout << "but y=" << y << "is not"; +< + Becomes: select "(x == ..." lines, then \a< > + cin << x; + cin << y; + cout << "this is x=" << x; + cout << "but y=" << y << "is not"; +< + + --------------------------- + Alignment Map Examples: \a= *alignmap-a=* {{{3 + --------------------------- + + Original: illustrates how to align := assignments > + aa:=bb:=cc:=1; + a:=b:=c:=1; + aaa:=bbb:=ccc:=1; +< + Bcomes: select the three assignment lines, then \a:= > + aa := bb := cc := 1; + a := b := c := 1; + aaa := bbb := ccc := 1; +< + + --------------------------- + Alignment Map Examples: \abox *alignmap-abox* {{{3 + --------------------------- + + Original: illustrates how to comment-box some text > + This is some plain text + which will + soon be surrounded by a + comment box. +< + Becomes: Select "This..box." with ctrl-v, press \abox > + /*************************** + * This is some plain text * + * which will * + * soon be surrounded by a * + * comment box. * + ***************************/ +< + + --------------------------- + Alignment Map Examples: \acom *alignmap-acom* {{{3 + --------------------------- + + Original: illustrates aligning C-style comments (works for //, too) > + if(itworks) { /* this */ + then= dothis; /* is a */ + } /* set of three comments */ +< + Becomes: Select the three lines, press \acom > + if(itworks) { /* this */ + then= dothis; /* is a */ + } /* set of three comments */ +< + Also see |alignmap-aocom| + + + --------------------------- + Alignment Map Examples: \anum *alignmap-anum* {{{3 + --------------------------- + + First, note that the behavior of the \anum map depends on the existence + of either the vim variable > + g:alignmaps_usanumber +< or > + g:alignmaps_euronumber +< when AlignMaps is loaded. + + Essentially, "usa" numbers use "."s and "euro" numbers use ","s to + separate the integer from the fractional portion of a number. + "Usa" numbers are default. + + Original: illustrates how to get numbers lined up > + -1.234 .5678 -.901e-4 + 1.234 5.678 9.01e-4 + 12.34 56.78 90.1e-4 + 123.4 567.8 901.e-4 +< + Becomes: Go to first line, ma. Go to last line, press \anum > + -1.234 .5678 -.901e-4 + 1.234 5.678 9.01e-4 + 12.34 56.78 90.1e-4 + 123.4 567.8 901.e-4 +< + Original: > + | -1.234 .5678 -.901e-4 | + | 1.234 5.678 9.01e-4 | + | 12.34 56.78 90.1e-4 | + | 123.4 567.8 901.e-4 | +< + Becomes: Select the numbers with ctrl-v (visual-block mode), > + press \anum + | -1.234 .5678 -.901e-4 | + | 1.234 5.678 9.01e-4 | + | 12.34 56.78 90.1e-4 | + | 123.4 567.8 901.e-4 | +< + Original: > + -1,234 ,5678 -,901e-4 + 1,234 5,678 9,01e-4 + 12,34 56,78 90,1e-4 + 123,4 567,8 901,e-4 +< + Becomes: (assuming g:alignmaps_euronumber exists) + Go to first line, ma. Go to last line, press \anum > + -1,234 ,5678 -,901e-4 + 1,234 5,678 9,01e-4 + 12,34 56,78 90,1e-4 + 123,4 567,8 901,e-4 +< + In addition: + \aenum is provided to support European-style numbers + \aunum is provided to support USA-style numbers + + *g:alignmaps_usanumber* *g:alignmaps_euronumber* + One may get \aenum behavior for \anum by putting > + let g:alignmaps_euronumber= 1 +< or \aunum behavior for \anum by putting > + let g:alignmaps_usanumber= 1 +< in one's <.vimrc>. + + + --------------------------- + Alignment Map Examples: \ascom *alignmap-ascom* {{{3 + --------------------------- + + Original: > + /* A Title */ + int x; /* this is a comment */ + int yzw; /* this is another comment*/ +< + Becomes: Select the three lines, press \ascom > + /* A Title */ + int x; /* this is a comment */ + int yzw; /* this is another comment */ +< + + --------------------------- + Alignment Map Examples: \adec *alignmap-adec* {{{3 + --------------------------- + + Original: illustrates how to clean up C/C++ declarations > + int a; + float b; + double *c=NULL; + char x[5]; + struct abc_str abc; + struct abc_str *pabc; + int a; /* a */ + float b; /* b */ + double *c=NULL; /* b */ + char x[5]; /* x[5] */ + struct abc_str abc; /* abc */ + struct abc_str *pabc; /* pabc */ + static int a; /* a */ + static float b; /* b */ + static double *c=NULL; /* b */ + static char x[5]; /* x[5] */ + static struct abc_str abc; /* abc */ + static struct abc_str *pabc; /* pabc */ +< + Becomes: Select the declarations text, then \adec > + int a; + float b; + double *c = NULL; + char x[5]; + struct abc_str abc; + struct abc_str *pabc; + int a; /* a */ + float b; /* b */ + double *c = NULL; /* b */ + char x[5]; /* x[5] */ + struct abc_str abc; /* abc */ + struct abc_str *pabc; /* pabc */ + static int a; /* a */ + static float b; /* b */ + static double *c = NULL; /* b */ + static char x[5]; /* x[5] */ + static struct abc_str abc; /* abc */ + static struct abc_str *pabc; /* pabc */ +< + + --------------------------- + Alignment Map Examples: \adef *alignmap-adef* {{{3 + --------------------------- + + Original: illustrates how to line up #def'initions > + #define ONE 1 + #define TWO 22 + #define THREE 333 + #define FOUR 4444 +< + Becomes: Select four definition lines, apply \adef > + # define ONE 1 + # define TWO 22 + # define THREE 333 + # define FOUR 4444 +< + + --------------------------- + Alignment Map Examples: \afnc *alignmap-afnc* {{{3 + --------------------------- + + This map is an exception to the usual selection rules. + It uses "]]" to find the function body's leading "{". + Just put the cursor anywhere in the function arguments and + the entire function declaration should be processed. + + Because "]]" looks for that "{" in the first column, the + "original" and "becomes" examples are in the first column, + too. + + Original: illustrates lining up ansi-c style function definitions > + int f( + struct abc_str ***a, /* one */ + long *b, /* two */ + int c) /* three */ + { + } +< + Becomes: put cursor anywhere before the '{', press \afnc > + int f( + struct abc_str ***a, /* one */ + long *b, /* two */ + int c) /* three */ + { + } +< + + --------------------------- + Alignment Map Examples: \adcom *alignmap-adcom* {{{3 + --------------------------- + + Original: illustrates aligning comments that don't begin + lines (optionally after some whitespace). > + struct { + /* this is a test */ + int x; /* of how */ + double y; /* to use adcom */ + }; +< + Becomes: Select the inside lines of the structure, + then press \adcom. The comment-only + line is ignored but the other two comments + get aligned. > + struct { + /* this is a test */ + int x; /* of how */ + double y; /* to use adcom */ + }; +< + + --------------------------- + Alignment Map Examples: \aocom *alignmap-aocom* {{{3 + --------------------------- + + Original: illustrates how to align C-style comments (works for //, too) + but restricted only to aligning with those lines containing + comments. See the difference from \acom (|alignmap-acom|). > + if(itworks) { /* this comment */ + then= dothis; + } /* only appears on two lines */ +< + Becomes: Select the three lines, press \aocom > + if(itworks) { /* this comment */ + then= dothis; + } /* only appears on two lines */ +< + Also see |alignmap-acom| + + + --------------------------- *alignmap-Tsp* + Alignment Map Examples: \tsp *alignmap-tsp* {{{3 + --------------------------- + + Normally Align can't use white spaces for field separators as such + characters are ignored surrounding field separators. The \tsp and + \Tsp maps get around this limitation. + + Original: > + one two three four five + six seven eight nine ten + eleven twelve thirteen fourteen fifteen +< + Becomes: Select the lines, \tsp > + one two three four five + six seven eight nine ten + eleven twelve thirteen fourteen fifteen +< + Becomes: Select the lines, \Tsp > + one two three four five + six seven eight nine ten + eleven twelve thirteen fourteen fifteen +< + + --------------------------- + Alignment Map Examples: \tsq *alignmap-tsq* {{{3 + --------------------------- + + The \tsp map is useful for aligning tables based on white space, + but sometimes one wants double-quoted strings to act as a single + object in spite of embedded spaces. The \tsq map was invented + to support this. (thanks to Leif Wickland) + + Original: > + "one two" three + four "five six" +< + Becomes: Select the lines, \tsq > + "one two" three + four "five six" +< + + --------------------------- + Alignment Map Examples: \tt *alignmap-tt* {{{3 + --------------------------- + + Original: illustrates aligning a LaTex Table > + \begin{tabular}{||c|l|r||} + \hline\hline + one&two&three\\ \hline + four&five&six\\ + seven&eight&nine\\ + \hline\hline + \end{tabular} +< + Becomes: Select the three lines inside the table > + (ie. one..,four..,seven..) and press \tt + \begin{tabular}{||c|l|r||} + \hline\hline + one & two & three \\ \hline + four & five & six \\ + seven & eight & nine \\ + \hline\hline + \end{tabular} +< + + ---------------------------- + Alignment Map Examples: \tml *alignmap-tml* {{{3 + ---------------------------- + + Original: illustrates aligning multi-line continuation marks > + one \ + two three \ + four five six \ + seven \\ \ + eight \nine \ + ten \ +< + Becomes: > + one \ + two three \ + four five six \ + seven \\ \ + eight \nine \ + ten \ +< + + --------------------------- + Alignment Map Examples: \t= *alignmap-t=* {{{3 + --------------------------- + + Original: illustrates left-justified aligning of = > + aa=bb=cc=1;/*one*/ + a=b=c=1;/*two*/ + aaa=bbb=ccc=1;/*three*/ +< + Becomes: Select the three equations, press \t= > + aa = bb = cc = 1; /* one */ + a = b = c = 1; /* two */ + aaa = bbb = ccc = 1; /* three */ +< + + --------------------------- + Alignment Map Examples: \T= *alignmap-T=* {{{3 + --------------------------- + + Original: illustrates right-justified aligning of = > + aa=bb=cc=1; /* one */ + a=b=c=1; /* two */ + aaa=bbb=ccc=1; /* three */ +< + Becomes: Select the three equations, press \T= > + aa = bb = cc = 1; /* one */ + a = b = c = 1; /* two */ + aaa = bbb = ccc = 1; /* three */ +< + + --------------------------- + Alignment Map Examples: \Htd *alignmap-Htd* {{{3 + --------------------------- + + Original: for aligning tables with html > + ...field one......field two... + ...field three......field four... +< + Becomes: Select ... lines, press \Htd > + ...field one... ...field two... + ...field three... ...field four... +< +============================================================================== +4. Alignment Tools' History *align-history* {{{1 + +ALIGN HISTORY {{{2 + v37 Nov 29, 2012 * (Kim Jang-hwan) reported that with g:Align_xstrlen + set to 3 that the cursor was moved (linewise) + after invocation. Fixed. + Jan 07, 2013 * now has visual mode mappings to accompany all + normal mode mappings (use |V| to invoke) + v36 May 20, 2009 * Previously, the "W" AlignCtrl setting, intended + to retain initial white space, did so by convert- + ing any leading tabs into an equivalent quantity + of blanks (using the current tabstop setting). + Align will now retain leading tabs. + Nov 24, 2009 * QArgSplitter() used split(), intending to split + on white space only. However, the \tab map + uses ctrl-o as a separator instead of tabs; the + split() function treated the ctrl-o as a whitespace + character, too. Solution: give split() an explicit + pattern matching blanks and tabs, only. \tab now + works again! + Jun 29, 2010 * included |g:AlignSkip| and |alignctrl-star| support + May 10, 2011 * if the range is only one line, then Align will + automatically grow the range to accommodate all + lines containing the first separator pattern + surrounding the current line. + Aug 05, 2011 * g:Align_xstrlen usage extended to permit users to + specify a function by name which computes string + length. + Oct 27, 2011 * (reported by Fco Javier) reported a problem with + the default s:Strlen() result; there was a missing + "let". Fixed. + Nov 10, 2011 * (Lewis Thompson) Align was doing "set noet" when + it should've been doing "setlocal noet". + Dec 22, 2011 * modifed s:Strlen() to use |strdisplaywidth()| when + g:Align_xstrlen is zero. + v35 Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading + installed + Nov 19, 2008 * new sanity check for an AlignStyle of just ":" + Jan 08, 2009 * save&restore of |'mod'| now done with local + variant + v34 Jul 08, 2008 * using :AlignCtrl before entering any alignment + control commands was causing an error. + v33 Sep 20, 2007 * s:Strlen() introduced to support various ways + used to represent characters and their effects + on string lengths. See |align-strlen|. + * Align now accepts "..." -- so it can accept + whitespace as separators. + v32 Aug 18, 2007 * uses || instead of || plus a + custom argument splitter to allow patterns with + backslashes to slide in unaltered. + v31 Aug 06, 2007 * :[range]Align! [AlignCtrl settings] pattern(s) + implemented. + v30 Feb 12, 2007 * now uses |setline()| + v29 Jan 18, 2006 * cecutil updated to use keepjumps + Feb 23, 2006 * Align now converted to vim 7.0 style using + auto-loading functions. + v28 Aug 17, 2005 * report option workaround + Oct 24, 2005 * AlignCtrl l: wasn't behaving as expected; fixed + v27 Apr 15, 2005 * cpo workaround + ignorecase workaround + v26 Aug 20, 2004 * loaded_align now also indicates version number + GetLatestVimScripts :AutoInstall: now supported + v25 Jul 27, 2004 * For debugging, uses Dfunc(), Dret(), and Decho() + v24 Mar 03, 2004 * (should've done this earlier!) visualmode(1) + not supported until v6.2, now Align will avoid + calling it for earlier versions. Visualmode + clearing won't take place then, of course. + v23 Oct 07, 2003 * Included Leif Wickland's ReplaceQuotedSpaces() + function which supports \tsq + v22 Jan 29, 2003 * Now requires 6.1.308 or later to clear visualmode() + v21 Jan 10, 2003 * BugFix: similar problem to #19; new code + bypasses "norm! v\" until initialization + is over. + v20 Dec 30, 2002 * BugFix: more on "unable to highlight" fixed + v19 Nov 21, 2002 * BugFix: some terminals gave an "unable to highlight" + message at startup; Hari Krishna Dara tracked it + down; a silent! now included to prevent noise. + v18 Nov 04, 2002 * BugFix: re-enabled anti-repeated-loading + v17 Nov 04, 2002 * BugFix: forgot to have AlignPush() push s:AlignSep + AlignCtrl now clears visual-block mode when used so + that Align won't try to use old visual-block + selection marks '< '> + v16 Sep 18, 2002 * AlignCtrl <>| options implemented (separator + justification) + v15 Aug 22, 2002 * bug fix: AlignCtrl's ":" now acts as a modifier of + the preceding alignment operator (lrc) + v14 Aug 20, 2002 * bug fix: AlignCtrl default now keeps &ic unchanged + bug fix: Align, on end-field, wasn't using correct + alignop bug fix: Align, on end-field, was appending + padding + v13 Aug 19, 2002 * bug fix: zero-length g/v patterns are accepted + bug fix: always skip blank lines + bug fix: AlignCtrl default now also clears g and v + patterns + v12 Aug 16, 2002 * moved keep_ic above zero-length pattern checks + added "AlignCtrl default" + fixed bug with last field getting separator spaces + at end line + v11 Jul 08, 2002 * prevent separator patterns which match zero length + -+: included as additional alignment/justification + styles + v10 Jun 26, 2002 * =~# used instead of =~ (for matching case) + ignorecase option handled + v09 Jun 25, 2002 * implemented cyclic padding + +ALIGNMENT MAP HISTORY *alignmap-history* {{{2 + v43 Nov 28, 2012 * changed a lot of maps to use nnoremap (instead + of map) + Jan 07, 2013 * + v42 Jan 06, 2010 * new maps for \anum, \aenum, \aunum + Feb 16, 2010 * map for \t=, \T= now handles x++ = something; + for c, c++ correctly. + Oct 29, 2010 * added a note on having one's own default + AlignCtrl (see |alignctrl-init|) + Feb 22, 2011 * for menus, &go =~# used to insure correct case + Jun 10, 2011 * |:AlignMapsClean| command provided to make it + easy for those who would prefer not to have + AlignMaps' maps not to have them. + v41 Nov 02, 2008 * g:loaded_AlignMapsPlugin testing to prevent + re-loading installed + * AlignMaps now use 0x0f (ctrl-p) for special + character substitutions (instead of 0xff). + Seems to avoid some problems with having to + use Strlen(). + * bug fixed with \ts, + * new maps: \ts; \ts, \ts: \ts< \ts= \a( + v40 Oct 21, 2008 * Modified AlignMaps so that its maps use s + and