citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

commit 0babad5344527de0c554bcfb2e8266e45c3ca5cd
Author: William Casarin <jb55@jb55.com>
Date:   Tue, 15 Sep 2020 20:57:27 -0700

add dotfiles

Diffstat:
Adotfiles/.XCompose | 1378+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xmodmap | 42++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/perl/keyboard-select | 597+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/perl/resize-font | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/perl/url-picker | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/ashes.light | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/baskerville | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/cmr | 28++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/dark | 2++
Adotfiles/.Xresources.d/themes/digerati | 34++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/light | 2++
Adotfiles/.Xresources.d/themes/lucius-white-high-contrast | 20++++++++++++++++++++
Adotfiles/.Xresources.d/themes/mocha | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/mono | 26++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/nancy | 328+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/onedark | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/sexy | 37+++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/solarized | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/test-theme | 37+++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/tomorrow-night | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/tomorrow.dark | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.Xresources.d/themes/tomorrow.light | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.ackrc | 3+++
Adotfiles/.authinfo.gpg | 0
Adotfiles/.bash_aliases | 225+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.bashrc | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.clang_complete | 2++
Adotfiles/.curlpaste.conf | 6++++++
Adotfiles/.dircolors | 185+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.eslintrc | 33+++++++++++++++++++++++++++++++++
Adotfiles/.fzf.bash | 14++++++++++++++
Adotfiles/.fzf.zsh | 14++++++++++++++
Adotfiles/.fzf_helpers | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.ghci | 1+
Adotfiles/.git-template | 3+++
Adotfiles/.gitconfig | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.gitignore | 28++++++++++++++++++++++++++++
Adotfiles/.gtkrc-2.0 | 14++++++++++++++
Adotfiles/.lesskey | 8++++++++
Adotfiles/.msmtprc.gpg | 0
Adotfiles/.ncmpcpp/bindings | 368+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.rtorrent.rc | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.screenrc | 17+++++++++++++++++
Adotfiles/.spacemacs | 573+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.tmux.conf | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/.VimballRecord | 4++++
Adotfiles/.vim/.vimrc | 389+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/README.csupport | 191+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/after/plugin/TabularMaps.vim | 48++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/all.do | 1+
Adotfiles/.vim/autoload/a.vim | 840+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/autoload/pathogen.vim | 245+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/autoload/repeat.vim | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/autoload/tabular.vim | 283+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/autoload/vimball.vim | 737+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/autoload/vimclojure.vim | 672+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/adaryn.vim | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/adrian.vim | 97+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/aiseered.vim | 37+++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/anotherdark.vim | 108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/aqua.vim | 44++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/astronaut.vim | 164+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/asu1dark.vim | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/autumn.vim | 69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/autumn2.vim | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/autumnleaf.vim | 154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/base16-onedark.vim | 413+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/baycomb.vim | 319+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/bclear.vim | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/biogoo.vim | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/blacksea.vim | 37+++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/bluegreen.vim | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/borland.vim | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/breeze.vim | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/brookstream.vim | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/buttercream.vim | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/calmar256-dark.vim | 247+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/calmar256-light.vim | 247+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/camo.vim | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/candy.vim | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/candycode.vim | 174+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/chela_light.vim | 110+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/chocolateliquor.vim | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/clarity.vim | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/cleanphp.vim | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/colorer.vim | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dante.vim | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/darkZ.vim | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/darkblue2.vim | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/darkbone.vim | 102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/darkslategray.vim | 117+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/darkspectrum.vim | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dawn.vim | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/denim.vim | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/desert256-transparent.vim | 341+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/desert256.htm | 24++++++++++++++++++++++++
Adotfiles/.vim/colors/desert256.vim | 338+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/desertEx.vim | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dusk.vim | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_blue.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_cyan.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_green.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_orange.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_purple.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_red.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/dw_yellow.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/earendel.vim | 159+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/eclipse.vim | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/ekvoli.vim | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fine_blue.vim | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fine_blue2.vim | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fnaqevan.vim | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fog.vim | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/freya.vim | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fruit.vim | 69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/fruity.vim | 147+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/golden.vim | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/guardian.vim | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/habilight.vim | 138+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/herald.vim | 385+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/impact.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/inkpot.vim | 216+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/ironman.vim | 133+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/jammy.vim | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/jellybeans.vim | 410+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/kellys.vim | 236+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/leo.vim | 150+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/lettuce.vim | 215+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/lucius.vim | 346+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/manxome.vim | 47+++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/marklar.vim | 174+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/maroloccio.vim | 594+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/martin_krischik.vim | 397+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/mass_swatch.py | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/matrix.vim | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/moria.vim | 247+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/moss.vim | 109+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/motus.vim | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/mustang.vim | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/navajo-night.vim | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/navajo.vim | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/neon.vim | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/neverness.vim | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/night.vim | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/nightshimmer.vim | 111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/no_quarter.vim | 134+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/northland.vim | 149+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/nuvola.vim | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/oceanblack.vim | 115+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/oceandeep.vim | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/oceanlight.vim | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/olive.vim | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/papayawhip.vim | 31+++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/peaksea.vim | 597+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/print_bw.vim | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/pyte.vim | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/railscasts.vim | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/railscasts2.vim | 124+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/rdark.htm | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/rdark.vim | 159+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/relaxedgreen.vim | 112+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/robinhood.vim | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/rootwater.vim | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/satori.vim | 47+++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/sea.vim | 69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/settlemyer.vim | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/sienna.vim | 150+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/silent.vim | 116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/simpleandfriendly.vim | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/softblue.vim | 45+++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/soso.vim | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/spring.vim | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/summerfruit256.vim | 322+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/synic.vim | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tabula.vim | 698+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tango.vim | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tango2.vim | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/taqua.vim | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tcsoft.vim | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tir_black.vim | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/tolerable.vim | 43+++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/torte.vim | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/twilight.vim | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/two2tango.vim | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/vc.vim | 24++++++++++++++++++++++++
Adotfiles/.vim/colors/vibrantink.vim | 68++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/vividchalk.vim | 172+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/vylight.vim | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/winter.vim | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/wombat.vim | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/wombat256-trans.vim | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/wombat256.vim | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/wood.vim | 39+++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/wuye.vim | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/xemacs.vim | 46++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/xoria256.vim | 142+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/zenburn.vim | 351+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/colors/zmrok.vim | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/config/consistency.vim | 7+++++++
Adotfiles/.vim/doc/NERD_tree.txt | 1194+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/Tabular.txt | 258+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/clojure.txt | 266+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/csupport.txt | 1638+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/fugitive.txt | 226+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/omnicppcomplete.txt | 1078+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/pi_vimball.txt | 231+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/showmarks.txt | 264+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/supertab.txt | 308+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/tags | 382+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/doc/tlist.txt | 1501+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/exec_menuitem.vim | 41+++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/filetype.vim | 0
Adotfiles/.vim/fs_menu.vim | 194+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/ftdetect/clojure.vim | 1+
Adotfiles/.vim/ftdetect/go.vim | 1+
Adotfiles/.vim/ftdetect/jade.vim | 2++
Adotfiles/.vim/ftplugin/c.vim | 309+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/ftplugin/clojure.vim | 157+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/ftplugin/clojure/completions-clojure.core.txt | 433+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/ftplugin/clojure/completions-clojure.set.txt | 10++++++++++
Adotfiles/.vim/ftplugin/clojure/completions-clojure.xml.txt | 13+++++++++++++
Adotfiles/.vim/ftplugin/clojure/completions-clojure.zip.txt | 27+++++++++++++++++++++++++++
Adotfiles/.vim/ftplugin/html_snip_helper.vim | 10++++++++++
Adotfiles/.vim/ftplugin/jade.vim | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/indent/clojure.vim | 206+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/indent/jade.vim | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/init.vim | 2++
Adotfiles/.vim/nerdtree_plugin/exec_menuitem.vim | 41+++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/nerdtree_plugin/fs_menu.vim | 194+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/Tabular.vim | 280+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/bufdiff.vim | 8++++++++
Adotfiles/.vim/plugin/clay.vim | 118+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/fugitive.vim | 1761+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/lodgeit.vim | 131+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/slime.vim | 32++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/surround.vim | 625+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/plugin/vimballPlugin.vim | 36++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/supertab.vba | 825+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/alex.vim | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/clay.vim | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/clojure.vim | 266+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/galaxy.vim | 2325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/gitcommit.vim | 18++++++++++++++++++
Adotfiles/.vim/syntax/glsl.vim | 265+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/go.vim | 190+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/happy.vim | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/haskell.vim | 355+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/haxe.vim | 268+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/jade.vim | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/json.vim | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/less.vim | 305++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/llvm.vim | 110+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/mkd.vim | 102+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/nginx.vim | 152+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/nix.vim | 37+++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/pdc.vim | 330+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/snippet.vim | 19+++++++++++++++++++
Adotfiles/.vim/syntax/swig.vim | 44++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/tablegen.vim | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/thrift.vim | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/typescript.vim | 321+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vim/syntax/yaml.vim | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.vimperatorrc | 26++++++++++++++++++++++++++
Adotfiles/.xbindkeysrc | 24++++++++++++++++++++++++
Adotfiles/.xinitrc | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.xmonad/.envrc | 1+
Adotfiles/.xmonad/shell.nix | 12++++++++++++
Adotfiles/.xmonad/xmonad.hs | 265+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/.zshrc | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/all.do | 1+
Adotfiles/bash-undistract-me/.bzrignore | 3+++
Adotfiles/bash-undistract-me/LICENSE | 30++++++++++++++++++++++++++++++
Adotfiles/bash-undistract-me/README.md | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/bash-undistract-me/debian/changelog | 12++++++++++++
Adotfiles/bash-undistract-me/debian/compat | 1+
Adotfiles/bash-undistract-me/debian/control | 17+++++++++++++++++
Adotfiles/bash-undistract-me/debian/copyright | 7+++++++
Adotfiles/bash-undistract-me/debian/install | 4++++
Adotfiles/bash-undistract-me/debian/rules | 4++++
Adotfiles/bash-undistract-me/debian/source/format | 1+
Adotfiles/bash-undistract-me/long-running.bash | 131+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/bash-undistract-me/preexec.bash | 180+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/bash-undistract-me/undistract-me.sh | 7+++++++
Adotfiles/custom.el | 338+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/dmenu_cfg | 1+
Adotfiles/dunstrc | 414+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/jb55-spacemacs-layer/extensions.el | 33+++++++++++++++++++++++++++++++++
Adotfiles/jb55.zsh-theme | 14++++++++++++++
Adotfiles/mimeapps.list | 217+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/setup_env.sh | 39+++++++++++++++++++++++++++++++++++++++
Adotfiles/skeletons/nix-rust/.envrc | 1+
Adotfiles/skeletons/nix-rust/default.nix | 6++++++
Adotfiles/skeletons/nix/.envrc | 1+
Adotfiles/skeletons/nix/default.nix | 6++++++
Adotfiles/snippets/cs.snippets | 374+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/snippets/dart.snippets | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/snippets/htmltornado.snippets | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adotfiles/xmobar/get-volume | 7+++++++
Adotfiles/zsh/undistract-me.zsh | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
300 files changed, 48546 insertions(+), 0 deletions(-)

diff --git a/dotfiles/.XCompose b/dotfiles/.XCompose @@ -0,0 +1,1378 @@ +# for Emacs: -*- coding: utf-8 -*- +include "%L" + +# def emit(keys, codepoint, word): +# print ('<Multi_key> %s <period>\t: "%s"\tU%04X\t\t# CIRCLED DIGIT %s' % +# (keys, unichr(codepoint), codepoint, word)).encode('utf8') +# numbers = 'one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty' +# words = numbers.upper().split() +# emit('<0>', 0x24EA, "ZERO") +# for num, word in zip(range(1, 21), words): +# emit(' '.join("<%s>" % char for char in str(num)), 0x245f + num, word) + +# Custom additions: Typography +<Multi_key> <period> <period> : "…" U2026 # HORIZONTAL ELLIPSIS +<Multi_key> <v> <period> <period> : "â‹®" U22EE # VERTICAL ELLIPSIS +<Multi_key> <c> <period> <period> : "⋯" U22EF # MIDLINE HORIZONTAL ELLIPSIS +<Multi_key> <slash> <period> <period> : "â‹°" U22F0 # UP RIGHT DIAGONAL ELLIPSIS +# To avoid conflict with \. for combining dot above. +#<Multi_key> <backslash> <period> <period> : "⋱" U22F1 # DOWN RIGHT DIAGONAL ELLIPSIS +<Multi_key> <period> <backslash> <period> : "⋱" U22F1 # DOWN RIGHT DIAGONAL ELLIPSIS +# Will we someday regret this, wanting 2. for â’‰ ? +<Multi_key> <2> <period> : "‥" U2025 # TWO DOT LEADER +# This should not be needed. +#<Multi_key> <1> <period> : "․" U2024 # ONE DOT LEADER +<Multi_key> <c> <1> <period> : "·" U00B7 # MIDDLE DOT (maybe I can remember the keystroke better? +<Multi_key> <period> <slash> <period> : "â’" U2052 # COMMERCIAL MINUS SIGN +# Printable sign for space. But is \<space> too useful a key combo to use +# for this? +<Multi_key> <backslash> <space> : "â£" U2423 # OPEN BOX +# These two are already present for me: +# <Multi_key> <minus> <minus> <minus> : "—" U2014 # EM DASH +# <Multi_key> <minus> <minus> <period> : "–" U2013 # EN DASH +<Multi_key> <minus> <minus> <space> : "– " # EN DASH (followed by space) +<Multi_key> <minus> <asciitilde> <minus> : "―" U2015 # HORIZONTAL BAR +<Multi_key> <minus> <2> <M> : "⸺" U2E3A # TWO-EM DASH +<Multi_key> <minus> <3> <M> : "⸻" U2E3B # THREE-EM DASH +<Multi_key> <backslash> <minus> : "­" U00AD # SOFT HYPHEN +# This is the recommended typographical practice for em dashes in English. +# Unfortunately, it doesn’t work out all that well in monospace fonts, +# where the thin spaces aren’t thin. But I think this is okay. +# This conflicts with the default binding to “~â€, which is potentially +# a problem for non-American keyboards. +<Multi_key> <space> <minus> : " — " # EM DASH surrounded by THIN SPACEs. + + +# Quotation marks. +<Multi_key> <comma> <space> : "‚" U201A # SINGLE LOW-9 QUOTATION MARK +<Multi_key> <comma> <comma> : "„" U201E # DOUBLE LOW-9 QUOTATION MARK +<Multi_key> <less> <comma> <comma> : "⹂" U2E42 # DOUBLE LOW-REVERSED-9 QUOTATION MARK +<Multi_key> <apostrophe> <space> : "’" U2019 # RIGHT SINGLE QUOTATION MARK +<Multi_key> <apostrophe> <apostrophe> : "â€" U201D # RIGHT DOUBLE QUOTATION MARK +<Multi_key> <grave> <space> : "‘" U2018 # LEFT SINGLE QUOTATION MARK +<Multi_key> <grave> <grave> : "“" U201C # LEFT DOUBLE QUOTATION MARK +<Multi_key> <6> <apostrophe> : "‘" U2018 # LEFT SINGLE QUOTATION MARK (high 6) +<Multi_key> <6> <quotedbl> : "“" U201C # LEFT DOUBLE QUOTATION MARK (66) +<Multi_key> <9> <apostrophe> : "’" U2019 # RIGHT SINGLE QUOTATION MARK (high 9) +<Multi_key> <9> <quotedbl> : "â€" U201D # RIGHT DOUBLE QUOTATION MARK (99) +<Multi_key> <less> <9> <apostrophe> : "‛" U201B # SINGLE HIGH-REVERSED-9 QUOTATION MARK +<Multi_key> <less> <9> <quotedbl> : "‟" U201F # DOUBLE HIGH-REVERSED-9 QUOTATION MARK +<Multi_key> <comma> <apostrophe> : "‚" U201A # SINGLE LOW-9 QUOTATION MARK (quote resembling a comma) +<Multi_key> <comma> <quotedbl> : "„" U201E # DOUBLE LOW-9 QUOTATION MARK + +# Convenience shortcuts for quotation marks. +<Multi_key> <space> <quotedbl> : " “" # space followed by LEFT DOUBLE QUOTATION MARK +<Multi_key> <quotedbl> <space> : "†" # RIGHT DOUBLE QUOTATION MARK followed by space +<Multi_key> <space> <apostrophe> : " ‘" # space followed by LEFT SINGLE QUOTATION MARK + + +<Multi_key> <comma> <at> : "⸲" U2E32 # TURNED COMMA +# Conflicts with system def? (·) +<Multi_key> <period> <asciicircum> : "⸳" U2E33 # RAISED DOT +<Multi_key> <period> <asciitilde> : "⸳" U2E33 # RAISED DOT +<Multi_key> <comma> <asciicircum> : "⸴" U2E34 # RAISED COMMA +<Multi_key> <semicolon> <at> : "⸵" U2E35 # TURNED SEMICOLON +# Convlicts with system def? (â­) +<Multi_key> <asciitilde> <bar> : "ⸯ" U2E2F # VERTICAL TILDE +<Multi_key> <asciicircum> <bar> : "ⸯ" U2E2F # VERTICAL TILDE +<Multi_key> <minus> <equal> : "â¹€" U2E40 # DOUBLE HYPHEN +<Multi_key> <comma> <less> : "â¹" U2E41 # REVERSED COMMA +<Multi_key> <less> <bar> : "↵" U21B5 # DOWNWARDS ARROW WITH CORNER LEFTWARDS +# The bullet was <o> <period>, but it clashes with ê™­ +<Multi_key> <asterisk> <1> : "•" U2022 # BULLET +# By default <Multi_key> <period> <period> does this, but we broke that with the ... binding. +<Multi_key> <o> <underscore> : "âƒ" U2043 # HYPHEN BULLET +<Multi_key> <o> <comma> : "·" periodcentered # MIDDLE DOT +# I don’t use this nearly as often as the em-dash sequence I’ve remapped it to: +#<Multi_key> <space> <minus> : "‑" U2011 # NON-BREAKING HYPHEN +# Already present for me: +# <Multi_key> <space> <space> : " " U00A0 # NO-BREAK SPACE +# Do we want/need these? +<Multi_key> <d> <a> <g> : "†" U2020 # DAGGER +<Multi_key> <d> <d> <a> <g> : "‡" U2021 # DOUBLE DAGGER +# We used to have THIN SPACE as <space> <apostrophe>, but now that’s remapped +# to " ‘", for conveniently enclosing things in proper single-quotes. +<Multi_key> <backslash> <comma> : " " U2009 # THIN SPACE +<Multi_key> <s> <e> <c> : "§" U00A7 # SECTION SIGN +# It's in the Asian section, but it's a general-purpose punctuation: +<Multi_key> <quotedbl> <quotedbl> : "〃" U3003 # DITTO MARK +# Working with the pattern from FLOOR/CEILING +<Multi_key> <7> <asciicircum> <bracketleft> : "⸢" U2E22 # TOP LEFT HALF BRACKET +<Multi_key> <7> <asciicircum> <bracketright> : "⸣" U2E23 # TOP RIGHT HALF BRACKET +<Multi_key> <L> <underscore> <bracketleft> : "⸤" U2E24 # BOTTOM LEFT HALF BRACKET +<Multi_key> <L> <underscore> <bracketright> : "⸥" U2E25 # BOTTOM RIGHT HALF BRACKET +# Consider <7> <less>/<greater> for ⸂⸃ maybe? <S> and <slash> for ⸉⸊⸌⸠...? +# I guess we can get by with sub/superset for ⸦⸧. + +<Multi_key> <minus> <less> : "â†" leftarrow # LEFTWARDS ARROW +<Multi_key> <minus> <asciicircum> : "↑" uparrow # UPWARDS ARROW +<Multi_key> <minus> <greater> : "→" rightarrow # RIGHTWARDS ARROW +<Multi_key> <minus> <v> : "↓" downarrow # DOWNWARDS ARROW +<Multi_key> <less> <minus> <greater> : "↔" U2194 # LEFT RIGHT ARROW (kragen's) + +<Multi_key> <Left> <Left> : "â†" leftarrow # LEFTWARDS ARROW +<Multi_key> <Up> <Up> : "↑" uparrow # UPWARDS ARROW +<Multi_key> <Right> <Right> : "→" rightarrow # RIGHTWARDS ARROW +<Multi_key> <Down> <Down> : "↓" downarrow # DOWNWARDS ARROW +<Multi_key> <Left> <Right> : "↔" U2194 # LEFT RIGHT ARROW (kragen's) +<Multi_key> <Right> <Left> : "↔" U2194 # LEFT RIGHT ARROW (kragen's) +<Multi_key> <Up> <Down> : "↕" U2195 # UP DOWN ARROW (kragen's) +<Multi_key> <Up> <ampersand> <Down> : "⇵" U21F5 # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW +<Multi_key> <Down> <Left> : "↵" U21B5 # DOWNWARDS ARROW WITH CORNER LEFTWARDS +<Multi_key> <Left> <o> : "⟲" U27F2 # ANTICLOCKWISE GAPPED CIRCLE ARROW +<Multi_key> <Right> <o> : "⟳" U27F3 # CLOCKWISE GAPPED CIRCLE ARROW +<Multi_key> <Left> <c> : "↺" U21BA # ANTICLOCKWISE OPEN CIRCLE ARROW +<Multi_key> <Right> <c> : "↻" U21BB # CLOCKWISE OPEN CIRCLE ARROW +<Multi_key> <Left> <asciitilde> : "⇜" U21DC # LEFTWARDS SQUIGGLE ARROW +<Multi_key> <Right> <asciitilde> : "â‡" U21DD # RIGHTWARDS SQUIGGLE ARROW +<Multi_key> <Left> <bar> : "⇤" U21E4 # LEFTWARDS ARROW TO BAR +<Multi_key> <Right> <bar> : "⇥" U21E5 # RIGHTWARDS ARROW TO BAR +<Multi_key> <Left> <minus> : "⇠" U21E0 # LEFTWARDS DASHED ARROW +<Multi_key> <Up> <minus> : "⇡" U21E1 # UPWARDS DASHED ARROW +<Multi_key> <Right> <minus> : "⇢" U21E2 # RIGHTWARDS DASHED ARROW +<Multi_key> <Down> <minus> : "⇣" U21E3 # DOWNWARDS DASHED ARROW + +# Arrow keys don't always work: some apps trap them for cursor control and +# other boring things. The arrow symbols have alternate keystrokes. Do +# we need others for these printer's fists? If so, what? The -= and =- +# we had before are not necessarily the best choices. +<Multi_key> <F> <Left> : "☚" U261A # BLACK LEFT POINTING INDEX +<Multi_key> <F> <Right> : "☛" U261B # BLACK RIGHT POINTING INDEX +<Multi_key> <f> <Left> : "☜" U261C # WHITE LEFT POINTING INDEX +<Multi_key> <f> <Up> : "â˜" U261D # WHITE UP POINTING INDEX +<Multi_key> <f> <Right> : "☞" U261E # WHITE RIGHT POINTING INDEX +<Multi_key> <f> <Down> : "☟" U261F # WHITE DOWN POINTING INDEX +<Multi_key> <f> <v> : "✌" U270C # VICTORY HAND +<Multi_key> <f> <w> : "âœ" U270D # WRITING HAND +<Multi_key> <f> <p> <Down> : "✎" U270E # LOWER RIGHT PENCIL +<Multi_key> <f> <p> <Right> : "âœ" U270F # PENCIL +<Multi_key> <f> <p> <Up> : "âœ" U2710 # UPPER RIGHT PENCIL + +# For some logical statements. I prefer doubled arrows for implication. +<Multi_key> <equal> <greater> : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW +<Multi_key> <equal> <less> : "â‡" U21D0 # LEFTWARDS DOUBLE ARROW +<Multi_key> <less> <minus> <equal> <greater> : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW +<Multi_key> <equal> <Right> <Right> : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW +<Multi_key> <equal> <Left> <Left> : "â‡" U21D0 # LEFTWARDS DOUBLE ARROW +<Multi_key> <equal> <Left> <Right> : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW +<Multi_key> <equal> <Right> <Left> : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW +<Multi_key> <equal> <Up> <Up> : "⇑" U21D1 # UPWARDS DOUBLE ARROW +<Multi_key> <equal> <Down> <Down> : "⇓" U21D3 # DOWNWARDS DOUBLE ARROW +<Multi_key> <equal> <Up> <Down> : "⇕" U21D5 # UP DOWN DOUBLE ARROW +<Multi_key> <equal> <Down> <Left> : "âŽ" U23CE # RETURN SYMBOL +# These are just too cool-looking not to have (if your font supports them) +<Multi_key> <equal> <period> <equal> : "⸎" U2E0E # EDITORIAL CORONIS + +# Custom additions: Mathematical symbols +<Multi_key> <exclam> <equal> : "≠" U2260 # NOT EQUAL TO +<Multi_key> <slash> <equal> : "≠" U2260 # NOT EQUAL TO +<Multi_key> <less> <equal> : "≤" U2264 # LESS-THAN OR EQUAL TO +<Multi_key> <greater> <equal> : "≥" U2265 # GREATER-THAN OR EQUAL TO +<Multi_key> <exclam> <less> <greater> : "≸" U2278 # NEITHER LESS-THAN NOR GREATER-THAN +# MUCH is usually enough for me. No need for VERY. +<Multi_key> <plus> <less> : "≪" U226A # MUCH LESS-THAN +<Multi_key> <plus> <greater> : "≫" U226B # MUCH GREATER-THAN +# Damn. That makes this conflict with the standard plus plus -> # +<Multi_key> <plus> <plus> <less> : "⋘" U22D8 # VERY MUCH LESS-THAN +<Multi_key> <plus> <plus> <greater> : "â‹™" U22D9 # VERY MUCH GREATER-THAN +<Multi_key> <3> <greater> : "â‹™" U22D9 # VERY MUCH GREATER-THAN +<Multi_key> <3> <less> : "⋘" U22D8 # VERY MUCH LESS-THAN +<Multi_key> <i> <n> : "∈" U2208 # ELEMENT OF +<Multi_key> <exclam> <i> <n> : "∉" U2209 # NOT AN ELEMENT OF +<Multi_key> <U2208> <slash> : "∉" U2209 # NOT AN ELEMENT OF (I have ∈ on my keyboard...) +<Multi_key> <n> <i> : "∋" U220B # CONTAINS AS MEMBER (I hope this doesn't conflict) +<Multi_key> <slash> <n> <i> : "∌" U220C # DOES NOT CONTAIN AS MEMBER +# <exclam><n><i> would conflict, with <exclam> <n> for N WITH UNDERDOT, etc. +<Multi_key> <U220B> <slash> : "∌" U220C # DOES NOT CONTAIN AS MEMBER +<Multi_key> <asciitilde> <equal> : "≅" U2245 # APPROXIMATELY EQUAL TO (It actually means "congruent"!) +<Multi_key> <equal> <question> : "≟" U225f # QUESTIONED EQUAL TO +<Multi_key> <equal> <d> <e> <f> : "â‰" U225D # EQUAL TO BY DEFINITION +<Multi_key> <d> <e> <f> <equal> : "â‰" U225D # EQUAL TO BY DEFINITION +<Multi_key> <equal> <equal> : "≡" U2261 # IDENTICAL TO +<Multi_key> <colon> <equal> : "≔" U2254 # COLON EQUALS +<Multi_key> <equal> <colon> : "≕" U2255 # EQUALS COLON +# Using <slash> conflicts. +<Multi_key> <equal> <bar> <equal> : "≢" U2262 # NOT IDENTICAL TO +# We already have ± +<Multi_key> <minus> <plus> : "∓" U2213 # MINUS OR PLUS SIGN +<Multi_key> <s> <q> : "√" U221A # SQUARE ROOT +# keystrokes might not make the most sense, but you know what they mean... +<Multi_key> <3> <s> <q> : "∛" U221B # CUBE ROOT +<Multi_key> <4> <s> <q> : "∜" U221C # FOURTH ROOT + # “(Note: I had put the backslash in position 5/15. It enabled the + # ALGOL “and†to be “/\†and the “or†to be “\/â€.)†--- Bob Bemer, + # http://home.ccil.org/~remlaps/www.bobbemer.com/BRACES.HTM, quoting + # himself in “A view of the history of the ISO character codeâ€, 1972 +<Multi_key> <slash> <backslash> : "∧" U2227 # LOGICAL AND +<Multi_key> <backslash> <slash> : "∨" U2228 # LOGICAL OR +<Multi_key> <backslash> <underscore> <slash> : "⊻" U22BB # XOR +<Multi_key> <minus> <comma> : "¬" U00AC # NOT SIGN +<Multi_key> <asterisk> <o> : "∘" U2218 # RING OPERATOR (function composition) +<Multi_key> <asterisk> <x> : "⨯" U2A2F # CROSS PRODUCT +<Multi_key> <asterisk> <period> <period> : "â‹…" U22C5 # DOT OPERATOR (dot product) +<Multi_key> <0> <slash> : "∅" U2205 # EMPTY SET (thanks jsled!) +<Multi_key> <slash> <0> : "∅" U2205 # EMPTY SET +# I'm hoping { can work as a set mnemonic +<Multi_key> <braceleft> <U> : "∪" U222A # UNION +<Multi_key> <braceleft> <asciicircum> : "∩" U2229 # INTERSECTION +<Multi_key> <braceleft> <parenleft> : "⊂" U2282 # SUBSET OF +<Multi_key> <braceleft> <equal> <parenleft> : "⊆" U2286 # SUBSET OF OR EQUAL TO +<Multi_key> <exclam> <braceleft> <parenleft> : "⊄" U2284 # NOT A SUBSET OF +<Multi_key> <slash> <braceleft> <parenleft> : "⊄" U2284 # NOT A SUBSET OF +<Multi_key> <braceleft> <parenright> : "⊃" U2283 # SUPERSET OF +<Multi_key> <braceleft> <equal> <parenright> : "⊇" U2287 # SUPERSET OF OR EQUAL TO +<Multi_key> <E> <E> : "∃" U2203 # THERE EXISTS +# We can't use ! E E, because ! E maps to E-WITH-UNDERDOT. +<Multi_key> <slash> <E> <E> : "∄" U2204 # THERE DOES NOT EXIST +<Multi_key> <a> <a> : "∀" U2200 # FOR ALL +<Multi_key> <l> <l> : "λ" U03BB # GREEK SMALL LETTER LAMBDA +<Multi_key> <Q> <E> <D> : "∎" U220E # END OF PROOF +<Multi_key> <8> <8> : "∞" U221E # INFINITY +<Multi_key> <a> <l> <e> <p> <h> : "ℵ" U2135 # ALEF SYMBOL +<Multi_key> <a> <l> <e> <p> <0> : "ℵ₀" # ALEF Null +<Multi_key> <a> <l> <e> <p> <1> : "ℵâ‚" # ALEF One +<Multi_key> <a> <l> <e> <f> : "ℵ" U2135 # ALEF SYMBOL +<Multi_key> <KP_Multiply> <KP_Multiply> : "∗" U2217 # ASTERISK OPERATOR +<Multi_key> <o> <plus> : "⊕" U2295 # CIRCLED PLUS +<Multi_key> <o> <minus> : "⊖" U2296 # CIRCLED MINUS +<Multi_key> <o> <x> : "⊗" U2297 # CIRCLED TIMES +<Multi_key> <o> <slash> : "⊘" U2298 # CIRCLED DIVISION SLASH +<Multi_key> <o> <asterisk> : "⊛" U229B # CIRCLED ASTERISK OPERATOR +# )- conflicts with system for }. +<Multi_key> <parenright> <underscore> : "⟌" U27CC # LONG DIVISION +<Multi_key> <period> <quotedbl> : "∴" U2234 # THEREFORE +<Multi_key> <quotedbl> <period> : "∵" U2235 # BECAUSE +<Multi_key> <b> <e> <c> <a> <u> <s> <e> : "∵" U2235 # BECAUSE +<Multi_key> <percent> <percent> : "‱" U2031 # PER TEN THOUSAND (basis points) +<Multi_key> <slash> <u> : "µ" U00B5 # MICRO SIGN +# Ordinal indicators, for femenine and masculine, used in Romance languages +<Multi_key> <minus> <a> : "ª" U00AA # FEMININE ORDINAL INDICATOR +<Multi_key> <minus> <o> : "º" U00BA # MASCULINE ORDINAL INDICATOR + +# See also U03A3 (Greek capital sigma) +<Multi_key> <s> <u> <m> : "∑" U2211 # N-ARY SUMMATION +# OK, absolutely cannot believe we made it this long without NABLA or INTEGRAL +# or PARTIAL DIFFERENTIAL +<Multi_key> <i> <n> <t> : "∫" U222B # INTEGRAL +<Multi_key> <u> <i> <n> <t> : "⨛" U2A1B # UPPER INTEGRAL +<Multi_key> <l> <i> <n> <t> : "⨜" U2A1C # LOWER INTEGRAL +<Multi_key> <i> <i> <n> <t> : "∬" U222C # DOUBLE INTEGRAL +<Multi_key> <i> <i> <i> <n> <t> : "∭" U222D # TRIPLE INTEGRAL +<Multi_key> <i> <i> <i> <i> <n> <t> : "⨌" U2A0C # QUADRUPLE INTEGRAL +<Multi_key> <o> <i> <n> <t> : "∮" U222E # CONTOUR INTEGRAL +<Multi_key> <o> <i> <i> <n> <t> : "∯" U222F # SURFACE INTEGRAL +<Multi_key> <o> <i> <i> <i> <n> <t> : "∰" U2230 # VOLUME INTEGRAL +<Multi_key> <g> <i> <n> <t> : "⨘" U2A18 # GEOMETRIC INTEGRAL +<Multi_key> <s> <i> <n> <t> : "⨋" U2A0B # SUM/INTEGRAL +#Now for some WTF integrals: ⨙ ⨚ +<Multi_key> <d> <e> <l> : "∇" U2207 # NABLA +<Multi_key> <p> <a> <r> <t> : "∂" U2202 # PARTIAL DIFFERENTIAL +<Multi_key> <R> <e> : "â„œ" U211C # BLACK-LETTER CAPITAL R (Real Part) +<Multi_key> <I> <m> : "â„‘" U2111 # BLACK-LETTER CAPTIAL I (Imaginary Part) +<Multi_key> <h> <b> <a> <r> : "â„" U210F # PLANCK CONSTANT OVER TWO PI +<Multi_key> <h> <minus> : "â„" U210F # PLANCK CONSTANT OVER TWO PI +<Multi_key> <h> <p> : "â„Ž" U210E # PLANCK CONSTANT +<Multi_key> <e> <x> <p> : "ℯ" U212F # SCRIPT SMALL E +<Multi_key> <e> <1> <0> : "â¨" U23E8 # DECIMAL EXPONENT SYMBOL +<Multi_key> <w> <p> : "℘" U2118 # SCRIPT CAPITAL P +# Would we prefer 20D1 COMBINING RIGHT HARPOON ABOVE? +<Multi_key> <asciicircum> <greater> : "⃗" U20D7 # COMBINING RIGHT ARROW ABOVE (vector) +# There's a whole passel of these guys starting at U+1D538 but I have no fonts for those. +<Multi_key> <bar> <C> : "â„‚" U2102 # DOUBLE-STRUCK CAPITAL C (set of complex numbers) +<Multi_key> <bar> <N> : "â„•" U2115 # DOUBLE-STRUCK CAPITAL N (natural number) +<Multi_key> <bar> <P> : "â„™" U2119 # DOUBLE-STRUCK CAPITAL P +<Multi_key> <bar> <Q> : "â„š" U211A # DOUBLE-STRUCK CAPITAL Q (set of rational numbers) +<Multi_key> <bar> <R> : "â„" U211D # DOUBLE-STRUCK CAPITAL R (set of real numbers) +<Multi_key> <bar> <Z> : "ℤ" U2124 # DOUBLE-STRUCK CAPITAL Z (set of integers) +<Multi_key> <bar> <H> : "â„" U210d # DOUBLE-STRUCK CAPITAL H +<Multi_key> <bar> <e> : "â…‡" U2147 # DOUBLE-STRUCK ITALIC SMALL E +<Multi_key> <bar> <i> : "â…ˆ" U2148 # DOUBLE-STRUCK ITALIC SMALL I +<Multi_key> <bar> <j> : "â…‰" U2149 # DOUBLE-STRUCK ITALIC SMALL J +<Multi_key> <bar> <asterisk> <p> : "ℼ" U213C # DOUBLE-STRUCK SMALL PI +<Multi_key> <bar> <Greek_pi> : "ℼ" U213C # DOUBLE-STRUCK SMALL PI +<Multi_key> <bar> <asterisk> <P> : "â„¿" U213F # DOUBLE-STRUCK CAPITAL PI +<Multi_key> <bar> <Greek_PI> : "â„¿" U213F # DOUBLE-STRUCK CAPITAL PI +<Multi_key> <bar> <asterisk> <S> : "â…€" U2140 # DOUBLE-STRUCK N-ARY SUMMATION +<Multi_key> <bar> <Greek_SIGMA> : "â…€" U2140 # DOUBLE-STRUCK N-ARY SUMMATION +<Multi_key> <bar> <colon> : "⦂" U2982 # Z NOTATION TYPE COLON +# Apparently it is only for historical reasons that this is not unified with +# ⨟ U+2A1F Z NOTATION SCHEMA COMPOSITION +<Multi_key> <bar> <semicolon> : "⨾" U2A3E # Z NOTATION RELATIONAL COMPOSITION +# The *look* double-struck. +<Multi_key> <bar> <braceleft> : "⦃" U2983 # LEFT WHITE CURLY BRACKET +<Multi_key> <bar> <braceright> : "⦄" U2984 # RIGHT WHITE CURLY BRACKET +# ⦅⦆⦇⦈⦉⦊ too? +# The rest of that block? Some there may be worth it. +# Ooh. There are lots of nice brackets to consider: +# ⟅⟆⟨⟩⟪⟫⟬⟭⟮⟯⦑⦒⦓⦔⦕⦖⦗⦘⧼⧽⧘⧙⧚⧛⸢⸣⸤⸥⸨⸩「ã€ã€Žã€ +# Others too, of course, but these to start with. Some are likely worthy. +<Multi_key> <S> <parenleft> : "⟅" U27C5 # LEFT S-SHAPED BAG DELIMITER +<Multi_key> <S> <parenright> : "⟆" U27C6 # RIGHT S-SHAPED BAG DELIMITER +# There are a lot of angle brackets (3008/9, 27E8/9, 2329/A). I'm deciding +# to go with the mathematical brackets from now on, since they seem to be +# better supported. + +<Multi_key> <less> <parenleft> : "⟨" U27E8 # MATHEMATICAL LEFT ANGLE BRACKET +<Multi_key> <greater> <parenright>: "⟩" U27E9 # MATHEMATICAL RIGHT ANGLE BRACKET +<Multi_key> <bar> <bracketleft> : "⟦" U27E6 # MATHEMATICAL LEFT WHITE SQUARE BRACKET +<Multi_key> <bar> <bracketright>: "⟧" U27E7 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET +<Multi_key> <percent> <parenleft>: "⧘" U29D8 # LEFT WIGGLY FENCE +<Multi_key> <percent> <parenright>: "⧙" U29D9 # RIGHT WIGGLY FENCE +<Multi_key> <2> <percent> <parenleft>: "⧚" U29DA # LEFT DOUBLE WIGGLY FENCE +<Multi_key> <2> <percent> <parenright>: "⧛" U29DB # RIGHT DOUBLE WIGGLY FENCE +<Multi_key> <parenleft> <ampersand> <parenleft>: "⸨" U2E28 # LEFT DOUBLE PARENTHESIS +<Multi_key> <parenright> <ampersand> <parenright>: "⸩" U2E29 # RIGHT DOUBLE PARENTHESIS +<Multi_key> <2> <parenleft>: "⸨" U2E28 # LEFT DOUBLE PARENTHESIS +<Multi_key> <2> <parenright>: "⸩" U2E29 # RIGHT DOUBLE PARENTHESIS +<Multi_key> <Z> <parenleft> : "༼" U0F3C # TIBETAN MARK ANG KHANG GYON +<Multi_key> <Z> <parenright> : "༽" U0F3D # TIBETAN MARK ANG KHANG GYAS +# I'm thinking shape-mnemonics for these, somehow: +<Multi_key> <L> <bracketleft> : "⌊" U230A # LEFT FLOOR +<Multi_key> <L> <bracketright> : "⌋" U230B # RIGHT FLOOR +<Multi_key> <7> <bracketleft> : "⌈" U2308 # LEFT CEILING +<Multi_key> <7> <bracketright> : "⌉" U2309 # RIGHT CEILING +# These are actually quotes, hence the mnemonic. +<Multi_key> <7> <apostrophe> : "ï½¢" UFF62 # HALFWIDTH LEFT CORNER BRACKET +<Multi_key> <L> <apostrophe> : "ï½£" UFF63 # HALFWIDTH RIGHT CORNER BRACKET +<Multi_key> <7> <quotedbl> : "『" U300E # LEFT WHITE CORNER BRACKET +<Multi_key> <L> <quotedbl> : "ã€" U300F # RIGHT WHITE CORNER BRACKET +<Multi_key> <bracketleft> <bracketleft> : "âŠ" U228F # SQUARE IMAGE OF +<Multi_key> <bracketleft> <equal> : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO +<Multi_key> <bracketleft> <underscore> : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO +<Multi_key> <bracketright> <bracketright>: "âŠ" U2290 # SQUARE ORIGINAL OF +<Multi_key> <bracketright> <equal> : "⊒" U2292 # SQUARE ORIGINAL OF OR EQUAL TO +<Multi_key> <bracketright> <underscore> : "⊒" U2292 # SQUARE ORIGINAL OF OR EQUAL TO +# If I did more Haskell, I'd want this more: +<Multi_key> <underscore> <bar> <underscore>: "⊥" U22A5 # UP TACK (bottom) or should we use U27C2 PERPENDICULAR? +# Handy for UNIX filenames... but XXX conflicts with standard <Multi_key> <slash> <slash> → "\" +<Multi_key> <slash> <slash> : "â„" U2044 # FRACTION SLASH + +# The system file gives us subscript numbers, plus/minus, and parens. But +# there are letters missing. It would be nice to have at least a few of them. + +# block U+208x +<Multi_key> <underscore> <0> : "â‚€" U2080 # SUBSCRIPT ZERO +<Multi_key> <underscore> <1> : "â‚" U2081 # SUBSCRIPT ONE +<Multi_key> <underscore> <2> : "â‚‚" U2082 # SUBSCRIPT TWO +<Multi_key> <underscore> <3> : "₃" U2083 # SUBSCRIPT THREE +<Multi_key> <underscore> <4> : "â‚„" U2084 # SUBSCRIPT FOUR +<Multi_key> <underscore> <5> : "â‚…" U2085 # SUBSCRIPT FIVE +<Multi_key> <underscore> <6> : "₆" U2086 # SUBSCRIPT SIX +<Multi_key> <underscore> <7> : "₇" U2087 # SUBSCRIPT SEVEN +<Multi_key> <underscore> <8> : "₈" U2088 # SUBSCRIPT EIGHT +<Multi_key> <underscore> <9> : "₉" U2089 # SUBSCRIPT NONE +<Multi_key> <underscore> <plus> : "â‚Š" U208A # SUBSCRIPT PLUS +<Multi_key> <underscore> <minus> : "â‚‹" U208B # SUBSCRIPT MINUS +<Multi_key> <underscore> <equal> : "â‚Œ" U208C # SUBSCRIPT EQUALS SIGN +<Multi_key> <underscore> <parenleft> : "â‚" U208D # SUBSCRIPT LEFT PARENTHESIS +<Multi_key> <underscore> <parenright> : "â‚Ž" U208E # SUBSCRIPT RIGHT PARENTHESIS + +# block U+209x +<Multi_key> <underscore> <a> : "â‚" U2090 # LATIN SUBSCRIPT SMALL LETTER A +<Multi_key> <underscore> <e> : "â‚‘" U2091 # LATIN SUBSCRIPT SMALL LETTER E +<Multi_key> <underscore> <o> : "â‚’" U2092 # LATIN SUBSCRIPT SMALL LETTER O +<Multi_key> <underscore> <x> : "â‚“" U2093 # LATIN SUBSCRIPT SMALL LETTER X +<Multi_key> <underscore> <h> : "â‚•" U2095 # LATIN SUBSCRIPT SMALL LETTER H +<Multi_key> <underscore> <k> : "â‚–" U2096 # LATIN SUBSCRIPT SMALL LETTER K +<Multi_key> <underscore> <l> : "â‚—" U2097 # LATIN SUBSCRIPT SMALL LETTER L +<Multi_key> <underscore> <m> : "ₘ" U2098 # LATIN SUBSCRIPT SMALL LETTER M +<Multi_key> <underscore> <n> : "â‚™" U2099 # LATIN SUBSCRIPT SMALL LETTER N +<Multi_key> <underscore> <p> : "â‚š" U209A # LATIN SUBSCRIPT SMALL LETTER P +<Multi_key> <underscore> <s> : "â‚›" U209B # LATIN SUBSCRIPT SMALL LETTER S +<Multi_key> <underscore> <t> : "â‚œ" U209C # LATIN SUBSCRIPT SMALL LETTER T + +# subscripts in other blocks +<Multi_key> <underscore> <i> : "áµ¢" U1D62 # LATIN SUBSCRIPT SMALL LETTER I +<Multi_key> <underscore> <j> : "â±¼" U2C7C # LATIN SUBSCRIPT SMALL LETTER J + +# Custom additions: Greek letters. Mapping corresponds to Emacs Greek +# input method. Aristotle Pagaltzis informs me that this is the +# standard Greek keyboard layout, which is good. +<Multi_key> <asterisk> <a> : "α" U03B1 # GREEK SMALL LETTER ALPHA +<Multi_key> <asterisk> <b> : "β" U03B2 # GREEK SMALL LETTER BETA +<Multi_key> <asterisk> <c> : "ψ" U03C8 # GREEK SMALL LETTER PSI +<Multi_key> <asterisk> <d> : "δ" U03B4 # GREEK SMALL LETTER DELTA +<Multi_key> <asterisk> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON +<Multi_key> <asterisk> <f> : "φ" U03C6 # GREEK SMALL LETTER PHI +<Multi_key> <asterisk> <g> : "γ" U03B3 # GREEK SMALL LETTER GAMMA +<Multi_key> <asterisk> <h> : "η" U03B7 # GREEK SMALL LETTER ΕΤΑ +<Multi_key> <asterisk> <i> : "ι" U03B9 # GREEK SMALL LETTER ΙΟΤΑ +<Multi_key> <asterisk> <j> : "ξ" U03BE # GREEK SMALL LETTER XI +<Multi_key> <asterisk> <k> : "κ" U03BA # GREEK SMALL LETTER KAPPA +<Multi_key> <asterisk> <l> : "λ" U03BB # GREEK SMALL LETTER LAMBDA +<Multi_key> <asterisk> <m> : "μ" U03BC # GREEK SMALL LETTER MU +<Multi_key> <asterisk> <n> : "ν" U03BD # GREEK SMALL LETTER NU +<Multi_key> <asterisk> <o> : "ο" U03BF # GREEK SMALL LETTER OMICRON +<Multi_key> <asterisk> <p> : "Ï€" U03C0 # GREEK SMALL LETTER PI +# no mapping for q; in Emacs that's ";" +# U037E GREEK QUESTION MARK is canonically equivalent to U003B SEMICOLON. +<Multi_key> <asterisk> <r> : "Ï" U03C1 # GREEK SMALL LETTER RHO +<Multi_key> <asterisk> <s> : "σ" U03C3 # GREEK SMALL LETTER SIGMA +<Multi_key> <asterisk> <t> : "Ï„" U03C4 # GREEK SMALL LETTER TAU +<Multi_key> <asterisk> <u> : "θ" U03B8 # GREEK SMALL LETTER THETA +<Multi_key> <asterisk> <v> : "ω" U03C9 # GREEK SMALL LETTER OMEGA +<Multi_key> <asterisk> <w> : "Ï‚" U03C2 # GREEK SMALL LETTER FINAL SIGMA +<Multi_key> <asterisk> <x> : "χ" U03C7 # GREEK SMALL LETTER CHI +<Multi_key> <asterisk> <y> : "Ï…" U03C5 # GREEK SMALL LETTER UPSILON +<Multi_key> <asterisk> <z> : "ζ" U03B6 # GREEK SMALL LETTER ZETA + +# Capital greek letters. +<Multi_key> <asterisk> <A> : "Α" U0391 # GREEK CAPITAL LETTER ALPHA +<Multi_key> <asterisk> <B> : "Î’" U0392 # GREEK CAPITAL LETTER BETA +<Multi_key> <asterisk> <C> : "Ψ" U03A8 # GREEK CAPITAL LETTER PSI +<Multi_key> <asterisk> <D> : "Δ" U0394 # GREEK CAPITAL LETTER DELTA +<Multi_key> <asterisk> <E> : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON +<Multi_key> <asterisk> <F> : "Φ" U03A6 # GREEK CAPITAL LETTER PHI +<Multi_key> <asterisk> <G> : "Γ" U0393 # GREEK CAPITAL LETTER GAMMA +<Multi_key> <asterisk> <H> : "Η" U0397 # GREEK CAPITAL LETTER ΕΤΑ +<Multi_key> <asterisk> <I> : "Ι" U0399 # GREEK CAPITAL LETTER ΙΟΤΑ +<Multi_key> <asterisk> <J> : "Ξ" U039E # GREEK CAPITAL LETTER XI +<Multi_key> <asterisk> <K> : "Κ" U039A # GREEK CAPITAL LETTER KAPPA +<Multi_key> <asterisk> <L> : "Λ" U039B # GREEK CAPITAL LETTER LAMBDA +<Multi_key> <asterisk> <M> : "Îœ" U039C # GREEK CAPITAL LETTER MU +<Multi_key> <asterisk> <N> : "Î" U039D # GREEK CAPITAL LETTER NU +<Multi_key> <asterisk> <O> : "Ο" U039F # GREEK CAPITAL LETTER OMICRON +<Multi_key> <asterisk> <P> : "Π" U03A0 # GREEK CAPITAL LETTER PI +# see below for Q qoppa; in Emacs Q is “:†+<Multi_key> <asterisk> <R> : "Ρ" U03A1 # GREEK CAPITAL LETTER RHO +<Multi_key> <asterisk> <S> : "Σ" U03A3 # GREEK CAPITAL LETTER SIGMA +<Multi_key> <asterisk> <T> : "Τ" U03A4 # GREEK CAPITAL LETTER TAU +<Multi_key> <asterisk> <U> : "Θ" U0398 # GREEK CAPITAL LETTER THETA +<Multi_key> <asterisk> <V> : "Ω" U03A9 # GREEK CAPITAL LETTER OMEGA +# Emacs maps W to "Σ", but I think that’s stupid +# I think that's from the Greek keyboard. +<Multi_key> <asterisk> <X> : "Χ" U03A7 # GREEK CAPITAL LETTER CHI +<Multi_key> <asterisk> <Y> : "Î¥" U03A5 # GREEK CAPITAL LETTER UPSILON +<Multi_key> <asterisk> <Z> : "Ζ" U0396 # GREEK CAPITAL LETTER ZETA + +# Some archaic Greek. If we only wanted *normal* characters we wouldn't be +# doing this at all! +# "period" will indicate a sort of variant of some kind; asterisk is still the "greek" marker +# Reserving .f in case we want PHI SYMBOL. Digamma was "w" sound anyway. +<Multi_key> <asterisk> <period> <w> : "Ï" U03DD # GREEK SMALL LETTER DIGAMMA +<Multi_key> <asterisk> <period> <W> : "Ïœ" U03DC # GREEK CAPITAL LETTER DIGAMMA +<Multi_key> <asterisk> <Q> : "Ïž" U03DE # GREEK LETTER QOPPA +<Multi_key> <asterisk> <q> : "ÏŸ" U03DF # GREEK SMALL LETTER QOPPA +<Multi_key> <asterisk> <ampersand> : "Ï—" U03D7 # GREEK KAI SYMBOL +# Sorry, couldn't think of better ones for these. Might want .s for SAN. +<Multi_key> <asterisk> <question> : "Ïš" U03DA # GREEK LETTER STIGMA +<Multi_key> <asterisk> <slash> : "Ï›" U03DB # GREEK SMALL LETTER STIGMA +<Multi_key> <asterisk> <apostrophe> : "ʹ" U02B9 # MODIFIER LETTER PRIME, canonically equivalent to U0374 GREEK NUMERAL SIGN +# While we're at it... +<Multi_key> <asterisk> <comma> : "͵" U0375 # GREEK LOWER NUMERAL SIGN (for thousands) +# Do we want BETA SYMBOL, RHO SYMBOL, KAPPA SYMBOL, PHI SYMBOL, THETA SYMBOL? +# The format makes them obvious enough I guess. PI SYMBOL is different enough +# that there's no question, and it is separate from these. +<Multi_key> <asterisk> <period> <f> : "Ï•" U03D5 # GREEK PHI SYMBOL +<Multi_key> <asterisk> <period> <k> : "Ï°" U03F0 # GREEK KAPPA SYMBOL +<Multi_key> <asterisk> <period> <r> : "ϱ" U03F1 # GREEK RHO SYMBOL +<Multi_key> <asterisk> <period> <U> : "Ï´" U03F4 # GREEK CAPITAL THETA SYMBOL +<Multi_key> <asterisk> <period> <e> : "ϵ" U03F5 # GREEK LUNATE EPSILON SYMBOL +# Not doing the lunate sigmas and dotted versions thereof... What about SAN, which is at least a letter? +<Multi_key> <asterisk> <period> <s> : "Ï»" U03FB # GREEK SMALL LETTER SAN +<Multi_key> <asterisk> <period> <S> : "Ϻ" U03FA # GREEK CAPITAL LETTER SAN + +# If you wanted to actually type in Greek, you would also need άίέ +# etc. But you would probably just switch to a Greek keyboard layout. + +# Custom additions: fractions +<Multi_key> <1> <2> : "½" U00BD # VULGAR FRACTION ONE HALF +<Multi_key> <1> <3> : "â…“" U2153 # VULGAR FRACTION ONE THIRD +<Multi_key> <2> <3> : "â…”" U2154 # VULGAR FRACTION TWO THIRDS +# more extensive fractions from jsled +<Multi_key> <1> <5> : "â…•" U2155 # VULGAR FRACTION ONE FIFTH +<Multi_key> <2> <5> : "â…–" U2156 # VULGAR FRACTION TWO FIFTHS +<Multi_key> <3> <5> : "â…—" U2157 # VULGAR FRACTION THREE FIFTHS +<Multi_key> <4> <5> : "â…˜" U2158 # VULGAR FRACTION FOUR FIFTHS +<Multi_key> <1> <6> : "â…™" U2159 # VULGAR FRACTION ONE SIXTH +<Multi_key> <5> <6> : "â…š" U215A # VULGAR FRACTION FIVE SIXTHS +<Multi_key> <1> <8> : "â…›" U215B # VULGAR FRACTION ONE EIGHTH +<Multi_key> <3> <8> : "â…œ" U215C # VULGAR FRACTION THREE EIGHTHS +<Multi_key> <5> <8> : "â…" U215D # VULGAR FRACTION FIVE EIGHTHS +<Multi_key> <7> <8> : "â…ž" U215E # VULGAR FRACTION SEVEN EIGHTHS +<Multi_key> <1> <7> : "â…" U2150 # VULGAR FRACTION ONE SEVENTH +<Multi_key> <1> <9> : "â…‘" U2151 # VULGAR FRACTION ONE NINTH +<Multi_key> <1> <x> : "â…’" U2152 # VULGAR FRACTION ONE TENTH +<Multi_key> <0> <3> : "↉" U2189 # VULGAR FRACTION ZERO THIRDS +<Multi_key> <1> <slash> : "â…Ÿ" U215F # FRACTION NUMERATOR ONE + +# How about roman numerals? Percent for numerical mnemonic? +# Does this go against the spirit of this file? These symbols are accessible +# as regular letters and would look okay. Maybe only for I-X? +<Multi_key> <percent> <1> : "â…°" U2170 # SMALL ROMAN NUMERAL ONE +<Multi_key> <percent> <2> : "â…±" U2171 # SMALL ROMAN NUMERAL TWO +<Multi_key> <percent> <3> : "â…²" U2172 # SMALL ROMAN NUMERAL THREE +<Multi_key> <percent> <4> : "â…³" U2173 # SMALL ROMAN NUMERAL FOUR +<Multi_key> <percent> <5> : "â…´" U2174 # SMALL ROMAN NUMERAL FIVE +<Multi_key> <percent> <6> : "â…µ" U2175 # SMALL ROMAN NUMERAL SIX +<Multi_key> <percent> <7> : "â…¶" U2176 # SMALL ROMAN NUMERAL SEVEN +<Multi_key> <percent> <8> : "â…·" U2177 # SMALL ROMAN NUMERAL EIGHT +<Multi_key> <percent> <9> : "â…¸" U2178 # SMALL ROMAN NUMERAL NINE +<Multi_key> <percent> <x> : "â…¹" U2179 # SMALL ROMAN NUMERAL TEN +# How do we handle eleven and twelve? +<Multi_key> <percent> <underscore> <1> : "â…º" U217A # SMALL ROMAN NUMERAL ELEVEN +<Multi_key> <percent> <underscore> <2> : "â…»" U217B # SMALL ROMAN NUMERAL TWELVE +# That okay? +<Multi_key> <percent> <l> : "â…¼" U217C # SMALL ROMAN NUMERAL FIFTY +<Multi_key> <percent> <c> : "â…½" U217D # SMALL ROMAN NUMERAL ONE HUNDRED +<Multi_key> <percent> <d> : "â…¾" U217E # SMALL ROMAN NUMERAL FIVE HUNDRED +<Multi_key> <percent> <m> : "â…¿" U217F # SMALL ROMAN NUMERAL ONE THOUSAND +### +<Multi_key> <percent> <0> <1> : "â… " U2160 # ROMAN NUMERAL ONE +<Multi_key> <percent> <0> <2> : "â…¡" U2161 # ROMAN NUMERAL TWO +<Multi_key> <percent> <0> <3> : "â…¢" U2162 # ROMAN NUMERAL THREE +<Multi_key> <percent> <0> <4> : "â…£" U2163 # ROMAN NUMERAL FOUR +<Multi_key> <percent> <0> <5> : "â…¤" U2164 # ROMAN NUMERAL FIVE +<Multi_key> <percent> <0> <6> : "â…¥" U2165 # ROMAN NUMERAL SIX +<Multi_key> <percent> <0> <7> : "â…¦" U2166 # ROMAN NUMERAL SEVEN +<Multi_key> <percent> <0> <8> : "â…§" U2167 # ROMAN NUMERAL EIGHT +<Multi_key> <percent> <0> <9> : "â…¨" U2168 # ROMAN NUMERAL NINE +<Multi_key> <percent> <0> <x> : "â…©" U2169 # ROMAN NUMERAL TEN +# How do we handle eleven and twelve? +<Multi_key> <percent> <underscore> <0> <1> : "â…ª" U216A # ROMAN NUMERAL ELEVEL +<Multi_key> <percent> <underscore> <0> <2> : "â…«" U216B # ROMAN NUMERAL TWELVE +<Multi_key> <percent> <0> <l> : "â…¬" U216C # ROMAN NUMERAL FIFTY +<Multi_key> <percent> <0> <c> : "â…­" U216D # ROMAN NUMERAL ONE HUNDRED +<Multi_key> <percent> <0> <d> : "â…®" U216E # ROMAN NUMERAL FIVE HUNDRED +<Multi_key> <percent> <0> <m> : "â…¯" U216F # ROMAN NUMERAL ONE THOUSAND +<Multi_key> <percent> <X> : "â…©" U2169 # ROMAN NUMERAL TEN +<Multi_key> <percent> <L> : "â…¬" U216C # ROMAN NUMERAL FIFTY +<Multi_key> <percent> <C> : "â…­" U216D # ROMAN NUMERAL ONE HUNDRED +<Multi_key> <percent> <D> : "â…®" U216E # ROMAN NUMERAL FIVE HUNDRED +<Multi_key> <percent> <M> : "â…¯" U216F # ROMAN NUMERAL ONE THOUSAND +<Multi_key> <percent> <0> <C> <D> : "ↀ" U2180 # ROMAN NUMERAL ONE THOUSAND C D +<Multi_key> <percent> <0> <D> : "â†" U2181 # ROMAN NUMERAL FIVE THOUSAND +<Multi_key> <percent> <0> <M> : "ↂ" U2182 # ROMAN NUMERAL TEN THOUSAND +<Multi_key> <percent> <0> <0> <D> : "ↇ" U2187 # ROMAN NUMERAL FIFTY THOUSAND +<Multi_key> <percent> <0> <0> <M> : "ↈ" U2188 # ROMAN NUMERAL ONE HUNDRED THOUSAND + + +# Custom additions: for chat (kragen) +<Multi_key> <parenleft> <colon> : "☻" U263B # BLACK SMILING FACE +<Multi_key> <colon> <parenright> : "☺" U263A # WHITE SMILING FACE +<Multi_key> <colon> <parenleft> : "☹" U2639 # WHITE FROWNING FACE +<Multi_key> <colon> <asciitilde> : "â¨" U2368 # APL FUNCTIONAL SYMBOL TILDE DIAERESIS +<Multi_key> <colon> <bar> : "⸚" U2E1A # HYPHEN WITH DIAERESIS +<Multi_key> <colon> <o> <o> <parenright> : "°͜°" # Funny smiley-face. +# Those are archaic cyrilic letters... but look so _perfect_ for use +# in chat. And about the last, the "multiocular O"... Well, I don't +# know what it can be used for, but given the description, how could I +# leave it out‽ +# (I guess using U+1F440 EYES would be more straightforward, but not as funny?) +<Multi_key> <O> <period> <O> : "Ꙭ" UA66C # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O * used in the dual of words based on the root for 'eye' +<Multi_key> <o> <period> <o> : "ê™­" UA66D # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +<Multi_key> <O> <colon> : "Ꙫ" UA66A # CYRILLIC CAPITAL LETTER BINOCULAR O * used in the dual of words based on the root for 'eye' +<Multi_key> <o> <colon> : "ꙫ" UA66B # CYRILLIC SMALL LETTER BINOCULAR O +# <Multi_key> <o> <plus> : "ê™®" UA66E # CYRILLIC LETTER MULTIOCULAR O * used in the epithet 'many-eyed' +# While we're doing stacks of circles with dots. +<Multi_key> <o> <3> : "ß·" U07F7 # NKO SYMBOL GBAKURUNEN +<Multi_key> <exclam> <question> : "‽" U203D # INTERROBANG +<Multi_key> <question> <exclam> : "⸘" U2E18 # INVERTED INTERROBANG, standard now. +<Multi_key> <questiondown> <exclamdown> : "⸘" U2E18 # INVERTED INTERROBANG (if you have a ¡ key. Otherwise...? "?i" maybe? +<Multi_key> <exclamdown> <questiondown> : "⸘" U2E18 # INVERTED INTERROBANG (if you have a ¡ key. Otherwise...? "?i" maybe? +<Multi_key> <question> <less> : "⸮" U2E2E # REVERSED QUESTION MARK +<Multi_key> <question> <BackSpace> : "⸮" U2E2E # REVERSED QUESTION MARK +<Multi_key> <question> <ampersand> <question> : "â‡" U2047 # DOUBLE QUESTION MARK +<Multi_key> <2> <question> : "â‡" U2047 # DOUBLE QUESTION MARK +<Multi_key> <question> <ampersand> <exclam> : "âˆ" U2048 # QUESTION EXCLAMATION MARK +<Multi_key> <exclam> <ampersand> <question> : "â‰" U2049 # EXCLAMATION QUESTION MARK +<Multi_key> <exclam> <ampersand> <exclam> : "‼" U203C # DOUBLE EXCLAMATION MARK +<Multi_key> <2> <exclam> : "‼" U203C # DOUBLE EXCLAMATION MARK +<Multi_key> <2> <colon> : "∷" U2237 # PROPORTION -- not strictly 2 times COLON +<Multi_key> <semicolon> <less> : "â" U204F # REVERSED SEMICOLON +<Multi_key> <semicolon> <BackSpace> : "â" U204F # REVERSED SEMICOLON +# Keep looking into big hunks of Latin Extended-D, A720- et seq. +<Multi_key> <less> <3> : "♥" U2665 # BLACK HEART SUIT +<Multi_key> <3> <3> : "♣" U2663 # BLACK CLUB SUIT +<Multi_key> <o> <8> : "♣" U2663 # BLACK CLUB SUIT +<Multi_key> <c> <3> : "♣" U2663 # BLACK CLUB SUIT +<Multi_key> <less> <greater> : "♢" U2662 # WHITE DIAMOND SUIT +<Multi_key> <3> <minus> : "â™ " U2660 # BLACK SPADE SUIT +<Multi_key> <less> <braceright> : "â™ " U2660 # BLACK SPADE SUIT +<Multi_key> <E> <greater> : "♡" U2661 # WHITE HEART SUIT +# "shamrock" is too long; there IS a limit to these! +<Multi_key> <s> <h> <m> <r> <c> <k> : "☘" U2618 # SHAMROCK +<Multi_key> <s> <h> <a> <m> <r> <o> : "☘" U2618 # SHAMROCK +<Multi_key> <p> <c> : "☮" U262E # PEACE SYMBOL +<Multi_key> <p> <e> <a> <c> <e> : "☮" U262E # PEACE SYMBOL +<Multi_key> <y> <y> : "☯" U262F # YIN YANG +<Multi_key> <y> <i> <n> <y> <a> <n> : "☯" U262F # YIN YANG +# And now that we are into hearts... +<Multi_key> <Left> <less> <3> : "â¥" U2765 # ROTATED HEAVY BLACK HEART BULLET +<Multi_key> <exclam> <less> <3> : "â£" U2763 # HEAVY HEART EXCLAMATION MARK ORNAMENT +<Multi_key> <f> <less> <3> : "â¦" U2766 # FLORAL HEART +<Multi_key> <Left> <f> <less> <3> : "â§" U2767 # ROTATED FLORAL HEART BULLET +<Multi_key> <Right> <f> <less> <3> : "☙" U2619 # REVERSED ROTATED FLORAL HEART BULLET +<Multi_key> <t> <e> <l> : "☎" U260E # BLACK TELEPHONE +<Multi_key> <t> <e> <a> : "☕" U2615 # HOT BEVERAGE +# These last two bother me less, though they can still be improved. +# Other possibly useful symbols: +# 2668 HOT SPRINGS (for chat, for running off to shower?) +# I want 2713-2714 and 2717-2718 +# We need a Dingbats prefix, for â›âœââžâ¢ +<Multi_key> <bracketleft> <space> <bracketright> : "â˜" U2610 # BALLOT BOX +# Better keystrokes anyone? This one breaks the pattern. [c]? [v]? [y]? [/]? +<Multi_key> <c> <h> <k> : "☑" U2611 # BALLOT BOX WITH CHECK +<Multi_key> <bracketleft> <slash> <bracketright> : "☑" U2611 # BALLOT BOX WITH CHECK +<Multi_key> <bracketleft> <x> <bracketright> : "☒" U2612 # BALLOT BOX WITH X +# @ for dingbats? +<Multi_key> <at> <slash> : "✓" U2713 # CHECK MARK +<Multi_key> <at> <at> <slash> : "✔" U2714 # HEAVY CHECK MARK +<Multi_key> <at> <X> : "✗" U2717 # BALLOT X +<Multi_key> <at> <at> <X> : "✘" U2718 # HEAVY BALLOT X +# Will I want <at> <at> for something else? +# Now there is such a thing as text style and emoji style. Use the +# "dingbat prefix" in an unusual way: +<Multi_key> <at> <Multi_key> : "ï¸" UFE0F # Emoji selector +<Multi_key> <exclam> <Multi_key> : "︎" UFE0E # Text selector +# How about dice? +<Multi_key> <bracketleft> <1> <bracketright> : "⚀" U2680 # DIE FACE-1 +<Multi_key> <bracketleft> <2> <bracketright> : "âš" U2681 # DIE FACE-2 +<Multi_key> <bracketleft> <3> <bracketright> : "âš‚" U2682 # DIE FACE-3 +<Multi_key> <bracketleft> <4> <bracketright> : "⚃" U2683 # DIE FACE-4 +<Multi_key> <bracketleft> <5> <bracketright> : "âš„" U2684 # DIE FACE-5 +<Multi_key> <bracketleft> <6> <bracketright> : "âš…" U2685 # DIE FACE-6 +# 267B BLACK UNIVERSAL RECYCLING SYMBOL +# Keystrokes okay? +<Multi_key> <f> <d> <l> : "âšœ" U269C # FLEUR-DE-LIS +<Multi_key> <a> <t> <o> <m> : "âš›" U269B # ATOM SYMBOL +<Multi_key> <c> <c> <c> <p> : "☭" U262D # HAMMER AND SICKLE +<Multi_key> <slash> <exclam> <backslash> : "âš " U26A0 # WARNING SIGN +<Multi_key> <exclam> <asciicircum> : "âš " U26A0 # WARNING SIGN +<Multi_key> <z> <a> <p> : "âš¡" U26A1 # HIGH VOLTAGE SIGN +# Shouldn't use just <r><a> because it's too likely to be a prefix for +# a useful word. +<Multi_key> <r> <a> <d> : "☢" U2622 # RADIOACTIVE SIGN +<Multi_key> <b> <h> : "☣" U2623 # BIOHAZARD SIGN +<Multi_key> <b> <i> <o> <h> <a> <z> : "☣" U2623 # BIOHAZARD SIGN +# Changing this from âš +<Multi_key> <p> <l> <a> <n> <e> : "✈" U2708 # AIRPLANE +<Multi_key> <m> <a> <i> <l> : "✉" U2709 # ENVELOPE +<Multi_key> <w> <h> <l> <c> <h> : "♿" U267F # WHEELCHAIR SYMBOL +<Multi_key> <m> <e> <d> : "☤" U2624 # CADEUCEUS +# Something different for STAFF OF AESCULAPIUS? +<Multi_key> <1> <m> <e> <d> : "âš•" U2695 # STAFF OF AESCULAPIUS +# 26B0 COFFIN ? +# One of the SNOWFLAKEs? +# SNOWMAN? COMET? ANCHOR? +# Maybe if we go with having a "word" symbol and spelling out lots and +# lots of whole words, we can have all the planets. +# +# I already have STAR OF DAVID on another map. +# 231A, 231B -- WATCH and HOURGLASS -- one should be &-w-a-i-t +# 23D4 METRICAL LONG OVER TWO SHORTS a.k.a. METRICAL BOOBS +# 0950 DEVANAGARI OM? +# 212E ESTIMATED SYMBOL? +# 2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS a.k.a. NOT AMUSED +# 237E BELL SYMBOL a.k.a. ALIENS LANDING + +# <Multi_key> <o> <minus> <plus> : "♀" U2640 # FEMALE SIGN +# <Multi_key> <o> <minus> <greater> : "♂" U2642 # MALE SIGN + +<Multi_key> <O> <X>: "☠" U2620 # SKULL AND CROSSBONES +<Multi_key> <d> <e> <a> <t> <h>: "☠" U2620 # SKULL AND CROSSBONES +<Multi_key> <X> <b> <o> <n> <e> <s>: "☠" U2620 # SKULL AND CROSSBONES +<Multi_key> <k> <b> <d> : "⌨" U2328 # KEYBOARD +<Multi_key> <r> <h> <a> <n> <d> : "☞" U261E # WHITE RIGHT POINTING INDEX +<Multi_key> <l> <h> <a> <n> <d> : "☜" U261C # WHITE LEFT POINTING INDEX +<Multi_key> <asterisk> <asterisk> :"★" U2605 # BLACK STAR +<Multi_key> <asterisk> <0> :"☆" U2606 # WHITE STAR +<Multi_key> <asterisk> <minus> :"✪" U272A # CIRCLED WHITE STAR +<Multi_key> <asterisk> <3> :"â‚" U2042 # ASTERISM +<Multi_key> <3> <asterisk> :"â‚" U2042 # ASTERISM +<Multi_key> <2> <asterisk> :"â‘" U2051 # TWO ASTERISKS ALIGNED VERTICALLY +<Multi_key> <asterisk> <4> :"✢" U2722 # FOUR TEARDROP-SPOKED ASTERISK +<Multi_key> <asterisk> <6> :"✡" U2721 # STAR OF DAVID +<Multi_key> <asterisk> <numbersign> :"✯" U272F # PINWHEEL STAR +<Multi_key> <asterisk> <exclam> :"✱" U2731 # HEAVY ASTERISK +<Multi_key> <less> <X> <greater> : "â–" U2756 # BLACK DIAMOND MINUS WHITE X +<Multi_key> <at> <numbersign> : "⌘" U2318 # PLACE OF INTEREST SIGN +# Using backslash-minus-slash etc. conflicts with combining accents. +<Multi_key> <grave> <minus> <apostrophe> : "âšž" U269E # THREE LINES CONVERGING RIGHT +<Multi_key> <apostrophe> <minus> <grave> : "⚟" U269F # THREE LINES CONVERGING LEFT +#<Multi_key> <B> <e> <l> <l> <s> <y> <m> : "â¾" U237E # BELL SYMBOL (or ALIENS LANDING) -- &-a-l-i-e-n ? +# Other monstery characters... ѪꙚ (alien abductions?) +# à¶àµ à´‹ & others from Kannada et al...? +# Can't use -^- for this; conflicts with -^ for ↑, and getting those arrows +# workable was complicated enough. How about this? +<Multi_key> <underscore> <asciicircum> <underscore> : "⌤" U2324 # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS; aka ENTER KEY, aka NOT AMUSED. +<Multi_key> <w> <a> <i> <t> : "⌛" U231B # HOURGLASS +<Multi_key> <h> <o> <u> <r> : "⌛" U231B # HOURGLASS +<Multi_key> <t> <i> <m> <e> : "⌚" U231A # WATCH +<Multi_key> <w> <a> <t> <c> <h> : "⌚" U231A # WATCH +<Multi_key> <space> <N> : " " U2002 # EN SPACE +<Multi_key> <space> <M> : " " U2003 # EM SPACE +<Multi_key> <space> <3> <M> : " " U2004 # THREE-PER-EM SPACE +<Multi_key> <space> <4> <M> : " " U2005 # FOUR-PER-EM SPACE +<Multi_key> <parenleft> <parenright>: "â—Œ" U25CC # DOTTED CIRCLE +<Multi_key> <bracketleft> <bracketright>: "⬚" U2B1A # DOTTED SQUARE +<Multi_key> <asterisk> <parenleft> : "ï´¾" UFD3E # ORNATE LEFT PARENTHESIS +<Multi_key> <asterisk> <parenright> : "ï´¿" UFD3F # ORNATE RIGHT PARENTHESIS +<Multi_key> <k> <s> : "ʘ" U0298 # LATIN LETTER BILABIAL CLICK (kiss sound) +<Multi_key> <bar> <greater> : "‣" U2023 # TRIANGULAR BULLET +#SUPERSCRIPTS: +#To avoid namespace clashes, <asciicircum> is doubled (will I regret that?) +<Multi_key> <asciicircum> <asciicircum> <h> : "Ê°" U02B0 # SUPERSCRIPT H +<Multi_key> <asciicircum> <asciicircum> <i> : "â±" U2071 # SUPERSCRIPT I +<Multi_key> <asciicircum> <asciicircum> <j> : "ʲ" U02B2 # SUPERSCRIPT J +<Multi_key> <asciicircum> <asciicircum> <n> : "â¿" U207F # SUPERSCRIPT N +<Multi_key> <asciicircum> <asciicircum> <r> : "ʳ" U02B3 # SUPERSCRIPT R +<Multi_key> <asciicircum> <asciicircum> <w> : "Ê·" U02B7 # SUPERSCRIPT W +<Multi_key> <asciicircum> <asciicircum> <y> : "ʸ" U02B8 # SUPERSCRIPT Y +# So I can use yáµ—/þᵗ and yᵉ/þᵉ +<Multi_key> <asciicircum> <asciicircum> <e> : "ᵉ" U1D49 # MODIFIER LETTER SMALL E +<Multi_key> <asciicircum> <asciicircum> <t> : "áµ—" U1D57 # MODIFIER LETTER SMALL T +# Abbreviation for "that": +<Multi_key> <U00FE> <t> : "ê¥" UA765 # LATIN SMALL LETTER THORN WITH STROKE +#Maybe add: Ë€Ë˃˂ Need to be able to talk about Ê”Ë... +<Multi_key> <asciicircum> <question> <period> : "Ë€" U02C0 # MODIFIER LETTER GLOTTAL STOP +<Multi_key> <asciicircum> <question> <parenleft> : "Ë" U02C1 # MODIFIER LETTER REVERSED GLOTTAL STOP +<Multi_key> <asciicircum> <minus> : "â»" U207B # SUPERSCRIPT MINUS +<Multi_key> <asciicircum> <plus> : "âº" U207A # SUPERSCRIPT PLUS + +<Multi_key> <asciitilde> <asciitilde> : "≈" U2248 # ALMOST EQUAL TO +<Multi_key> <s> <h> : "ʃ" U0283 # LATIN SMALL LETTER ESH +<Multi_key> <z> <h> : "Ê’" U0292 # LATIN SMALL LETTER EZH +<Multi_key> <l> <h> : "ɬ" U026C # LATIN SMALL LETTER L WITH BELT +<Multi_key> <l> <3> : "É®" U026E # LATIN SMALL LETTER LEZH +<Multi_key> <y> <g> : "È" U021D # LATIN SMALL LETTER YOGH +<Multi_key> <Y> <G> : "Èœ" U021C # LATIN CAPITAL LETTER YOGH +<Multi_key> <question> <period> : "Ê”" U0294 # LATIN LETTER GLOTTAL STOP +<Multi_key> <question> <parenleft> : "Ê•" U0295 # LATIN LETTER PHARYNGEAL VOICED FRICATIVE +# Not great keystrokes... +<Multi_key> <question> <v> : "Ê–" U0296 # LATIN LETTER INVERTED GLOTTAL STOP +<Multi_key> <question> <minus> : "Ê¡" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE +<Multi_key> <question> <braceleft> : "Ê¢" U02A2 # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE +# How about ɸ? φ isn’t the IPA glyph. +<Multi_key> <f> <comma> : "Æ’" U0192 # LATIN SMALL LETTER F WITH HOOK + +# Music stuff. # is the music mnemonic. +<Multi_key> <numbersign> <b> : "â™­" U266d # MUSIC FLAT SIGN +<Multi_key> <numbersign> <f> : "â™®" U266e # MUSIC NATURAL SIGN +<Multi_key> <numbersign> <equal> : "â™®" U266e # MUSIC NATURAL SIGN +<Multi_key> <numbersign> <numbersign> : "♯" U266f # MUSIC SHARP SIGN +<Multi_key> <numbersign> <G> : "ð„ž" U0001d11e # MUSICAL SYMBOL G CLEF +<Multi_key> <numbersign> <F> : "ð„¢" U0001d122 # MUSICAL SYMBOL F CLEF +<Multi_key> <numbersign> <C> : "ð„¡" U0001d121 # MUSICAL SYMBOL C CLEF +<Multi_key> <numbersign> <o> <slash> : "♪" U266a # EIGHTH NOTE +<Multi_key> <numbersign> <o> <o> : "♫" U266b # BEAMED EIGHTH NOTES +<Multi_key> <numbersign> <percent> : "♫" U266b # BEAMED EIGHTH NOTES + +# Combining accents, for making things you don't have precomposed chars or keystrokes for: +<Multi_key> <backslash> <grave> : "Ì€" U0300 # COMBINING GRAVE ACCENT +<Multi_key> <backslash> <apostrophe> : "Ì" U0301 # COMBINING ACUTE ACCENT +<Multi_key> <backslash> <asciicircum> : "Ì‚" U0302 # COMBINING CIRCUMFLEX ACCENT +<Multi_key> <backslash> <asciitilde> : "̃" U0303 # COMBINING TILDE +<Multi_key> <backslash> <equal> : "Ì„" U0304 # COMBINING MACRON +<Multi_key> <backslash> <backslash> <equal> : "Ì…" U0305 # COMBINING OVERLINE -- ??? +<Multi_key> <backslash> <U> : "̆" U0306 # COMBINING BREVE +<Multi_key> <backslash> <period> : "̇" U0307 # COMBINING DOT ABOVE +<Multi_key> <backslash> <quotedbl> : "̈" U0308 # COMBINING DIAERESIS +<Multi_key> <backslash> <question> : "̉" U0309 # COMBINING HOOK ABOVE +<Multi_key> <backslash> <o> : "ÌŠ" U030a # COMBINING RING ABOVE +# That now conflicts with the new 🙌 in the system xcompose. Alternative: +<Multi_key> <backslash> <0> : "ÌŠ" U030a # COMBINING RING ABOVE +<Multi_key> <backslash> <backslash> <apostrophe> : "Ì‹" U030b # COMBINING DOUBLE ACUTE ACCENT -- ?? +<Multi_key> <backslash> <c> : "ÌŒ" U030c # COMBINING CARON +<Multi_key> <backslash> <bar> : "Ì" U030d # COMBINING VERTICAL LINE ABOVE +<Multi_key> <backslash> <2> <bar> : "ÌŽ" U030e # COMBINING DOUBLE VERTICAL LINE ABOVE +<Multi_key> <backslash> <2> <grave> : "Ì" U030f # COMBINING DOUBLE GRAVE ACCENT +# For writing PSILI and DASIA in Greek +# Ugh, better key-coding? I may need @ for BELOW. +<Multi_key> <backslash> <backslash> <backslash> <comma> : "Ì’" U0312 # COMBINING TURNED COMMA ABOVE +<Multi_key> <backslash> <backslash> <comma> : "Ì“" U0313 # COMBINING COMMA ABOVE +<Multi_key> <backslash> <backslash> <less> <comma> : "Ì”" U0314 # COMBINING REVERSED COMMA ABOVE +<Multi_key> <backslash> <f> <m> : "Í’" U0352 # COMBINING FERMATA +<Multi_key> <backslash> <parenleft> <period> : "Ì" U0310 # COMBINING CHANDRABINDU +<Multi_key> <backslash> <i> <b> : "Ì‘" U0311 # COMBINING INVERTED BREVE -- ?? +<Multi_key> <backslash> <parenleft> <parenright>: "âƒ" U20DD # COMBINING ENCLOSING CIRCLE +<Multi_key> <backslash> <parenleft> <slash> <parenright>: "⃠" U20E0 # COMBINING ENCLOSING CIRCLE BACKSLASH +<Multi_key> <backslash> <exclam> : "Ì£" U0323 # COMBINING DOT BELOW +# With only one underscore it conflicts with stuff. +<Multi_key> <backslash> <underscore> <underscore> : "̱" U0331 # COMBINING MACRON BELOW +<Multi_key> <backslash> <backslash> <underscore> : "̲" U0332 # COMBINING LOW LINE +<Multi_key> <backslash> <backslash> <backslash> <underscore> : "̳" U0333 # COMBINING DOUBLE LOW LINE + +# The @ sign will signify reversal to the bottom of the glyph, 'kay? + +<Multi_key> <backslash> <at> <o> : "Ì¥" U0325 # COMBINING RING BELOW + +<Multi_key> <backslash> <at> <c> : "̬" U032c # COMBINING CARON BELOW +<Multi_key> <backslash> <at> <asciicircum> : "Ì­" U032d # COMBINING CIRCUMFLEX ACCENT BELOW +<Multi_key> <backslash> <at> <U> : "Ì®" U032e # COMBINING BREVE BELOW +<Multi_key> <backslash> <at> <i> <b> : "̯" U032f # COMBINING INVERTED BREVE BELOW -- ?? + +# How about leading & (or &&?) for double combiners? There aren't many anyway. +# Except that I found myself assuming it was "2" for double. +<Multi_key> <backslash> <ampersand> <at> <U> : "Íœ" U035C # COMBINING DOUBLE BREVE BELOW +<Multi_key> <backslash> <2> <at> <U> : "Íœ" U035C # COMBINING DOUBLE BREVE BELOW +<Multi_key> <backslash> <ampersand> <U> : "Í" U035D # COMBINING DOUBLE BREVE +<Multi_key> <backslash> <2> <U> : "Í" U035D # COMBINING DOUBLE BREVE +<Multi_key> <backslash> <ampersand> <minus> : "Íž" U035E # COMBINING DOUBLE MACRON +<Multi_key> <backslash> <2> <minus> : "Íž" U035E # COMBINING DOUBLE MACRON +<Multi_key> <backslash> <ampersand> <at> <minus> : "ÍŸ" U035F # COMBINING DOUBLE MACRON BELOW +<Multi_key> <backslash> <2> <at> <minus> : "ÍŸ" U035F # COMBINING DOUBLE MACRON BELOW +<Multi_key> <backslash> <ampersand> <underscore> : "ÍŸ" U035F # COMBINING DOUBLE MACRON BELOW +<Multi_key> <backslash> <2> <underscore> : "ÍŸ" U035F # COMBINING DOUBLE MACRON BELOW +<Multi_key> <backslash> <ampersand> <asciitilde> : "Í " U0360 # COMBINING DOUBLE TILDE +<Multi_key> <backslash> <2> <asciitilde> : "Í " U0360 # COMBINING DOUBLE TILDE +<Multi_key> <backslash> <ampersand> <i> <b> : "Í¡" U0361 # COMBINING DOUBLE INVERTED BREVE +<Multi_key> <backslash> <2> <i> <b> : "Í¡" U0361 # COMBINING DOUBLE INVERTED BREVE +<Multi_key> <backslash> <ampersand> <at> <i> <b> : "á·¼" U1DFC # COMBINING DOUBLE INVERTED BREVE BELOW +<Multi_key> <backslash> <2> <at> <i> <b> : "á·¼" U1DFC # COMBINING DOUBLE INVERTED BREVE BELOW +# Might as well finish up the set. +<Multi_key> <backslash> <ampersand> <greater> : "Í¢" U0362 # COMBINING DOUBLE RIGHTWARDS ARROW BELOW +<Multi_key> <backslash> <2> <greater> : "Í¢" U0362 # COMBINING DOUBLE RIGHTWARDS ARROW BELOW + +<Multi_key> <period> <parenright> : "Í’" U0352 # COMBINING FERMATA + +<Multi_key> <backslash> <asterisk> : "Ò‰" U0489 # COMBINING CYRILLIC MILLIONS SIGN -- aka COMBINING SHINY +<Multi_key> <P> <minus> : "₽" U20BD # RUBLE SIGN +<Multi_key> <p> <minus> : "₽" U20BD # RUBLE SIGN + +# How about for a little extra control: +<Multi_key> <Z> <W> <S> <P> : "​" U200B # ZERO WIDTH SPACE +<Multi_key> <Z> <W> <N> <J> : "‌" U200C # ZERO WIDTH NON-JOINER +<Multi_key> <Z> <W> <J> : "â€" U200D # ZERO WIDTH JOINER +<Multi_key> <L> <R> <M> : "‎" U200E # LEFT-TO-RIGHT MARK +<Multi_key> <R> <L> <M> : "â€" U200F # RIGHT-TO-LEFT MARK +# I never understood the whole embedding/pop thing, but we might as well add 'em +<Multi_key> <L> <R> <E> : "‪" U202A # LEFT-TO-RIGHT EMBEDDING +<Multi_key> <R> <L> <E> : "‫" U202B # RIGHT-TO-LEFT EMBEDDING +<Multi_key> <P> <D> <F> : "‬" U202C # POP DIRECTIONAL FORMATTING +<Multi_key> <L> <R> <I> : "â¦" U2066 # LEFT-TO-RIGHT ISOLATE +<Multi_key> <R> <L> <I> : "â§" U2067 # RIGHT-TO-LEFT ISOLATE +<Multi_key> <F> <S> <I> : "â¨" U2068 # FIRST STRONG ISOLATE +<Multi_key> <P> <D> <I> : "â©" U2069 # POP DIRECTIONAL ISOLATE +<Multi_key> <L> <R> <O> : "‭" U202D # LEFT-TO-RIGHT OVERRIDE +<Multi_key> <R> <L> <O> : "‮" U202E # RIGHT-TO-LEFT OVERRIDE +<Multi_key> <B> <O> <M> : "" UFEFF # ZERO WIDTH NO-BREAK SPACE (Byte Order Mark) +<Multi_key> <C> <G> <J> : "Í" U034F # COMBINING GRAPHEME JOINER +# These are sufficiently special and well-known that they don't need the +# double <Multi_key> prefix I think. The all-caps helps too. + +# How about some small-caps? We normally use a special character as a prefix, +# but why not a suffix? It won't interfere with things that way. +# Several of these are also IPA, which is handy. And so a few have multiple +# entries. Whatever. + +<Multi_key> <a> <grave> : "á´€" U1D00 # LATIN LETTER SMALL CAPITAL A +<Multi_key> <b> <grave> : "Ê™" U0299 # LATIN LETTER SMALL CAPITAL B +<Multi_key> <c> <grave> : "á´„" U1D04 # LATIN LETTER SMALL CAPITAL C +<Multi_key> <d> <grave> : "á´…" U1D05 # LATIN LETTER SMALL CAPITAL D +<Multi_key> <e> <grave> : "á´‡" U1D07 # LATIN LETTER SMALL CAPITAL E +<Multi_key> <f> <grave> : "ꜰ" UA730 # LATIN LETTER SMALL CAPITAL F +<Multi_key> <g> <grave> : "É¢" U0262 # LATIN LETTER SMALL CAPITAL G +<Multi_key> <h> <grave> : "Êœ" U029C # LATIN LETTER SMALL CAPITAL H +<Multi_key> <i> <grave> : "ɪ" U026A # LATIN LETTER SMALL CAPITAL I +<Multi_key> <j> <grave> : "á´Š" U1D0A # LATIN LETTER SMALL CAPITAL J +<Multi_key> <k> <grave> : "á´‹" U1D0B # LATIN LETTER SMALL CAPITAL K +<Multi_key> <l> <grave> : "ÊŸ" U029F # LATIN LETTER SMALL CAPITAL L +<Multi_key> <m> <grave> : "á´" U1D0D # LATIN LETTER SMALL CAPITAL M +<Multi_key> <n> <grave> : "É´" U0274 # LATIN LETTER SMALL CAPITAL N +<Multi_key> <o> <grave> : "á´" U1D0F # LATIN LETTER SMALL CAPITAL O +<Multi_key> <p> <grave> : "á´˜" U1D18 # LATIN LETTER SMALL CAPITAL P +# There is no SMALL CAPITAL Q (yet)! +<Multi_key> <r> <grave> : "Ê€" U0280 # LATIN LETTER SMALL CAPITAL R +<Multi_key> <s> <grave> : "ꜱ" UA731 # LATIN LETTER SMALL CAPITAL S +<Multi_key> <t> <grave> : "á´›" U1D1B # LATIN LETTER SMALL CAPITAL T +<Multi_key> <u> <grave> : "á´œ" U1D1C # LATIN LETTER SMALL CAPITAL U +<Multi_key> <v> <grave> : "á´ " U1D20 # LATIN LETTER SMALL CAPITAL V +<Multi_key> <w> <grave> : "á´¡" U1D21 # LATIN LETTER SMALL CAPITAL W +# There is no SMALL CAPITAL X (yet) +<Multi_key> <y> <grave> : "Ê" U028F # LATIN LETTER SMALL CAPITAL Y +<Multi_key> <z> <grave> : "á´¢" U1D22 # LATIN LETTER SMALL CAPITAL Z + + +# See also http://bleah.co.uk/~simon/stuff/XCompose +# and http://dotfiles.org/~inky/.XCompose +# and http://paste.lisp.org/display/73094 + +# Unicode 6.0 gave us all kinds of things, perhaps more than we can use... +# + +# Playing Cards? It's a lot, but so what? I don't think the [] convention +# will conflict with anything. +# The convention is more or less established, except for the Knight. I'm +# using N for that, like in Chess, since K would conflict with King of course. + +<Multi_key> <bracketleft> <A> <S> <bracketright> : "🂡" U1F0A1 # PLAYING CARD ACE OF SPADES +<Multi_key> <bracketleft> <2> <S> <bracketright> : "🂢" U1F0A2 # PLAYING CARD TWO OF SPADES +<Multi_key> <bracketleft> <3> <S> <bracketright> : "🂣" U1F0A3 # PLAYING CARD THREE OF SPADES +<Multi_key> <bracketleft> <4> <S> <bracketright> : "🂤" U1F0A4 # PLAYING CARD FOUR OF SPADES +<Multi_key> <bracketleft> <5> <S> <bracketright> : "🂥" U1F0A5 # PLAYING CARD FIVE OF SPADES +<Multi_key> <bracketleft> <6> <S> <bracketright> : "🂦" U1F0A6 # PLAYING CARD SIX OF SPADES +<Multi_key> <bracketleft> <7> <S> <bracketright> : "🂧" U1F0A7 # PLAYING CARD SEVEN OF SPADES +<Multi_key> <bracketleft> <8> <S> <bracketright> : "🂨" U1F0A8 # PLAYING CARD EIGHT OF SPADES +<Multi_key> <bracketleft> <9> <S> <bracketright> : "🂩" U1F0A9 # PLAYING CARD NINE OF SPADES +<Multi_key> <bracketleft> <T> <S> <bracketright> : "🂪" U1F0AA # PLAYING CARD TEN OF SPADES +<Multi_key> <bracketleft> <J> <S> <bracketright> : "🂫" U1F0AB # PLAYING CARD JACK OF SPADES +<Multi_key> <bracketleft> <N> <S> <bracketright> : "🂬" U1F0AC # PLAYING CARD KNIGHT OF SPADES +<Multi_key> <bracketleft> <Q> <S> <bracketright> : "🂭" U1F0AD # PLAYING CARD QUEEN OF SPADES +<Multi_key> <bracketleft> <K> <S> <bracketright> : "🂮" U1F0AE # PLAYING CARD KING OF SPADES + +<Multi_key> <bracketleft> <A> <H> <bracketright> : "🂱" U1F0B1 # PLAYING CARD ACE OF HEARTS +<Multi_key> <bracketleft> <2> <H> <bracketright> : "🂲" U1F0B2 # PLAYING CARD TWO OF HEARTS +<Multi_key> <bracketleft> <3> <H> <bracketright> : "🂳" U1F0B3 # PLAYING CARD THREE OF HEARTS +<Multi_key> <bracketleft> <4> <H> <bracketright> : "🂴" U1F0B4 # PLAYING CARD FOUR OF HEARTS +<Multi_key> <bracketleft> <5> <H> <bracketright> : "🂵" U1F0B5 # PLAYING CARD FIVE OF HEARTS +<Multi_key> <bracketleft> <6> <H> <bracketright> : "🂶" U1F0B6 # PLAYING CARD SIX OF HEARTS +<Multi_key> <bracketleft> <7> <H> <bracketright> : "🂷" U1F0B7 # PLAYING CARD SEVEN OF HEARTS +<Multi_key> <bracketleft> <8> <H> <bracketright> : "🂸" U1F0B8 # PLAYING CARD EIGHT OF HEARTS +<Multi_key> <bracketleft> <9> <H> <bracketright> : "🂹" U1F0B9 # PLAYING CARD NINE OF HEARTS +<Multi_key> <bracketleft> <T> <H> <bracketright> : "🂺" U1F0BA # PLAYING CARD TEN OF HEARTS +<Multi_key> <bracketleft> <J> <H> <bracketright> : "🂻" U1F0BB # PLAYING CARD JACK OF HEARTS +<Multi_key> <bracketleft> <N> <H> <bracketright> : "🂼" U1F0BC # PLAYING CARD KNIGHT OF HEARTS +<Multi_key> <bracketleft> <Q> <H> <bracketright> : "🂽" U1F0BD # PLAYING CARD QUEEN OF HEARTS +<Multi_key> <bracketleft> <K> <H> <bracketright> : "🂾" U1F0BE # PLAYING CARD KING OF HEARTS + +<Multi_key> <bracketleft> <A> <D> <bracketright> : "ðŸƒ" U1F0C1 # PLAYING CARD ACE OF DIAMONDS +<Multi_key> <bracketleft> <2> <D> <bracketright> : "🃂" U1F0C2 # PLAYING CARD TWO OF DIAMONDS +<Multi_key> <bracketleft> <3> <D> <bracketright> : "🃃" U1F0C3 # PLAYING CARD THREE OF DIAMONDS +<Multi_key> <bracketleft> <4> <D> <bracketright> : "🃄" U1F0C4 # PLAYING CARD FOUR OF DIAMONDS +<Multi_key> <bracketleft> <5> <D> <bracketright> : "🃅" U1F0C5 # PLAYING CARD FIVE OF DIAMONDS +<Multi_key> <bracketleft> <6> <D> <bracketright> : "🃆" U1F0C6 # PLAYING CARD SIX OF DIAMONDS +<Multi_key> <bracketleft> <7> <D> <bracketright> : "🃇" U1F0C7 # PLAYING CARD SEVEN OF DIAMONDS +<Multi_key> <bracketleft> <8> <D> <bracketright> : "🃈" U1F0C8 # PLAYING CARD EIGHT OF DIAMONDS +<Multi_key> <bracketleft> <9> <D> <bracketright> : "🃉" U1F0C9 # PLAYING CARD NINE OF DIAMONDS +<Multi_key> <bracketleft> <T> <D> <bracketright> : "🃊" U1F0CA # PLAYING CARD TEN OF DIAMONDS +<Multi_key> <bracketleft> <J> <D> <bracketright> : "🃋" U1F0CB # PLAYING CARD JACK OF DIAMONDS +<Multi_key> <bracketleft> <N> <D> <bracketright> : "🃌" U1F0CC # PLAYING CARD KNIGHT OF DIAMONDS +<Multi_key> <bracketleft> <Q> <D> <bracketright> : "ðŸƒ" U1F0CD # PLAYING CARD QUEEN OF DIAMONDS +<Multi_key> <bracketleft> <K> <D> <bracketright> : "🃎" U1F0CE # PLAYING CARD KING OF DIAMONDS + +<Multi_key> <bracketleft> <A> <C> <bracketright> : "🃑" U1F0D1 # PLAYING CARD ACE OF CLUBS +<Multi_key> <bracketleft> <2> <C> <bracketright> : "🃒" U1F0D2 # PLAYING CARD TWO OF CLUBS +<Multi_key> <bracketleft> <3> <C> <bracketright> : "🃓" U1F0D3 # PLAYING CARD THREE OF CLUBS +<Multi_key> <bracketleft> <4> <C> <bracketright> : "🃔" U1F0D4 # PLAYING CARD FOUR OF CLUBS +<Multi_key> <bracketleft> <5> <C> <bracketright> : "🃕" U1F0D5 # PLAYING CARD FIVE OF CLUBS +<Multi_key> <bracketleft> <6> <C> <bracketright> : "🃖" U1F0D6 # PLAYING CARD SIX OF CLUBS +<Multi_key> <bracketleft> <7> <C> <bracketright> : "🃗" U1F0D7 # PLAYING CARD SEVEN OF CLUBS +<Multi_key> <bracketleft> <8> <C> <bracketright> : "🃘" U1F0D8 # PLAYING CARD EIGHT OF CLUBS +<Multi_key> <bracketleft> <9> <C> <bracketright> : "🃙" U1F0D9 # PLAYING CARD NINE OF CLUBS +<Multi_key> <bracketleft> <T> <C> <bracketright> : "🃚" U1F0DA # PLAYING CARD TEN OF CLUBS +<Multi_key> <bracketleft> <J> <C> <bracketright> : "🃛" U1F0DB # PLAYING CARD JACK OF CLUBS +<Multi_key> <bracketleft> <N> <C> <bracketright> : "🃜" U1F0DC # PLAYING CARD KNIGHT OF CLUBS +<Multi_key> <bracketleft> <Q> <C> <bracketright> : "ðŸƒ" U1F0DD # PLAYING CARD QUEEN OF CLUBS +<Multi_key> <bracketleft> <K> <C> <bracketright> : "🃞" U1F0DE # PLAYING CARD KING OF CLUBS + +<Multi_key> <bracketleft> <C> <B> <bracketright> : "🂠" U1F0A0 # PLAYING CARD BACK +<Multi_key> <bracketleft> <B> <J> <bracketright> : "ðŸƒ" U1F0CF # PLAYING CARD BLACK JOKER +<Multi_key> <bracketleft> <W> <J> <bracketright> : "🃟" U1F0DF # PLAYING CARD WHITE JOKER + +# Do we want domino bones also? I'm thinking [ 1 1 ], etc, maybe use +# ] 1 1 [ for vertical (or vice-versa) + +# And chess/checkers pieces! We need a convention for those. # looks like a +# checkerboard but we're already using that for music. Half of it? +# <bar> will be an issue when we want double-struck W or B... we'll have +# to consider it. Maybe replace with <equal> +<Multi_key> <bar> <W> <K> : "â™”" U2654 # WHITE CHESS KING +<Multi_key> <bar> <W> <Q> : "♕" U2655 # WHITE CHESS QUEEN +<Multi_key> <bar> <W> <R> : "â™–" U2656 # WHITE CHESS ROOK +<Multi_key> <bar> <W> <B> : "â™—" U2657 # WHITE CHESS BISHOP +<Multi_key> <bar> <W> <N> : "♘" U2658 # WHITE CHESS KNIGHT +<Multi_key> <bar> <W> <P> : "â™™" U2659 # WHITE CHESS PAWN +<Multi_key> <bar> <B> <K> : "♚" U265A # BLACK CHESS KING +<Multi_key> <bar> <B> <Q> : "â™›" U265B # BLACK CHESS QUEEN +<Multi_key> <bar> <B> <R> : "♜" U265C # BLACK CHESS ROOK +<Multi_key> <bar> <B> <B> : "â™" U265D # BLACK CHESS BISHOP +<Multi_key> <bar> <B> <N> : "♞" U265E # BLACK CHESS KNIGHT +<Multi_key> <bar> <B> <P> : "♟" U265F # BLACK CHESS PAWN +<Multi_key> <bar> <W> <D> <M> : "⛀" U26C0 # WHITE DRAUGHTS MAN +<Multi_key> <bar> <W> <D> <K> : "â›" U26C1 # WHITE DRAUGHTS KING +<Multi_key> <bar> <B> <D> <M> : "⛂" U26C2 # BLACK DRAUGHTS MAN +<Multi_key> <bar> <B> <D> <K> : "⛃" U26C3 # BLACK DRAUGHTS KING +# Since we're doing game pieces, might as well. +<Multi_key> <bar> <W> <S> : "☖" U2616 # WHITE SHOGI PIECE +<Multi_key> <bar> <B> <S> : "☗" U2617 # BLACK SHOGI PIECE +# It's turned vertically and not horizontally reflected, but we use the < +# symbol for turning... +<Multi_key> <bar> <less> <W> <S> : "⛉" U26C9 # TURNED WHITE SHOGI PIECE +<Multi_key> <bar> <less> <B> <S> : "⛊" U26CA # TURNED BLACK SHOGI PIECE + +# As for the emoji... We can't possibly get all of them, even just all of the +# cool/useful ones. Maybe we can pick and choose some high-fliers. + +<Multi_key> <d> <e> <g> <r> <e> <e> : "°" U00B0 # DEGREE SIGN +<Multi_key> <d> <e> <g> <C> : "℃" U2103 # DEGREE CELSIUS +<Multi_key> <d> <e> <g> <c> : "℃" U2103 # DEGREE CELSIUS +<Multi_key> <d> <e> <g> <F> : "℉" U2109 # DEGREE FAHRENHEIT +<Multi_key> <d> <e> <g> <f> : "℉" U2109 # DEGREE FAHRENHEIT + +# Bitcoin signs +# Real bitcoin codepoint coming at U+20BF! +<Multi_key> <B> <bar> : "฿" U0E3F # BITCOIN CURRENCY SIGN, ORIGINAL THAI CURRENCY SYMBOL BAHT + +<Multi_key> <minus> <B> : "Ƀ" U0243 # ALTERNATIVE BITCOIN CURRENCY SIGN, LATIN CAPITAL LETTER B WITH STROKE +<Multi_key> <B> <minus> : "Ƀ" U0243 # ALTERNATIVE BITCOIN CURRENCY SIGN, LATIN CAPITAL LETTER B WITH STROKE +<Multi_key> <minus> <b> : "Æ€" U0180 # ALTERNATIVE BIT CURRENCY SIGN, LATIN SMALL LETTER B WITH STROKE +<Multi_key> <b> <minus> : "Æ€" U0180 # ALTERNATIVE BIT CURRENCY SIGN, LATIN SMALL LETTER B WITH STROKE + +# Monstercat slack +<Multi_key> <h> <m> <m> : "🤔" U1F914 +<Multi_key> <j> <m> <a> <d> : "(`Д´)" +<Multi_key> <p> <b> : "ᶘ ᵒᴥᵒᶅ" +<Multi_key> <j> <c> <u> <t> <e> : "(ノ≧ڡ≦)" +<Multi_key> <j> <m> <a> <g> <i> <c> : "(ã£ãƒ»Ï‰ãƒ»ï¼‰ã£â‰¡â‰¡â‰¡â‰¡â‰¡â‰¡â˜†)" +<Multi_key> <j> <C> <R> <Y> : "(â‹Ÿï¹â‹ž)" +<Multi_key> <j> <c> <r> <y> : "(ã¤ï¹âŠ‚)" +<Multi_key> <s> <h> <r> <u> <g> : "¯\\_(ツ)_/¯" +<Multi_key> <j> <s> <h> <r> <u> <g> : "â”(´∀`)┌" +<Multi_key> <j> <f> <a> <l> <l> : "ミ(ノ_ _)ノ" #jfall +<Multi_key> <j> <y> <a> <y> : "(ノ^ヮ^)ノ*:・゚✧" #jyay +<Multi_key> <j> <r> <u> <n> : "ε=ε=â”( >_<)┛ (ノ_ _)ノ" #jrun +<Multi_key> <slash> <question> : "¯\\_(ツ)_/¯" +<Multi_key> <l> <e> <n> <n> <y> : "( ͡° ͜ʖ ͡°)" +<Multi_key> <f> <l> <i> <p> : "(ノಠ益ಠ)ノ彡┻â”â”»" +<Multi_key> <p> <l> <a> <c> <e> : "┬──┬ ノ( ã‚œ-゜ノ)" +<Multi_key> <j> <m> <u> <s> : "♪~( ̄ε ̄)" +<Multi_key> <j> <o> <k> : "( ´_ã‚`)" +<Multi_key> <j> <w> <u> <t> : "(゚ー゚;)" +<Multi_key> <colon> <3> : "(ã¥ï½¡â—•â€¿â€¿â—•ï½¡)ã¥" +<Multi_key> <j> <y> <o> <u> : "(☞゚ヮ゚)☞" +<Multi_key> <j> <t> <w> <o> : "(☞゚ヮ゚)☞ ☜(゚ヮ゚☜)" +<Multi_key> <d> <a> <n> <c> <e> : "♪~ á••(á›)á•—" +<Multi_key> <d> <o> <n> <g> : "ヽ༼ຈل͜ຈ༽ノ" +<Multi_key> <l> <m> <g> : "http://lmgtfy.com/?q=" +<Multi_key> <o> <k> <a> <y> : "👌" U1F44C # OK HAND SIGN +<Multi_key> <equal> <1> : "ðŸ‘" U1F44D # THUMBS UP SIGN +<Multi_key> <minus> <1> : "👎" U1F44E # THUMBS DOWN SIGN +<Multi_key> <space> <h> : "https://" +<Multi_key> <space> <w> : "www." + +<Multi_key> <g> <r> <i> <n> : "ðŸ˜" U1F601 # "grin" grinning face with smiling eyes +<Multi_key> <j> <o> <y> : "😂" U1F602 # "joy" face with tears of joy +<Multi_key> <s> <m> <i> <l> <e> <y> : "😃" U1F603 # "smiley" smiling face with open mouth +<Multi_key> <s> <m> <i> <l> <e> : "😄" U1F604 # "smile" smiling face with open mouth & smiling eyes +<Multi_key> <w> <i> <n> <k> : "😉" U1F609 # "wink" winking face +<Multi_key> <b> <l> <u> <s> <h> : "😊" U1F60A # "blush" smiling face with smiling eyes +<Multi_key> <y> <u> <m> : "😋" U1F60B # "yum" face savouring delicious food +<Multi_key> <h> <u> <g> <s> : "🤗" U1F917 # "hugs" hugging face +<Multi_key> <s> <m> <i> <r> <k> : "ðŸ˜" U1F60F # "smirk" smirking face +<Multi_key> <a> <n> <g> <r> <y> : "😠" U1F620 # "angry" angry face +<Multi_key> <r> <a> <g> <e> : "😡" U1F621 # "rage" pouting face +<Multi_key> <w> <e> <a> <r> <y> : "😩" U1F629 # "weary" weary face +<Multi_key> <s> <c> <r> <e> <a> <m> : "😱" U1F631 # "scream" face screaming in fear +<Multi_key> <h> <u> <s> <h> <e> <d> : "😯" U1F62F # "hushed" hushed face +<Multi_key> <c> <r> <y> : "😢" U1F622 # "cry" crying face +<Multi_key> <s> <l> <e> <e> <p> <y> : "😪" U1F62A # "sleepy" sleepy face +<Multi_key> <s> <w> <e> <a> <t> : "😓" U1F613 # "sweat" face with cold sweat +<Multi_key> <s> <o> <b> : "😭" U1F62D # "sob" loudly crying face +<Multi_key> <m> <a> <s> <k> : "😷" U1F637 # "mask" face with medical mask +<Multi_key> <z> <z> <z> : "💤" U1F4A4 # "zzz" +<Multi_key> <p> <o> <o> : "💩" U1F4A9 # "poo" pile of poo +<Multi_key> <i> <m> <p> : "👿" U1F47F # "imp" angry face with horns +<Multi_key> <g> <h> <o> <s> <t> : "👻" U1F47B # "ghost" +<Multi_key> <s> <k> <u> <l> <l> : "💀" U1F480 # "skull" +<Multi_key> <a> <l> <i> <e> <n> : "👽" U1F47D # "alien" +<Multi_key> <r> <o> <b> <o> <t> : "🤖" U1F916 # "robot" robot face +<Multi_key> <j> <o> <y> <c> <a> <t> : "😹" U1F639 # "joy_cat" cat face with tears of joy +<Multi_key> <c> <l> <a> <p> : "ðŸ‘" U1F44F # "clap" clapping hands +<Multi_key> <plus> <1> : "ðŸ‘" U1F44D # "+1" thumbs up +<Multi_key> <minus> <1> : "👎" U1F44E # "-1" thumbs down +<Multi_key> <f> <i> <s> <t> : "✊" U270A # "fist" raised fist +<Multi_key> <w> <a> <v> <e> : "👋" U1F44B # "wave" waving hand +<Multi_key> <o> <k> <h> <a> <n> <d> : "👌" U1F44C # "ok_hand" OK hand +<Multi_key> <v> : "✌ï¸" U270C # "v" victory hand +<Multi_key> <h> <a> <n> <d> : "✋" U270B # "hand" raised hand +<Multi_key> <f> <l> <e> <x> : "💪" U1F4AA # "muscle" flexed biceps +<Multi_key> <p> <r> <a> <y> : "ðŸ™" U1F64F # "pray" folded hands +<Multi_key> <m> <e> <t> <a> <l> : "🤘" U1F918 # "metal" sign of the horns +<Multi_key> <l> <i> <p> <s> : "👄" U1F444 # "lips" mouth +<Multi_key> <t> <o> <n> <g> <u> <e> : "👅" U1F445 # "tongue" +<Multi_key> <e> <a> <r> : "👂" U1F442 # "ear" +<Multi_key> <n> <o> <s> <e> : "👃" U1F443 # "nose" +<Multi_key> <e> <y> <e> : "ðŸ‘" U1F441 # "eye" +<Multi_key> <e> <y> <e> <s> : "👀" U1F440 # "eyes" +<Multi_key> <b> <a> <b> <y> : "👶" U1F476 # "baby" +<Multi_key> <b> <o> <y> : "👦" U1F466 # "boy" +<Multi_key> <g> <i> <r> <l> : "👧" U1F467 # "girl" +<Multi_key> <m> <a> <n> : "👨" U1F468 # "man" +<Multi_key> <w> <o> <m> <a> <n> : "👩" U1F469 # "woman" +<Multi_key> <s> <a> <n> <t> <a> : "🎅" U1F385 # "santa" Santa Claus +<Multi_key> <a> <n> <g> <e> <l> : "👼" U1F47C # "angel" baby angel +<Multi_key> <d> <a> <n> <c> <e> <r> : "💃" U1F483 # "dancer" woman dancing +<Multi_key> <c> <o> <u> <p> <l> <e> : "👫" U1F46B # "couple" man and woman holding hands +<Multi_key> <s> <h> <i> <r> <t> : "👕" U1F455 # "shirt" t-shirt +<Multi_key> <j> <e> <a> <n> <s> : "👖" U1F456 # "jeans" +<Multi_key> <d> <r> <e> <s> <s> : "👗" U1F457 # "dress" +<Multi_key> <b> <i> <k> <i> <n> <i> : "👙" U1F459 # "bikini" +<Multi_key> <k> <i> <m> <o> <n> <o> : "👘" U1F458 # "kimono" +<Multi_key> <k> <i> <s> <s> : "💋" U1F48B # "kiss" kiss mark +<Multi_key> <s> <a> <n> <d> <a> <l> : "👡" U1F461 # "sandal" woman’s sandal +<Multi_key> <b> <o> <o> <t> : "👢" U1F462 # "boot" woman’s boot +<Multi_key> <t> <o> <p> <h> <a> <t> : "🎩" U1F3A9 # "tophat" top hat +<Multi_key> <c> <r> <o> <w> <n> : "👑" U1F451 # "crown" +<Multi_key> <p> <o> <u> <c> <h> : "ðŸ‘" U1F45D # "pouch" clutch bag +<Multi_key> <p> <u> <r> <s> <e> : "👛" U1F45B # "purse" +<Multi_key> <r> <i> <n> <g> : "ðŸ’" U1F48D # "ring" +<Multi_key> <d> <o> <g> : "ðŸ¶" U1F436 # "dog" dog face +<Multi_key> <c> <a> <t> : "ðŸ±" U1F431 # "cat" cat face +<Multi_key> <m> <o> <u> <s> <e> : "ðŸ­" U1F42D # "mouse" mouse face +<Multi_key> <r> <a> <b> <b> <i> <t> : "ðŸ°" U1F430 # "rabbit" rabbit face +<Multi_key> <b> <e> <a> <r> : "ðŸ»" U1F43B # "bear" bear face +<Multi_key> <k> <o> <a> <l> <a> : "ðŸ¨" U1F428 # "koala" +<Multi_key> <t> <i> <g> <e> <r> : "ðŸ¯" U1F42F # "tiger" tiger face +<Multi_key> <l> <i> <o> <n> : "ðŸ¦" U1F981 # "lion" lion face +<Multi_key> <c> <o> <w> : "ðŸ®" U1F42E # "cow" cow face +<Multi_key> <f> <r> <o> <g> : "ðŸ¸" U1F438 # "frog" frog face +<Multi_key> <m> <o> <n> <k> <e> <y> : "ðŸ’" U1F412 # "monkey" +<Multi_key> <b> <i> <r> <d> : "ðŸ¦" U1F426 # "bird" +<Multi_key> <w> <o> <l> <f> : "ðŸº" U1F43A # "wolf" wolf face +<Multi_key> <b> <o> <a> <r> : "ðŸ—" U1F417 # "boar" +<Multi_key> <h> <o> <r> <s> <e> : "ðŸ´" U1F434 # "horse" horse face +<Multi_key> <b> <e> <e> : "ðŸ" U1F41D # "bee" honeybee +<Multi_key> <b> <u> <g> : "ðŸ›" U1F41B # "bug" +<Multi_key> <s> <n> <a> <i> <l> : "ðŸŒ" U1F40C # "snail" +<Multi_key> <b> <e> <e> <t> <l> <e> : "ðŸž" U1F41E # "beetle" lady beetle +<Multi_key> <a> <n> <t> : "ðŸœ" U1F41C # "ant" +<Multi_key> <s> <p> <i> <d> <e> <r> : "🕷" U1F577 # "spider" +<Multi_key> <c> <r> <a> <b> : "🦀" U1F980 # "crab" +<Multi_key> <s> <n> <a> <k> <e> : "ðŸ" U1F40D # "snake" +<Multi_key> <t> <u> <r> <t> <l> <e> : "ðŸ¢" U1F422 # "turtle" +<Multi_key> <f> <i> <s> <h> : "ðŸŸ" U1F41F # "fish" +<Multi_key> <w> <h> <a> <l> <e> : "ðŸ³" U1F433 # "whale" spouting whale +<Multi_key> <w> <h> <a> <l> <e> <2> : "ðŸ‹" U1F40B # "whale2" whale +<Multi_key> <t> <i> <g> <e> <r> <2> : "ðŸ…" U1F405 # "tiger2" tiger +<Multi_key> <o> <x> : "ðŸ‚" U1F402 # "ox" +<Multi_key> <c> <o> <w> <2> : "ðŸ„" U1F404 # "cow2" cow +<Multi_key> <c> <a> <m> <e> <l> : "ðŸ«" U1F42B # "camel" two-hump camel +<Multi_key> <g> <o> <a> <t> : "ðŸ" U1F410 # "goat" +<Multi_key> <r> <a> <m> : "ðŸ" U1F40F # "ram" +<Multi_key> <s> <h> <e> <e> <p> : "ðŸ‘" U1F411 # "sheep" +<Multi_key> <r> <a> <t> : "ðŸ€" U1F400 # "rat" +<Multi_key> <m> <o> <u> <s> <e> <2> : "ðŸ" U1F401 # "mouse2" mouse +<Multi_key> <t> <u> <r> <k> <e> <y> : "🦃" U1F983 # "turkey" +<Multi_key> <d> <o> <v> <e> : "🕊" U1F54A # "dove" +<Multi_key> <d> <o> <g> <2> : "ðŸ•" U1F415 # "dog2" dog +<Multi_key> <p> <o> <o> <d> <l> <e> : "ðŸ©" U1F429 # "poodle" +<Multi_key> <c> <a> <t> <2> : "ðŸˆ" U1F408 # "cat2" cat +<Multi_key> <f> <e> <e> <t> : "ðŸ¾" U1F43E # "feet" paw prints +<Multi_key> <d> <r> <a> <g> <o> <n> : "ðŸ‰" U1F409 # "dragon" +<Multi_key> <c> <a> <c> <t> <u> <s> : "🌵" U1F335 # "cactus" +<Multi_key> <h> <e> <r> <b> : "🌿" U1F33F # "herb" +<Multi_key> <b> <a> <m> <b> <o> <o> : "ðŸŽ" U1F38D # "bamboo" pine decoration +<Multi_key> <l> <e> <a> <v> <e> <s> : "ðŸƒ" U1F343 # "leaves" leaf fluttering in wind +<Multi_key> <r> <o> <s> <e> : "🌹" U1F339 # "rose" +<Multi_key> <t> <u> <l> <i> <p> : "🌷" U1F337 # "tulip" +<Multi_key> <s> <h> <e> <l> <l> : "ðŸš" U1F41A # "shell" spiral shell +<Multi_key> <m> <o> <o> <n> : "🌔" U1F314 # "moon" waxing gibbous moon +<Multi_key> <s> <t> <a> <r> : "â­ï¸" U2B50 # "star" white medium star +<Multi_key> <s> <t> <a> <r> <2> : "🌟" U1F31F # "star2" glowing star +<Multi_key> <d> <i> <z> <z> <y> : "💫" U1F4AB # "dizzy" +<Multi_key> <c> <o> <m> <e> <t> : "☄ï¸" U2604 # "comet" +<Multi_key> <s> <u> <n> <n> <y> : "☀ï¸" U2600 # "sunny" sun +<Multi_key> <c> <l> <o> <u> <d> : "â˜ï¸" U2601 # "cloud" +<Multi_key> <z> <a> <p> : "âš¡ï¸" U26A1 # "zap" high voltage +<Multi_key> <f> <i> <r> <e> : "🔥" U1F525 # "fire" +<Multi_key> <b> <o> <o> <m> : "💥" U1F4A5 # "boom" collision +<Multi_key> <d> <a> <s> <h> : "💨" U1F4A8 # "dash" dashing away +<Multi_key> <f> <o> <g> : "🌫" U1F32B # "fog" +<Multi_key> <o> <c> <e> <a> <n> : "🌊" U1F30A # "ocean" water wave +<Multi_key> <a> <p> <p> <l> <e> : "ðŸŽ" U1F34E # "apple" red apple +<Multi_key> <p> <e> <a> <r> : "ðŸ" U1F350 # "pear" +<Multi_key> <l> <e> <m> <o> <n> : "ðŸ‹" U1F34B # "lemon" +<Multi_key> <b> <a> <n> <a> <n> <a> : "ðŸŒ" U1F34C # "banana" +<Multi_key> <g> <r> <a> <p> <e> <s> : "ðŸ‡" U1F347 # "grapes" +<Multi_key> <m> <e> <l> <o> <n> : "ðŸˆ" U1F348 # "melon" +<Multi_key> <p> <e> <a> <c> <h> : "ðŸ‘" U1F351 # "peach" +<Multi_key> <t> <o> <m> <a> <t> <o> : "ðŸ…" U1F345 # "tomato" +<Multi_key> <c> <o> <r> <n> : "🌽" U1F33D # "corn" ear of corn +<Multi_key> <b> <r> <e> <a> <d> : "ðŸž" U1F35E # "bread" +<Multi_key> <c> <h> <e> <e> <s> <e> : "🧀" U1F9C0 # "cheese" cheese wedge +<Multi_key> <e> <g> <g> : "ðŸ³" U1F373 # "egg" cooking +<Multi_key> <f> <r> <i> <e> <s> : "ðŸŸ" U1F35F # "fries" french fries +<Multi_key> <h> <o> <t> <d> <o> <g> : "🌭" U1F32D # "hotdog" hot dog +<Multi_key> <r> <a> <m> <e> <n> : "ðŸœ" U1F35C # "ramen" steaming bowl +<Multi_key> <s> <t> <e> <w> : "ðŸ²" U1F372 # "stew" pot of food +<Multi_key> <s> <u> <s> <h> <i> : "ðŸ£" U1F363 # "sushi" +<Multi_key> <b> <e> <n> <t> <o> : "ðŸ±" U1F371 # "bento" bento box +<Multi_key> <c> <u> <r> <r> <y> : "ðŸ›" U1F35B # "curry" curry rice +<Multi_key> <r> <i> <c> <e> : "ðŸš" U1F35A # "rice" cooked rice +<Multi_key> <o> <d> <e> <n> : "ðŸ¢" U1F362 # "oden" +<Multi_key> <d> <a> <n> <g> <o> : "ðŸ¡" U1F361 # "dango" +<Multi_key> <c> <a> <k> <e> : "ðŸ°" U1F370 # "cake" shortcake +<Multi_key> <c> <a> <n> <d> <y> : "ðŸ¬" U1F36C # "candy" +<Multi_key> <c> <o> <o> <k> <i> <e> : "ðŸª" U1F36A # "cookie" +<Multi_key> <b> <e> <e> <r> : "ðŸº" U1F37A # "beer" beer mug +<Multi_key> <b> <e> <e> <r> <s> : "ðŸ»" U1F37B # "beers" clinking beer mugs +<Multi_key> <s> <a> <k> <e> : "ðŸ¶" U1F376 # "sake" +<Multi_key> <t> <e> <a> : "ðŸµ" U1F375 # "tea" teacup without handle +<Multi_key> <c> <o> <f> <f> <e> <e> : "☕ï¸" U2615 # "coffee" hot beverage +<Multi_key> <s> <o> <c> <c> <e> <r> : "âš½ï¸" U26BD # "soccer" soccer ball +<Multi_key> <t> <e> <n> <n> <i> <s> : "🎾" U1F3BE # "tennis" +<Multi_key> <8> <b> <a> <l> <l> : "🎱" U1F3B1 # "8ball" pool 8 ball +<Multi_key> <g> <o> <l> <f> : "⛳ï¸" U26F3 # "golf" flag in hole +<Multi_key> <s> <k> <i> : "🎿" U1F3BF # "ski" skis +<Multi_key> <s> <k> <i> <e> <r> : "â›·" U26F7 # "skier" +<Multi_key> <b> <a> <t> <h> : "🛀" U1F6C0 # "bath" person taking bath +<Multi_key> <t> <r> <o> <p> <h> <y> : "ðŸ†" U1F3C6 # "trophy" +<Multi_key> <d> <a> <r> <t> : "🎯" U1F3AF # "dart" direct hit +<Multi_key> <t> <i> <c> <k> <e> <t> : "🎫" U1F3AB # "ticket" +<Multi_key> <a> <r> <t> : "🎨" U1F3A8 # "art" artist palette +<Multi_key> <g> <u> <i> <t> <a> <r> : "🎸" U1F3B8 # "guitar" +<Multi_key> <v> <i> <o> <l> <i> <n> : "🎻" U1F3BB # "violin" +<Multi_key> <c> <a> <r> : "🚗" U1F697 # "car" automobile +<Multi_key> <b> <u> <s> : "🚌" U1F68C # "bus" +<Multi_key> <t> <r> <u> <c> <k> : "🚚" U1F69A # "truck" delivery truck +<Multi_key> <b> <i> <k> <e> : "🚲" U1F6B2 # "bike" bicycle +<Multi_key> <t> <r> <a> <i> <n> : "🚋" U1F68B # "train" tram car +<Multi_key> <t> <r> <a> <i> <n> <2> : "🚆" U1F686 # "train2" train +<Multi_key> <m> <e> <t> <r> <o> : "🚇" U1F687 # "metro" +<Multi_key> <t> <r> <a> <m> : "🚊" U1F68A # "tram" +<Multi_key> <b> <o> <a> <t> : "⛵ï¸" U26F5 # "boat" sailboat +<Multi_key> <f> <e> <r> <r> <y> : "â›´" U26F4 # "ferry" +<Multi_key> <r> <o> <c> <k> <e> <t> : "🚀" U1F680 # "rocket" +<Multi_key> <s> <e> <a> <t> : "💺" U1F4BA # "seat" +<Multi_key> <a> <n> <c> <h> <o> <r> : "âš“ï¸" U2693 # "anchor" +<Multi_key> <s> <h> <i> <p> : "🚢" U1F6A2 # "ship" +<Multi_key> <f> <o> <g> <g> <y> : "ðŸŒ" U1F301 # "foggy" +<Multi_key> <j> <a> <p> <a> <n> : "🗾" U1F5FE # "japan" map of Japan +<Multi_key> <t> <e> <n> <t> : "⛺ï¸" U26FA # "tent" +<Multi_key> <d> <e> <s> <e> <r> <t> : "ðŸœ" U1F3DC # "desert" +<Multi_key> <s> <t> <a> <r> <s> : "🌠" U1F320 # "stars" shooting star +<Multi_key> <h> <o> <u> <s> <e> <s> : "ðŸ˜" U1F3D8 # "houses" house +<Multi_key> <h> <o> <u> <s> <e> : "ðŸ " U1F3E0 # "house" +<Multi_key> <o> <f> <f> <i> <c> <e> : "ðŸ¢" U1F3E2 # "office" office building +<Multi_key> <b> <a> <n> <k> : "ðŸ¦" U1F3E6 # "bank" +<Multi_key> <h> <o> <t> <e> <l> : "ðŸ¨" U1F3E8 # "hotel" +<Multi_key> <s> <c> <h> <o> <o> <l> : "ðŸ«" U1F3EB # "school" +<Multi_key> <c> <h> <u> <r> <c> <h> : "⛪ï¸" U26EA # "church" +<Multi_key> <m> <o> <s> <q> <u> <e> : "🕌" U1F54C # "mosque" +<Multi_key> <k> <a> <a> <b> <a> : "🕋" U1F54B # "kaaba" +<Multi_key> <w> <a> <t> <c> <h> : "⌚ï¸" U231A # "watch" +<Multi_key> <i> <p> <h> <o> <n> <e> : "📱" U1F4F1 # "iphone" mobile phone +<Multi_key> <c> <l> <a> <m> <p> : "🗜" U1F5DC # "clamp" +<Multi_key> <c> <d> : "💿" U1F4BF # "cd" optical disk +<Multi_key> <d> <v> <d> : "📀" U1F4C0 # "dvd" +<Multi_key> <v> <h> <s> : "📼" U1F4FC # "vhs" videocassette +<Multi_key> <c> <a> <m> <e> <r> <a> : "📷" U1F4F7 # "camera" +<Multi_key> <p> <h> <o> <n> <e> : "☎ï¸" U260E # "phone" telephone +<Multi_key> <p> <a> <g> <e> <r> : "📟" U1F4DF # "pager" +<Multi_key> <f> <a> <x> : "📠" U1F4E0 # "fax" fax machine +<Multi_key> <t> <v> : "📺" U1F4FA # "tv" television +<Multi_key> <r> <a> <d> <i> <o> : "📻" U1F4FB # "radio" +<Multi_key> <b> <u> <l> <b> : "💡" U1F4A1 # "bulb" light bulb +<Multi_key> <c> <a> <n> <d> <l> <e> : "🕯" U1F56F # "candle" +<Multi_key> <d> <o> <l> <l> <a> <r> : "💵" U1F4B5 # "dollar" dollar banknote +<Multi_key> <y> <e> <n> : "💴" U1F4B4 # "yen" yen banknote +<Multi_key> <e> <u> <r> <o> : "💶" U1F4B6 # "euro" euro banknote +<Multi_key> <p> <o> <u> <n> <d> : "💷" U1F4B7 # "pound" pound banknote +<Multi_key> <g> <e> <m> : "💎" U1F48E # "gem" gem stone +<Multi_key> <w> <r> <e> <n> <c> <h> : "🔧" U1F527 # "wrench" +<Multi_key> <h> <a> <m> <m> <e> <r> : "🔨" U1F528 # "hammer" +<Multi_key> <g> <e> <a> <r> : "âš™" U2699 # "gear" +<Multi_key> <c> <h> <a> <i> <n> <s> : "⛓" U26D3 # "chains" +<Multi_key> <g> <u> <n> : "🔫" U1F52B # "gun" pistol +<Multi_key> <b> <o> <m> <b> : "💣" U1F4A3 # "bomb" +<Multi_key> <h> <o> <c> <h> <o> : "🔪" U1F52A # "hocho" kitchen knife +<Multi_key> <d> <a> <g> <g> <e> <r> : "🗡" U1F5E1 # "dagger" +<Multi_key> <s> <h> <i> <e> <l> <d> : "🛡" U1F6E1 # "shield" +<Multi_key> <c> <o> <f> <f> <i> <n> : "âš°" U26B0 # "coffin" +<Multi_key> <b> <a> <r> <b> <e> <r> : "💈" U1F488 # "barber" barber pole +<Multi_key> <h> <o> <l> <e> : "🕳" U1F573 # "hole" +<Multi_key> <t> <o> <i> <l> <e> <t> : "🚽" U1F6BD # "toilet" +<Multi_key> <s> <h> <o> <w> <e> <r> : "🚿" U1F6BF # "shower" +<Multi_key> <k> <e> <y> : "🔑" U1F511 # "key" +<Multi_key> <o> <l> <d> <k> <e> <y> : "ðŸ—" U1F5DD # "old_key" old key +<Multi_key> <d> <o> <o> <r> : "🚪" U1F6AA # "door" +<Multi_key> <b> <e> <d> : "ðŸ›" U1F6CF # "bed" +<Multi_key> <m> <o> <y> <a> <i> : "🗿" U1F5FF # "moyai" moai +<Multi_key> <g> <i> <f> <t> : "ðŸŽ" U1F381 # "gift" wrapped gift +<Multi_key> <f> <l> <a> <g> <s> : "ðŸŽ" U1F38F # "flags" carp streamer +<Multi_key> <r> <i> <b> <b> <o> <n> : "🎀" U1F380 # "ribbon" +<Multi_key> <t> <a> <d> <a> : "🎉" U1F389 # "tada" party popper +<Multi_key> <d> <o> <l> <l> <s> : "🎎" U1F38E # "dolls" Japanese dolls +<Multi_key> <e> <m> <a> <i> <l> : "📧" U1F4E7 # "email" e-mail +<Multi_key> <l> <a> <b> <e> <l> : "ðŸ·" U1F3F7 # "label" +<Multi_key> <s> <c> <r> <o> <l> <l> : "📜" U1F4DC # "scroll" +<Multi_key> <d> <a> <t> <e> : "📅" U1F4C5 # "date" calendar +<Multi_key> <l> <e> <d> <g> <e> <r> : "📒" U1F4D2 # "ledger" +<Multi_key> <b> <o> <o> <k> <s> : "📚" U1F4DA # "books" +<Multi_key> <b> <o> <o> <k> : "📖" U1F4D6 # "book" open book +<Multi_key> <l> <i> <n> <k> : "🔗" U1F517 # "link" +<Multi_key> <c> <r> <a> <y> <o> <n> : "ðŸ–" U1F58D # "crayon" +<Multi_key> <p> <e> <n> : "🖊" U1F58A # "pen" +<Multi_key> <m> <e> <m> <o> : "ðŸ“" U1F4DD # "memo" +<Multi_key> <l> <o> <c> <k> : "🔒" U1F512 # "lock" locked +<Multi_key> <u> <n> <l> <o> <c> <k> : "🔓" U1F513 # "unlock" unlocked +<Multi_key> <m> <a> <g> : "ðŸ”" U1F50D # "mag" left-pointing magnifying glass +<Multi_key> <h> <e> <a> <r> <t> : "â¤ï¸" U2764 # "heart" red heart +<Multi_key> <c> <u> <p> <i> <d> : "💘" U1F498 # "cupid" heart with arrow +<Multi_key> <o> <m> : "🕉" U1F549 # "om" +<Multi_key> <i> <d> : "🆔" U1F194 # "id" ID button +<Multi_key> <u> <7> <a> <7> <a> : "🈳" U1F233 # "u7a7a" Japanese “vacancy†button +<Multi_key> <u> <5> <2> <7> <2> : "🈹" U1F239 # "u5272" Japanese “discount†button +<Multi_key> <u> <6> <7> <0> <9> : "🈶" U1F236 # "u6709" Japanese “not free of charge†button +<Multi_key> <u> <7> <1> <2> <1> : "🈚ï¸" U1F21A # "u7121" Japanese “free of charge†button +<Multi_key> <u> <7> <5> <3> <3> : "🈸" U1F238 # "u7533" Japanese “application†button +<Multi_key> <u> <5> <5> <b> <6> : "🈺" U1F23A # "u55b6" Japanese “open for business†button +<Multi_key> <u> <6> <7> <0> <8> : "🈷ï¸" U1F237 # "u6708" Japanese “monthly amount†button +<Multi_key> <v> <s> : "🆚" U1F19A # "vs" VS button +<Multi_key> <a> <c> <c> <e> <p> <t> : "🉑" U1F251 # "accept" Japanese “acceptable†button +<Multi_key> <s> <e> <c> <r> <e> <t> : "㊙ï¸" U3299 # "secret" Japanese “secret†button +<Multi_key> <u> <5> <4> <0> <8> : "🈴" U1F234 # "u5408" Japanese “passing grade†button +<Multi_key> <u> <6> <e> <8> <0> : "🈵" U1F235 # "u6e80" Japanese “no vacancy†button +<Multi_key> <u> <7> <9> <8> <1> : "🈲" U1F232 # "u7981" Japanese “prohibited†button +<Multi_key> <a> : "🅰ï¸" U1F170 # "a" A button (blood type) +<Multi_key> <b> : "🅱ï¸" U1F171 # "b" B button (blood type) +<Multi_key> <a> <b> : "🆎" U1F18E # "ab" AB button (blood type) +<Multi_key> <c> <l> : "🆑" U1F191 # "cl" CL button +<Multi_key> <o> <2> : "🅾ï¸" U1F17E # "o2" O button (blood type) +<Multi_key> <s> <o> <s> : "🆘" U1F198 # "sos" SOS button +<Multi_key> <x> : "âŒ" U274C # "x" cross mark +<Multi_key> <o> : "â­•ï¸" U2B55 # "o" heavy large circle +<Multi_key> <a> <n> <g> <e> <r> : "💢" U1F4A2 # "anger" anger symbol +<Multi_key> <1> <0> <0> : "💯" U1F4AF # "100" hundred points +<Multi_key> <u> <6> <3> <0> <7> : "🈯ï¸" U1F22F # "u6307" Japanese “reserved†button +<Multi_key> <c> <h> <a> <r> <t> : "💹" U1F4B9 # "chart" chart increasing with yen +<Multi_key> <m> : "â“‚ï¸" U24C2 # "m" circled M +<Multi_key> <l> <o> <o> <p> : "âž¿" U27BF # "loop" double curly loop +<Multi_key> <a> <t> <m> : "ðŸ§" U1F3E7 # "atm" ATM sign +<Multi_key> <s> <a> : "🈂ï¸" U1F202 # "sa" Japanese “service charge†button +<Multi_key> <w> <c> : "🚾" U1F6BE # "wc" water closet +<Multi_key> <m> <e> <n> <s> : "🚹" U1F6B9 # "mens" men’s room +<Multi_key> <w> <o> <m> <e> <n> <s> : "🚺" U1F6BA # "womens" women’s room +<Multi_key> <c> <i> <n> <e> <m> <a> : "🎦" U1F3A6 # "cinema" +<Multi_key> <k> <o> <k> <o> : "ðŸˆ" U1F201 # "koko" Japanese “here†button +<Multi_key> <a> <b> <c> : "🔤" U1F524 # "abc" input latin letters +<Multi_key> <a> <b> <c> <d> : "🔡" U1F521 # "abcd" input latin lowercase +<Multi_key> <n> <g> : "🆖" U1F196 # "ng" NG button +<Multi_key> <o> <k> : "🆗" U1F197 # "ok" OK button +<Multi_key> <u> <p> : "🆙" U1F199 # "up" UP! button +<Multi_key> <c> <o> <o> <l> : "🆒" U1F192 # "cool" COOL button +<Multi_key> <n> <e> <w> : "🆕" U1F195 # "new" NEW button +<Multi_key> <f> <r> <e> <e> : "🆓" U1F193 # "free" FREE button +<Multi_key> <1> <2> <3> <4> : "🔢" U1F522 # "1234" input numbers +<Multi_key> <r> <e> <w> <i> <n> <d> : "âª" U23EA # "rewind" fast reverse button +<Multi_key> <r> <e> <p> <e> <a> <t> : "ðŸ”" U1F501 # "repeat" repeat button +<Multi_key> <n> <o> <t> <e> <s> : "🎶" U1F3B6 # "notes" musical notes +<Multi_key> <t> <m> : "â„¢ï¸" U2122 # "tm" trade mark +<Multi_key> <e> <n> <d> : "🔚" U1F51A # "end" END arrow +<Multi_key> <b> <a> <c> <k> : "🔙" U1F519 # "back" BACK arrow +<Multi_key> <o> <n> : "🔛" U1F51B # "on" ON! arrow +<Multi_key> <t> <o> <p> : "ðŸ”" U1F51D # "top" TOP arrow +<Multi_key> <s> <o> <o> <n> : "🔜" U1F51C # "soon" SOON arrow +<Multi_key> <m> <u> <t> <e> : "🔇" U1F507 # "mute" muted speaker +<Multi_key> <s> <o> <u> <n> <d> : "🔉" U1F509 # "sound" speaker medium volume +<Multi_key> <n> <o> <b> <e> <l> <l> : "🔕" U1F515 # "no_bell" bell with slash +<Multi_key> <b> <e> <l> <l> : "🔔" U1F514 # "bell" +<Multi_key> <m> <e> <g> <a> : "📣" U1F4E3 # "mega" megaphone +<Multi_key> <s> <p> <a> <d> <e> <s> : "â™ ï¸" U2660 # "spades" spade suit +<Multi_key> <c> <l> <u> <b> <s> : "♣ï¸" U2663 # "clubs" club suit +<Multi_key> <h> <e> <a> <r> <t> <s> : "♥ï¸" U2665 # "hearts" heart suit +<Multi_key> <c> <l> <o> <c> <k> <1> : "ðŸ•" U1F550 # "clock1" one o’clock +<Multi_key> <c> <l> <o> <c> <k> <2> : "🕑" U1F551 # "clock2" two o’clock +<Multi_key> <c> <l> <o> <c> <k> <3> : "🕒" U1F552 # "clock3" three o’clock +<Multi_key> <c> <l> <o> <c> <k> <4> : "🕓" U1F553 # "clock4" four o’clock +<Multi_key> <c> <l> <o> <c> <k> <5> : "🕔" U1F554 # "clock5" five o’clock +<Multi_key> <c> <l> <o> <c> <k> <6> : "🕕" U1F555 # "clock6" six o’clock +<Multi_key> <c> <l> <o> <c> <k> <7> : "🕖" U1F556 # "clock7" seven o’clock +<Multi_key> <c> <l> <o> <c> <k> <8> : "🕗" U1F557 # "clock8" eight o’clock +<Multi_key> <c> <l> <o> <c> <k> <9> : "🕘" U1F558 # "clock9" nine o’clock +<Multi_key> <l> <i> <f> <t> : "ðŸ‹ï¸" U1F3CB # weight lifter +<Multi_key> <s> <h> <o> <e> : "👞" U1F45E # shoe + +<Multi_key> <p> <i> : "Ï€" U03C0 # PI +<Multi_key> <t> <a> <u> : "Ï„" U03C4 # TAU diff --git a/dotfiles/.Xmodmap b/dotfiles/.Xmodmap @@ -0,0 +1,42 @@ +!keycode 160 = XF86AudioMute +!keycode 176 = XF86AudioRaiseVolume +!keycode 174 = XF86AudioLowerVolume +! +!keycode 144 = XF86AudioPrev +!keycode 162 = XF86AudioPlay +!keycode 153 = XF86AudioNext +! +!keycode 101 = XF86MonBrightnessDown +!keycode 212 = XF86MonBrightnessUp + +keycode 204 = XF86Eject + +! clear Mod5 +! keycode 135 = Hyper_R +! add Mod5 = Hyper_R + +!Swap left alt and left super +! clear Mod4 +! clear Mod1 +! keycode 64 = Super_L +! keycode 133 = Alt_L +! keycode 108 = Super_R +! keycode 134 = Alt_R +! add Mod4 = Super_L Super_R +! add Mod1 = Alt_L Alt_R + +! symmetry by having mute in the middle + +! F12 +!keycode 96 = XF86AudioRaiseVolume +! F11 +!keycode 95 = XF86AudioMute +! F110 +!keycode 76 = XF86AudioLowerVolume + +! F8 +!keycode 74 = XF86AudioNext +! F7 +!keycode 73 = XF86AudioPlay +! F6 +!keycode 72 = XF86AudioPrev diff --git a/dotfiles/.Xresources b/dotfiles/.Xresources @@ -0,0 +1,76 @@ +! vim: foldmethod=marker: + +!#include ".Xresources.d/themes/solarized" +!#include ".Xresources.d/themes/baskerville" +!#include ".Xresources.d/themes/sexy" +!#include ".Xresources.d/themes/mocha" +!#include ".Xresources.d/themes/tomorrow.light" +!#include ".Xresources.d/themes/tomorrow.dark" +!#include ".Xresources.d/themes/ashes.light" +!#include ".Xresources.d/themes/polygon" +!#include ".Xresources.d/themes/shore" +!#include ".Xresources.d/themes/tomorrow-night" +!#include ".Xresources.d/themes/lucius-white-high-contrast" +#include ".Xresources.d/themes/current" + +URxvt.perl-lib: /home/jb55/.Xresources.d/perl +URxvt*perl-ext-common: default,matcher,clipboard,keyboard-select,url-picker,resize-font + +URxvt.keysym.M-v: perl:keyboard-select:activate +URxvt.keysym.M-s: perl:keyboard-select:search +URxvt.keysym.M-f: perl:url-picker + +URxvt.resize-font.smaller: M-j +URxvt.resize-font.bigger: M-k + + +! urxvt +!URxvt*boldFont: -*-profont-*-*-*-*-12-*-*-*-*-*-*-* +!URxvt*font: -*-profont-*-*-*-*-12-*-*-*-*-*-*-* +!URxvt*font: xft:Source Code Pro:size=13:antialias=true;hinting=true,\ +! xft:Kochi Gothic:antialias=true,hinting=true +!URxvt*font: xft:PT Mono:size=11 +URxvt*font: xft:Inconsolata:size=16:hinting=true +!urxvt.font: xft:terminus:antialias=false:pixelsize=16 + +!xft:Inconsolata:size=18:antialias=true;hinting=true +! +/* URxvt*font: xft:Noto Serif:size=10:antialias=true;hinting=true */ + +URxvt*internalBorder: 22 +URxvt*matcher.button: 1 + +URxvt.color-themes.autosave: 1 +URxvt.color-themes.state-file: ~/.urxvt-theme +URxvt.color-themes.themedir: ~/dotfiles/.Xresources.d/themes +URxvt.keysym.Shift-Control-L: perl:color-themes:load-state +URxvt.keysym.Shift-Control-S: perl:color-themes:save-state +URxvt.keysym.Shift-Control-N: perl:color-themes:next +URxvt.keysym.Shift-Control-P: perl:color-themes:prev +URxvt.keysym.Shift-Control-V: perl:clipboard:paste + +URxvt*scrollBar: false +URxvt.iso14755: false +URxvt*boldMode: false +URxvt*cursorBlink: true +URxvt*termName: rxvt +URxvt*urgentOnBell: true + +Xft.antialias: 1 +Xft.hinting: 1 +Xft.hintstyle: hintfull +Xft.llter: lcddefault +Xft.rgba: rgbc + +URxvt*scrollTtyOutput: false +URxvt*scrollWithBuffer: true +URxvt*scrollTtyKeypress: true + + +!Emacs.font: Monospace-10 + +! XTerm +XTerm*boldFont: fixed +URxvt*url-launcher: /home/jb55/bin/browser + + diff --git a/dotfiles/.Xresources.d/perl/keyboard-select b/dotfiles/.Xresources.d/perl/keyboard-select @@ -0,0 +1,597 @@ +#!/usr/bin/env perl +# Author: Bert Muennich +# Website: http://www.github.com/muennich/urxvt-perls +# License: GPLv2 + +# Use keyboard shortcuts to select and copy text. + +# Usage: put the following lines in your .Xdefaults/.Xresources: +# URxvt.perl-ext-common: ...,keyboard-select +# URxvt.keysym.M-Escape: perl:keyboard-select:activate +# The following line overwrites the default Meta-s binding and allows to +# activate keyboard-select directly in backward search mode: +# URxvt.keysym.M-s: perl:keyboard-select:search + +# Use Meta-Escape to activate selection mode, then use the following keys: +# h/j/k/l: Move cursor left/down/up/right (also with arrow keys) +# g/G/0/^/$/H/M/L/f/F/;/,/w/W/b/B/e/E: More vi-like cursor movement keys +# '/'/?: Start forward/backward search +# n/N: Repeat last search, N: in reverse direction +# Ctrl-f/b: Scroll down/up one screen +# Ctrl-d/u: Scroll down/up half a screen +# v/V/Ctrl-v: Toggle normal/linewise/blockwise selection +# y/Return: Copy selection to primary buffer, Return: quit afterwards +# Y: Copy selected lines to primary buffer or cursor line and quit +# q/Escape: Quit keyboard selection mode + +use warnings; +use strict; + +sub on_start{ + my ($self) = @_; + + $self->{patterns}{'w'} = qr/\w[^\w\s]|\W\w|\s\S/; + $self->{patterns}{'W'} = qr/\s\S/; + $self->{patterns}{'b'} = qr/.*(?:\w[^\w\s]|\W\w|\s\S)/; + $self->{patterns}{'B'} = qr/.*\s\S/; + $self->{patterns}{'e'} = qr/[^\w\s](?=\w)|\w(?=\W)|\S(?=\s|$)/; + $self->{patterns}{'E'} = qr/\S(?=\s|$)/; + + () +} + + +sub on_action { + my ($self, $action) = @_; + + on_user_command($self, "keyboard-select:" . $action); +} + + +sub on_user_command { + my ($self, $cmd) = @_; + + if (not $self->{active}) { + if ($cmd eq 'keyboard-select:activate') { + activate($self); + } elsif ($cmd eq 'keyboard-select:search') { + activate($self, 1); + } + } + + () +} + + +sub key_press { + my ($self, $event, $keysym, $char) = @_; + my $key = chr($keysym); + + if (lc($key) eq 'c' && $event->{state} & urxvt::ControlMask) { + deactivate($self); + } elsif ($self->{search}) { + if ($keysym == 0xff1b) { + if ($self->{search_mode}) { + deactivate($self); + } else { + $self->{search} = ''; + status_area($self); + } + } elsif ($keysym == 0xff08) { + $self->{search} = substr($self->{search}, 0, -1); + if (not $self->{search} and $self->{search_mode}) { + deactivate($self); + } else { + status_area($self); + } + } elsif ($keysym == 0xff0d || + (lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) { + my $txt = substr($self->{search}, 1); + if ($txt) { + $self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ : + qr/\Q$txt\E/i; + } elsif ($self->{pattern}) { + delete $self->{pattern}; + } + $self->{search} = ''; + $self->screen_cur($self->{srhcr}, $self->{srhcc}); + if (not find_next($self)) { + if ($self->{search_mode}) { + deactivate($self); + } else { + status_area($self); + } + } + } elsif (length($char) > 0) { + $self->{search} .= $self->locale_decode($char); + my $txt = substr($self->{search}, 1); + if ($txt) { + $self->{pattern} = ($txt =~ m/[[:upper:]]/) ? qr/\Q$txt\E/ : + qr/\Q$txt\E/i; + } elsif ($self->{pattern}) { + delete $self->{pattern}; + } + $self->screen_cur($self->{srhcr}, $self->{srhcc}); + find_next($self); + status_area($self); + } + } elsif ($self->{move_to}) { + if ($keysym == 0xff1b) { + $self->{move_to} = 0; + status_area($self); + } elsif (length($char) > 0) { + $self->{move_to} = 0; + $self->{patterns}{'f-1'} = qr/^.*\Q$key\E/; + $self->{patterns}{'f+1'} = qr/^.+?\Q$key\E/; + move_to($self, ';'); + status_area($self); + } + } elsif ($keysym == 0xff1b || lc($key) eq 'q') { + deactivate($self); + } elsif (lc($key) eq 'y' || $keysym == 0xff0d || + (lc($key) eq 'm' && $event->{state} & urxvt::ControlMask)) { + my $quit = 0; + if ($key eq 'Y' && $self->{select} ne 'l') { + $quit = !$self->{select}; + toggle_select($self, 'l'); + } + if ($self->{select}) { + my ($br, $bc, $er, $ec) = calc_span($self); + $ec = $self->line($er)->l if $self->{select} eq 'l'; + $self->selection_beg($br, $bc); + $self->selection_end($er, $ec); + $self->selection_make($event->{time}, $self->{select} eq 'b'); + if (lc($key) eq 'y') { + $self->selection_beg(1, 0); + $self->selection_end(1, 0); + $self->{select} = ''; + status_area($self); + $self->want_refresh(); + } else { + $quit = 1; + } + } + if ($quit) { + deactivate($self); + } + } elsif ($key eq 'V') { + toggle_select($self, 'l'); + } elsif ($key eq 'v') { + if ($event->{state} & urxvt::ControlMask) { + toggle_select($self, 'b'); + } else { + toggle_select($self, 'n'); + } + } elsif ($key eq 'k' || $keysym == 0xff52) { + move_cursor($self, 'k'); + } elsif ($key eq 'j' || $keysym == 0xff54) { + move_cursor($self, 'j'); + } elsif ($key eq 'h' || $keysym == 0xff51) { + move_cursor($self, 'h'); + } elsif ($key eq 'l' || $keysym == 0xff53) { + move_cursor($self, 'l'); + } elsif ($keysym == 0xff57) { + move_cursor($self, '$'); + } elsif ($keysym == 0xff50) { + move_cursor($self, '^'); + } elsif ('gG0^$HML' =~ m/\Q$key\E/ || + ('fbdu' =~ m/\Q$key\E/ && $event->{state} & urxvt::ControlMask)) { + move_cursor($self, $key); + } elsif (lc($key) eq 'f') { + $self->{move_to} = 1; + $self->{move_dir} = $key eq 'F' ? -1 : 1; + status_area($self, $key); + } elsif (';,wWbBeE' =~ m/\Q$key\E/) { + move_to($self, $key); + } elsif ($key eq '/' || $key eq '?') { + $self->{search} = $key; + $self->{search_dir} = $key eq '?' ? -1 : 1; + ($self->{srhcr}, $self->{srhcc}) = $self->screen_cur(); + status_area($self); + } elsif (lc($key) eq 'n') { + find_next($self, $self->{search_dir} * ($key eq 'N' ? -1 : 1)); + } + + return 1; +} + + +sub move_cursor { + my ($self, $key) = @_; + my ($cr, $cc) = $self->screen_cur(); + my $line = $self->line($cr); + + if ($key eq 'k' && $line->beg > $self->top_row) { + $cr = $line->beg - 1; + } elsif ($key eq 'j' && $line->end < $self->nrow - 1) { + $cr = $line->end + 1; + } elsif ($key eq 'h' && $self->{offset} > 0) { + $self->{offset} = $line->offset_of($cr, $cc) - 1; + $self->{dollar} = 0; + } elsif ($key eq 'l' && $self->{offset} < $line->l - 1) { + ++$self->{offset}; + } elsif ($key eq 'f' || $key eq 'd') { + my $vs = $self->view_start() + + ($key eq 'd' ? $self->nrow / 2 : $self->nrow - 1); + $vs = 0 if $vs > 0; + $cr += $vs - $self->view_start($vs); + } elsif ($key eq 'b' || $key eq 'u') { + my $vs = $self->view_start() - + ($key eq 'u' ? $self->nrow / 2 : $self->nrow - 1); + $vs = $self->top_row if $vs < $self->top_row; + $cr += $vs - $self->view_start($vs); + } elsif ($key eq 'g') { + ($cr, $self->{offset}) = ($self->top_row, 0); + $self->{dollar} = 0; + } elsif ($key eq 'G') { + ($cr, $self->{offset}) = ($self->nrow - 1, 0); + $self->{dollar} = 0; + } elsif ($key eq '0') { + $self->{offset} = 0; + $self->{dollar} = 0; + } elsif ($key eq '^') { + my $ltxt = $self->special_decode($line->t); + while ($ltxt =~ s/^( *)\t/$1 . " " x (8 - length($1) % 8)/e) {} + $self->{offset} = $ltxt =~ m/^ +/ ? $+[0] : 0; + $self->{dollar} = 0; + } elsif ($key eq '$') { + my $co = $line->offset_of($cr, $cc); + $self->{dollar} = $co + 1; + $self->{offset} = $line->l - 1; + } elsif ($key eq 'H') { + $cr = $self->view_start(); + } elsif ($key eq 'M') { + $cr = $self->view_start() + $self->nrow / 2; + } elsif ($key eq 'L') { + $cr = $self->view_start() + $self->nrow - 1; + } + + $line = $self->line($cr); + $cc = $self->{dollar} || $self->{offset} >= $line->l ? $line->l - 1 : + $self->{offset}; + $self->screen_cur($line->coord_of($cc)); + + status_area($self); + $self->want_refresh(); + + () +} + + +sub move_to { + my ($self, $key) = @_; + my ($cr, $cc) = $self->screen_cur(); + my $line = $self->line($cr); + my $offset = $self->{offset}; + my ($dir, $pattern); + my ($wrap, $found) = (0, 0); + + if ($key eq ';' || $key eq ',') { + $dir = $self->{move_dir} * ($key eq ',' ? -1 : 1); + $pattern = $self->{patterns}{sprintf('f%+d', $dir)}; + return if not $pattern; + } else { + if (lc($key) eq 'b') { + $dir = -1; + } else { + $dir = 1; + ++$offset if lc($key) eq 'e'; + } + $pattern = $self->{patterns}{$key}; + $wrap = 1; + } + + if ($dir > 0) { + NEXTDOWN: my $text = substr($line->t, $offset); + if ($text =~ m/$pattern/) { + $offset += $+[0] - 1; + $found = 1; + } elsif ($wrap && $line->end + 1 < $self->nrow) { + $cr = $line->end + 1; + $line = $self->line($cr); + $offset = 0; + if (lc($key) eq 'e') { + goto NEXTDOWN; + } else { + $found = 1; + } + } + } elsif ($dir < 0) { + NEXTUP: my $text = substr($line->t, 0, $offset); + if ($text =~ m/$pattern/) { + $offset += $+[0] - length($text) - 1; + $found = 1; + } elsif ($wrap) { + if ($offset > 0) { + $offset = 0; + $found = 1; + } elsif ($line->beg > $self->top_row) { + $cr = $line->beg - 1; + $line = $self->line($cr); + $offset = $line->l; + goto NEXTUP; + } + } + } + + if ($found) { + $self->{dollar} = 0; + $self->{offset} = $offset; + $self->screen_cur($line->coord_of($offset)); + $self->want_refresh(); + } + + () +} + + +sub find_next { + my ($self, $dir) = @_; + + return if not $self->{pattern}; + $dir = $self->{search_dir} if not $dir; + + my ($cr, $cc) = $self->screen_cur(); + my $line = $self->line($cr); + my $offset = $line->offset_of($cr, $cc); + my $text; + my $found = 0; + + ++$offset if $dir > 0; + + while (not $found) { + if ($dir > 0) { + $text = substr($line->t, $offset); + if ($text =~ m/$self->{pattern}/) { + $found = 1; + $offset += $-[0]; + } else { + last if $line->end >= $self->nrow; + $line = $self->line($line->end + 1); + $offset = 0; + } + } else { + $text = substr($line->t, 0, $offset); + if ($text =~ m/$self->{pattern}/) { + $found = 1; + $offset = $-[0] while $text =~ m/$self->{pattern}/g; + } else { + last if $line->beg <= $self->top_row; + $line = $self->line($line->beg - 1); + $offset = $line->l; + } + } + } + + if ($found) { + $self->{dollar} = 0; + $self->{offset} = $offset; + $self->screen_cur($line->coord_of($offset)); + status_area($self); + $self->want_refresh(); + } + + return $found; +} + + +sub tt_write { + return 1; +} + + +sub refresh { + my ($self) = @_; + my ($cr, $cc) = $self->screen_cur(); + + # scroll the current cursor position into visible area + if ($cr < $self->view_start()) { + $self->view_start($cr); + } elsif ($cr >= $self->view_start() + $self->nrow) { + $self->view_start($cr - $self->nrow + 1); + } + + if ($self->{select}) { + my ($hl, $reverse_cursor); + my ($br, $bc, $er, $ec) = calc_span($self); + + if ($self->x_resource('highlightColor')) { + $hl = urxvt::RS_Sel; + $reverse_cursor = 0; + } else { + $hl = urxvt::RS_RVid; + $reverse_cursor = $self->{select} ne 'l'; + } + if ($self->{select} eq 'b') { + my $co = $self->line($cr)->offset_of($cr, $cc); + my $dollar = $self->{dollar} && $co >= $self->{dollar} - 1; + + my $r = $br; + while ($r <= $er) { + my $line = $self->line($r); + if ($bc < $line->l) { + $ec = $line->l if $dollar; + my ($br, $bc) = $line->coord_of($bc); + my ($er, $ec) = $line->coord_of($ec <= $line->l ? $ec : $line->l); + $self->scr_xor_span($br, $bc, $er, $ec, $hl); + } elsif ($r == $cr) { + $reverse_cursor = 0; + } + $r = $line->end + 1; + } + } else { + $self->scr_xor_span($br, $bc, $er, $ec, $hl); + } + + if ($reverse_cursor) { + # make the cursor visible again + $self->scr_xor_span($cr, $cc, $cr, $cc + 1, $hl); + } + } + + () +} + + +sub activate { + my ($self, $search) = @_; + + $self->{active} = 1; + + $self->{select} = ''; + $self->{dollar} = 0; + $self->{move_to} = 0; + + if ($search) { + $self->{search} = '?'; + $self->{search_dir} = -1; + $self->{search_mode} = 1; + } else { + $self->{search} = ''; + $self->{search_mode} = 0; + } + + ($self->{oldcr}, $self->{oldcc}) = $self->screen_cur(); + ($self->{srhcr}, $self->{srhcc}) = $self->screen_cur(); + $self->{old_view_start} = $self->view_start(); + $self->{old_pty_ev_events} = $self->pty_ev_events(urxvt::EV_NONE); + + my $line = $self->line($self->{oldcr}); + $self->{offset} = $line->offset_of($self->{oldcr}, $self->{oldcc}); + + $self->selection_beg(1, 0); + $self->selection_end(1, 0); + + $self->enable( + key_press => \&key_press, + refresh_begin => \&refresh, + refresh_end => \&refresh, + tt_write => \&tt_write, + ); + + if ($self->{offset} >= $line->l) { + $self->{offset} = $line->l > 0 ? $line->l - 1 : 0; + $self->screen_cur($line->coord_of($self->{offset})); + $self->want_refresh(); + } + + $self->{overlay_len} = 0; + status_area($self); + + () +} + + +sub deactivate { + my ($self) = @_; + + $self->selection_beg(1, 0); + $self->selection_end(1, 0); + + delete $self->{overlay} if $self->{overlay}; + + $self->disable("key_press", "refresh_begin", "refresh_end", "tt_write"); + $self->screen_cur($self->{oldcr}, $self->{oldcc}); + $self->view_start($self->{old_view_start}); + $self->pty_ev_events($self->{old_pty_ev_events}); + + $self->want_refresh(); + + $self->{active} = 0; + + () +} + + +sub status_area { + my ($self, $extra) = @_; + my ($stat, $stat_len); + + if ($self->{search}) { + $stat_len = $self->ncol; + $stat = $self->{search} . ' ' x ($stat_len - length($self->{search})); + } else { + if ($self->{select}) { + $stat = "-V" . ($self->{select} ne 'n' ? uc($self->{select}) : "") . "- "; + } + + if ($self->top_row == 0) { + $stat .= "All"; + } elsif ($self->view_start() == $self->top_row) { + $stat .= "Top"; + } elsif ($self->view_start() == 0) { + $stat .= "Bot"; + } else { + $stat .= sprintf("%2d%%", + ($self->top_row - $self->view_start) * 100 / $self->top_row); + } + + $stat = "$extra $stat" if $extra; + $stat_len = length($stat); + } + + if (!$self->{overlay} || $self->{overlay_len} != $stat_len) { + delete $self->{overlay} if $self->{overlay}; + $self->{overlay} = $self->overlay(-1, -1, $stat_len, 1, + urxvt::OVERLAY_RSTYLE, 0); + $self->{overlay_len} = $stat_len; + } + + $self->{overlay}->set(0, 0, $self->special_encode($stat)); + $self->{overlay}->show(); + + () +} + + +sub toggle_select { + my ($self, $mode) = @_; + + if ($self->{select} eq $mode) { + $self->{select} = ''; + } else { + if (not $self->{select}) { + ($self->{ar}, $self->{ac}) = $self->screen_cur(); + } + $self->{select} = $mode; + } + + status_area($self); + $self->want_refresh(); + + () +} + + +sub calc_span { + my ($self) = @_; + my ($cr, $cc) = $self->screen_cur(); + my ($br, $bc, $er, $ec); + + if ($self->{select} eq 'b') { + $br = $self->line($cr)->beg; + $bc = $self->line($cr)->offset_of($cr, $cc); + $er = $self->line($self->{ar})->beg; + $ec = $self->line($self->{ar})->offset_of($self->{ar}, $self->{ac}); + ($br, $er) = ($er, $br) if $br > $er; + ($bc, $ec) = ($ec, $bc) if $bc > $ec; + } else { + if ($cr < $self->{ar}) { + ($br, $bc, $er, $ec) = ($cr, $cc, $self->{ar}, $self->{ac}); + } elsif ($cr > $self->{ar}) { + ($br, $bc, $er, $ec) = ($self->{ar}, $self->{ac}, $cr, $cc); + } else { + ($br, $er) = ($cr, $cr); + ($bc, $ec) = $cc < $self->{ac} ? ($cc, $self->{ac}) : ($self->{ac}, $cc); + } + } + + if ($self->{select} eq 'l') { + ($br, $er) = ($self->line($br)->beg, $self->line($er)->end); + ($bc, $ec) = (0, $self->ncol); + } else { + ++$ec; + } + + return ($br, $bc, $er, $ec); +} diff --git a/dotfiles/.Xresources.d/perl/resize-font b/dotfiles/.Xresources.d/perl/resize-font @@ -0,0 +1,170 @@ +# #!/usr/bin/env perl +# vim:ft=perl:fenc=utf-8:tw=80 +# Copyright (c) 2009-, Simon Lundström <simmel@soy.se> +# Copyright (c) 2014 Maarten de Vries <maarten@de-vri.es> +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +my @fonts = ( + {'name' => 'font', 'code' => 710}, + {'name' => 'boldFont', 'code' => 711}, + {'name' => 'italicFont', 'code' => 712}, + {'name' => 'boldItalicFont', 'code' => 713}, +); + +my @fixed = qw(4x6 5x7 5x8 6x9 6x10 6x12 6x13 7x13 7x14 8x13 8x16 9x15 9x18 + 10x20 12x24); +my $step; + +sub on_start { + my ($self) = @_; + + foreach (@fonts) { + $_->{'default'} = $self->resource($_->{'name'}); + } + + $step = $self->x_resource("%.step") || 2; +} + +sub on_init { + my ($self) = @_; + my $commands = { + "smaller" => "C-minus", + "bigger" => "C-plus", + "reset" => "C-equal", + "show" => "C-question", + }; + bind_hotkeys($self, $commands); + + () +} + +sub bind_hotkeys { + my ($self, $commands) = @_; + + for (keys %$commands) { + my $hotkey = $$commands{$_}; + my $hotkey_bound = $self->{'term'}->x_resource("keysym.$hotkey"); + if (!defined($hotkey_bound) ) { + # Support old-style key bindings + if ($self->x_resource("%.$_")) { + $hotkey = $self->x_resource("%.$_"); + } + + # FIXME If we're bound to a keysym, don't bind the default. + $self->bind_action($hotkey, "%:$_") or + warn "unable to register '$hotkey' as hotkey for $_"; + } + else { + if ($hotkey_bound !~ /^resize-font:/) { + warn "Hotkey $$commands{$_} already bound to $hotkey_bound, not ". + "binding to resize-font:$_ by default."; + } + } + } +} + +sub on_action { + my ($self, $string) = @_; + + if ($string eq "bigger") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, +$step); + } + } + elsif ($string eq "smaller") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, -$step); + } + } + elsif ($string eq "reset") { + foreach (@fonts) { + next if not defined($_->{'default'}); + set_font($self, $_, $_->{'default'}); + } + } + elsif ($string eq "show") { + + my $term = $self->{'term'}; + $term->{'resize-font'}{'overlay'} = { + ov => $term->overlay_simple(0, -1, format_font_info($self)), + to => urxvt::timer + ->new + ->start(urxvt::NOW + 1) + ->cb(sub { + delete $term->{'resize-font'}{'overlay'}; + }), + }; + } + + () +} + +sub get_font { + my ($self, $name) = @_; + return $self->resource($name); +} + +sub set_font { + my ($self, $font, $new) = @_; + $self->cmd_parse(sprintf("\33]%d;%s\007", $font->{'code'}, $new)); +} + +sub update_font_size { + my ($self, $font, $delta) = @_; + my $regex = qr"(?<=size=)(\d+)"; + my $current = get_font($self, $font->{'name'}); + + my ($index) = grep { $fixed[$_] eq $current } 0..$#fixed; + if ($index or $index eq 0) { + my $inc = $delta / abs($delta); + $index += $inc; + if ($index < 0) { $index = 0; } + if ($index > $#fixed) { $index = $#fixed; } + $current = $fixed[$index]; + } + elsif ($current =~ /^-/) { + my @font = split(/-/, $current); + # https://en.wikipedia.org/wiki/X_logical_font_description + my $newsize = $font[7]+$delta; + $font[7] = $newsize if ($newsize > 0); + $current = join('-', @font); + } + else { + my $newsize = $1+$delta if ($current =~ /$regex/); + $current =~ s/$regex/$newsize/ge if ($newsize > 0); + } + set_font($self, $font, $current); +} + +sub format_font_info { + my ($self) = @_; + + my $width = 0; + foreach (@fonts) { + my $length = length($_->{'name'}); + $width = $length > $width ? $length : $width; + } + ++$width; + + my $info = ''; + foreach (@fonts) { + $info .= sprintf("%-${width}s %s\n", $_->{'name'} . ':', + get_font($self, $_->{'name'})); + } + + return $info; +} diff --git a/dotfiles/.Xresources.d/perl/url-picker b/dotfiles/.Xresources.d/perl/url-picker @@ -0,0 +1,212 @@ +#! perl + +# Author: Chip Camden <sterling@camdensoftware.com> + +my $url = + qr{ + (?:https?://|ftp://|news://|mailto:|file://|\bwww\.) + [a-zA-Z0-9\-\@;\/?:&=%\$_.+!*\x27,~#]* + ( + # Allow a pair of matched parentheses + \([a-zA-Z0-9\-\@;\/?:&=%\$_.+!*\x27,~#]*\)| + # exclude some trailing characters (heuristic) + [a-zA-Z0-9\-\@;\/?:&=%\$_+*~] + )+ + }x; + +sub on_user_command { + my ($self, $cmd) = @_; + if ($cmd =~ s/^url-picker\b//) { + my $labels = {}; + my $hrefs = {}; + my $rowmap = {}; + my $num = 0; + my $row = 0; + my $base_col = 0; + my $text = ''; + my $label_rend = $self->get_rend("label", urxvt::OVERLAY_RSTYLE); + my $label_urls = sub { + my @overlays; + while ($text =~ /$url/g) { + my $ndx = $-[0]; + my $href = $&; + my $col = 0; + for my $key (keys %$rowmap) { + my $value = $rowmap->{$key}; + my ($start, $end) = @$value; + if (($start <= $ndx) && ($end >= $ndx)) { + $row = $key; + $col = $ndx - $start; + last; + } + } + my @ov = ($col, $row, $href); + push(@overlays, \@ov) if ($row >= 0); + } + @overlays = reverse @overlays if ($self->{descending}); + for my $ov (@overlays) { + my ($col, $row, $href) = @$ov; + $num++; + my $overlay = $self->overlay( + $col, $row, $self->strwidth($num), 1, $label_rend, 0 + ); + $overlay->set(0,0,$num); + $labels->{$num} = $overlay; + $hrefs->{$num} = $href; + } + }; + my ($brow, $bcol) = $self->selection_beg(); + my ($erow, $ecol) = $self->selection_end(); + my $issel = ($ecol > $bcol) || ($erow > $brow); + if ($issel) { # restrict to selection if one exists + ($row, $base_col) = ($brow - $self->view_start, $bcol); + for (split(/\n/, $self->selection())) { + my $start = length($text) - $base_col; + $text .= $_; + $rowmap->{$row} = [$start, (length($text)-1)]; + $base_col = 0; + $row++; + } + } else { # no selection, use visible terminal + for (0..($self->nrow - 1)) { + $row = $_; + my $start = length($text); + $text .= $self->ROW_t($row + $self->view_start); + $rowmap->{$row} = [$start, (length($text)-1)]; + } + } + $label_urls->(); + + if ($num < 1) { + my $desc = $issel ? "in visible selected text" : "on visible screen"; + $self->status_msg("url-picker: no URLs found $desc"); + } else { + my $url_picker = {}; + $url_picker->{prompt} = $self->overlay( + 0, -1, 8, 1, $self->get_rend("prompt", urxvt::OVERLAY_RSTYLE), 0 + ); + $url_picker->{prompt}->set(0,0,"Follow:"); + $url_picker->{labels} = $labels; + $url_picker->{hrefs} = $hrefs; + $url_picker->{num} = $num; + $url_picker->{buffer} = ''; + my ($crow,$ccol) = $self->screen_cur; + $url_picker->{crow} = $crow; + $url_picker->{ccol} = $ccol; + $self->{url_picker} = $url_picker; + $self->update($url_picker); + } + } + () +} + +sub on_key_press { + my ($self, $event, $keysym) = @_; + my $p = $self->{url_picker}; + if ($p) { + if ($keysym == 0xff1b) { # escape + $self->screen_cur($p->{crow},$p->{ccol}); + $self->{url_picker} = (); + } elsif ($keysym == 0xff08) { # backspace + if (length($p->{buffer}) > 0) { + $p->{buffer} = substr($p->{buffer},0,-1); + $self->update($p); + } + } elsif (($keysym >= 48) && ($keysym <= 57)) { + $p->{buffer} = $p->{buffer} . ($keysym - 48); + $self->update($p); + } elsif ($keysym == 0xff0d) { # CR + my $num = $p->{buffer}; + my $hrefs = $p->{hrefs}; + if (($num > 0) && ($num <= $p->{num})) { + my $href = $hrefs->{$num}; + $self->launch($href); + } + } + return 1; + } + () +} + +sub update { + my ($self, $p) = @_; + $p->{typing} = $self->overlay( + 8, -1, length($p->{buffer}), 1, $self->get_rend("input", urxvt::DEFAULT_RSTYLE), 0 + ); + $p->{typing}->set(0,0,$p->{buffer}); + my $ndx = 0; + my $labels = $p->{labels}; + my $hrefs = $p->{hrefs}; + my $len = length($p->{buffer}); + my $size = $p->{num}; + my @matches; + while (++$ndx <= $size) { + my $overlay = $labels->{$ndx}; + if (($len == 0) || + (($len <= length($ndx)) && (substr($ndx,0,$len) eq $p->{buffer}))) { + $overlay->show; + unshift @matches,$hrefs->{$ndx}; + } else { + $overlay->hide; + } + } + if (scalar(@matches) == 1) { + $self->launch(@matches[0]); + } else { + $self->screen_cur($self->nrow,8+$len); + } +} + +sub launch { + my ($self, $href) = @_; + my $p = $self->{url_picker}; + $self->screen_cur($p->{crow},$p->{ccol}); + $self->{url_picker} = (); + my $launcher = $self->{launcher}; + $self->status_msg($href); + $self->exec_async ($launcher,$href); +} + +sub status_msg { + my ($self, $msg) = @_; + $self->{url_picker_msg} = $self->overlay(0,-1,length($msg),1,$self->get_rend("status",urxvt::OVERLAY_RSTYLE),0); + $self->{url_picker_msg}->set(0,0,$msg); + $self->{url_picker_timer} = urxvt::timer + ->new + ->after (5) + ->cb (sub { + $self->{url_picker_msg} = (); + $self->{url_pickertimer} = (); + }); +} + +sub get_rend { + my ($self, $name, $default) = @_; + urxvt::SET_COLOR $default, + $self->my_resource("$name.foregroundColor") || urxvt::GET_BASEFG $default, + $self->my_resource("$name.backgroundColor") || urxvt::GET_BASEBG $default; +} + +sub on_key_release { + my ($self, $event, $keysym) = @_; + $self->{url_picker}; +} + +sub my_resource { + my ($self, $name) = @_; + $self->x_resource ("$self->{name}.$name"); +} + +sub on_start { + my ($self) = @_; + + ($self->{name} = __PACKAGE__) =~ s/.*:://; + $self->{name} =~ tr/_/-/; + $self->{launcher} = $self->my_resource("launcher") || + $self->x_resource("url-launcher") || + "sensible-browser"; + $self->{descending} = ($self->my_resource("order") eq "descending"); + $self->{url_picker} = (); +} + +# vim:set sw=3 sts=3 et: diff --git a/dotfiles/.Xresources.d/themes/ashes.light b/dotfiles/.Xresources.d/themes/ashes.light @@ -0,0 +1,36 @@ +! special +*.foreground: #565e65 +*.background: #f3f4f5 +*.cursorColor: #565e65 + +! black +*.color0: #1c2023 +*.color8: #747c84 + +! red +*.color1: #c7ae95 +*.color9: #c7ae95 + +! green +*.color2: #95c7ae +*.color10: #95c7ae + +! yellow +*.color3: #aec795 +*.color11: #aec795 + +! blue +*.color4: #ae95c7 +*.color12: #ae95c7 + +! magenta +*.color5: #c795ae +*.color13: #c795ae + +! cyan +*.color6: #95aec7 +*.color14: #95aec7 + +! white +*.color7: #c7ccd1 +*.color15: #f3f4f5 diff --git a/dotfiles/.Xresources.d/themes/baskerville b/dotfiles/.Xresources.d/themes/baskerville @@ -0,0 +1,79 @@ +! invisibone by baskerville +! +! vim: set ft=xdefaults: + +URxvt.background: #232323 +URxvt.foreground: #B0B0B0 + +URxvt.colorBD: #CFCFCF +URxvt.colorUL: #A0A0A0 +URxvt.colorIT: #686868 + +!BLK +URxvt.color0: #303030 +URxvt.color8: #686868 + +!RED +URxvt.color9: #FFA7DA +URxvt.color1: #D370A3 + +!GRN +URxvt.color10: #A3D572 +URxvt.color2: #6D9E3F + +!BLU +URxvt.color12: #98CBFE +URxvt.color4: #6095C5 + +!YEL +URxvt.color11: #EFBD8B +URxvt.color3: #B58858 + +!CYN +URxvt.color14: #75DAA9 +URxvt.color6: #3BA275 + +!MAG +URxvt.color13: #E5B0FF +URxvt.color5: #AC7BDE + +!WHT +URxvt.color7: #CFCFCF +URxvt.color15: #FFFFFF + +! special +!*foreground: #87929d +!*background: #101820 +!*cursorColor: #3d7070 + +! black +!*color0: #303840 +!*color8: #606870 + +! red +!*color1: #701625 +!*color9: #a33749 + +! green +!*color2: #457030 +!*color10: #73a35b + +! yellow +!*color3: #89531e +!*color11: #bc7f42 + +! blue +!*color4: #305070 +!*color12: #5b7fa3 + +! magenta +!*color5: #704970 +!*color13: #a37fa3 + +! cyan +!*color6: #3d7070 +!*color14: #6da3a3 + +! white +!*color7: #a0a8b0 +!*color15: #d0d8e0 diff --git a/dotfiles/.Xresources.d/themes/cmr b/dotfiles/.Xresources.d/themes/cmr @@ -0,0 +1,27 @@ + ! "black" + *color0: #4d4d4d + *color8: #5a5a5a + ! red + *color1: #C70031 + *color9: #F05178 + ! green + *color2: #29CF13 + *color10: #6CE05C + ! yellow + *color3: #D8E30E + *color11: #F3F79E + ! blue + *color4: #3449D1 + *color12: #97A4F7 + ! magenta + *color5: #8400FF + *color13: #C495F0 + ! cyan + *color6: #0798AB + *color14: #68F2E0 + ! "white" + *color7: #E2D1E3 + *color15: #FFFFFF + + URxvt*background: #151515 + URxvt*foreground: #aeaeae+ \ No newline at end of file diff --git a/dotfiles/.Xresources.d/themes/dark b/dotfiles/.Xresources.d/themes/dark @@ -0,0 +1 @@ +onedark+ \ No newline at end of file diff --git a/dotfiles/.Xresources.d/themes/digerati b/dotfiles/.Xresources.d/themes/digerati @@ -0,0 +1,34 @@ +! Black +*color0: #303030 +*color8: #5F5F5F + +! Red +*color1: #c03000 +*color9: #FF3A78 + +! Green +*color2: #b1d631 +*color10: #A6CD07 + +! Yellow +*color3: #fecf35 +*color11: #B5C865 + +! Blue +*color4: #426870 +*color12: #4A7781 + +! Magenta +*color5: #6D506D +*color13: #FF3B77 + +! Cyan +*color6: #4bb5c1 +*color14: #4bb5c1 + +! White +*color7: #e2e2e5 +*color15: #e2e2e5 + +! vim: et sw=2 syn=xdefaults + diff --git a/dotfiles/.Xresources.d/themes/light b/dotfiles/.Xresources.d/themes/light @@ -0,0 +1 @@ +lucius-white-high-contrast+ \ No newline at end of file diff --git a/dotfiles/.Xresources.d/themes/lucius-white-high-contrast b/dotfiles/.Xresources.d/themes/lucius-white-high-contrast @@ -0,0 +1,20 @@ +*background: #ffffff +*foreground: #000000 +*cursorColor: #5f87af +*color0: #000000 +*color8: #000000 +*color1: #af0000 +*color9: #af0000 +*color2: #008700 +*color10: #008700 +*color3: #af5f00 +*color11: #af5f00 +*color4: #005faf +*color12: #005faf +*color5: #870087 +*color13: #870087 +*color6: #008787 +*color14: #008787 +*color7: #ffffff +*color15: #ffffff + diff --git a/dotfiles/.Xresources.d/themes/mocha b/dotfiles/.Xresources.d/themes/mocha @@ -0,0 +1,36 @@ +! special +*.foreground: #645240 +*.background: #f5eeeb +*.cursorColor: #645240 + +! black +*.color0: #3b3228 +*.color8: #7e705a + +! red +*.color1: #cb6077 +*.color9: #cb6077 + +! green +*.color2: #beb55b +*.color10: #beb55b + +! yellow +*.color3: #f4bc87 +*.color11: #f4bc87 + +! blue +*.color4: #8ab3b5 +*.color12: #8ab3b5 + +! magenta +*.color5: #a89bb9 +*.color13: #a89bb9 + +! cyan +*.color6: #7bbda4 +*.color14: #7bbda4 + +! white +*.color7: #d0c8c6 +*.color15: #645240 diff --git a/dotfiles/.Xresources.d/themes/mono b/dotfiles/.Xresources.d/themes/mono @@ -0,0 +1,26 @@ +!Muzieca mono +!black +*color0: #000000 +*color8: #090909 +!red +*color1: #111111 +*color9: #181818 +!green +*color2: #222222 +*color10: #272727 +!yellow +*color3: #333333 +*color11: #393939 +!blue +*color4: #444444 +*color12: #484848 +!magenta +*color5: #555555 +*color13: #595959 +!cyan +*color6: #666666 +*color14: #707070 +!white +*color7: #777777 +*color15: #818181 + diff --git a/dotfiles/.Xresources.d/themes/nancy b/dotfiles/.Xresources.d/themes/nancy @@ -0,0 +1,328 @@ +/* vim: ft=xdefaults: + What: nancy.Xresources + Where: $XDG_CONFIG_HOME/Xcolors/nancy.Xresources + Who: Magnus Woldrich <m@japh.se> + Created: 2008-04-24 + Updated: 2012-06-16 + URL: http://github.com/trapd00r/configs/blob/master/Xcolors + http://devel.japh.se/nancy/nancy.png + Usage: Include this file from your main X resource file: + + #include <path>/nancy.Xresources + + This X resource file redefines not only the standard ANSI colors but also + some of the extended ones (52, 85-88, 231 as of this writing). + It will work with any xterm-compatible terminal. If you're using xterm, + depending on your setup, you might have to enable one or the other or both + of the following resources: + + allowColorOps + dynamicColors + + Either way, it'll be a good idea to enable both because it's definitely a + must when you're going to play with the utilities and libraries described + below. + + urxvt doesn't support redefining of anything but ANSI colors, but I have + patched [0] her to allow for modification of the full 256 color table. + + If you'd want to create your own colorschemes, or if you need to set colors + for the current terminal session only, thus not making the changes persistent, + take a look at colorcoke [1] and its wiki entry [2]. + + If you're a developer you'll find Term::ExtendedColor::Xresources [3] + useful. + + You can query the terminal for the current color values, see [3] and + rgbterm [4]. + + For trying out colorschemes quickly, or for inclusion in other scripts, the + xcolor [5] utility might prove useful. + It's basically ttycolor [6] for X, requested by a user. + + There's a bunch of example scripts using colorcoke in the scripts/ [7] + directory (matrix!). + +[0]: http://github.com/trapd00r/rxvt-unicode +[1]: http://github.com/trapd00r/colorcoke +[2]: http://github.com/trapd00r/colorcoke/wiki +[3]: http://github.com/trapd00r/Term-ExtendedColor-Xresources +[4]: http://github.com/trapd00r/rgbterm +[5]: http://github.com/trapd00r/Term-ExtendedColor-Xresources/blob/master/bin/xcolor +[6]: http://github.com/trapd00r/ttycolor +[7]: http://github.com/trapd00r/colorcoke/tree/master/scripts +*/ + + + +*foreground: #fff +*background: #010101 +*colorBD: #7e6449 +*colorIT: #7c7e49 +*colorRV: #121212 +*colorUL: #ff8f00 +*fadeColor: #000016 +*borderColor: #1b1d1e +*underlineColor: #de5105 +*cursorColor: #e5e5e5 +*cursorColor2: #201526 +*pointerColor: #252525 +*pointerColor2: #201526 + +*color0: #1b1d1e +*color1: #f92672 +*color2: #82b414 +*color3: #fd971f +*color4: #4e82aa +*color5: #8c54fe +*color6: #465457 +*color7: #ccccc6 +*color8: #505354 +*color9: #ff5995 +*color10: #b6e354 +*color11: #feed6c +*color12: #0c73c2 +*color13: #9e6ffe +*color14: #899ca1 +*color15: #f8f8f2 + +*color16: #000000 +*color17: #00005f +*color18: #000087 +*color19: #0000af +*color20: #0000d7 +*color21: #0000ff +*color22: #005f00 +*color23: #005f5f +*color24: #005f87 +*color25: #005faf +*color26: #005fd7 +*color27: #005fff +*color28: #008700 +*color29: #00875f +*color30: #008787 +*color31: #0087af +*color32: #0087d7 +*color33: #0087ff +*color34: #00af00 +*color35: #00af5f +*color36: #00af87 +*color37: #00afaf +*color38: #00afd7 +*color39: #00afff +*color40: #00d700 +*color41: #00d75f +*color42: #00d787 +*color43: #00d7af +*color44: #00d7d7 +*color45: #00d7ff +*color46: #00ff00 +*color47: #00ff5f +*color48: #00ff87 +*color49: #00ffaf +*color50: #00ffd7 +*color51: #00ffff +*color52: #131324 +*color53: #5f005f +*color54: #5f0087 +*color55: #5f00af +*color56: #5f00d7 +*color57: #5f00ff +*color58: #5f5f00 +*color59: #5f5f5f +*color60: #5f5f87 +*color61: #5f5faf +*color62: #5f5fd7 +*color63: #5f5fff +*color64: #5f8700 +*color65: #5f875f +*color66: #5f8787 +*color67: #5f87af +*color68: #5f87d7 +*color69: #5f87ff +*color70: #5faf00 +*color71: #5faf5f +*color72: #5faf87 +*color73: #5fafaf +*color74: #5fafd7 +*color75: #5fafff +*color76: #5fd700 +*color77: #5fd75f +*color78: #5fd787 +*color79: #5fd7af +*color80: #5fd7d7 +*color81: #5fd7ff +*color82: #5fff00 +*color83: #5fff5f +*color84: #5fff87 +*color85: #a03040 +*color86: #565941 +*color87: #594459 +*color88: #009bff +*color89: #87005f +*color90: #870087 +*color91: #8700af +*color92: #8700d7 +*color93: #8700ff +*color94: #875f00 +*color95: #875f5f +*color96: #875f87 +*color97: #875faf +*color98: #875fd7 +*color99: #875fff +*color100: #878700 +*color101: #87875f +*color102: #878787 +*color103: #8787af +*color104: #8787d7 +*color105: #8787ff +*color106: #87af00 +*color107: #87af5f +*color108: #87af87 +*color109: #87afaf +*color110: #87afd7 +*color111: #87afff +*color112: #87d700 +*color113: #87d75f +*color114: #87d787 +*color115: #87d7af +*color116: #87d7d7 +*color117: #87d7ff +*color118: #87ff00 +*color119: #87ff5f +*color120: #87ff87 +*color121: #87ffaf +*color122: #87ffd7 +*color123: #87ffff +*color124: #af0000 +*color125: #af005f +*color126: #af0087 +*color127: #af00af +*color128: #af00d7 +*color129: #af00ff +*color130: #af5f00 +*color131: #af5f5f +*color132: #af5f87 +*color133: #af5faf +*color134: #af5fd7 +*color135: #af5fff +*color136: #af8700 +*color137: #af875f +*color138: #af8787 +*color139: #af87af +*color140: #af87d7 +*color141: #af87ff +*color142: #afaf00 +*color143: #afaf5f +*color144: #afaf87 +*color145: #afafaf +*color146: #afafd7 +*color147: #afafff +*color148: #afd700 +*color149: #afd75f +*color150: #afd787 +*color151: #afd7af +*color152: #afd7d7 +*color153: #afd7ff +*color154: #afff00 +*color155: #afff5f +*color156: #afff87 +*color157: #afffaf +*color158: #afffd7 +*color159: #afffff +*color160: #d70000 +*color161: #d7005f +*color162: #d70087 +*color163: #d700af +*color164: #d700d7 +*color165: #d700ff +*color166: #d75f00 +*color167: #d75f5f +*color168: #d75f87 +*color169: #d75faf +*color170: #d75fd7 +*color171: #d75fff +*color172: #d78700 +*color173: #d7875f +*color174: #d78787 +*color175: #d787af +*color176: #d787d7 +*color177: #d787ff +*color178: #d7af00 +*color179: #d7af5f +*color180: #d7af87 +*color181: #d7afaf +*color182: #d7afd7 +*color183: #d7afff +*color184: #d7d700 +*color185: #ffff00 +*color186: #d7d787 +*color187: #d7d7af +*color188: #d7d7d7 +*color189: #d7d7ff +*color190: #d7ff00 +*color191: #d7ff5f +*color192: #d7ff87 +*color193: #d7ffaf +*color194: #d7ffd7 +*color195: #d7ffff +*color196: #ff0000 +*color197: #ff005f +*color198: #ff0087 +*color199: #ff00af +*color200: #ff00d7 +*color201: #ff00ff +*color202: #ff5f00 +*color203: #ff5f5f +*color204: #ff5f87 +*color205: #ff5faf +*color206: #ff5fd7 +*color207: #ff5fff +*color208: #ff8700 +*color209: #ff875f +*color210: #ff8787 +*color211: #ff87af +*color212: #ff87d7 +*color213: #ff87ff +*color214: #ffaf00 +*color215: #ffaf5f +*color216: #ffaf87 +*color217: #ffafaf +*color218: #ffafd7 +*color219: #ffafff +*color220: #ffd700 +*color221: #ffd75f +*color222: #ffd787 +*color223: #ffd7af +*color224: #ffd7d7 +*color225: #ffd7ff +*color226: #ffff00 +*color227: #ffff5f +*color228: #ffff87 +*color229: #ffffaf +*color230: #ffffd7 +*color231: #060000 +*color232: #080808 +*color233: #121212 +*color234: #1c1c1c +*color235: #262626 +*color236: #303030 +*color237: #3a3a3a +*color238: #444444 +*color239: #4e4e4e +*color240: #585858 +*color241: #626262 +*color242: #6c6c6c +*color243: #767676 +*color244: #808080 +*color245: #8a8a8a +*color246: #949494 +*color247: #9e9e9e +*color248: #a8a8a8 +*color249: #b2b2b2 +*color250: #bcbcbc +*color251: #c6c6c6 +*color252: #d0d0d0 +*color253: #dadada +*color254: #e4e4e4 +*color255: #eeeeee diff --git a/dotfiles/.Xresources.d/themes/onedark b/dotfiles/.Xresources.d/themes/onedark @@ -0,0 +1,54 @@ +! Base16 OneDark +! Scheme: Lalit Magant (http://github.com/tilal6991) + +#define base00 #282c34 +#define base01 #353b45 +#define base02 #3e4451 +#define base03 #545862 +#define base04 #565c64 +#define base05 #abb2bf +#define base06 #b6bdca +#define base07 #c8ccd4 +#define base08 #e06c75 +#define base09 #d19a66 +#define base0A #e5c07b +#define base0B #98c379 +#define base0C #56b6c2 +#define base0D #61afef +#define base0E #c678dd +#define base0F #be5046 + +*.foreground: base05 +#ifdef background_opacity +*.background: [background_opacity]base00 +#else +*.background: base00 +#endif +*.cursorColor: base05 + +*.color0: base00 +*.color1: base08 +*.color2: base0B +*.color3: base0A +*.color4: base0D +*.color5: base0E +*.color6: base0C +*.color7: base05 + +*.color8: base03 +*.color9: base08 +*.color10: base0B +*.color11: base0A +*.color12: base0D +*.color13: base0E +*.color14: base0C +*.color15: base07 + +! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt), +! use 'shell' template to set these if necessary +*.color16: base09 +*.color17: base0F +*.color18: base01 +*.color19: base02 +*.color20: base04 +*.color21: base06 diff --git a/dotfiles/.Xresources.d/themes/sexy b/dotfiles/.Xresources.d/themes/sexy @@ -0,0 +1,37 @@ +! special +*.foreground: #c5c8c6 +*.background: #1d1f21 +*.cursorColor: #c5c8c6 + +! black +*.color0: #282a2e +*.color8: #373b41 + +! red +*.color1: #a54242 +*.color9: #cc6666 + +! green +*.color2: #8c9440 +*.color10: #b5bd68 + +! yellow +*.color3: #de935f +*.color11: #f0c674 + +! blue +*.color4: #5f819d +*.color12: #81a2be + +! magenta +*.color5: #85678f +*.color13: #b294bb + +! cyan +*.color6: #5e8d87 +*.color14: #8abeb7 + +! white +*.color7: #707880 +*.color15: #c5c8c6 + diff --git a/dotfiles/.Xresources.d/themes/solarized b/dotfiles/.Xresources.d/themes/solarized @@ -0,0 +1,56 @@ +#define S_base03 #002b36 +#define S_base02 #073642 +#define S_base01 #586e75 +#define S_base00 #657b83 +#define S_base0 #839496 +#define S_base1 #93a1a1 +#define S_base2 #eee8d5 +#define S_base3 #fdf6e3 + +*background: S_base3 +*foreground: S_base00 +*fadeColor: S_base3 +*cursorColor: S_base01 +*pointerColorBackground:S_base1 +*pointerColorForeground:S_base01 + +#define S_yellow #b58900 +#define S_orange #cb4b16 +#define S_red #dc322f +#define S_magenta #d33682 +#define S_violet #6c71c4 +#define S_blue #268bd2 +#define S_cyan #2aa198 +#define S_green #859900 + +!! black dark/light +*color0: S_base02 +*color8: S_base03 + +!! red dark/light +*color1: S_red +*color9: S_orange + +!! green dark/light +*color2: S_green +*color10: S_base01 + +!! yellow dark/light +*color3: S_yellow +*color11: S_base00 + +!! blue dark/light +*color4: S_blue +*color12: S_base0 + +!! magenta dark/light +*color5: S_magenta +*color13: S_violet + +!! cyan dark/light +*color6: S_cyan +*color14: S_base1 + +!! white dark/light +*color7: S_base2 +*color15: S_base3 diff --git a/dotfiles/.Xresources.d/themes/test-theme b/dotfiles/.Xresources.d/themes/test-theme @@ -0,0 +1,37 @@ +! special +*.foreground: #c5c8c6 +*.background: #1d1f21 +*.cursorColor: #c5c8c6 + +! black +*.color0: #282a2e +*.color8: #373b41 + +! red +*.color1: #a54242 +*.color9: #cc6666 + +! green +*.color2: #8c9440 +*.color10: #b5bd68 + +! yellow +*.color3: #de935f +*.color11: #f0c674 + +! blue +*.color4: #5f819d +*.color12: #81a2be + +! magenta +*.color5: #85678f +*.color13: #b294bb + +! cyan +*.color6: #5e8d87 +*.color14: #8abeb7 + +! white +*.color7: #707880 +*.color15: #c5c8c6 + diff --git a/dotfiles/.Xresources.d/themes/tomorrow-night b/dotfiles/.Xresources.d/themes/tomorrow-night @@ -0,0 +1,49 @@ +#define t_background #1D1F21 +#define t_current_line #393939 +#define t_selection #515151 +#define t_foreground #cccccc +#define t_comment #999999 +#define t_red #f2777a +#define t_orange #f99157 +#define t_yellow #ffcc66 +#define t_green #99cc99 +#define t_aqua #66cccc +#define t_blue #6699cc +#define t_purple #cc99cc + + +*.foreground: t_foreground +*.background: t_background +*.cursorColor: #aeafad + +! Black / Grey +*.color0: #000000 +*.color8: #666666 + +! Red / Bright Red +*.color1: t_red +*.color9: #FF3334 + +! Green + Bright Green +*.color2: t_green +*.color10: #9ec400 + +! Yellow (Orange) + Bright Yellow (Yellow) +*.color3: t_orange +*.color11: t_yellow + +! Blue + Bright Blue +*.color4: t_blue +*.color12: t_blue + +! Magenta (Purple) + Bright Magenta +*.color5: t_purple +*.color13: #b777e0 + +! Cyan (Aqua) + Bright Cyan +*.color6: t_aqua +*.color14: #54ced6 + +! Light Grey (Selection) + White (Current Line) +*.color7: t_selection +*.color15: t_current_line diff --git a/dotfiles/.Xresources.d/themes/tomorrow.dark b/dotfiles/.Xresources.d/themes/tomorrow.dark @@ -0,0 +1,36 @@ +! special +*.foreground: #c5c8c6 +*.background: #1d1f21 +*.cursorColor: #c5c8c6 + +! black +*.color0: #1d1f21 +*.color8: #969896 + +! red +*.color1: #cc6666 +*.color9: #cc6666 + +! green +*.color2: #b5bd68 +*.color10: #b5bd68 + +! yellow +*.color3: #f0c674 +*.color11: #f0c674 + +! blue +*.color4: #81a2be +*.color12: #81a2be + +! magenta +*.color5: #b294bb +*.color13: #b294bb + +! cyan +*.color6: #8abeb7 +*.color14: #8abeb7 + +! white +*.color7: #c5c8c6 +*.color15: #ffffff diff --git a/dotfiles/.Xresources.d/themes/tomorrow.light b/dotfiles/.Xresources.d/themes/tomorrow.light @@ -0,0 +1,36 @@ +! special +*.foreground: #373b41 +*.background: #ffffff +*.cursorColor: #373b41 + +! black +*.color0: #1d1f21 +*.color8: #969896 + +! red +*.color1: #cc6666 +*.color9: #cc6666 + +! green +*.color2: #b5bd68 +*.color10: #b5bd68 + +! yellow +*.color3: #f0c674 +*.color11: #f0c674 + +! blue +*.color4: #81a2be +*.color12: #81a2be + +! magenta +*.color5: #b294bb +*.color13: #b294bb + +! cyan +*.color6: #8abeb7 +*.color14: #8abeb7 + +! white +*.color7: #c5c8c6 +*.color15: #000000 diff --git a/dotfiles/.ackrc b/dotfiles/.ackrc @@ -0,0 +1,3 @@ +--type-set=coffee=.coffee +--type-set=jade=.jade +--type-set=less=.less diff --git a/dotfiles/.authinfo.gpg b/dotfiles/.authinfo.gpg Binary files differ. diff --git a/dotfiles/.bash_aliases b/dotfiles/.bash_aliases @@ -0,0 +1,225 @@ +#!/usr/bin/env bash + +# generic stuff for non-interactive shells + +# sharefile +export PAGER="lessc" +export RADV_PERFTEST=aco +export BAT_STYLE=plain +export BAT_THEME=base16 +export LPASS_HOME="$HOME/.config/lpass" +export FUZZER=fzf +export GOPHERCLIENT=sacc +export GEMINICLIENT=av98 +export GOPHER=$GOPHERCLIENT +export GNUPGHOME="$HOME/.gnupg" +export SHAREFILE_HOST='charon:public/s/' +export KINDLE_FROM_EMAIL='jackbox55@gmail.com' +export KINDLE_TXT_EMAIL='jb55@jb55.com' +export KINDLE_EMAIL='jb55@free.kindle.com' +export SHAREFILE_URL='https://jb55.com/s/' +export SHARE_SS_DIR="$HOME/var/img/ss" +export DOTFILES=${DOTFILES:-$HOME/dotfiles} +export VI_MODE=1 +export XZ=pxz +export HISTSIZE=50000 +export FZF_CTRL_R_OPTS="-e" +export FZF_DEFAULT_OPTS="-e" +export EMACSCLIENT=edit + +md () { + mandown README* +} + +alias e="edit -n" +alias g=git +alias vim=nvim +alias feh="feh --conversion-timeout 2" +alias info="info --vi-keys" +alias ag="ag --pager=less" +alias attach="grabssh; screen -rD" +alias awkt="awk -v FS=$'\t' -v OFS=$'\t'" +alias catt="pygmentize -O style=monokai -f console256 -g" +alias clip="xclip -selection clipboard" +alias cpptags="ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++" +alias crontab="VIM_CRONTAB=true crontab" +alias cutt="cut -d $'\t' --output-delimiter=$'\t'" +alias emacs="env TERM=xterm-256color emacs" +alias fixssh="source $HOME/bin/fixssh" +alias githist="git reflog show | grep '}: commit' | nl | sort -nr | nl | sort -nr | cut --fields=1,3 | sed s/commit://g | sed -e 's/HEAD*@{[0-9]*}://g'" +alias jsonpp="python -mjson.tool" +alias ls="ls --color" +alias noder="env NODE_NO_READLINE=1 rlwrap node" +alias nr="npm run" +alias page=$PAGER +alias prettyjson=jsonpp +alias sorry='sudo $(fc -l -n -1)' +alias tmuxa="tmux a -d -t " +alias tmux="tmux -2" +alias vless="/usr/share/vim/vim72/macros/less.sh" +alias vnc_once="x11vnc -safer -nopw -once -display :0" +alias wget="wget -c" +alias xclip="xclip -selection clipboard" +alias myip="dig +short myip.opendns.com @resolver1.opendns.com" +alias wanip=myip +alias myipaddress=myip +alias ns="nix-shell -p" +alias fzf="fzf --exact" +alias u="cd .." +alias scs="systemctl status" +alias scsu="systemctl status --user" +alias jc="journalctl -u" +alias jcu="journalctl --user -u" + +ghclone () { + cd "$(gh-clone "$@")" +} + +glclone () { + cd "$(gl-clone "$@")" +} + +cdnp () { + nix-build '<nixpkgs>' --no-out-link -A "$1" + cd $(nix-path "$1") +} + +np () { + nix-path "$1" +} + +nsr () { + local cmd="$1" + shift + nix-shell -p "$cmd" --run "$@" +} + +nsr2 () { + local cmd="$1" + shift + local cmd2="$(<<<"$cmd" rev | cut -d. -f1 | rev) $@" + nsr "$cmd" "$cmd2" +} + +nsc () { + local cmd="$1" + shift + nix-shell -p "$cmd" --command "$@" +} + +share () { + sharefile "$@" | xclip +} + +sharess () { + share_last_ss | xclip +} + +lt () { + ls -ltah "$@" | "$PAGER" +} + +lt1 () { + res=$(\ls -1 -t "$@" | head -n1) + xclip <<<"$res" + printf '%s\n' "$res" +} + +mv1 () { + mv $(lt1 | stripansi) "$@" +} + +pcsv () { + csv-delim "$@" | pcsvt +} + +pcsvt () { + columnt "$@" | cat -n | less -R -S +} + +header() { + headers "${2:-/dev/stdin}" | grep "$1" | cutt -f1 | sed -E 's,^[ ]*,,g' +} + +nsum() { + awkt '{total = total + $1}END{print total}' +} + +sumcol() { + cut -f "$1" | nsum +} + +uniqc() { + sort "$@" | uniq -c | sort -nr +} + +cdl () { + cd "$(dirname "$(readlink -f "$(which "$1")")")" +} + +env-type () { + envtype="$1" + shift + nix-shell -Q -p $envtype "$@" +} + +haskell-env () { + env-type "haskellEnv" "$@" +} + +haskell-env-hoogle () { + env-type "haskellEnvHoogle" "$@" +} + +haskell-env-tools() { + env-type "haskellTools" "$@" +} + +build-nix-cache() { + nix-env -f "$NIXPKGS" -qaP \* > ~/.nixenv.cache +} + +haskell-shell() { + nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [$*])" +} + +nix-path() { + nix-instantiate --eval --expr 'with import <nixpkgs> {}; "${'"$1"'}"' | sed 's/"//g' +} + +vnc-once() { + x11vnc -safer -nopw -once -display ':0' "$1" +} + +sql_wineparty() { + export CS='postgres://wineparty.xyz/wineparty' + export PG_USER='jb55' +} + +sql_() { + local query="$1" + local args=("-U" "$pg_user" -A) + if [ ! -z "$query" ]; + then + args+=(-c "$query") + fi + psql -F $'\t' "${args[@]}" +} + +sql() { + sql_ "$@" -t | pcsvt +} + +# fzf +source $DOTFILES/.fzf_helpers + +# z +source $HOME/bin/z.sh + +# private stuff +source $HOME/.bash_private + +# nix +#. /Users/jb55/.nix-profile/etc/profile.d/nix.sh + +CURL_CA_BUNDLE=/opt/local/share/curl/curl-ca-bundle.crt diff --git a/dotfiles/.bashrc b/dotfiles/.bashrc @@ -0,0 +1,115 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples +set -o vi + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history. See bash(1) for more options +export HISTCONTROL=ignoredups +# ... and ignore same sucessive entries. +export HISTCONTROL=ignoreboth + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_colored_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\[\e[1;33m\][\[\e[m\]\u\[\e[1;33m\]^\[\e[m\]\h\[\e[1;33m\]:\[\e[m\]\W\[\e[1;33m\]]\[\e[m\] ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + #PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' + ;; +*) + ;; +esac + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable color support of ls and also add handy aliases +if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto' + #alias dir='ls --color=auto --format=vertical' + #alias vdir='ls --color=auto --format=long' + + #alias grep='grep --color=auto' + #alias fgrep='fgrep --color=auto' + #alias egrep='egrep --color=auto' +fi + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +cl() +{ + if [ -d $1 ]; then + cd $1 + ls -a + else + cd $HOME + ls -a + fi +} + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi + +PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting + +# added by travis gem +[ -f /Users/jb55/.travis/travis.sh ] && source /Users/jb55/.travis/travis.sh + +[ -f ~/.fzf.bash ] && source ~/.fzf.bash +. `which env_parallel.bash` + +source $HOME/dotfiles/bash-undistract-me/undistract-me.sh diff --git a/dotfiles/.clang_complete b/dotfiles/.clang_complete @@ -0,0 +1,2 @@ +-I/usr/local/include/ +-I/opt/local/include/ diff --git a/dotfiles/.curlpaste.conf b/dotfiles/.curlpaste.conf @@ -0,0 +1,6 @@ +DEFAULT_DESCRIPTION = "" +DEFAULT_NICK = os.getenv("USER") +DEFAULT_LANGUAGE = "Plain" +DEFAULT_SERVICE = "dpaste" +DEFAULT_EXPIRY = "1 day" +-- Valid services are ca, dpaste, codepad, fpaste, ghost, lodgeit diff --git a/dotfiles/.dircolors b/dotfiles/.dircolors @@ -0,0 +1,185 @@ +*Makefile 00;35 +*~ 00;30;1 +.7z 01;31 +.Z 01;31 +.aac 00;36 +.ace 01;31 +.alz 01;31 +.anx 01;35 +.arc 01;31 +.arj 01;31 +.asf 01;35 +.au 00;36 +.avi 01;35 +.axa 00;36 +.axv 01;35 +.bmp 01;35 +.bz 01;31 +.bz2 01;31 +.cab 01;31 +.cgm 01;35 +.cpio 01;31 +.deb 01;31 +.dl 01;35 +.do 00;35 +.dz 01;31 +.ear 01;31 +.emf 01;35 +.flac 00;36 +.flc 01;35 +.fli 01;35 +.flv 01;35 +.gif 01;35 +.gl 01;35 +.gz 01;31 +.jar 01;31 +.jpeg 01;35 +.jpg 01;35 +.lha 01;31 +.lrz 01;31 +.lz 01;31 +.lz4 01;31 +.lzh 01;31 +.lzma 01;31 +.lzo 01;31 +.m2v 01;35 +.m4a 00;36 +.m4v 01;35 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mkv 01;35 +.mng 01;35 +.mov 01;35 +.mp3 00;36 +.mp4 01;35 +.mp4v 01;35 +.mpc 00;36 +.mpeg 01;35 +.mpg 01;35 +.nuv 01;35 +.o 00;30;1 +.oga 00;36 +.ogg 00;36 +.ogm 01;35 +.ogv 01;35 +.ogx 01;35 +.pbm 01;35 +.pcx 01;35 +.pgm 01;35 +.png 01;35 +.ppm 01;35 +.pyc 00;30;1 +.qt 01;35 +.ra 00;36 +.rar 01;31 +.rm 01;35 +.rmvb 01;35 +.rpm 01;31 +.rz 01;31 +.sar 01;31 +.spx 00;36 +.svg 01;35 +.svgz 01;35 +.t7z 01;31 +.tar 01;31 +.taz 01;31 +.tbz 01;31 +.tbz2 01;31 +.tga 01;35 +.tgz 01;31 +.tif 01;35 +.tiff 01;35 +.tlz 01;31 +.tmp 00;30;1 +.txz 01;31 +.tz 01;31 +.tzo 01;31 +.vob 01;35 +.war 01;31 +.wav 00;36 +.webm 01;35 +.wmv 01;35 +.xbm 01;35 +.xcf 01;35 +.xpm 01;35 +.xspf 00;36 +.xwd 01;35 +.xz 01;31 +.yuv 01;35 +.z 01;31 +.zip 01;31 +.zoo 01;31 +BLK 40;33;01 # block device driver +CAPABILITY 30;41 # file with capability +CHR 40;33;01 # character device driver +DIR 01;34 # directory +DOOR 01;35 # door +EXEC 01;32 +FIFO 40;33 # pipe +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a +MULTIHARDLINK 00 # regular file with more than one link +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file +OTHER_WRITABLE 37;46 # dir that is other-writable (o+w) and not sticky +RESET 0 # reset to "normal" color +SETGID 30;43 # file that is setgid (g+s) +SETUID 37;41 # file that is setuid (u+s) +SOCK 01;35 # socket +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM hurd +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mach-gnu-color +TERM mlterm +TERM putty +TERM putty-256color +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.Eterm +TERM screen.linux +TERM screen.rxvt +TERM st +TERM st-256color +TERM terminator +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian diff --git a/dotfiles/.eslintrc b/dotfiles/.eslintrc @@ -0,0 +1,33 @@ +{ + "env": { + "node": true, + "es6": 1 + }, + "rules": { + // warnings + "no-debugger": 1, + "no-empty": 1, + "no-invalid-regexp": 1, + "radix": 1, + "no-warning-comments": 1, + "no-unused-expressions": 1, + "no-native-reassign": 1, + "no-fallthrough": 1, + + // errors + "no-undef": 2, + "no-dupe-keys": 2, + "no-empty-character-class": 2, + "no-self-compare": 2, + "valid-typeof": 2, + "no-unused-vars": 2, + "handle-callback-err": 2, + "no-shadow-restricted-names": 2, + + // stylistic errors + "new-cap": 2, + "no-spaced-func": 2, + "semi-spacing": 2, + "space-unary-ops": 2 + } +} diff --git a/dotfiles/.fzf.bash b/dotfiles/.fzf.bash @@ -0,0 +1,14 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */home/jb55/.fzf/bin* ]]; then + export PATH="$PATH:/home/jb55/.fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/home/jb55/.fzf/shell/completion.bash" 2> /dev/null + +# Key bindings +# ------------ +source "/home/jb55/.fzf/shell/key-bindings.bash" + diff --git a/dotfiles/.fzf.zsh b/dotfiles/.fzf.zsh @@ -0,0 +1,14 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */home/jb55/.fzf/bin* ]]; then + export PATH="$PATH:/home/jb55/.fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/home/jb55/.fzf/shell/completion.zsh" 2> /dev/null + +# Key bindings +# ------------ +source "/home/jb55/.fzf/shell/key-bindings.zsh" + diff --git a/dotfiles/.fzf_helpers b/dotfiles/.fzf_helpers @@ -0,0 +1,170 @@ + +# fd - cd to selected directory +fd() { + local dir + dir=$(find ${1:-.} -path '*/\.*' -prune \ + -o -type d -print 2> /dev/null | fzf +m) && + cd "$dir" +} + +nma() { + if [ ! -e ~/.notmuch-address-cache ]; then + (notmuch-personal address \*; notmuch address \*) | sort -u > ~/.notmuch-address-cache + fi + fzy < ~/.notmuch-address-cache | tee /dev/tty | xclip +} + +# fda - including hidden directories +fda() { + local dir + dir=$(find ${1:-.} -type d 2> /dev/null | fzf +m) && cd "$dir" +} + +flp () { + id="$(lpass ls | fzf | grep -P '\d+' -o)" + [ ! -z "$id" ] && lpass show "$id" +} + +# fz - cd to directories known to z +fz() { + local dir=$(z | fzcmd "$1") && cd "$dir" +} + +findlt () { + local all=$(find . -maxdepth "$1" -type "${2:-f}" -printf "%T@ %Tc %p\n" | sort -nr | cut -f2- -d" " | fzf +s) + <<<"$all" cut -f3- -d" " +} + +ftd() { + local res="$(findlt ${1:-1} d)" + cd "$res" +} + +ft() { + local res=$(findlt ${1:-1} f) + <<<$res xclip + printf "%s\n" "$res" +} + +fto() { + open "$(findlt ${1:-1} f)" +} + +fte() { + edit "$(findlt ${1:-1} f)" +} + +# fzt - cd to most recently accessed dirs +fzt() { + local dir=$(z -et | fzcmd) && cd "$dir" +} + +fze() { + fzcmd | xargs edit +} + +# fz helper +fzcmd() { + awk '{ print $2 }' | fzf --query="$1" --tac +s +} + +# fn - nix packages +fn() { + fzf < ~/.nix-grep-cache +} + +# fni - nix install +fni() { + local pkg + pkg=$(<$HOME/.nix-grep-cache fzf) && \ + nix-install $(echo $pkg | awk '{ print $1 }') +} + +# fns - nix shell +fns() { + local pkg + pkg=$(<$HOME/.nixenv.cache fzf) && \ + nix-shell -p $(echo $pkg | awk '{ print $1 }') +} + +# fdr - cd to selected parent directory +fdr() { + local declare dirs=() + get_parent_dirs() { + if [[ -d "${1}" ]]; then dirs+=("$1"); else return; fi + if [[ "${1}" == '/' ]]; then + for _dir in "${dirs[@]}"; do echo $_dir; done + else + get_parent_dirs $(dirname "$1") + fi + } + local DIR=$(get_parent_dirs $(realpath "${1:-$(pwd)}") | fzf --tac) + cd "$DIR" +} + +# cdf - cd into the directory of the selected file +cdf() { + local file + local dir + file=$(fzf +m -q "$1") && dir=$(dirname "$file") && cd "$dir" +} + +# fh - repeat history, assumes zsh +fh() { + print -z $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed 's/ *[0-9]* *//') +} + +fo() { + local out file key + out=$(fzf --query="$1" --exit-0 --expect=ctrl-o,ctrl-e) + key=$(head -1 <<< "$out") + file=$(head -2 <<< "$out" | tail -1) + if [ -n "$file" ]; then + [ "$key" = ctrl-o ] && open "$file" || edit "$file" + fi +} + +# +# GIT +# + +fshow() { + git log --graph --color=always \ + --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" | + fzf --ansi --no-sort --reverse --tiebreak=index --bind=ctrl-s:toggle-sort \ + --bind "ctrl-m:execute: + (grep -o '[a-f0-9]\{7\}' | head -1 | + xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF' + {} +FZF-EOF" +} + +fenv() { + local out + out=$(env | fzf) + echo $(echo $out | cut -d= -f2) +} + +fstash() { + local out q k sha + while out=$( + git stash list --pretty="%C(yellow)%h %>(14)%Cgreen%cr %C(blue)%gs" | + fzf --ansi --no-sort --query="$q" --print-query \ + --expect=ctrl-d,ctrl-b); + do + mapfile -t out <<< "$out" + q="${out[0]}" + k="${out[1]}" + sha="${out[-1]}" + sha="${sha%% *}" + [[ -z "$sha" ]] && continue + if [[ "$k" == 'ctrl-d' ]]; then + git diff $sha + elif [[ "$k" == 'ctrl-b' ]]; then + git stash branch "stash-$sha" $sha + break; + else + git stash show -p $sha + fi + done +} diff --git a/dotfiles/.ghci b/dotfiles/.ghci @@ -0,0 +1 @@ +:m + Data.Char diff --git a/dotfiles/.git-template b/dotfiles/.git-template @@ -0,0 +1,3 @@ + + +Signed-off-by: William Casarin <jb55@jb55.com> diff --git a/dotfiles/.gitconfig b/dotfiles/.gitconfig @@ -0,0 +1,93 @@ +[user] + name = William Casarin + email = jb55@jb55.com + signingkey = 0xE02D3FD4EB4585A63531C1D0E1BFCB90A1FF7A1C +[color] + diff = auto + status = auto +[core] + excludesfile = /Users/jb55/.gitignore_global + editor = nvim +[sendemail] + smtpServer=/home/jb55/bin/sendmail +[url "git@github.com:"] + insteadOf = gh: +[url "git@gl.blockstream.io:blockstream/"] + insteadOf = gl: +[url "git@gitlab.com:"] + insteadOf = gitlab: +[url "jb55.com:git/"] + insteadOf = dev: +[url "ssh://git@phabricator.monstercat.com/diffusion/"] + insteadOf = phab: +[url "http://git.monster.cat/"] + insteadOf = mcat: +[url "http://git.zero.jb55.com/"] + insteadOf = zero: +[url "http://git.razorcx.com/"] + insteadOf = razor: +[gui] + recentrepo = /Users/jb55/src/js/titania +[alias] + a = add + au = add -u + f = fetch -p + br = symbolic-ref --short HEAD + ca = commit --amend + c = commit + cloner = clone --recursive + d = diff + default = !git config branch.master.remote origin && git config branch.master.merge refs/heads/master + ds = diff --staged + ff = merge --ff-only + hash = !"git rev-parse HEAD | tr -d '\n' | xclip" + lg1 = log --graph --branches --tags --remotes --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %s %C(bold)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative + lgl = log --format='%h %cr %s' + lg2 = log --no-merges --topo-order --date=relative --pretty=format:'%C(auto,yellow)%h%C(auto,magenta)% %C(auto,blue)%>(12,trunc)%ad %C(auto,green) %C(auto,reset)%s%C(reset)% %C(bold) — %an%C(reset)%C(bold yellow)%d%C(reset)' + lg3 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %s %C(bold)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative + lg = !"git lg1" + lgrep = log --grep + line = log --oneline + lineg = log --oneline --graph + l = log + muff = merge --no-ff + prs = log --no-merges --date=local --author-date-order --glob='pull/origin/*' + prs-merged = log --merges --date=local --author-date-order --glob='pull/origin/*' + puff = pull --ff-only + rc = rebase --continue + rv = remote -v + refl = reflog --date=relative + r = rebase + serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git + s = status + stat2 = log --stat --pretty=format:'%C(auto,yellow)%h%C(auto,magenta)% G? %C(auto,blue)%>(12,trunc)%cr %C(auto,green)%aN %C(auto,red)%D %n%n %C(auto,reset)%s%n' + st = status -sb + tagd = !"git tag --format='%(creatordate:short)%09%(refname:strip=2)' | sort" + tg = log --date-order --tags --simplify-by-decoration --pretty=format:'%ai %h %d' + try = merge --no-commit --no-ff + co = checkout + fixes = show -s --pretty='format:Fixes: %h (\"%s\")' +[rebase] + autosquash = true +[pull] + rebase = true +[diff] + colorMoved = dimmed-zebra + colorMovedWs = allow-indentation-change +[push] + default = simple +[rerere] + enabled = false + autoupdate = false +[http "https://git.monstercat.com"] + sslCAInfo = /home/jb55/.flynn/ca-certs/default.pem +[credential "https://git.monstercat.com"] + helper = /home/jb55/bin/flynn git-credentials +[gpg] + program = /home/jb55/bin/ots-git +[magit] + hideCampaign = true +[github] + user = jb55 +[commit] + template = /home/jb55/.git-template diff --git a/dotfiles/.gitignore b/dotfiles/.gitignore @@ -0,0 +1,28 @@ +.*.swp +.*.swo +.env +.out +*.so +*.pyc +*/tmp/* +.vim/bundle +node_modules/ +/.xmonad/xmonad-x86_64-linux +/.xmonad/xmonad.errors +/.xmonad/xmonad.hi +/.xmonad/xmonad.o +/ircpass +/.xmonad/history +/mimeapps2.list +/.weechat/logs +/.weechat/irc.conf +/.weechat/weechat.log +/.gimp* +/.weechat +/.config +/.xmonad/prompt-history +/.xmonad/xmonad.state +/.vim/.netrwhist +/.msmtprc +/.dynamic-colors/ +.Xresources.d/themes/current diff --git a/dotfiles/.gtkrc-2.0 b/dotfiles/.gtkrc-2.0 @@ -0,0 +1,14 @@ +gtk-icon-theme-name = "Numix" +gtk-theme-name = "Vertex-Dark" +#gtk-theme-name = "Arc-Dark" + +#gtk-icon-theme-name = "Numix-Circle" +#gtk-theme-name = "Paper" + +binding "gtk-binding-menu" { + bind "j" { "move-current" (next) } + bind "k" { "move-current" (prev) } + bind "h" { "move-current" (parent) } + bind "l" { "move-current" (child) } +} +class "GtkMenuShell" binding "gtk-binding-menu" diff --git a/dotfiles/.lesskey b/dotfiles/.lesskey @@ -0,0 +1,8 @@ +h left-scroll +l right-scroll +J next-file +K prev-file +f forw-screen-force +F back-screen +V forw-forever +^X shell rm "%"\n diff --git a/dotfiles/.msmtprc.gpg b/dotfiles/.msmtprc.gpg Binary files differ. diff --git a/dotfiles/.ncmpcpp/bindings b/dotfiles/.ncmpcpp/bindings @@ -0,0 +1,368 @@ +def_key "k" + scroll_up + +def_key "j" + scroll_down + +def_key "h" + previous_column + +def_key "l" + next_column + +#def_key "[" +# scroll_up_album +# +#def_key "]" +# scroll_down_album +# +#def_key "{" +# scroll_up_artist +# +#def_key "}" +# scroll_down_artist +# +#def_key "page_up" +# page_up +# +#def_key "page_down" +# page_down +# +#def_key "home" +# move_home +# +#def_key "end" +# move_end +# +#def_key "space" +# press_space +# +#def_key "enter" +# press_enter +# +#def_key "delete" +# delete_playlist_items +# +#def_key "delete" +# delete_browser_items +# +#def_key "delete" +# delete_stored_playlist +# +# +#def_key "right" +# slave_screen +# +#def_key "right" +# volume_up +# +#def_key "+" +# volume_up + + +#def_key "left" +# master_screen +# +#def_key "left" +# volume_down +# +#def_key "-" +# volume_down +# +#def_key ":" +# execute_command +# +#def_key "tab" +# next_screen +# +#def_key "shift_tab" +# previous_screen +# +#def_key "f1" +# show_help +# +#def_key "1" +# show_playlist +# +#def_key "2" +# show_browser +# +#def_key "2" +# change_browse_mode +# +#def_key "3" +# show_search_engine +# +#def_key "3" +# reset_search_engine +# +#def_key "4" +# show_media_library +# +#def_key "4" +# toggle_media_library_columns_mode +# +#def_key "5" +# show_playlist_editor +# +#def_key "6" +# show_tag_editor +# +#def_key "7" +# show_outputs +# +#def_key "8" +# show_visualizer +# +#def_key "=" +# show_clock +# +#def_key "@" +# show_server_info +# +#def_key "s" +# stop +# +#def_key "p" +# pause +# +#def_key ">" +# next +# +#def_key "<" +# previous +# +#def_key "ctrl_h" +# jump_to_parent_directory +# +#def_key "ctrl_h" +# replay_song +# +#def_key "backspace" +# jump_to_parent_directory +# +#def_key "backspace" +# replay_song +# +#def_key "backspace_2" +# jump_to_parent_directory +# +#def_key "backspace_2" +# replay_song +# +#def_key "f" +# seek_forward +# +#def_key "b" +# seek_backward +# +#def_key "r" +# toggle_repeat +# +#def_key "z" +# toggle_random +# +#def_key "y" +# save_tag_changes +# +#def_key "y" +# start_searching +# +#def_key "y" +# toggle_single +# +#def_key "R" +# toggle_consume +# +#def_key "Y" +# toggle_replay_gain_mode +# +#def_key "t" +# toggle_space_mode +# +#def_key "T" +# toggle_add_mode +# +#def_key "|" +# toggle_mouse +# +#def_key "#" +# toggle_bitrate_visibility +# +#def_key "Z" +# shuffle +# +#def_key "x" +# toggle_crossfade +# +#def_key "X" +# set_crossfade +# +#def_key "u" +# update_database +# +#def_key "ctrl_v" +# sort_playlist +# +#def_key "ctrl_r" +# reverse_playlist +# +#def_key "ctrl_f" +# apply_filter +# +#def_key "/" +# find +# +#def_key "/" +# find_item_forward +# +#def_key "?" +# find +# +#def_key "?" +# find_item_backward +# +#def_key "." +# next_found_item +# +#def_key "," +# previous_found_item +# +#def_key "w" +# toggle_find_mode +# +#def_key "e" +# edit_song +# +#def_key "e" +# edit_library_tag +# +#def_key "e" +# edit_library_album +# +#def_key "e" +# edit_directory_name +# +#def_key "e" +# edit_playlist_name +# +#def_key "e" +# edit_lyrics +# +#def_key "i" +# show_song_info +# +#def_key "I" +# show_artist_info +# +#def_key "g" +# jump_to_position_in_song +# +#def_key "l" +# show_lyrics +# +#def_key "v" +# reverse_selection +# +#def_key "V" +# remove_selection +# +#def_key "B" +# select_album +# +#def_key "a" +# add_selected_items +# +#def_key "c" +# clear_playlist +# +#def_key "c" +# clear_main_playlist +# +#def_key "C" +# crop_playlist +# +#def_key "C" +# crop_main_playlist +# +#def_key "m" +# move_sort_order_up +# +#def_key "m" +# move_selected_items_up +# +#def_key "m" +# toggle_media_library_sort_mode +# +#def_key "m" +# set_visualizer_sample_multiplier +# +#def_key "n" +# move_sort_order_down +# +#def_key "n" +# move_selected_items_down +# +#def_key "M" +# move_selected_items_to +# +#def_key "A" +# add +# +#def_key "S" +# save_playlist +# +#def_key "o" +# jump_to_playing_song +# +#def_key "G" +# jump_to_browser +# +#def_key "G" +# jump_to_playlist_editor +# +#def_key "~" +# jump_to_media_library +# +#def_key "E" +# jump_to_tag_editor +# +#def_key "U" +# toggle_playing_song_centering +# +#def_key "P" +# toggle_display_mode +# +#def_key "\\" +# toggle_interface +# +#def_key "!" +# toggle_separators_between_albums +# +#def_key "L" +# toggle_lyrics_fetcher +# +#def_key "F" +# toggle_fetching_lyrics_in_background +# +#def_key "ctrl_l" +# toggle_screen_lock +# +#def_key "`" +# toggle_browser_sort_mode +# +#def_key "`" +# toggle_library_tag_type +# +#def_key "`" +# refetch_lyrics +# +#def_key "`" +# add_random_items +# +#def_key "ctrl_p" +# set_selected_items_priority +# +#def_key "q" +# quit +# diff --git a/dotfiles/.rtorrent.rc b/dotfiles/.rtorrent.rc @@ -0,0 +1,111 @@ +scgi_port = 127.0.0.1:5000 + +# This is an example resource file for rTorrent. Copy to +# ~/.rtorrent.rc and enable/modify the options as needed. Remember to +# uncomment the options you wish to enable. + +# Maximum and minimum number of peers to connect to per torrent. +#min_peers = 40 +#max_peers = 100 + +# Same as above but for seeding completed torrents (-1 = same as downloading) +#min_peers_seed = 10 +#max_peers_seed = 50 + +# Maximum number of simultanious uploads per torrent. +#max_uploads = 15 + +# Global upload and download rate in KiB. "0" for unlimited. +#download_rate = 0 +upload_rate = 24 + +# Default directory to save the downloaded torrents. +directory = ~/data/Incoming + +# Default session directory. Make sure you don't run multiple instance +# of rtorrent using the same session directory. Perhaps using a +# relative path? +session = ~/.rtorrent/ + +# Watch a directory for new torrents, and stop those that have been +# deleted. +#schedule = watch_directory,5,5,load_start=./watch/*.torrent +#schedule = untied_directory,5,5,stop_untied= + +# Close torrents when diskspace is low. +#schedule = low_diskspace,5,60,close_low_diskspace=100M + +# Stop torrents when reaching upload ratio in percent, +# when also reaching total upload in bytes, or when +# reaching final upload ratio in percent. +# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0 +#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000" + +# The ip address reported to the tracker. +#ip = 127.0.0.1 +#ip = rakshasa.no + +# The ip address the listening socket and outgoing connections is +# bound to. +#bind = 127.0.0.1 +#bind = rakshasa.no + +# Port range to use for listening. +#port_range = 6890-6999 + +# Start opening ports at a random position within the port range. +#port_random = no + +# Check hash for finished torrents. Might be usefull until the bug is +# fixed that causes lack of diskspace not to be properly reported. +#check_hash = no + +# Set whetever the client should try to connect to UDP trackers. +#use_udp_trackers = yes + +# Alternative calls to bind and ip that should handle dynamic ip's. +#schedule = ip_tick,0,1800,ip=rakshasa +#schedule = bind_tick,0,1800,bind=rakshasa + +# Encryption options, set to none (default) or any combination of the following: +# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext +# +# The example value allows incoming encrypted connections, starts unencrypted +# outgoing connections but retries with encryption if they fail, preferring +# plaintext to RC4 encryption after the encrypted handshake +# +# encryption = allow_incoming,enable_retry,prefer_plaintext + +# Enable DHT support for trackerless torrents or when all trackers are down. +# May be set to "disable" (completely disable DHT), "off" (do not start DHT), +# "auto" (start and stop DHT as needed), or "on" (start DHT immediately). +# The default is "off". For DHT to work, a session directory must be defined. +# +dht = auto + +# UDP port to use for DHT. +# +# dht_port = 6881 + +# Enable peer exchange (for torrents not marked private) +# +peer_exchange = yes + +# +# Do not modify the following parameters unless you know what you're doing. +# + +# Hash read-ahead controls how many MB to request the kernel to read +# ahead. If the value is too low the disk may not be fully utilized, +# while if too high the kernel might not be able to keep the read +# pages in memory thus end up trashing. +#hash_read_ahead = 10 + +# Interval between attempts to check the hash, in milliseconds. +#hash_interval = 100 + +# Number of attempts to check the hash while using the mincore status, +# before forcing. Overworked systems might need lower values to get a +# decent hash checking rate. +#hash_max_tries = 10 + diff --git a/dotfiles/.screenrc b/dotfiles/.screenrc @@ -0,0 +1,17 @@ +defutf8 on +defflow off +defscrollback 5000 +vbell off +startup_message off +term screen-256color + +bindkey -d -k kb stuff "\010" +attrcolor b ".I" +termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +termcapinfo xterm-color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +defbce "on" +hardstatus alwayslastline +hardstatus string '%{= 9b}[ %{B}%H %{b}][%= %{= 9w}%?%-Lw%?%{=b 9R}(%{W}%n*%f %t%?(%u)%?%{=b 9R})%{= 9w}%?%+Lw%?%?%= %{b}][%{B}%l%{b}]%{=b C}[ %d %M %c ]%{W}': + +maptimeout 0 + diff --git a/dotfiles/.spacemacs b/dotfiles/.spacemacs @@ -0,0 +1,573 @@ +;; -*- mode: emacs-lisp -*- +;; This file is loaded by Spacemacs at startup. + +;; It must be stored in your home directory. + +(setq jb55/base-layers + '((haskell :variables + haskell-enable-ghc-mod-support nil + haskell-enable-hindent-style "chris-done") + + (c-c++ :variables + c-c++-enable-clang-support t + c-c++-backend 'rtags + ) + + (auto-completion :variables auto-completion-enable-help-tooltip t) + + + csharp + confluence + react + csv + debug + elm + emacs-lisp + emoji + finance + fsharp + git + github + go + gtags + html + react + idris + ivy + javascript + latex + lua + markdown + nixos + notmuch + (org :variables org-want-todo-bindings t) + purescript + python + racket + rust + shell-scripts + sml + spacemacs-layouts + sql + syntax-checking + twitter + typescript + yaml + (org :variables org-want-todo-bindings t) + + )) + +(setq jb55/additional-packages + '( company-irony + base16-theme + bison-mode + direnv + editor-config + emojify + forge + github-review + glsl-mode + gnu-apl-mode + graphviz-dot-mode + helm-pages + jade-mode + markdown-mode + mastodon + meson-mode + olivetti + org-brain + org-clock-csv + protobuf-mode + shen-mode + w3m + weechat + + (notmuch + :location (recipe :fetcher github + :repo "jb55/notmuch" + :branch "dev" + :upgrade 't + :files ("emacs/notmuch*.el"))) + (flycheck + :location (recipe :repo "flycheck/flycheck" + :fetcher github) + :upgrade 't) + + (shen-elisp + :location (recipe :repo "deech/shen-elisp" + :fetcher github + :files ("shen*.el") + :upgrade 't)))) + +(defun is-mac () + (string-equal system-type "darwin")) + +(setq jb55/layers (if (is-mac) (cons 'osx jb55/base-layers) + jb55/base-layers)) + + +(setq jb55/excluded-packages (let ((base-excluded '(org-bullets vi-tilde-fringe anaconda-mode))) + (if (not (is-mac)) + (cons 'exec-path-from-shell base-excluded) + base-excluded) + )) + +(setq jb55/light-theme 'spacemacs-light) +(setq jb55/dark-theme 'base16-onedark) +(setq jb55/current-theme jb55/dark-theme) + +; needed for compilation hooks as well +(require 'ansi-color) + +(defun display-ansi-colors () + (interactive) + (let ((inhibit-read-only t)) + (ansi-color-apply-on-region (point-min) (point-max)))) + +(defun jb55/at-work () + (let* ((time (decode-time)) + (hour (nth 2 time))) + (and (>= hour 9) + (< hour 17)))) + +(defun jb55/load-theme (theme) + (print (concat "loading theme " (symbol-name theme))) + (counsel-load-theme-action (symbol-name theme)) + (setq jb55/current-theme theme)) + +(setq jb55/themes + `(("light" . ,jb55/light-theme) + ("dark" . ,jb55/dark-theme))) + +(defun jb55/themeswitch (&optional theme) + (interactive) + (let* ((neq (lambda (x) (not (eq (cdr x) jb55/current-theme)))) + (tlist (seq-filter neq jb55/themes)) + (selected (cond ((stringp theme) theme) + ((and (symbolp theme) (not (eq nil theme))) (symbol-name theme)) + ((eq (length tlist) 1) (car (car tlist))) + (t (cdr (assoc (completing-read "jb55's themes" tlist) tlist))))) + (th (cdr (assoc selected tlist)))) + (if th (jb55/load-theme th)))) + +(defun jb55/link-hint-download () + (interactive) + (let ((before (current-kill 0))) + (link-hint-copy-link) + (let ((url (current-kill 0))) + (if (not (eq url before)) + (with-current-buffer (get-buffer-create + (generate-new-buffer-name "*link-hint-url*")) + (condition-case exception + (url-insert-file-contents url) + ('file-error + ;; In case the link is private repository github will respond with a + ;; temporary redirect 302 HTTP code and calculate the request-token + ;; with javascript. In this case open diff in browser + (browse-url url))) + (switch-to-buffer (current-buffer))))))) + +(defun jb55/mm-pipe-part-pdfnow (handle) + (mm-pipe-part handle "/home/jb55/bin/pdfnow markdown")) + +(defun jb55/do-notmuch-pdfnow () + (notmuch-show-apply-to-current-part-handle #'jb55/mm-pipe-part-pdfnow)) + +(defun jb55/notmuch-pdfnow () + (interactive) + (if (window-live-p notmuch-tree-message-window) + (with-selected-window notmuch-tree-message-window + (progn + (goto-line 10) + (jb55/do-notmuch-pdfnow))) + (jb55/do-notmuch-pdfnow))) + +(defun jb55/determine-theme () + (if (jb55/at-work) + jb55/dark-theme + jb55/dark-theme)) + +(defun dotspacemacs/layers () + "Layer configuration: +This function should only modify configuration layer settings." + (setq-default + dotspacemacs-distribution 'spacemacs + ;;dotspacemacs-enable-lazy-installation nil + ;;dotspacemacs-delete-orphan-packages t + dotspacemacs-enable-lazy-installation 'unused + dotspacemacs-ask-for-lazy-installation t + dotspacemacs-configuration-layer-path '() + dotspacemacs-configuration-layers jb55/layers + dotspacemacs-additional-packages jb55/additional-packages + dotspacemacs-frozen-packages '(swift + react + ruby + elixir + fsharp + ) + dotspacemacs-excluded-packages jb55/excluded-packages + dotspacemacs-install-packages 'used-only)) + +(defun dotspacemacs/init () + "Initialization: +This function is called at the very beginning of Spacemacs startup, +before layer configuration. +It should only modify the values of Spacemacs settings." + (setq-default + dotspacemacs-themes (list (jb55/determine-theme)) + dotspacemacs-elpa-https t + dotspacemacs-elpa-timeout 5 + dotspacemacs-use-spacelpa nil + dotspacemacs-verify-spacelpa-archives nil + dotspacemacs-check-for-update nil + dotspacemacs-elpa-subdirectory 'emacs-version + dotspacemacs-editing-style 'vim + dotspacemacs-verbose-loading nil + dotspacemacs-startup-banner 'official + dotspacemacs-startup-lists '((recents . 5) + (projects . 7)) + dotspacemacs-startup-buffer-responsive t + dotspacemacs-scratch-mode 'text-mode + ;; dotspacemacs-themes '(spacemacs-dark + ;; spacemacs-light) + dotspacemacs-colorize-cursor-according-to-state t + ;; dotspacemacs-default-font '("terminus" + ;; :size 16 + ;; :style normal + ;; :weight normal + ;; :width normal + ;; ) + dotspacemacs-default-font '("Inconsolata" + :size 18 + :weight normal + :width normal + :powerline-scale 1.1) + dotspacemacs-active-transparency 90 + dotspacemacs-auto-generate-layout-names nil + dotspacemacs-auto-resume-layouts nil + dotspacemacs-auto-save-file-location 'cache + dotspacemacs-default-layout-name "Default" + dotspacemacs-default-package-repository nil + dotspacemacs-display-default-layout nil + dotspacemacs-distinguish-gui-tab nil + dotspacemacs-emacs-command-key "SPC" + dotspacemacs-emacs-leader-key "M-m" + dotspacemacs-enable-paste-transient-state nil + dotspacemacs-ex-command-key ":" + dotspacemacs-ex-substitute-global nil + dotspacemacs-folding-method 'evil + dotspacemacs-frame-title-format "%I@%S" + dotspacemacs-fullscreen-at-startup nil + dotspacemacs-fullscreen-use-non-native nil + dotspacemacs-helm-no-header nil + dotspacemacs-helm-position 'bottom + dotspacemacs-helm-resize nil + dotspacemacs-helm-use-fuzzy 'always + dotspacemacs-highlight-delimiters 'all + dotspacemacs-icon-title-format nil + dotspacemacs-inactive-transparency 90 + dotspacemacs-large-file-size 1 + dotspacemacs-leader-key "SPC" + dotspacemacs-line-numbers nil + dotspacemacs-loading-progress-bar t + dotspacemacs-major-mode-emacs-leader-key "C-M-m" + dotspacemacs-major-mode-leader-key "," + dotspacemacs-maximized-at-startup nil + dotspacemacs-max-rollback-slots 5 + dotspacemacs-mode-line-unicode-symbols nil + dotspacemacs-persistent-server nil + dotspacemacs-pretty-docs nil + dotspacemacs-remap-Y-to-y$ 't + dotspacemacs-retain-visual-state-on-shift t + dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep") + dotspacemacs-server-socket-dir "~/.emacs.d/server" + dotspacemacs-show-transient-state-color-guide t + dotspacemacs-show-transient-state-title t + dotspacemacs-smart-closing-parenthesis nil + dotspacemacs-smartparens-strict-mode nil + dotspacemacs-smooth-scrolling t + dotspacemacs-switch-to-buffer-prefers-purpose nil + dotspacemacs-visual-line-move-text nil + dotspacemacs-which-key-delay 0.4 + dotspacemacs-which-key-position 'bottom + dotspacemacs-whitespace-cleanup nil + dotspacemacs-zone-out-when-idle nil + )) + +(defun dotspacemacs/user-env () + (setq custom-file "~/dotfiles/custom.el") + (load custom-file) + ) + +(defun dotspacemacs/user-init () + "Initialization for user code: +This function is called immediately after `dotspacemacs/init', before layer +configuration. +It is mostly for variables that should be set before packages are loaded. +If you are unsure, try setting them in `dotspacemacs/user-config' first." + (setq server-socket-dir "/home/jb55/.emacs.d/server") + + (defun cd-github () + (interactive) + (cd (concat "/home/jb55/dev/github/" (read-string "Repo: ")))) + + + (defun jb55/eshell-prompt () + (concat (abbreviate-file-name (eshell/basename (eshell/pwd))) + (if (= (user-uid) 0) " # " " $ "))) + + (load "~/src/elisp/notmuch/notmuch-github.el") + ;; (load "~/src/elisp/overlays/overlays.el") + + (defun cd-repo () + (interactive) + (let ((repo (notmuch-repo-from-message))) + (cd (concat "/home/jb55/dev/github/" repo)))) + + (defun colorize-compilation-buffer () + (toggle-read-only) + (ansi-color-apply-on-region (point-min) (point-max)) + (toggle-read-only)) + + (add-hook 'compilation-filter-hook 'colorize-compilation-buffer) + (add-to-list 'comint-output-filter-functions 'ansi-color-process-output) + (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) + + (require 'compile) + ;; node stack track compilation errors in js-mode + (add-to-list 'compilation-error-regexp-alist-alist + '(npm "[[:space:]](?\\(.*?\\)\\([0-9A-Za-z_./\:-]+\\.\\(js\\|coffee\\)\\):\\([0-9]+\\):\\([0-9]+\\)" 2 4 5) + ) + + (add-to-list 'compilation-error-regexp-alist 'npm) + (global-hl-line-mode -1) + (setq compilation-scroll-output t) + + ) + +(defun jb55/error-config () + (defcustom next-error-message-highlight-p nil + "If non-nil, highlight the current error message in the ‘next-error’ buffer" + :type 'boolean + :group 'next-error + :version "??") + + (defface next-error-message + '((t (:inherit highlight))) + "Face used to highlight the current error message in the ‘next-error’ buffer" + :group 'next-error + :version "??") + + (defvar next-error-message-highlight-overlay + nil + "Overlay highlighting the current error message in the ‘next-error’ buffer") + + (make-variable-buffer-local 'next-error-message-highlight-overlay) + + (defun next-error-message-highlight () + "Highlight the current error message in the ‘next-error’ buffer." + (when next-error-message-highlight-p + (with-current-buffer next-error-last-buffer + (when next-error-message-highlight-overlay + (delete-overlay next-error-message-highlight-overlay)) + (save-excursion + (goto-char (point)) + (let ((ol (make-overlay (line-beginning-position) (line-end-position)))) + ;; do not override region highlighting + (overlay-put ol 'priority -50) + (overlay-put ol 'face 'next-error-message) + (overlay-put ol 'window (get-buffer-window)) + (setf next-error-message-highlight-overlay ol)))))) + + (add-hook 'next-error-hook 'next-error-message-highlight) + + (setq next-error-message-highlight-p t) + ) + +(defun dotspacemacs/user-config () + "Configuration for user code: +This function is called at the very end of Spacemacs startup, after layer +configuration. +Put your configuration code here, except for variables that should be set +before packages are loaded." + (setq jb55/org-path "~/docs/org") + + (use-package direnv + ;; Ensures that external dependencies are available before they are called. + :config + (add-to-list 'direnv-non-file-modes 'vterm-mode) + (direnv-mode 1)) + + ;; fix really annoying clipboard race issue + (fset 'evil-visual-update-x-selection 'ignore) + (jb55/error-config) + + (setq ediff-window-setup-function 'ediff-setup-windows-plain) + (set-face-background 'fringe "#1e1f22") + (set-face-foreground 'vertical-border "#1e1f22") + (setq gnus-inhibit-images nil) + + (defun jb55/compilation-finish (buffer status) + (call-process "notify-send" nil nil nil + "-i" "emacs" + "Emacs compilation" + status)) + + (setq compilation-finish-functions + (append compilation-finish-functions + '(jb55/compilation-finish))) + + (defun jb55/notmuch-show-insert-header-p (part hide) + ;; Show all part buttons except for the first part if it is text/plain. + (let ((mime-type (notmuch-show-mime-type part))) + (not (or (and (string= mime-type "text/plain") + (<= (plist-get part :id) 3)) + (member mime-type (list "multipart/alternative" + "multipart/mixed" + "multipart/signed")))))) + + (setq notmuch-show-insert-header-p-function + 'jb55/notmuch-show-insert-header-p) + + (setq ivy-initial-inputs-alist (list)) + + (setq spacemacs-indent-sensitive-modes + (add-to-list 'spacemacs-indent-sensitive-modes 'nix-mode)) + + (setq org-want-todo-bindings 't) + + (defun jb55/forward-page-recenter-top () + (interactive) + (evil-ex-search-next) + (evil-scroll-line-to-center (line-number-at-pos))) + + (defun jb55/backward-page-recenter-top () + (interactive) + (evil-ex-search-previous) + (evil-scroll-line-to-center (line-number-at-pos))) + + (defun jb55/xref-find-def () + (interactive) + (let ((current-prefix-arg 4)) + (call-interactively 'xref-find-definitions))) + + (setq-default olivetti-body-width 80) + + (spacemacs/set-leader-keys + "Ju" 'jb55/unhighlight-line + "J]" 'jb55/forward-page-recenter-top + "J[" 'jb55/backward-page-recenter-top + + "wc" 'olivetti-mode + "xb" 'jb55/link-hint-download + "Jd" 'jb55/xref-find-def + "jd" 'dumb-jump-go + "jD" 'dumb-jump-go-prompt + "is" 'company-yasnippet + "aTn" 'twittering-update-status-interactive + "aTu" 'twittering-user-timeline + "aTm" 'twittering-mentions-timeline + ) + + (defun notmuch-switch-to-home () + (setq message-signature-file "~/.signature") + (setq notmuch-command "notmuch") + (setq notmuch-poll-script "notmuch-update-personal") + ;;(setq notmuch-saved-searches notmuch-saved-searches-home) + ) + + ;; (defun notmuch-switch-to-work () + ;; (interactive) + ;; (setq message-signature-file "~/.signature-work") + ;; (setq notmuch-command "notmuch-work") + ;; (setq notmuch-command "notmuch-work") + ;; (setq notmuch-poll-script "fetch-work-mail") + ;; (setq notmuch-saved-searches notmuch-saved-searches-work)) + + (notmuch-switch-to-home) + + (defun jb55/make-org-path (file) + (concat (file-name-as-directory jb55/org-path) file)) + + (defun task-body (label) + (concat "* " label " %?\n %i\n %a")) + + (setq todo-task (task-body "TODO")) + + (setq org-capture-templates + `(("t" "Task" entry (file+headline ,(jb55/make-org-path "tasks.org") "Unorganized") + ,todo-task) + ("n" "Notes" entry (file+headline ,(jb55/make-org-path "notes.org") "Notes") + ,(task-body "NOTE")) + ("w" "Razor task" entry (file+headline "~/projects/razorcx/doc/org/todo.org" "Current") + ,todo-task) + ("o" "Openstamp task" entry (file+headline "~/projects/openstamp/openstamp-server/todo.org" "Current") + ,todo-task) + )) + + (setq org-agenda-custom-commands + '(("w" "Work review" + ((agenda "" ((org-agenda-ndays 7) + (org-agenda-repeating-timestamp-show-all nil) + (org-agenda-start-on-weekday nil) + )) + (tags-todo "+sprint&-waiting") + (tags-todo "+payments&-waiting") + (tags-todo "+waiting") + ) + ((org-agenda-category-filter-preset '("+work")))) + ("h" "Home review" + ((agenda "" ((org-agenda-ndays 7) + (org-agenda-repeating-timestamp-show-all nil) + (org-agenda-start-on-weekday nil) + )) + (tags-todo "vanessa") + (tags-todo "razor") + (tags "tinker") + (tags "errand")) + ((org-agenda-tag-filter-preset '("-work")) + (org-agenda-category-filter-preset '("-work")) + (org-agenda-repeating-timestamp-show-all nil) + )) + ("hu" "Unscheduled" search "-SCHEDULED & -DEADLINE") + ("g" . "GTD contexts") + ("gr" "Razor" tags-todo "razor") + ("gt" "Tinker" tags-todo "tinker") + ("gp" "polyadvent" tags-todo "polyadvent") + ("G" "GTD Block Agenda" + ((tags-todo "polyadvent") + ) + nil) + )) + + ;; fixes tramp slowness + (setq projectile-mode-line "Projectile") + (defadvice projectile-project-root (around ignore-remote first activate) + (unless (file-remote-p default-directory) ad-do-it)) + + (setq fci-rule-character-color "#202020") + (setq fci-rule-color "gray10") + (setq haskell-hoogle-command nil) + (setq haskell-hoogle-url "http://localhost:8080/?hoogle=%s") + ;; (setq haskell-process-type (quote ghci)) + + ) + +(defun dotspacemacs/emacs-custom-settings () + "Emacs custom settings. +This is an auto-generated function, do not modify its content directly, use +Emacs customize menu instead. +This function is called at the very end of Spacemacs initialization." +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(vc-follow-symlinks t)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) +) diff --git a/dotfiles/.tmux.conf b/dotfiles/.tmux.conf @@ -0,0 +1,98 @@ +# Last modified: 2009-11-12T05:59:41+0800 + +# Reload +bind r source-file ~/.tmux.conf + +# Change prefix key to Ctrl+a +unbind C-b +set -g prefix C-a + +# Last active window +unbind l +bind C-a last-window +bind C-n next-window +bind C-p previous-window +bind C-X swap-pane + +# Copy mode +# Use Vi mode +setw -g mode-keys vi + +# Make mouse useful in copy mode +setw -g mode-mouse on +setw -g escape-time 0 +setw -g mouse-resize-pane on + +# More straight forward key bindings for splitting +unbind % +bind | split-window -h +bind v split-window -h +unbind '"' +bind - split-window -v + +# Swap +bind u swap-pane -U + +# History +set -g history-limit 10000 + +# Pane +unbind o +unbind j +unbind k +bind j select-pane -D +bind C-j select-pane -D +bind C-k select-pane -U +bind k select-pane -U +bind C-h select-pane -L +bind h select-pane -L +bind l select-pane -R +bind C-l select-pane -R + +# Terminal emulator window title +set -g set-titles on +set -g set-titles-string "#H.#I.#W" +setw -g window-status-format '#I:#W#F' +setw -g window-status-current-format '#I:#W#F' +setw -g automatic-rename off + +# Status Bar +set -g status-bg colour233 +set -g status-fg colour239 +#set -g status-interval 1 +#set -g status-left '#[fg=colour118]#H#[default]' +#set -g status-right '#[fg=colour238]#(cut -d " " -f 1-4 /proc/loadavg)#[default] #[fg=colour242]%Y-%m-%d %H:%M:%S#[default]' +#set -g status-justify centre + +# Notifying if other windows has activities +setw -g monitor-activity off +set -g visual-activity off +#set -g visual-content off +set -g visual-bell off + +# Highlighting the active window in status bar +setw -g window-status-current-bg colour233 +setw -g window-status-current-fg colour154 + +set -g pane-border-bg black +set -g pane-border-fg colour238 + +set -g pane-active-border-bg black +set -g pane-active-border-fg colour112 + +# Clock +setw -g clock-mode-colour green +setw -g clock-mode-style 24 + +# Title + +# powerline +set-option -g status on +set-option -g status-interval 2 +set-option -g status-utf8 on +set-option -g status-justify "centre" +set-option -g status-left-length 60 +set-option -g status-right-length 90 +set-option -g status-left "#(~/dev/tmux-powerline/status-left.sh)" +set-option -g status-right "#(~/dev/tmux-powerline/status-right.sh)" + diff --git a/dotfiles/.vim/.VimballRecord b/dotfiles/.vim/.VimballRecord @@ -0,0 +1,4 @@ +supertab.vba: call delete('/home/jb55/.vim/doc/supertab.txt')|call delete('/home/jb55/.vim/plugin/supertab.vim') +command-t.vim: call delete('/Users/jb55/.vim/ruby/command-t/controller.rb')|call delete('/Users/jb55/.vim/ruby/command-t/extconf.rb')|call delete('/Users/jb55/.vim/ruby/command-t/finder.rb')|call delete('/Users/jb55/.vim/ruby/command-t/match_window.rb')|call delete('/Users/jb55/.vim/ruby/command-t/prompt.rb')|call delete('/Users/jb55/.vim/ruby/command-t/scanner.rb')|call delete('/Users/jb55/.vim/ruby/command-t/settings.rb')|call delete('/Users/jb55/.vim/ruby/command-t/stub.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim/screen.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim/window.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim.rb')|call delete('/Users/jb55/.vim/ruby/command-t/ext.c')|call delete('/Users/jb55/.vim/ruby/command-t/match.c')|call delete('/Users/jb55/.vim/ruby/command-t/matcher.c')|call delete('/Users/jb55/.vim/ruby/command-t/ext.h')|call delete('/Users/jb55/.vim/ruby/command-t/match.h')|call delete('/Users/jb55/.vim/ruby/command-t/matcher.h')|call delete('/Users/jb55/.vim/ruby/command-t/ruby_compat.h')|call delete('/Users/jb55/.vim/ruby/command-t/depend')|call delete('/Users/jb55/.vim/doc/command-t.txt')|call delete('/Users/jb55/.vim/plugin/command-t.vim') +command-t.vim: call delete('/Users/jb55/.vim/ruby/command-t/controller.rb')|call delete('/Users/jb55/.vim/ruby/command-t/extconf.rb')|call delete('/Users/jb55/.vim/ruby/command-t/finder.rb')|call delete('/Users/jb55/.vim/ruby/command-t/match_window.rb')|call delete('/Users/jb55/.vim/ruby/command-t/prompt.rb')|call delete('/Users/jb55/.vim/ruby/command-t/scanner.rb')|call delete('/Users/jb55/.vim/ruby/command-t/settings.rb')|call delete('/Users/jb55/.vim/ruby/command-t/stub.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim/screen.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim/window.rb')|call delete('/Users/jb55/.vim/ruby/command-t/vim.rb')|call delete('/Users/jb55/.vim/ruby/command-t/ext.c')|call delete('/Users/jb55/.vim/ruby/command-t/match.c')|call delete('/Users/jb55/.vim/ruby/command-t/matcher.c')|call delete('/Users/jb55/.vim/ruby/command-t/ext.h')|call delete('/Users/jb55/.vim/ruby/command-t/match.h')|call delete('/Users/jb55/.vim/ruby/command-t/matcher.h')|call delete('/Users/jb55/.vim/ruby/command-t/ruby_compat.h')|call delete('/Users/jb55/.vim/ruby/command-t/depend')|call delete('/Users/jb55/.vim/doc/command-t.txt')|call delete('/Users/jb55/.vim/plugin/command-t.vim') +clang_complete.vba: call delete('/home/jb55/.vim/autoload/snippets/clang_complete.vim')|call delete('/home/jb55/.vim/autoload/snippets/dummy.vim')|call delete('/home/jb55/.vim/autoload/snippets/snipmate.vim')|call delete('/home/jb55/.vim/autoload/snippets/ultisnips.vim')|call delete('/home/jb55/.vim/bin/cc_args.py')|call delete('/home/jb55/.vim/doc/clang_complete.txt')|call delete('/home/jb55/.vim/plugin/clang/__init__.py')|call delete('/home/jb55/.vim/plugin/clang/cindex.py')|call delete('/home/jb55/.vim/plugin/clang_complete.vim')|call delete('/home/jb55/.vim/plugin/libclang.py') diff --git a/dotfiles/.vim/.vimrc b/dotfiles/.vim/.vimrc @@ -0,0 +1,389 @@ +" vim: foldmethod=marker: + +"if 0 | endif + +filetype plugin indent on + +" Settings +set modeline +set modelines=1 +set nocp +set ts=2 +set shiftwidth=2 +set expandtab +set ai +set hlsearch +set hidden +set nowrap +set ruler +set colorcolumn=80 +set t_Co=16 +highlight ColorColumn ctermbg=8 +set relativenumber +set dir=~/.vim/tmp +exe 'set t_kB=' . nr2char(27) . '[Z' +set vb t_vb= +syntax on + +if $VIM_CRONTAB == "true" + set nobackup + set nowritebackup +endif + +set clipboard+=unnamedplus + +" gvim fonts +" if has("gui_running") +" colorscheme molokai +" else +" set t_Co=256 +" set clipboard=unnamed +" colorscheme base16-onedark +" endif + +" + +" Mappings + +"call arpeggio#map('i', '', 0, 'fd', '<Esc>') +"let g:arpeggio_timeoutlen = 100 +"let mapleader = "\<SPACE>" +"let maplocalleader = "\<SPACE>" +let mapleader = "\\" +let maplocalleader = "\\" + +" digraphs + +nmap Q :qa<CR> + +" lambda λ +imap <C-d>j <C-k>l* +" approx equal ≅ +imap <C-d>a <C-k>?= +" subset ⊆ +imap <C-d>s <C-k>(_ +" element of ∈ +imap <C-d>e <C-k>(- +" right arrow → +imap <C-d>l <C-k>-> +" left arrow ↠+imap <C-d>h <C-k><- +" compose ∘ +imap <C-d>o <C-k>Ob + +nnoremap <F10> :set invpaste paste?<CR> +imap <F10> <C-O><F10> +set pastetoggle=<F10> +nmap <F9> :TagbarToggle<CR> +map <F8> :make tags<CR> +map <F12> :TlistToggle<CR> +map <F11> :NERDTreeToggle<CR> +map <F2> :exec ":!hasktags -x -c --ignore src"<CR><CR> +map <F4> :call RCmd("make")<CR> +map <F5> :make<CR> +map <F6> :call RCmd("make test")<CR> +map <F7> :call RCmd("make deploy")<CR> + +nmap <Leader>nr "nyiW:call RCmd("npm repo <C-r>n")<CR> + +map <C-j> kddpkJ +map <Leader>] :tnext<CR> +map <Leader>[ :tprev<CR> +map <S-l> :cn<CR> +map <S-h> :cN<CR> +map <C-n> :lnext<CR> +map <C-p> :lprev<CR> +nmap <C-h> <C-w>h +nmap <C-l> <C-w>l +map <Leader>a :%s/\ at\ /\r\ at\ /g<CR> + +" Replace whitespace before and after commas +map <Leader>, :%s/\s\+,/,/g<CR>:%s/,\s\+/,/g<CR> + +map <Leader>y :Lodgeit<CR> +nmap <Leader>C :ccl<CR> +nmap <Leader>vs vip:sort<CR> +nmap <Leader>xda ma:%s/\s\+$//g<CR>`a +nmap <Leader>rr :call ReloadSnippets(&filetype)<CR> +map <Leader><Leader>x :silent %!xmllint --encode UTF-8 --format -<CR> +vmap <Leader><Leader>x :!xmllint --encode UTF-8 --format -<CR> +vmap <Leader><Leader>j !jade -p % -o "{ prettyprint: true }"<CR> + +"map <Leader>cr :!newclay % && ./main<CR> + +cmap w!! %!sudo tee > /dev/null % + +" I never use ctrl-b anyways +nmap <C-b> <C-a> + +" Tabular bindings +nmap <Leader>== :Tabularize /=<CR> +vmap <Leader>== :Tabularize /=<CR> +nmap <Leader>=, :Tabularize /,<CR> +vmap <Leader>=, :Tabularize /,<CR> +nmap <Leader>=<Bar> :Tabularize /<Bar><CR> +vmap <Leader>=<Bar> :Tabularize /<Bar><CR> +nmap <Leader>=:: :Tabularize /::<CR> +vmap <Leader>=:: :Tabularize /::<CR> +nmap <Leader>=: :Tabularize /:\zs<CR> +vmap <Leader>=: :Tabularize /:\zs<CR> + +" Plugin Options + +let g:SuperTabDefaultCompletionType = "context" + +" For snippet_complete marker. +if has('conceal') + set conceallevel=2 concealcursor=i +endif + +let g:haddock_browser="open" + +let g:gitgutter_enabled = 1 +let g:indent_guides_auto_colors = 0 +let g:indent_guides_guide_size = 1 +let g:indent_guides_start_level = 2 +let g:indent_guides_enable_on_vim_startup = 1 + +let g:Powerline_symbols = 'fancy' + +let g:miniBufExplMapCTabSwitchBufs = 1 +let g:miniBufExplModSelTarget = 1 + +let g:clj_highlight_builtins=1 " Highlight Clojure's builtins +let g:clj_paren_rainbow=1 " Rainbow parentheses'! + +let g:SuperTabDefaultCompletionType = "context" + +let g:clang_complete_copen = 1 +let g:clang_snippets = 1 +let g:clang_use_library = 1 + +let g:syntastic_loc_list_height=3 +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 +let g:syntastic_coffee_coffeelint_conf = '~/.coffeelintrc' +let g:syntastic_enable_signs=1 +let g:syntastic_error_symbol='✗' +let g:syntastic_haskell_checkers = [] +let g:syntastic_javascript_checkers = ['eslint'] +let g:syntastic_javascript_eslint_args = '~/.eslintrc' +let g:syntastic_warning_symbol='âš ' + +let g:EasyMotion_leader_key = '<Leader>' + +let g:ctrlp_cmd = 'CtrlPMixed' +let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|\.git\|\.hg\|\.svn\|\.redo\|dist\|cabal-dev\|lib-cov' +let g:ctrlp_extensions = ['tag'] +let g:ctrlp_switch_buffer=0 + +" fix gitgutter color +highlight clear SignColumn + +" Linux style C + + +if exists("g:loaded_linuxsty") + finish +endif +let g:loaded_linuxsty = 1 + +set wildignore+=*.ko,*.mod.c,*.order,modules.builtin + +augroup linuxsty + autocmd! + + autocmd FileType c,cpp call s:LinuxConfigure() + autocmd FileType diff setlocal ts=8 + autocmd FileType kconfig setlocal ts=8 sw=8 sts=8 noet + autocmd FileType dts setlocal ts=8 sw=8 sts=8 noet +augroup END + +function s:LinuxConfigure() + let apply_style = 0 + + if exists("g:linuxsty_patterns") + let path = expand('%:p') + for p in g:linuxsty_patterns + if path =~ p + let apply_style = 1 + break + endif + endfor + else + let apply_style = 1 + endif + + if apply_style + call s:LinuxCodingStyle() + endif +endfunction + +command! LinuxCodingStyle call s:LinuxCodingStyle() + +function! s:LinuxCodingStyle() + call s:LinuxFormatting() + call s:LinuxKeywords() + call s:LinuxHighlighting() +endfunction + +function s:LinuxFormatting() + setlocal tabstop=8 + setlocal shiftwidth=8 + setlocal softtabstop=8 + setlocal textwidth=80 + setlocal noexpandtab + + setlocal cindent + setlocal cinoptions=:0,l1,t0,g0,(0 +endfunction + +function s:LinuxKeywords() + syn keyword cOperator likely unlikely + syn keyword cType u8 u16 u32 u64 s8 s16 s32 s64 + syn keyword cType __u8 __u16 __u32 __u64 __s8 __s16 __s32 __s64 +endfunction + +function s:LinuxHighlighting() + highlight default link LinuxError ErrorMsg + + syn match LinuxError / \+\ze\t/ " spaces before tab + syn match LinuxError /\%>80v[^()\{\}\[\]<>]\+/ " virtual column 81 and more + + " Highlight trailing whitespace, unless we're in insert mode and the + " cursor's placed right after the whitespace. This prevents us from having + " to put up with whitespace being highlighted in the middle of typing + " something + autocmd InsertEnter * match LinuxError /\s\+\%#\@<!$/ + autocmd InsertLeave * match LinuxError /\s\+$/ +endfunction + +" Autocommands + +augroup encrypted + au! + + " First make sure nothing is written to ~/.viminfo while editing + " an encrypted file. + autocmd BufReadPre,FileReadPre *.gpg set viminfo= + " We don't want a various options which write unencrypted data to disk + autocmd BufReadPre,FileReadPre *.gpg set noswapfile noundofile nobackup + + " Switch to binary mode to read the encrypted file + autocmd BufReadPre,FileReadPre *.gpg set bin + autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 + " (If you use tcsh, you may need to alter this line.) + autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg2 --decrypt 2> /dev/null + + " Switch to normal mode for editing + autocmd BufReadPost,FileReadPost *.gpg set nobin + autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save + autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r") + + " Convert all text to encrypted text before writing + " (If you use tcsh, you may need to alter this line.) + autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg2 --default-recipient-self -ae 2>/dev/null + " Undo the encryption so we are back in the normal text, directly + " after the file has been written. + autocmd BufWritePost,FileWritePost *.gpg u +augroup END + +"au BufEnter *.hs compiler ghc +au BufRead,BufNewFile *.nix set syn=nix +au BufRead,BufNewFile *.nix set filetype=nix +au BufRead,BufNewFile *.c,*.cpp,*.h set cindent +au BufRead,BufNewFile *.c,*.cpp,*.h set cino=(0 +au BufRead,BufNewFile *.clay set syn=clay +au BufRead,BufNewFile *.clj set syntax=clojure +au BufRead,BufNewFile *.coffee set ft=coffee +au BufRead,BufNewFile *.do set syn=sh +au BufRead,BufNewFile *.galaxy set syn=galaxy +au BufRead,BufNewFile *.glsl set syntax=glsl +au BufRead,BufNewFile *.gnu set syn=gnuplot +au BufRead,BufNewFile *.go set syntax=go +au BufRead,BufNewFile *.hx set syn=haxe +au BufRead,BufNewFile *.java set sw=4 +au BufRead,BufNewFile *.java set ts=4 +au BufRead,BufNewFile *.json set ft=json +au BufRead,BufNewFile *.less set syn=less +au BufRead,BufNewFile *.ll set syn=llvm +au BufRead,BufNewFile *.ly set syn=bn +au BufRead,BufNewFile *.material set syn=ogre3d_material +au BufRead,BufNewFile *.md,*.mkd,*.markdown set ft=markdown +au BufRead,BufNewFile *.mirah set syn=mirah +au BufRead,BufNewFile *.moon set syn=moon +au BufRead,BufNewFile *.rkt set syn=racket +au BufRead,BufNewFile *.rs set syn=rust +au BufRead,BufNewFile *.scala set syn=scala +au BufRead,BufNewFile *.swig set syn=swig +au BufRead,BufNewFile *.td set syn=tablegen +au BufRead,BufNewFile *.thrift set syn=thrift +au BufRead,BufNewFile *.ts set syn=typescript +au BufRead,BufNewFile *.ebnf set syn=ebnf +au BufRead,BufNewFile *.bnf set syn=bnf +au BufRead,BufNewFile *.ts set filetype=typescript +au BufRead,BufNewFile *.x set syn=alex +au BufRead,BufNewFile *.xsl let g:xml_syntax_folding = 1 +au BufRead,BufNewFile *.xsl set foldmethod=syntax +au BufRead,BufNewFile *.xsl set syn=xml +au BufRead,BufNewFile *.y set syn=bnf +au BufRead,BufNewFile *.y.pp set syn=happy +au BufRead,BufNewFile *.yaml set syn=yaml +au BufRead,BufNewFile *.yml set syn=yaml +au BufWritePost,FileWritePost ~/.Xdefaults,~/.Xresources silent! !xrdb -load % >/dev/null 2>&1 +au BufRead,BufNewFile /etc/nginx/* set ft=nginx +au BufRead,BufNewFile nginx.conf set ft=nginx +au BufRead,BufNewFile wscript set syn=python +" + +" Commands + +function! PlaySound() +" uncomment to annoy coworkers +" silent! exec '!afplay ~/audio/typewriter_keystroke.wav &' +endfunction +autocmd CursorMovedI * call PlaySound() + +function! RCmd(cmd) + :silent! exe '!echo "cd ' . getcwd() . ' && ' . a:cmd . '" > /tmp/cmds' + :redraw! +endfunction + +function! GRCmd(cmd) + :call RCmd("git --no-pager " . a:cmd) +endfunction + +" Highlight a column in csv text. +" :Csv 1 " highlight first column +" :Csv 12 " highlight twelfth column +" :Csv 0 " switch off highlight +function! CSVH(colnr) + if a:colnr > 1 + let n = a:colnr - 1 + execute 'match Keyword /^\([^,]*,\)\{'.n.'}\zs[^,]*/' + execute 'normal! 0'.n.'f,' + elseif a:colnr == 1 + match Keyword /^[^,]*/ + normal! 0 + else + match + endif +endfunction +command! -nargs=1 Csv :call CSVH(<args>) + +" Wipe buffers with no files +function! s:WipeBuffersWithoutFiles() + let bufs=filter(range(1, bufnr('$')), 'bufexists(v:val) && '. + \'empty(getbufvar(v:val, "&buftype")) && '. + \'!filereadable(bufname(v:val))') + if !empty(bufs) + execute 'bwipeout' join(bufs) + endif +endfunction +command! WipeNoFiles call s:WipeBuffersWithoutFiles() + +" + +runtime! config/*.vim diff --git a/dotfiles/.vim/README.csupport b/dotfiles/.vim/README.csupport @@ -0,0 +1,191 @@ +README for c.vim (Version 5.1) / March 05 2008 + + * DESCRIPTION + * INSTALLATION + * RELEASE NOTES + * FILES + * ADDITIONAL TIPS + * CREDITS + +======================================================================================= + DESCRIPTION +======================================================================================= +C/C++-IDE for Vim/gVim. It is written to considerably speed up writing code in +a consistent style. This is done by inserting complete statements, idioms, +code snippets, templates, and comments. Syntax checking, compiling, running a +program, running indent or code checkers can be done with a keystroke. There +are many additional hints and options which can improve speed and comfort when +writing C/C++. See the help file csupport.txt for more information. + +======================================================================================= + INSTALLATION +======================================================================================= +The subdirectories in the zip archive cvim.zip mirror the directory structure +which is needed below the local installation directory $HOME/.vim/ for LINUX/UNIX +($VIM/vimfiles/ for Windows; find the value of $VIM with ":echo $VIM" from inside Vim). + +(0) Save the template files in '$HOME/.vim/c-support/templates/Templates' if + you have changed any of them. + +(1) Copy the zip archive cvim.zip to $HOME/.vim and run + + unzip cvim.zip + + If you have already an older version of cvim and you have modified the template + files you may want to save your templates first or copy the files from the + archive by hand. + +(2) Loading of plugin files must be enabled. If not use + + :filetype plugin on + + This is the minimal content of the file '$HOME/.vimrc'. Create one if there + is none. + +(3) Set at least some personal details in the file '$HOME/.vim/c-support/templates/Templates' + (file '$VIM\/c-support/templates/Templates' under Windows). + Here is the minimal personalization (my settings as an example, of course): + + |AUTHOR| = Dr. Fritz Mehner + |AUTHORREF| = mn + |EMAIL| = mehner@fh-swf.de + |COMPANY| = FH Südwestfalen, Iserlohn + |COPYRIGHT| = Copyright (c) |YEAR|, |AUTHOR| + + (Read more about the template system in the plugin documentation) + +(4) Consider additional settings in the file '$HOME/.vimrc'. + The files customization.vimrc and customization.gvimrc are replacements or + extensions for your .vimrc and .gvimrc ( _vimrc and _gvimrc under Windows). + You may want to use parts of them. The files are documented. + +There are a lot of features and options which can be used and influenced: + + * use of template files and tags + * surround marked blocks with statements + * using and managing personal code snippets + * generate/remove multiline comments + * picking up prototypes + * C/C++ dictionaries for keyword completion + * (re)moving the root menu + +Restart gVim/Vim generate the help tags + + :helptags ~/.vim/doc + +and look at csupport help with + + :help csupport + +or use the 'help' entry in the root menu of this plug-in. + + +-----------------------------------------------+ + | +-------------------------------------------+ | + | | ** PLEASE READ THE DOCUMENTATION ** | | + | | Actions differ for different modes! | | + | +-------------------------------------------+ | + +-----------------------------------------------+ + +Any problems ? See the TROUBLESHOOTING section at the end of the help file +'doc/csupport.txt'. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.1 +======================================================================================= ++ Definition and implementation of classes have now different templates and menu entries. ++ Accessor methods (get/set) can be generated. ++ New templates: everything other than language keywords comes from a template + (and is user changeable). + + + OLDER RELEASE NOTES : see file 'ChangeLog' +======================================================================================= + +======================================================================================= + FILES +======================================================================================= + +README.csupport This file. + +doc/csupport.txt The help file for the local on-line help. + +ftplugin/c.vim A file type plug-in. Define hotkeys, creates a local + dictionary for each C/C++ file. + +plugin/c.vim The C/C++ plug-in for GVIM. + +c-support/scripts/wrapper.sh The wrapper script for the use of an xterm. +c-support/templates/* C-style and C++-style template files (see csupport.txt). + + +c-support/wordlists/c-c++-keywords.list All C and C++ keywords (already in word.list). +c-support/wordlists/k+r.list K&R-Book: Words from the table of content. + They appear frequently in comments. +c-support/wordlists/stl_index.list STL: method and type names. + + +----------------------- ------------------------------------------------------------- + The following files and extensions are for convenience only. + c.vim will work without them. + ------------------------------------------------------------- +c-support/doc/c-hotkeys.pdf Hotkey reference card. +c-support/doc/ChangeLog The change log. + +rc/customization.ctags Additional settings I use in .ctags to enable navigation + through makefiles ans qmake files with the plug-in taglist.vim. + +rc/costumization.gvimrc Additional settings I use in .gvimrc : + hot keys, mouse settings, ... + The file is commented. Append it to your .gvimrc if you like. + +rc/costumization.indent.pro Additional settings I use in .indent.pro : + See the indent manual. + +rc/costumization.vimrc Additional settings I use in .vimrc : incremental search, + tabstop, hot keys, font, use of dictionaries, ... + The file is commented. Append it to your .vimrc if you like. + +======================================================================================= + ADDITIONAL TIPS +======================================================================================= + +(1) gVim. Toggle 'insert mode' <--> 'normal mode' with the right mouse button + (see mapping in file costumization.gvimrc). + +(2) gVim. Use tear off menus. + +(3) Try 'Focus under mouse' as window behavior (No mouse click when the mouse pointer + is back from the menu entry). + +(4) Use Emulate3Buttons "on" (X11) even for a 3-button mouse. Pressing left and right + button at the same time without moving your fingers is faster then moving a finger + to the middle button (often a wheel). + +======================================================================================= + CREDITS +======================================================================================= + + Some ideas are taken from the following documents: + + 1. Recommended C Style and Coding Standards (Indian Hill Style Guide) + www.doc.ic.ac.uk/lab/secondyear/cstyle/cstyle.html + 2. Programming in C++, Ellemtel Telecommunication Systems Laboratories + www.it.bton.ac.uk/burks/burks/language/cpp/cppstyle/ellhome.htm + 3. C++ Coding Standard, Todd Hoff + www.possibility.com/Cpp/CppCodingStandard.html + + The splint error format is taken from the file splint.vim (Vim standard distribution). + +------------------ + + ... finally + + Johann Wolfgang von Goethe (1749-1832), the greatest of the German poets, + about LINUX, Vim/gVim and other great tools (Ok, almost.) : + + Ein Mann, der recht zu wirken denkt, Who on efficient work is bent, + Muß auf das beste Werkzeug halten. Must choose the fittest instrument. + + Faust, Teil 1, Vorspiel auf dem Theater Faust, Part 1, Prologue for the Theatre + +======================================================================================= diff --git a/dotfiles/.vim/after/plugin/TabularMaps.vim b/dotfiles/.vim/after/plugin/TabularMaps.vim @@ -0,0 +1,48 @@ +if !exists(':Tabularize') + finish " Tabular.vim wasn't loaded +endif + +let s:save_cpo = &cpo +set cpo&vim + +AddTabularPattern! assignment /[|&+*/%<>=!~-]\@<!\([<>!=]=\|=\~\)\@![|&+*/%<>=!~-]*=/l1r1 +AddTabularPattern! two_spaces / /l0 + +AddTabularPipeline! multiple_spaces / / map(a:lines, "substitute(v:val, ' *', ' ', 'g')") | tabular#TabularizeStrings(a:lines, ' ', 'l0') + +AddTabularPipeline! argument_list /(.*)/ map(a:lines, 'substitute(v:val, ''\s*\([(,)]\)\s*'', ''\1'', ''g'')') + \ | tabular#TabularizeStrings(a:lines, '[(,)]', 'l0') + \ | map(a:lines, 'substitute(v:val, ''\(\s*\),'', '',\1 '', "g")') + \ | map(a:lines, 'substitute(v:val, ''\s*)'', ")", "g")') + +function! SplitCDeclarations(lines) + let rv = [] + for line in a:lines + " split the line into declaractions + let split = split(line, '\s*[,;]\s*') + " separate the type from the first declaration + let type = substitute(split[0], '\%(\%([&*]\s*\)*\)\=\k\+$', '', '') + " add the ; back on every declaration + call map(split, 'v:val . ";"') + " add the first element to the return as-is, and remove it from the list + let rv += [ remove(split, 0) ] + " transform the other elements by adding the type on at the beginning + call map(split, 'type . v:val') + " and add them all to the return + let rv += split + endfor + return rv +endfunction + +AddTabularPipeline! split_declarations /,.*;/ SplitCDeclarations(a:lines) + +AddTabularPattern! ternary_operator /^.\{-}\zs?\|:/l1 + +AddTabularPattern! cpp_io /<<\|>>/l1 + +AddTabularPattern! pascal_assign /:=/l1 + +AddTabularPattern! trailing_c_comments /\/\*\|\*\/\|\/\//l1 + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/dotfiles/.vim/all.do b/dotfiles/.vim/all.do @@ -0,0 +1 @@ +redo-ifchange bundle/all diff --git a/dotfiles/.vim/autoload/a.vim b/dotfiles/.vim/autoload/a.vim @@ -0,0 +1,840 @@ +" Copyright (c) 1998-2006 +" Michael Sharpe <feline@irendi.com> +" +" We grant permission to use, copy modify, distribute, and sell this +" software for any purpose without fee, provided that the above copyright +" notice and this text are not removed. We make no guarantee about the +" suitability of this software for any purpose and we are not liable +" for any damages resulting from its use. Further, we are under no +" obligation to maintain or extend this software. It is provided on an +" "as is" basis without any expressed or implied warranty. + +" Directory & regex enhancements added by Bindu Wavell who is well known on +" vim.sf.net +" +" Patch for spaces in files/directories from Nathan Stien (also reported by +" Soeren Sonnenburg) + +" Do not load a.vim if is has already been loaded. +if exists("loaded_alternateFile") + finish +endif +if (v:progname == "ex") + finish +endif +let loaded_alternateFile = 1 + +let alternateExtensionsDict = {} + +" setup the default set of alternate extensions. The user can override in thier +" .vimrc if the defaults are not suitable. To override in a .vimrc simply set a +" g:alternateExtensions_<EXT> variable to a comma separated list of alternates, +" where <EXT> is the extension to map. +" E.g. let g:alternateExtensions_CPP = "inc,h,H,HPP,hpp" +" let g:alternateExtensions_{'aspx.cs'} = "aspx" + + +" This variable will be increased when an extension with greater number of dots +" is added by the AddAlternateExtensionMapping call. +let s:maxDotsInExtension = 1 + +" Function : AddAlternateExtensionMapping (PRIVATE) +" Purpose : simple helper function to add the default alternate extension +" mappings. +" Args : extension -- the extension to map +" alternates -- comma separated list of alternates extensions +" Returns : nothing +" Author : Michael Sharpe <feline@irendi.com> +function! <SID>AddAlternateExtensionMapping(extension, alternates) + " This code does not actually work for variables like foo{'a.b.c.d.e'} + "let varName = "g:alternateExtensions_" . a:extension + "if (!exists(varName)) + " let g:alternateExtensions_{a:extension} = a:alternates + "endif + + " This code handles extensions which contains a dot. exists() fails with + " such names. + "let v:errmsg = "" + " FIXME this line causes ex to return 1 instead of 0 for some reason?? + "silent! echo g:alternateExtensions_{a:extension} + "if (v:errmsg != "") + "let g:alternateExtensions_{a:extension} = a:alternates + "endif + + let g:alternateExtensionsDict[a:extension] = a:alternates + let dotsNumber = strlen(substitute(a:extension, "[^.]", "", "g")) + if s:maxDotsInExtension < dotsNumber + let s:maxDotsInExtension = dotsNumber + endif +endfunction + + +" Add all the default extensions +" Mappings for C and C++ +call <SID>AddAlternateExtensionMapping('h',"c,cpp,cxx,cc,CC") +call <SID>AddAlternateExtensionMapping('H',"C,CPP,CXX,CC") +call <SID>AddAlternateExtensionMapping('hpp',"cpp,c") +call <SID>AddAlternateExtensionMapping('HPP',"CPP,C") +call <SID>AddAlternateExtensionMapping('c',"h") +call <SID>AddAlternateExtensionMapping('C',"H") +call <SID>AddAlternateExtensionMapping('cpp',"h,hpp") +call <SID>AddAlternateExtensionMapping('CPP',"H,HPP") +call <SID>AddAlternateExtensionMapping('cc',"h") +call <SID>AddAlternateExtensionMapping('CC',"H,h") +call <SID>AddAlternateExtensionMapping('cxx',"h") +call <SID>AddAlternateExtensionMapping('CXX',"H") +" Mappings for PSL7 +call <SID>AddAlternateExtensionMapping('psl',"ph") +call <SID>AddAlternateExtensionMapping('ph',"psl") +" Mappings for ADA +call <SID>AddAlternateExtensionMapping('adb',"ads") +call <SID>AddAlternateExtensionMapping('ads',"adb") +" Mappings for lex and yacc files +call <SID>AddAlternateExtensionMapping('l',"y,yacc,ypp") +call <SID>AddAlternateExtensionMapping('lex',"yacc,y,ypp") +call <SID>AddAlternateExtensionMapping('lpp',"ypp,y,yacc") +call <SID>AddAlternateExtensionMapping('y',"l,lex,lpp") +call <SID>AddAlternateExtensionMapping('yacc',"lex,l,lpp") +call <SID>AddAlternateExtensionMapping('ypp',"lpp,l,lex") +" Mappings for OCaml +call <SID>AddAlternateExtensionMapping('ml',"mli") +call <SID>AddAlternateExtensionMapping('mli',"ml") +" ASP stuff +call <SID>AddAlternateExtensionMapping('aspx.cs', 'aspx') +call <SID>AddAlternateExtensionMapping('aspx.vb', 'aspx') +call <SID>AddAlternateExtensionMapping('aspx', 'aspx.cs,aspx.vb') + +" Setup default search path, unless the user has specified +" a path in their [._]vimrc. +if (!exists('g:alternateSearchPath')) + let g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc' +endif + +" If this variable is true then a.vim will not alternate to a file/buffer which +" does not exist. E.g while editing a.c and the :A will not swtich to a.h +" unless it exists. +if (!exists('g:alternateNoDefaultAlternate')) + " by default a.vim will alternate to a file which does not exist + let g:alternateNoDefaultAlternate = 0 +endif + +" If this variable is true then a.vim will convert the alternate filename to a +" filename relative to the current working directory. +" Feature by Nathan Huizinga +if (!exists('g:alternateRelativeFiles')) + " by default a.vim will not convert the filename to one relative to the + " current working directory + let g:alternateRelativeFiles = 0 +endif + + +" Function : GetNthItemFromList (PRIVATE) +" Purpose : Support reading items from a comma seperated list +" Used to iterate all the extensions in an extension spec +" Used to iterate all path prefixes +" Args : list -- the list (extension spec, file paths) to iterate +" n -- the extension to get +" Returns : the nth item (extension, path) from the list (extension +" spec), or "" for failure +" Author : Michael Sharpe <feline@irendi.com> +" History : Renamed from GetNthExtensionFromSpec to GetNthItemFromList +" to reflect a more generic use of this function. -- Bindu +function! <SID>GetNthItemFromList(list, n) + let itemStart = 0 + let itemEnd = -1 + let pos = 0 + let item = "" + let i = 0 + while (i != a:n) + let itemStart = itemEnd + 1 + let itemEnd = match(a:list, ",", itemStart) + let i = i + 1 + if (itemEnd == -1) + if (i == a:n) + let itemEnd = strlen(a:list) + endif + break + endif + endwhile + if (itemEnd != -1) + let item = strpart(a:list, itemStart, itemEnd - itemStart) + endif + return item +endfunction + +" Function : ExpandAlternatePath (PRIVATE) +" Purpose : Expand path info. A path with a prefix of "wdr:" will be +" treated as relative to the working directory (i.e. the +" directory where vim was started.) A path prefix of "abs:" will +" be treated as absolute. No prefix or "sfr:" will result in the +" path being treated as relative to the source file (see sfPath +" argument). +" +" A prefix of "reg:" will treat the pathSpec as a regular +" expression substitution that is applied to the source file +" path. The format is: +" +" reg:<sep><pattern><sep><subst><sep><flag><sep> +" +" <sep> seperator character, we often use one of [/|%#] +" <pattern> is what you are looking for +" <subst> is the output pattern +" <flag> can be g for global replace or empty +" +" EXAMPLE: 'reg:/inc/src/g/' will replace every instance +" of 'inc' with 'src' in the source file path. It is possible +" to use match variables so you could do something like: +" 'reg:|src/\([^/]*\)|inc/\1||' (see 'help :substitute', +" 'help pattern' and 'help sub-replace-special' for more details +" +" NOTE: a.vim uses ',' (comma) internally so DON'T use it +" in your regular expressions or other pathSpecs unless you update +" the rest of the a.vim code to use some other seperator. +" +" Args : pathSpec -- path component (or substitution patterns) +" sfPath -- source file path +" Returns : a path that can be used by AlternateFile() +" Author : Bindu Wavell <bindu@wavell.net> +function! <SID>ExpandAlternatePath(pathSpec, sfPath) + let prfx = strpart(a:pathSpec, 0, 4) + if (prfx == "wdr:" || prfx == "abs:") + let path = strpart(a:pathSpec, 4) + elseif (prfx == "reg:") + let re = strpart(a:pathSpec, 4) + let sep = strpart(re, 0, 1) + let patend = match(re, sep, 1) + let pat = strpart(re, 1, patend - 1) + let subend = match(re, sep, patend + 1) + let sub = strpart(re, patend+1, subend - patend - 1) + let flag = strpart(re, strlen(re) - 2) + if (flag == sep) + let flag = '' + endif + let path = substitute(a:sfPath, pat, sub, flag) + "call confirm('PAT: [' . pat . '] SUB: [' . sub . ']') + "call confirm(a:sfPath . ' => ' . path) + else + let path = a:pathSpec + if (prfx == "sfr:") + let path = strpart(path, 4) + endif + let path = a:sfPath . "/" . path + endif + return path +endfunction + +" Function : FindFileInSearchPath (PRIVATE) +" Purpose : Searches for a file in the search path list +" Args : filename -- name of the file to search for +" pathList -- the path list to search +" relPathBase -- the path which relative paths are expanded from +" Returns : An expanded filename if found, the empty string otherwise +" Author : Michael Sharpe (feline@irendi.com) +" History : inline code written by Bindu Wavell originally +function! <SID>FindFileInSearchPath(fileName, pathList, relPathBase) + let filepath = "" + let m = 1 + let pathListLen = strlen(a:pathList) + if (pathListLen > 0) + while (1) + let pathSpec = <SID>GetNthItemFromList(a:pathList, m) + if (pathSpec != "") + let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase) + let fullname = path . "/" . a:fileName + let foundMatch = <SID>BufferOrFileExists(fullname) + if (foundMatch) + let filepath = fullname + break + endif + else + break + endif + let m = m + 1 + endwhile + endif + return filepath +endfunction + +" Function : FindFileInSearchPathEx (PRIVATE) +" Purpose : Searches for a file in the search path list +" Args : filename -- name of the file to search for +" pathList -- the path list to search +" relPathBase -- the path which relative paths are expanded from +" count -- find the count'th occurence of the file on the path +" Returns : An expanded filename if found, the empty string otherwise +" Author : Michael Sharpe (feline@irendi.com) +" History : Based on <SID>FindFileInSearchPath() but with extensions +function! <SID>FindFileInSearchPathEx(fileName, pathList, relPathBase, count) + let filepath = "" + let m = 1 + let spath = "" + let pathListLen = strlen(a:pathList) + if (pathListLen > 0) + while (1) + let pathSpec = <SID>GetNthItemFromList(a:pathList, m) + if (pathSpec != "") + let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase) + if (spath != "") + let spath = spath . ',' + endif + let spath = spath . path + else + break + endif + let m = m + 1 + endwhile + endif + + if (&path != "") + if (spath != "") + let spath = spath . ',' + endif + let spath = spath . &path + endif + + let filepath = findfile(a:fileName, spath, a:count) + return filepath +endfunction + +" Function : EnumerateFilesByExtension (PRIVATE) +" Purpose : enumerates all files by a particular list of alternate extensions. +" Args : path -- path of a file (not including the file) +" baseName -- base name of the file to be expanded +" extension -- extension whose alternates are to be enumerated +" Returns : comma separated list of files with extensions +" Author : Michael Sharpe <feline@irendi.com> +function! EnumerateFilesByExtension(path, baseName, extension) + let enumeration = "" + let extSpec = "" + let v:errmsg = "" + silent! echo g:alternateExtensions_{a:extension} + if (v:errmsg == "") + let extSpec = g:alternateExtensions_{a:extension} + endif + if (extSpec == "") + if (has_key(g:alternateExtensionsDict, a:extension)) + let extSpec = g:alternateExtensionsDict[a:extension] + endif + endif + if (extSpec != "") + let n = 1 + let done = 0 + while (!done) + let ext = <SID>GetNthItemFromList(extSpec, n) + if (ext != "") + if (a:path != "") + let newFilename = a:path . "/" . a:baseName . "." . ext + else + let newFilename = a:baseName . "." . ext + endif + if (enumeration == "") + let enumeration = newFilename + else + let enumeration = enumeration . "," . newFilename + endif + else + let done = 1 + endif + let n = n + 1 + endwhile + endif + return enumeration +endfunction + +" Function : EnumerateFilesByExtensionInPath (PRIVATE) +" Purpose : enumerates all files by expanding the path list and the extension +" list. +" Args : baseName -- base name of the file +" extension -- extension whose alternates are to be enumerated +" pathList -- the list of paths to enumerate +" relPath -- the path of the current file for expansion of relative +" paths in the path list. +" Returns : A comma separated list of paths with extensions +" Author : Michael Sharpe <feline@irendi.com> +function! EnumerateFilesByExtensionInPath(baseName, extension, pathList, relPathBase) + let enumeration = "" + let filepath = "" + let m = 1 + let pathListLen = strlen(a:pathList) + if (pathListLen > 0) + while (1) + let pathSpec = <SID>GetNthItemFromList(a:pathList, m) + if (pathSpec != "") + let path = <SID>ExpandAlternatePath(pathSpec, a:relPathBase) + let pe = EnumerateFilesByExtension(path, a:baseName, a:extension) + if (enumeration == "") + let enumeration = pe + else + let enumeration = enumeration . "," . pe + endif + else + break + endif + let m = m + 1 + endwhile + endif + return enumeration +endfunction + +" Function : DetermineExtension (PRIVATE) +" Purpose : Determines the extension of a filename based on the register +" alternate extension. This allow extension which contain dots to +" be considered. E.g. foo.aspx.cs to foo.aspx where an alternate +" exists for the aspx.cs extension. Note that this will only accept +" extensions which contain less than 5 dots. This is only +" implemented in this manner for simplicity...it is doubtful that +" this will be a restriction in non-contrived situations. +" Args : The path to the file to find the extension in +" Returns : The matched extension if any +" Author : Michael Sharpe (feline@irendi.com) +" History : idea from Tom-Erik Duestad +" Notes : there is some magic occuring here. The exists() function does not +" work well when the curly brace variable has dots in it. And why +" should it, dots are not valid in variable names. But the exists +" function is wierd too. Lets say foo_c does exist. Then +" exists("foo_c.e.f") will be true...even though the variable does +" not exist. However the curly brace variables do work when the +" variable has dots in it. E.g foo_{'c'} is different from +" foo_{'c.d.e'}...and foo_{'c'} is identical to foo_c and +" foo_{'c.d.e'} is identical to foo_c.d.e right? Yes in the current +" implementation of vim. To trick vim to test for existence of such +" variables echo the curly brace variable and look for an error +" message. +function! DetermineExtension(path) + let mods = ":t" + let i = 0 + while i <= s:maxDotsInExtension + let mods = mods . ":e" + let extension = fnamemodify(a:path, mods) + if (has_key(g:alternateExtensionsDict, extension)) + return extension + endif + let v:errmsg = "" + silent! echo g:alternateExtensions_{extension} + if (v:errmsg == "") + return extension + endif + let i = i + 1 + endwhile + return "" +endfunction + +" Function : AlternateFile (PUBLIC) +" Purpose : Opens a new buffer by looking at the extension of the current +" buffer and finding the corresponding file. E.g. foo.c <--> foo.h +" Args : accepts one argument. If present it used the argument as the new +" extension. +" Returns : nothing +" Author : Michael Sharpe <feline@irendi.com> +" History : + When an alternate can't be found in the same directory as the +" source file, a search path will be traversed looking for the +" alternates. +" + Moved some code into a separate function, minor optimization +" + rework to favor files in memory based on complete enumeration of +" all files extensions and paths +function! AlternateFile(splitWindow, ...) + let extension = DetermineExtension(expand("%:p")) + let baseName = substitute(expand("%:t"), "\." . extension . '$', "", "") + let currentPath = expand("%:p:h") + + if (a:0 != 0) + let newFullname = currentPath . "/" . baseName . "." . a:1 + call <SID>FindOrCreateBuffer(newFullname, a:splitWindow, 0) + else + let allfiles = "" + if (extension != "") + let allfiles1 = EnumerateFilesByExtension(currentPath, baseName, extension) + let allfiles2 = EnumerateFilesByExtensionInPath(baseName, extension, g:alternateSearchPath, currentPath) + + if (allfiles1 != "") + if (allfiles2 != "") + let allfiles = allfiles1 . ',' . allfiles2 + else + let allfiles = allfiles1 + endif + else + let allfiles = allfiles2 + endif + endif + + if (allfiles != "") + let bestFile = "" + let bestScore = 0 + let score = 0 + let n = 1 + + let onefile = <SID>GetNthItemFromList(allfiles, n) + let bestFile = onefile + while (onefile != "" && score < 2) + let score = <SID>BufferOrFileExists(onefile) + if (score > bestScore) + let bestScore = score + let bestFile = onefile + endif + let n = n + 1 + let onefile = <SID>GetNthItemFromList(allfiles, n) + endwhile + + if (bestScore == 0 && g:alternateNoDefaultAlternate == 1) + echo "No existing alternate available" + else + call <SID>FindOrCreateBuffer(bestFile, a:splitWindow, 1) + let b:AlternateAllFiles = allfiles + endif + else + echo "No alternate file/buffer available" + endif + endif +endfunction + +" Function : AlternateOpenFileUnderCursor (PUBLIC) +" Purpose : Opens file under the cursor +" Args : splitWindow -- indicates how to open the file +" Returns : Nothing +" Author : Michael Sharpe (feline@irendi.com) www.irendi.com +function! AlternateOpenFileUnderCursor(splitWindow,...) + let cursorFile = (a:0 > 0) ? a:1 : expand("<cfile>") + let currentPath = expand("%:p:h") + let openCount = 1 + + let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, openCount) + if (fileName != "") + call <SID>FindOrCreateBuffer(fileName, a:splitWindow, 1) + let b:openCount = openCount + let b:cursorFile = cursorFile + let b:currentPath = currentPath + else + echo "Can't find file" + endif +endfunction + +" Function : AlternateOpenNextFile (PUBLIC) +" Purpose : Opens the next file corresponding to the search which found the +" current file +" Args : bang -- indicates what to do if the current file has not been +" saved +" Returns : nothing +" Author : Michael Sharpe (feline@irendi.com) www.irendi.com +function! AlternateOpenNextFile(bang) + let cursorFile = "" + if (exists("b:cursorFile")) + let cursorFile = b:cursorFile + endif + + let currentPath = "" + if (exists("b:currentPath")) + let currentPath = b:currentPath + endif + + let openCount = 0 + if (exists("b:openCount")) + let openCount = b:openCount + 1 + endif + + if (cursorFile != "" && currentPath != "" && openCount != 0) + let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, openCount) + if (fileName != "") + call <SID>FindOrCreateBuffer(fileName, "n".a:bang, 0) + let b:openCount = openCount + let b:cursorFile = cursorFile + let b:currentPath = currentPath + else + let fileName = <SID>FindFileInSearchPathEx(cursorFile, g:alternateSearchPath, currentPath, 1) + if (fileName != "") + call <SID>FindOrCreateBuffer(fileName, "n".a:bang, 0) + let b:openCount = 1 + let b:cursorFile = cursorFile + let b:currentPath = currentPath + else + echo "Can't find next file" + endif + endif + endif +endfunction + +comm! -nargs=? -bang IH call AlternateOpenFileUnderCursor("n<bang>", <f-args>) +comm! -nargs=? -bang IHS call AlternateOpenFileUnderCursor("h<bang>", <f-args>) +comm! -nargs=? -bang IHV call AlternateOpenFileUnderCursor("v<bang>", <f-args>) +comm! -nargs=? -bang IHT call AlternateOpenFileUnderCursor("t<bang>", <f-args>) +comm! -nargs=? -bang IHN call AlternateOpenNextFile("<bang>") +imap <Leader>ih <ESC>:IHS<CR> +nmap <Leader>ih :IHS<CR> +imap <Leader>is <ESC>:IHS<CR>:A<CR> +nmap <Leader>is :IHS<CR>:A<CR> +imap <Leader>ihn <ESC>:IHN<CR> +nmap <Leader>ihn :IHN<CR> + +"function! <SID>PrintList(theList) +" let n = 1 +" let oneFile = <SID>GetNthItemFromList(a:theList, n) +" while (oneFile != "") +" let n = n + 1 +" let oneFile = <SID>GetNthItemFromList(a:theList, n) +" endwhile +"endfunction + +" Function : NextAlternate (PUBLIC) +" Purpose : Used to cycle through any other alternate file which existed on +" the search path. +" Args : bang (IN) - used to implement the AN vs AN! functionality +" Returns : nothing +" Author : Michael Sharpe <feline@irendi.com> +function! NextAlternate(bang) + if (exists('b:AlternateAllFiles')) + let currentFile = expand("%") + let n = 1 + let onefile = <SID>GetNthItemFromList(b:AlternateAllFiles, n) + while (onefile != "" && !<SID>EqualFilePaths(fnamemodify(onefile,":p"), fnamemodify(currentFile,":p"))) + let n = n + 1 + let onefile = <SID>GetNthItemFromList(b:AlternateAllFiles, n) + endwhile + + if (onefile != "") + let stop = n + let n = n + 1 + let foundAlternate = 0 + let nextAlternate = "" + while (n != stop) + let nextAlternate = <SID>GetNthItemFromList(b:AlternateAllFiles, n) + if (nextAlternate == "") + let n = 1 + continue + endif + let n = n + 1 + if (<SID>EqualFilePaths(fnamemodify(nextAlternate, ":p"), fnamemodify(currentFile, ":p"))) + continue + endif + if (filereadable(nextAlternate)) + " on cygwin filereadable("foo.H") returns true if "foo.h" exists + if (has("unix") && $WINDIR != "" && fnamemodify(nextAlternate, ":p") ==? fnamemodify(currentFile, ":p")) + continue + endif + let foundAlternate = 1 + break + endif + endwhile + if (foundAlternate == 1) + let s:AlternateAllFiles = b:AlternateAllFiles + "silent! execute ":e".a:bang." " . nextAlternate + call <SID>FindOrCreateBuffer(nextAlternate, "n".a:bang, 0) + let b:AlternateAllFiles = s:AlternateAllFiles + else + echo "Only this alternate file exists" + endif + else + echo "Could not find current file in alternates list" + endif + else + echo "No other alternate files exist" + endif +endfunction + +comm! -nargs=? -bang A call AlternateFile("n<bang>", <f-args>) +comm! -nargs=? -bang AS call AlternateFile("h<bang>", <f-args>) +comm! -nargs=? -bang AV call AlternateFile("v<bang>", <f-args>) +comm! -nargs=? -bang AT call AlternateFile("t<bang>", <f-args>) +comm! -nargs=? -bang AN call NextAlternate("<bang>") + +" Function : BufferOrFileExists (PRIVATE) +" Purpose : determines if a buffer or a readable file exists +" Args : fileName (IN) - name of the file to check +" Returns : 2 if it exists in memory, 1 if it exists, 0 otherwise +" Author : Michael Sharpe <feline@irendi.com> +" History : Updated code to handle buffernames using just the +" filename and not the path. +function! <SID>BufferOrFileExists(fileName) + let result = 0 + + let lastBuffer = bufnr("$") + let i = 1 + while i <= lastBuffer + if <SID>EqualFilePaths(expand("#".i.":p"), a:fileName) + let result = 2 + break + endif + let i = i + 1 + endwhile + + if (!result) + let bufName = fnamemodify(a:fileName,":t") + let memBufName = bufname(bufName) + if (memBufName != "") + let memBufBasename = fnamemodify(memBufName, ":t") + if (bufName == memBufBasename) + let result = 2 + endif + endif + + if (!result) + let result = bufexists(bufName) || bufexists(a:fileName) || filereadable(a:fileName) + endif + endif + + if (!result) + let result = filereadable(a:fileName) + endif + return result +endfunction + +" Function : FindOrCreateBuffer (PRIVATE) +" Purpose : searches the buffer list (:ls) for the specified filename. If +" found, checks the window list for the buffer. If the buffer is in +" an already open window, it switches to the window. If the buffer +" was not in a window, it switches to that buffer. If the buffer did +" not exist, it creates it. +" Args : filename (IN) -- the name of the file +" doSplit (IN) -- indicates whether the window should be split +" ("v", "h", "n", "v!", "h!", "n!", "t", "t!") +" findSimilar (IN) -- indicate weather existing buffers should be +" prefered +" Returns : nothing +" Author : Michael Sharpe <feline@irendi.com> +" History : + bufname() was not working very well with the possibly strange +" paths that can abound with the search path so updated this +" slightly. -- Bindu +" + updated window switching code to make it more efficient -- Bindu +" Allow ! to be applied to buffer/split/editing commands for more +" vim/vi like consistency +" + implemented fix from Matt Perry +function! <SID>FindOrCreateBuffer(fileName, doSplit, findSimilar) + " Check to see if the buffer is already open before re-opening it. + let FILENAME = escape(a:fileName, ' ') + let bufNr = -1 + let lastBuffer = bufnr("$") + let i = 1 + if (a:findSimilar) + while i <= lastBuffer + if <SID>EqualFilePaths(expand("#".i.":p"), a:fileName) + let bufNr = i + break + endif + let i = i + 1 + endwhile + + if (bufNr == -1) + let bufName = bufname(a:fileName) + let bufFilename = fnamemodify(a:fileName,":t") + + if (bufName == "") + let bufName = bufname(bufFilename) + endif + + if (bufName != "") + let tail = fnamemodify(bufName, ":t") + if (tail != bufFilename) + let bufName = "" + endif + endif + if (bufName != "") + let bufNr = bufnr(bufName) + let FILENAME = bufName + endif + endif + endif + + if (g:alternateRelativeFiles == 1) + let FILENAME = fnamemodify(FILENAME, ":p:.") + endif + + let splitType = a:doSplit[0] + let bang = a:doSplit[1] + if (bufNr == -1) + " Buffer did not exist....create it + let v:errmsg="" + if (splitType == "h") + silent! execute ":split".bang." " . FILENAME + elseif (splitType == "v") + silent! execute ":vsplit".bang." " . FILENAME + elseif (splitType == "t") + silent! execute ":tab split".bang." " . FILENAME + else + silent! execute ":e".bang." " . FILENAME + endif + if (v:errmsg != "") + echo v:errmsg + endif + else + + " Find the correct tab corresponding to the existing buffer + let tabNr = -1 + " iterate tab pages + for i in range(tabpagenr('$')) + " get the list of buffers in the tab + let tabList = tabpagebuflist(i + 1) + let idx = 0 + " iterate each buffer in the list + while idx < len(tabList) + " if it matches the buffer we are looking for... + if (tabList[idx] == bufNr) + " ... save the number + let tabNr = i + 1 + break + endif + let idx = idx + 1 + endwhile + if (tabNr != -1) + break + endif + endfor + " switch the the tab containing the buffer + if (tabNr != -1) + execute "tabn ".tabNr + endif + + " Buffer was already open......check to see if it is in a window + let bufWindow = bufwinnr(bufNr) + if (bufWindow == -1) + " Buffer was not in a window so open one + let v:errmsg="" + if (splitType == "h") + silent! execute ":sbuffer".bang." " . FILENAME + elseif (splitType == "v") + silent! execute ":vert sbuffer " . FILENAME + elseif (splitType == "t") + silent! execute ":tab sbuffer " . FILENAME + else + silent! execute ":buffer".bang." " . FILENAME + endif + if (v:errmsg != "") + echo v:errmsg + endif + else + " Buffer is already in a window so switch to the window + execute bufWindow."wincmd w" + if (bufWindow != winnr()) + " something wierd happened...open the buffer + let v:errmsg="" + if (splitType == "h") + silent! execute ":split".bang." " . FILENAME + elseif (splitType == "v") + silent! execute ":vsplit".bang." " . FILENAME + elseif (splitType == "t") + silent! execute ":tab split".bang." " . FILENAME + else + silent! execute ":e".bang." " . FILENAME + endif + if (v:errmsg != "") + echo v:errmsg + endif + endif + endif + endif +endfunction + +" Function : EqualFilePaths (PRIVATE) +" Purpose : Compares two paths. Do simple string comparison anywhere but on +" Windows. On Windows take into account that file paths could differ +" in usage of separators and the fact that case does not matter. +" "c:\WINDOWS" is the same path as "c:/windows". has("win32unix") Vim +" version does not count as one having Windows path rules. +" Args : path1 (IN) -- first path +" path2 (IN) -- second path +" Returns : 1 if path1 is equal to path2, 0 otherwise. +" Author : Ilya Bobir <ilya@po4ta.com> +function! <SID>EqualFilePaths(path1, path2) + if has("win16") || has("win32") || has("win64") || has("win95") + return substitute(a:path1, "\/", "\\", "g") ==? substitute(a:path2, "\/", "\\", "g") + else + return a:path1 == a:path2 + endif +endfunction diff --git a/dotfiles/.vim/autoload/pathogen.vim b/dotfiles/.vim/autoload/pathogen.vim @@ -0,0 +1,245 @@ +" pathogen.vim - path option manipulation +" Maintainer: Tim Pope <http://tpo.pe/> +" Version: 2.0 + +" Install in ~/.vim/autoload (or ~\vimfiles\autoload). +" +" For management of individually installed plugins in ~/.vim/bundle (or +" ~\vimfiles\bundle), adding `call pathogen#infect()` to your .vimrc +" prior to `filetype plugin indent on` is the only other setup necessary. +" +" The API is documented inline below. For maximum ease of reading, +" :set foldmethod=marker + +if exists("g:loaded_pathogen") || &cp + finish +endif +let g:loaded_pathogen = 1 + +" Point of entry for basic default usage. Give a directory name to invoke +" pathogen#runtime_append_all_bundles() (defaults to "bundle"), or a full path +" to invoke pathogen#runtime_prepend_subdirectories(). Afterwards, +" pathogen#cycle_filetype() is invoked. +function! pathogen#infect(...) abort " {{{1 + let source_path = a:0 ? a:1 : 'bundle' + if source_path =~# '[\\/]' + call pathogen#runtime_prepend_subdirectories(source_path) + else + call pathogen#runtime_append_all_bundles(source_path) + endif + call pathogen#cycle_filetype() +endfunction " }}}1 + +" Split a path into a list. +function! pathogen#split(path) abort " {{{1 + if type(a:path) == type([]) | return a:path | endif + let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,') + return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")') +endfunction " }}}1 + +" Convert a list to a path. +function! pathogen#join(...) abort " {{{1 + if type(a:1) == type(1) && a:1 + let i = 1 + let space = ' ' + else + let i = 0 + let space = '' + endif + let path = "" + while i < a:0 + if type(a:000[i]) == type([]) + let list = a:000[i] + let j = 0 + while j < len(list) + let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g') + let path .= ',' . escaped + let j += 1 + endwhile + else + let path .= "," . a:000[i] + endif + let i += 1 + endwhile + return substitute(path,'^,','','') +endfunction " }}}1 + +" Convert a list to a path with escaped spaces for 'path', 'tag', etc. +function! pathogen#legacyjoin(...) abort " {{{1 + return call('pathogen#join',[1] + a:000) +endfunction " }}}1 + +" Remove duplicates from a list. +function! pathogen#uniq(list) abort " {{{1 + let i = 0 + let seen = {} + while i < len(a:list) + if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i]) + call remove(a:list,i) + elseif a:list[i] ==# '' + let i += 1 + let empty = 1 + else + let seen[a:list[i]] = 1 + let i += 1 + endif + endwhile + return a:list +endfunction " }}}1 + +" \ on Windows unless shellslash is set, / everywhere else. +function! pathogen#separator() abort " {{{1 + return !exists("+shellslash") || &shellslash ? '/' : '\' +endfunction " }}}1 + +" Convenience wrapper around glob() which returns a list. +function! pathogen#glob(pattern) abort " {{{1 + let files = split(glob(a:pattern),"\n") + return map(files,'substitute(v:val,"[".pathogen#separator()."/]$","","")') +endfunction "}}}1 + +" Like pathogen#glob(), only limit the results to directories. +function! pathogen#glob_directories(pattern) abort " {{{1 + return filter(pathogen#glob(a:pattern),'isdirectory(v:val)') +endfunction "}}}1 + +" Turn filetype detection off and back on again if it was already enabled. +function! pathogen#cycle_filetype() " {{{1 + if exists('g:did_load_filetypes') + filetype off + filetype on + endif +endfunction " }}}1 + +" Checks if a bundle is 'disabled'. A bundle is considered 'disabled' if +" its 'basename()' is included in g:pathogen_disabled[]' or ends in a tilde. +function! pathogen#is_disabled(path) " {{{1 + if a:path =~# '\~$' + return 1 + elseif !exists("g:pathogen_disabled") + return 0 + endif + let sep = pathogen#separator() + return index(g:pathogen_disabled, strpart(a:path, strridx(a:path, sep)+1)) != -1 +endfunction "}}}1 + +" Prepend all subdirectories of path to the rtp, and append all 'after' +" directories in those subdirectories. +function! pathogen#runtime_prepend_subdirectories(path) " {{{1 + let sep = pathogen#separator() + let before = filter(pathogen#glob_directories(a:path.sep."*"), '!pathogen#is_disabled(v:val)') + let after = filter(pathogen#glob_directories(a:path.sep."*".sep."after"), '!pathogen#is_disabled(v:val[0:-7])') + let rtp = pathogen#split(&rtp) + let path = expand(a:path) + call filter(rtp,'v:val[0:strlen(path)-1] !=# path') + let &rtp = pathogen#join(pathogen#uniq(before + rtp + after)) + return &rtp +endfunction " }}}1 + +" For each directory in rtp, check for a subdirectory named dir. If it +" exists, add all subdirectories of that subdirectory to the rtp, immediately +" after the original directory. If no argument is given, 'bundle' is used. +" Repeated calls with the same arguments are ignored. +function! pathogen#runtime_append_all_bundles(...) " {{{1 + let sep = pathogen#separator() + let name = a:0 ? a:1 : 'bundle' + if "\n".s:done_bundles =~# "\\M\n".name."\n" + return "" + endif + let s:done_bundles .= name . "\n" + let list = [] + for dir in pathogen#split(&rtp) + if dir =~# '\<after$' + let list += filter(pathogen#glob_directories(substitute(dir,'after$',name,'').sep.'*[^~]'.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])') + [dir] + else + let list += [dir] + filter(pathogen#glob_directories(dir.sep.name.sep.'*[^~]'), '!pathogen#is_disabled(v:val)') + endif + endfor + let &rtp = pathogen#join(pathogen#uniq(list)) + return 1 +endfunction + +let s:done_bundles = '' +" }}}1 + +" Invoke :helptags on all non-$VIM doc directories in runtimepath. +function! pathogen#helptags() " {{{1 + let sep = pathogen#separator() + for dir in pathogen#split(&rtp) + if (dir.sep)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir.sep.'doc') == 2 && !empty(filter(split(glob(dir.sep.'doc'.sep.'*'),"\n>"),'!isdirectory(v:val)')) && (!filereadable(dir.sep.'doc'.sep.'tags') || filewritable(dir.sep.'doc'.sep.'tags')) + helptags `=dir.'/doc'` + endif + endfor +endfunction " }}}1 + +command! -bar Helptags :call pathogen#helptags() + +" Like findfile(), but hardcoded to use the runtimepath. +function! pathogen#runtime_findfile(file,count) "{{{1 + let rtp = pathogen#join(1,pathogen#split(&rtp)) + return fnamemodify(findfile(a:file,rtp,a:count),':p') +endfunction " }}}1 + +" Backport of fnameescape(). +function! pathogen#fnameescape(string) " {{{1 + if exists('*fnameescape') + return fnameescape(a:string) + elseif a:string ==# '-' + return '\-' + else + return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','') + endif +endfunction " }}}1 + +function! s:find(count,cmd,file,lcd) " {{{1 + let rtp = pathogen#join(1,pathogen#split(&runtimepath)) + let file = pathogen#runtime_findfile(a:file,a:count) + if file ==# '' + return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'" + elseif a:lcd + let path = file[0:-strlen(a:file)-2] + execute 'lcd `=path`' + return a:cmd.' '.pathogen#fnameescape(a:file) + else + return a:cmd.' '.pathogen#fnameescape(file) + endif +endfunction " }}}1 + +function! s:Findcomplete(A,L,P) " {{{1 + let sep = pathogen#separator() + let cheats = { + \'a': 'autoload', + \'d': 'doc', + \'f': 'ftplugin', + \'i': 'indent', + \'p': 'plugin', + \'s': 'syntax'} + if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0]) + let request = cheats[a:A[0]].a:A[1:-1] + else + let request = a:A + endif + let pattern = substitute(request,'\'.sep,'*'.sep,'g').'*' + let found = {} + for path in pathogen#split(&runtimepath) + let path = expand(path, ':p') + let matches = split(glob(path.sep.pattern),"\n") + call map(matches,'isdirectory(v:val) ? v:val.sep : v:val') + call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]') + for match in matches + let found[match] = 1 + endfor + endfor + return sort(keys(found)) +endfunction " }}}1 + +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1) + +" vim:set ft=vim ts=8 sw=2 sts=2: diff --git a/dotfiles/.vim/autoload/repeat.vim b/dotfiles/.vim/autoload/repeat.vim @@ -0,0 +1,72 @@ +" repeat.vim - Let the repeat command repeat plugin maps +" Maintainer: Tim Pope +" Version: 1.0 + +" Installation: +" Place in either ~/.vim/plugin/repeat.vim (to load at start up) or +" ~/.vim/autoload/repeat.vim (to load automatically as needed). +" +" Developers: +" Basic usage is as follows: +" +" silent! call repeat#set("\<Plug>MappingToRepeatCommand",3) +" +" The first argument is the mapping that will be invoked when the |.| key is +" pressed. Typically, it will be the same as the mapping the user invoked. +" This sequence will be stuffed into the input queue literally. Thus you must +" encode special keys by prefixing them with a backslash inside double quotes. +" +" The second argument is the default count. This is the number that will be +" prefixed to the mapping if no explicit numeric argument was given. The +" value of the v:count variable is usually correct and it will be used if the +" second parameter is omitted. If your mapping doesn't accept a numeric +" argument and you never want to receive one, pass a value of -1. +" +" Make sure to call the repeat#set function _after_ making changes to the +" file. + +if exists("g:loaded_repeat") || &cp || v:version < 700 + finish +endif +let g:loaded_repeat = 1 + +let g:repeat_tick = -1 + +function! repeat#set(sequence,...) + silent exe "norm! \"=''\<CR>p" + let g:repeat_sequence = a:sequence + let g:repeat_count = a:0 ? a:1 : v:count + let g:repeat_tick = b:changedtick +endfunction + +function! s:repeat(count) + if g:repeat_tick == b:changedtick + let c = g:repeat_count + let s = g:repeat_sequence + let cnt = c == -1 ? "" : (a:count ? a:count : (c ? c : '')) + call feedkeys(cnt . s) + else + call feedkeys((a:count ? a:count : '') . '.', 'n') + endif +endfunction + +function! s:wrap(command,count) + let preserve = (g:repeat_tick == b:changedtick) + exe 'norm! '.(a:count ? a:count : '').a:command + if preserve + let g:repeat_tick = b:changedtick + endif +endfunction + +nnoremap <silent> . :<C-U>call <SID>repeat(v:count)<CR> +nnoremap <silent> u :<C-U>call <SID>wrap('u',v:count)<CR> +nnoremap <silent> U :<C-U>call <SID>wrap('U',v:count)<CR> +nnoremap <silent> <C-R> :<C-U>call <SID>wrap("\<Lt>C-R>",v:count)<CR> + +augroup repeatPlugin + autocmd! + autocmd BufLeave,BufWritePre,BufReadPre * let g:repeat_tick = (g:repeat_tick == b:changedtick || g:repeat_tick == 0) ? 0 : -1 + autocmd BufEnter,BufWritePost * if g:repeat_tick == 0|let g:repeat_tick = b:changedtick|endif +augroup END + +" vim:set ft=vim et sw=4 sts=4: diff --git a/dotfiles/.vim/autoload/tabular.vim b/dotfiles/.vim/autoload/tabular.vim @@ -0,0 +1,283 @@ +" Tabular: Align columnar data using regex-designated column boundaries +" Maintainer: Matthew Wozniski (mjw@drexel.edu) +" Date: Thu, 11 Oct 2007 00:35:34 -0400 +" Version: 0.1 + +" Stupid vimscript crap {{{1 +let s:savecpo = &cpo +set cpo&vim + +" Private Functions {{{1 + +" Return the number of bytes in a string after expanding tabs to spaces. {{{2 +" This expansion is done based on the current value of 'tabstop' +function! s:Strlen(string) + let rv = 0 + let i = 0 + + for char in split(a:string, '\zs') + if char == "\t" + let rv += &ts - i + let i = 0 + else + let rv += 1 + let i = (i + 1) % &ts + endif + endfor + + return rv +endfunction + +" Align a string within a field {{{2 +" These functions do not trim leading and trailing spaces. + +" Right align 'string' in a field of size 'fieldwidth' +function! s:Right(string, fieldwidth) + let spaces = a:fieldwidth - s:Strlen(a:string) + return matchstr(a:string, '^\s*') . repeat(" ", spaces) . substitute(a:string, '^\s*', '', '') +endfunction + +" Left align 'string' in a field of size 'fieldwidth' +function! s:Left(string, fieldwidth) + let spaces = a:fieldwidth - s:Strlen(a:string) + return a:string . repeat(" ", spaces) +endfunction + +" Center align 'string' in a field of size 'fieldwidth' +function! s:Center(string, fieldwidth) + let spaces = a:fieldwidth - s:Strlen(a:string) + let right = spaces / 2 + let left = right + (right * 2 != spaces) + return repeat(" ", left) . a:string . repeat(" ", right) +endfunction + +" Remove spaces around a string {{{2 + +" Remove all trailing spaces from a string. +function! s:StripTrailingSpaces(string) + return matchstr(a:string, '^.\{-}\ze\s*$') +endfunction + +" Remove all leading spaces from a string. +function! s:StripLeadingSpaces(string) + return matchstr(a:string, '^\s*\zs.*$') +endfunction + +" Split a string into fields and delimiters {{{2 +" Like split(), but include the delimiters as elements +" All odd numbered elements are delimiters +" All even numbered elements are non-delimiters (including zero) +function! s:SplitDelim(string, delim) + let rv = [] + let beg = 0 + let idx = 0 + + let len = len(a:string) + + while 1 + let mid = match(a:string, a:delim, beg, 1) + if mid == -1 || mid == len + break + endif + + let matchstr = matchstr(a:string, a:delim, beg, 1) + let length = strlen(matchstr) + + if beg < mid + let rv += [ a:string[beg : mid-1] ] + else + let rv += [ "" ] + endif + + let beg = mid + length + let idx = beg + + if beg == mid + " Empty match, advance "beg" by one to avoid infinite loop + let rv += [ "" ] + let beg += 1 + else " beg > mid + let rv += [ a:string[mid : beg-1] ] + endif + endwhile + + let rv += [ strpart(a:string, idx) ] + + return rv +endfunction + +" Replace lines from `start' to `start + len - 1' with the given strings. {{{2 +" If more lines are needed to show all strings, they will be added. +" If there are too few strings to fill all lines, lines will be removed. +function! s:SetLines(start, len, strings) + if a:start > line('$') + 1 || a:start < 1 + throw "Invalid start line!" + endif + + if len(a:strings) > a:len + let fensave = &fen + let view = winsaveview() + call append(a:start + a:len - 1, repeat([''], len(a:strings) - a:len)) + call winrestview(view) + let &fen = fensave + elseif len(a:strings) < a:len + let fensave = &fen + let view = winsaveview() + sil exe (a:start + len(a:strings)) . ',' . (a:start + a:len - 1) . 'd_' + call winrestview(view) + let &fen = fensave + endif + + call setline(a:start, a:strings) +endfunction + +" Runs the given commandstring argument as an expression. {{{2 +" The commandstring expression is expected to reference the a:lines argument. +" If the commandstring expression returns a list the items of that list will +" replace the items in a:lines, otherwise the expression is assumed to have +" modified a:lines itself. +function! s:FilterString(lines, commandstring) + exe 'let rv = ' . a:commandstring + + if type(rv) == type(a:lines) && rv isnot a:lines + call filter(a:lines, 0) + call extend(a:lines, rv) + endif +endfunction + +" Public API {{{1 + +if !exists("g:tabular_default_format") + let g:tabular_default_format = "l1" +endif + +let s:formatelempat = '\%([lrc]\d\+\)' + +function! tabular#ElementFormatPattern() + return s:formatelempat +endfunction + +" Given a list of strings and a delimiter, split each string on every +" occurrence of the delimiter pattern, format each element according to either +" the provided format (optional) or the default format, and join them back +" together with enough space padding to guarantee that the nth delimiter of +" each string is aligned. +function! tabular#TabularizeStrings(strings, delim, ...) + if a:0 > 1 + echoerr "TabularizeStrings accepts only 2 or 3 arguments (got ".(a:0+2).")" + return 1 + endif + + let formatstr = (a:0 ? a:1 : g:tabular_default_format) + + if formatstr !~? s:formatelempat . '\+' + echoerr "Tabular: Invalid format \"" . formatstr . "\" specified!" + return 1 + endif + + let format = split(formatstr, s:formatelempat . '\zs') + + let lines = map(a:strings, 's:SplitDelim(v:val, a:delim)') + + " Strip spaces + " - Only from non-delimiters; spaces in delimiters must have been matched + " intentionally + " - Don't strip leading spaces from the first element; we like indenting. + for line in lines + if line[0] !~ '^\s*$' + let line[0] = s:StripTrailingSpaces(line[0]) + endif + if len(line) >= 3 + for i in range(2, len(line)-1, 2) + let line[i] = s:StripLeadingSpaces(s:StripTrailingSpaces(line[i])) + endfor + endif + endfor + + " Find the max length of each field + let maxes = [] + for line in lines + for i in range(len(line)) + if i == len(maxes) + let maxes += [ s:Strlen(line[i]) ] + else + let maxes[i] = max( [ maxes[i], s:Strlen(line[i]) ] ) + endif + endfor + endfor + + let lead_blank = empty(filter(copy(lines), 'v:val[0] =~ "\\S"')) + + " Concatenate the fields, according to the format pattern. + for idx in range(len(lines)) + let line = lines[idx] + for i in range(len(line)) + let how = format[i % len(format)][0] + let pad = format[i % len(format)][1:-1] + + if how =~? 'l' + let field = s:Left(line[i], maxes[i]) + elseif how =~? 'r' + let field = s:Right(line[i], maxes[i]) + elseif how =~? 'c' + let field = s:Center(line[i], maxes[i]) + endif + + let line[i] = field . (lead_blank && i == 0 ? '' : repeat(" ", pad)) + endfor + + let lines[idx] = s:StripTrailingSpaces(join(line, '')) + endfor +endfunction + +" Apply 0 or more filters, in sequence, to selected text in the buffer {{{2 +" The lines to be filtered are determined as follows: +" If the function is called with a range containing multiple lines, then +" those lines will be used as the range. +" If the function is called with no range or with a range of 1 line, then +" if "includepat" is not specified, +" that 1 line will be filtered, +" if "includepat" is specified and that line does not match it, +" no lines will be filtered +" if "includepat" is specified and that line does match it, +" all contiguous lines above and below the specified line matching the +" pattern will be filtered. +" +" The remaining arguments must each be a filter to apply to the text. +" Each filter must either be a String evaluating to a function to be called. +function! tabular#PipeRange(includepat, ...) range + let top = a:firstline + let bot = a:lastline + + if a:includepat != '' && top == bot + if top < 0 || top > line('$') || getline(top) !~ a:includepat + return + endif + while top > 1 && getline(top-1) =~ a:includepat + let top -= 1 + endwhile + while bot < line('$') && getline(bot+1) =~ a:includepat + let bot += 1 + endwhile + endif + + let lines = map(range(top, bot), 'getline(v:val)') + + for filter in a:000 + if type(filter) != type("") + echoerr "PipeRange: Bad filter: " . string(filter) + endif + + call s:FilterString(lines, filter) + + unlet filter + endfor + + call s:SetLines(top, bot - top + 1, lines) +endfunction + +" Stupid vimscript crap, part 2 {{{1 +let &cpo = s:savecpo +unlet s:savecpo + +" vim:set sw=2 sts=2 fdm=marker: diff --git a/dotfiles/.vim/autoload/vimball.vim b/dotfiles/.vim/autoload/vimball.vim @@ -0,0 +1,737 @@ +" vimball.vim : construct a file containing both paths and files +" Author: Charles E. Campbell, Jr. +" Date: Dec 28, 2009 +" Version: 30 +" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim +" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. +" The VIM LICENSE applies to Vimball.vim, and Vimball.txt +" (see |copyright|) except use "Vimball" instead of "Vim". +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** + +" --------------------------------------------------------------------- +" Load Once: {{{1 +if &cp || exists("g:loaded_vimball") + finish +endif +let g:loaded_vimball = "v30" +if v:version < 702 + echohl WarningMsg + echo "***warning*** this version of vimball needs vim 7.2" + echohl Normal + finish +endif +let s:keepcpo= &cpo +set cpo&vim +"DechoTabOn + +" ===================================================================== +" Constants: {{{1 +if !exists("s:USAGE") + let s:USAGE = 0 + let s:WARNING = 1 + let s:ERROR = 2 + + " determine if cygwin is in use or not + if !exists("g:netrw_cygwin") + if has("win32") || has("win95") || has("win64") || has("win16") + if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' + let g:netrw_cygwin= 1 + else + let g:netrw_cygwin= 0 + endif + else + let g:netrw_cygwin= 0 + endif + endif + + " set up g:vimball_mkdir if the mkdir() call isn't defined + if !exists("*mkdir") + if exists("g:netrw_local_mkdir") + let g:vimball_mkdir= g:netrw_local_mkdir + elseif executable("mkdir") + let g:vimball_mkdir= "mkdir" + elseif executable("makedir") + let g:vimball_mkdir= "makedir" + endif + if !exists(g:vimball_mkdir) + call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined") + endif + endif +endif + +" ===================================================================== +" Functions: {{{1 + +" --------------------------------------------------------------------- +" vimball#MkVimball: creates a vimball given a list of paths to files {{{2 +" Input: +" line1,line2: a range of lines containing paths to files to be included in the vimball +" writelevel : if true, force a write to filename.vba, even if it exists +" (usually accomplished with :MkVimball! ... +" filename : base name of file to be created (ie. filename.vba) +" Output: a filename.vba using vimball format: +" path +" filesize +" [file] +" path +" filesize +" [file] +fun! vimball#MkVimball(line1,line2,writelevel,...) range +" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0) + if a:1 =~ '\.vim$' || a:1 =~ '\.txt$' + let vbname= substitute(a:1,'\.\a\{3}$','.vba','') + else + let vbname= a:1 + endif + if vbname !~ '\.vba$' + let vbname= vbname.'.vba' + endif +" call Decho("vbname<".vbname.">") + if !a:writelevel && a:1 =~ '[\/]' + call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist") +" call Dret("MkVimball : vimball name<".a:1."> should not include slashes") + return + endif + if !a:writelevel && filereadable(vbname) + call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist") +" call Dret("MkVimball : file<".vbname."> already exists; use ! to insist") + return + endif + + " user option bypass + call vimball#SaveSettings() + + if a:0 >= 2 + " allow user to specify where to get the files + let home= expand(a:2) + else + " use first existing directory from rtp + let home= vimball#VimballHome() + endif + + " save current directory + let curdir = getcwd() + call s:ChgDir(home) + + " record current tab, initialize while loop index + let curtabnr = tabpagenr() + let linenr = a:line1 +" call Decho("curtabnr=".curtabnr) + + while linenr <= a:line2 + let svfile = getline(linenr) +" call Decho("svfile<".svfile.">") + + if !filereadable(svfile) + call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">") + call s:ChgDir(curdir) + call vimball#RestoreSettings() +" call Dret("MkVimball") + return + endif + + " create/switch to mkvimball tab + if !exists("vbtabnr") + tabnew + silent! file Vimball + let vbtabnr= tabpagenr() + else + exe "tabn ".vbtabnr + endif + + let lastline= line("$") + 1 + if lastline == 2 && getline("$") == "" + call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.') + call setline(2,'UseVimball') + call setline(3,'finish') + let lastline= line("$") + 1 + endif + call setline(lastline ,substitute(svfile,'$',' [[[1','')) + call setline(lastline+1,0) + + " write the file from the tab +" call Decho("exe $r ".fnameescape(svfile)) + exe "$r ".fnameescape(svfile) + + call setline(lastline+1,line("$") - lastline - 1) +" call Decho("lastline=".lastline." line$=".line("$")) + + " restore to normal tab + exe "tabn ".curtabnr + let linenr= linenr + 1 + endwhile + + " write the vimball + exe "tabn ".vbtabnr + call s:ChgDir(curdir) + setlocal ff=unix + if a:writelevel +" call Decho("exe w! ".fnameescape(vbname)) + exe "w! ".fnameescape(vbname) + else +" call Decho("exe w ".fnameescape(vbname)) + exe "w ".fnameescape(vbname) + endif +" call Decho("Vimball<".vbname."> created") + echo "Vimball<".vbname."> created" + + " remove the evidence + setlocal nomod bh=wipe + exe "tabn ".curtabnr + exe "tabc ".vbtabnr + + " restore options + call vimball#RestoreSettings() + +" call Dret("MkVimball") +endfun + +" --------------------------------------------------------------------- +" vimball#Vimball: extract and distribute contents from a vimball {{{2 +" (invoked the the UseVimball command embedded in +" vimballs' prologue) +fun! vimball#Vimball(really,...) +" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0) + + if v:version < 701 || (v:version == 701 && !exists('*fnameescape')) + echoerr "your vim is missing the fnameescape() function" +" call Dret("vimball#Vimball : needs 7.1 with patch 299") + return + endif + + if getline(1) !~ '^" Vimball Archiver' + echoerr "(Vimball) The current file does not appear to be a Vimball!" +" call Dret("vimball#Vimball") + return + endif + + " set up standard settings + call vimball#SaveSettings() + let curtabnr = tabpagenr() + let vimballfile = expand("%:tr") + + " set up vimball tab +" call Decho("setting up vimball tab") + tabnew + silent! file Vimball + let vbtabnr= tabpagenr() + let didhelp= "" + + " go to vim plugin home + if a:0 > 0 + let home= expand(a:1) + else + let home= vimball#VimballHome() + endif +" call Decho("home<".home.">") + + " save current directory and remove older same-named vimball, if any + let curdir = getcwd() +" call Decho("home<".home.">") +" call Decho("curdir<".curdir.">") + + call s:ChgDir(home) + let s:ok_unablefind= 1 + call vimball#RmVimball(vimballfile) + unlet s:ok_unablefind + + let linenr = 4 + let filecnt = 0 + + " give title to listing of (extracted) files from Vimball Archive + if a:really + echohl Title | echomsg "Vimball Archive" | echohl None + else + echohl Title | echomsg "Vimball Archive Listing" | echohl None + echohl Statement | echomsg "files would be placed under: ".home | echohl None + endif + + " apportion vimball contents to various files +" call Decho("exe tabn ".curtabnr) + exe "tabn ".curtabnr +" call Decho("linenr=".linenr." line$=".line("$")) + while 1 < linenr && linenr < line("$") + let fname = substitute(getline(linenr),'\t\[\[\[1$','','') + let fname = substitute(fname,'\\','/','g') +" let fsize = getline(linenr+1)+0 + let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0 + let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','') + let filecnt = filecnt + 1 +" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt) + + if a:really + echomsg "extracted <".fname.">: ".fsize." lines" + else + echomsg "would extract <".fname.">: ".fsize." lines" + endif +" call Decho("using L#".linenr.": will extract file<".fname.">") +" call Decho("using L#".(linenr+1).": fsize=".fsize) + + " Allow AsNeeded/ directory to take place of plugin/ directory + " when AsNeeded/filename is filereadable or was present in VimballRecord + if fname =~ '\<plugin/' + let anfname= substitute(fname,'\<plugin/','AsNeeded/','') + if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~ anfname) +" call Decho("using anfname<".anfname."> instead of <".fname.">") + let fname= anfname + endif + endif + + " make directories if they don't exist yet + if a:really +" call Decho("making directories if they don't exist yet (fname<".fname.">)") + let fnamebuf= substitute(fname,'\\','/','g') + let dirpath = substitute(home,'\\','/','g') + while fnamebuf =~ '/' + let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','') + let dirpath = dirname + let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','') +" call Decho("dirname<".dirname.">") + if !isdirectory(dirname) +" call Decho("making <".dirname.">") + if exists("g:vimball_mkdir") + call system(g:vimball_mkdir." ".shellescape(dirname)) + else + call mkdir(dirname) + endif + call s:RecordInVar(home,"rmdir('".dirname."')") + endif + endwhile + endif + call s:ChgDir(home) + + " grab specified qty of lines and place into "a" buffer + " (skip over path/filename and qty-lines) + let linenr = linenr + 2 + let lastline = linenr + fsize - 1 +" call Decho("exe ".linenr.",".lastline."yank a") + exe "silent ".linenr.",".lastline."yank a" + + " copy "a" buffer into tab +" call Decho('copy "a buffer into tab#'.vbtabnr) + exe "tabn ".vbtabnr + setlocal ma + silent! %d + silent put a + 1 + silent d + + " write tab to file + if a:really + let fnamepath= home."/".fname +" call Decho("exe w! ".fnameescape(fnamepath)) + if fenc != "" + exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath) + else + exe "silent w! ".fnameescape(fnamepath) + endif + echo "wrote ".fnameescape(fnamepath) + call s:RecordInVar(home,"call delete('".fnamepath."')") + endif + + " return to tab with vimball +" call Decho("exe tabn ".curtabnr) + exe "tabn ".curtabnr + + " set up help if its a doc/*.txt file +" call Decho("didhelp<".didhelp."> fname<".fname.">") + if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$' + let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','') +" call Decho("didhelp<".didhelp.">") + endif + + " update for next file +" call Decho("update linenr= [linenr=".linenr."] + [fsize=".fsize."] = ".(linenr+fsize)) + let linenr= linenr + fsize + endwhile + + " set up help +" call Decho("about to set up help: didhelp<".didhelp.">") + if didhelp != "" + let htpath= home."/".didhelp +" call Decho("exe helptags ".htpath) + exe "helptags ".fnameescape(htpath) + echo "did helptags" + endif + + " make sure a "Press ENTER..." prompt appears to keep the messages showing! + while filecnt <= &ch + echomsg " " + let filecnt= filecnt + 1 + endwhile + + " record actions in <.VimballRecord> + call s:RecordInFile(home) + + " restore events, delete tab and buffer + exe "tabn ".vbtabnr + setlocal nomod bh=wipe + exe "tabn ".curtabnr + exe "tabc ".vbtabnr + call vimball#RestoreSettings() + call s:ChgDir(curdir) + +" call Dret("vimball#Vimball") +endfun + +" --------------------------------------------------------------------- +" vimball#RmVimball: remove any files, remove any directories made by any {{{2 +" previous vimball extraction based on a file of the current +" name. +" Usage: RmVimball (assume current file is a vimball; remove) +" RmVimball vimballname +fun! vimball#RmVimball(...) +" call Dfunc("vimball#RmVimball() a:0=".a:0) + if exists("g:vimball_norecord") +" call Dret("vimball#RmVimball : (g:vimball_norecord)") + return + endif + + if a:0 == 0 + let curfile= expand("%:tr") +" call Decho("case a:0=0: curfile<".curfile."> (used expand(%:tr))") + else + if a:1 =~ '[\/]' + call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]") +" call Dret("vimball#RmVimball : suspect a:1<".a:1.">") + return + endif + let curfile= a:1 +" call Decho("case a:0=".a:0.": curfile<".curfile.">") + endif + if curfile =~ '\.vba$' + let curfile= substitute(curfile,'\.vba','','') + endif + if a:0 >= 2 + let home= expand(a:2) + else + let home= vimball#VimballHome() + endif + let curdir = getcwd() +" call Decho("home <".home.">") +" call Decho("curfile<".curfile.">") +" call Decho("curdir <".curdir.">") + + call s:ChgDir(home) + if filereadable(".VimballRecord") +" call Decho(".VimballRecord is readable") +" call Decho("curfile<".curfile.">") + keepalt keepjumps 1split + silent! keepalt keepjumps e .VimballRecord + let keepsrch= @/ +" call Decho('search for ^\M'.curfile.'.\m: ') +" call Decho('search for ^\M'.curfile.'.\mvba: ') +" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ') + if search('^\M'.curfile."\m: ".'cw') + let foundit= 1 + elseif search('^\M'.curfile.".\mvba: ",'cw') + let foundit= 1 + elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw') + let foundit= 1 + else + let foundit = 0 + endif + if foundit + let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','') + let s:VBRstring= substitute(exestring,'call delete(','','g') + let s:VBRstring= substitute(s:VBRstring,"[')]",'','g') +" call Decho("exe ".exestring) + silent! keepalt keepjumps exe exestring + silent! keepalt keepjumps d + let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g")) +" call Decho("exestring<".exestring.">") + echomsg "removed ".exestring." files" + else + let s:VBRstring= '' + let curfile = substitute(curfile,'\.vba','','') +" call Decho("unable to find <".curfile."> in .VimballRecord") + if !exists("s:ok_unablefind") + call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord") + endif + endif + silent! keepalt keepjumps g/^\s*$/d + silent! keepalt keepjumps wq! + let @/= keepsrch + endif + call s:ChgDir(curdir) + +" call Dret("vimball#RmVimball") +endfun + +" --------------------------------------------------------------------- +" vimball#Decompress: attempts to automatically decompress vimballs {{{2 +fun! vimball#Decompress(fname,...) +" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0) + + " decompression: + if expand("%") =~ '.*\.gz' && executable("gunzip") + " handle *.gz with gunzip + silent exe "!gunzip ".shellescape(a:fname) + if v:shell_error != 0 + call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">") + endif + let fname= substitute(a:fname,'\.gz$','','') + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + + elseif expand("%") =~ '.*\.gz' && executable("gzip") + " handle *.gz with gzip -d + silent exe "!gzip -d ".shellescape(a:fname) + if v:shell_error != 0 + call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">") + endif + let fname= substitute(a:fname,'\.gz$','','') + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + + elseif expand("%") =~ '.*\.bz2' && executable("bunzip2") + " handle *.bz2 with bunzip2 + silent exe "!bunzip2 ".shellescape(a:fname) + if v:shell_error != 0 + call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">") + endif + let fname= substitute(a:fname,'\.bz2$','','') + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + + elseif expand("%") =~ '.*\.bz2' && executable("bzip2") + " handle *.bz2 with bzip2 -d + silent exe "!bzip2 -d ".shellescape(a:fname) + if v:shell_error != 0 + call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">") + endif + let fname= substitute(a:fname,'\.bz2$','','') + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + + elseif expand("%") =~ '.*\.zip' && executable("unzip") + " handle *.zip with unzip + silent exe "!unzip ".shellescape(a:fname) + if v:shell_error != 0 + call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">") + endif + let fname= substitute(a:fname,'\.zip$','','') + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + endif + + if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif + +" call Dret("Decompress") +endfun + +" --------------------------------------------------------------------- +" vimball#ShowMesg: {{{2 +fun! vimball#ShowMesg(level,msg) +" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)") + + let rulerkeep = &ruler + let showcmdkeep = &showcmd + set noruler noshowcmd + redraw! + + if &fo =~ '[ta]' + echomsg "***vimball*** ".a:msg + else + if a:level == s:WARNING || a:level == s:USAGE + echohl WarningMsg + elseif a:level == s:ERROR + echohl Error + endif + echomsg "***vimball*** ".a:msg + echohl None + endif + + if a:level != s:USAGE + call inputsave()|let ok= input("Press <cr> to continue")|call inputrestore() + endif + + let &ruler = rulerkeep + let &showcmd = showcmdkeep + +" call Dret("vimball#ShowMesg") +endfun +" ===================================================================== +" s:ChgDir: change directory (in spite of Windoze) {{{2 +fun! s:ChgDir(newdir) +" call Dfunc("ChgDir(newdir<".a:newdir.">)") + if (has("win32") || has("win95") || has("win64") || has("win16")) + exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g')) + else + exe 'silent cd '.fnameescape(a:newdir) + endif +" call Dret("ChgDir : curdir<".getcwd().">") +endfun + +" --------------------------------------------------------------------- +" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2 +fun! s:RecordInVar(home,cmd) +" call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)") + if a:cmd =~ '^rmdir' +" if !exists("s:recorddir") +" let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'') +" else +" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'') +" endif + elseif !exists("s:recordfile") + let s:recordfile= a:cmd + else + let s:recordfile= s:recordfile."|".a:cmd + endif +" call Dret("RecordInVar : s:recordfile<".(exists("s:recordfile")? s:recordfile : "")."> s:recorddir<".(exists("s:recorddir")? s:recorddir : "").">") +endfun + +" --------------------------------------------------------------------- +" s:RecordInFile: {{{2 +fun! s:RecordInFile(home) +" call Dfunc("s:RecordInFile()") + if exists("g:vimball_norecord") +" call Dret("s:RecordInFile : g:vimball_norecord") + return + endif + + if exists("s:recordfile") || exists("s:recorddir") + let curdir= getcwd() + call s:ChgDir(a:home) + keepalt keepjumps 1split + + let cmd= expand("%:tr").": " +" call Decho("cmd<".cmd.">") + + silent! keepalt keepjumps e .VimballRecord + setlocal ma + $ + if exists("s:recordfile") && exists("s:recorddir") + let cmd= cmd.s:recordfile."|".s:recorddir + elseif exists("s:recorddir") + let cmd= cmd.s:recorddir + elseif exists("s:recordfile") + let cmd= cmd.s:recordfile + else +" call Dret("s:RecordInFile : neither recordfile nor recorddir exist") + return + endif +" call Decho("cmd<".cmd.">") + + " put command into buffer, write .VimballRecord `file + keepalt keepjumps put=cmd + silent! keepalt keepjumps g/^\s*$/d + silent! keepalt keepjumps wq! + call s:ChgDir(curdir) + + if exists("s:recorddir") +" call Decho("unlet s:recorddir<".s:recorddir.">") + unlet s:recorddir + endif + if exists("s:recordfile") +" call Decho("unlet s:recordfile<".s:recordfile.">") + unlet s:recordfile + endif + else +" call Decho("s:record[file|dir] doesn't exist") + endif + +" call Dret("s:RecordInFile") +endfun + +" --------------------------------------------------------------------- +" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2 +fun! vimball#VimballHome() +" call Dfunc("vimball#VimballHome()") + if exists("g:vimball_home") + let home= g:vimball_home + else + " go to vim plugin home + for home in split(&rtp,',') + [''] + if isdirectory(home) && filewritable(home) | break | endif + let basehome= substitute(home,'[/\\]\.vim$','','') + if isdirectory(basehome) && filewritable(basehome) + let home= basehome."/.vim" + break + endif + endfor + if home == "" + " just pick the first directory + let home= substitute(&rtp,',.*$','','') + endif + if (has("win32") || has("win95") || has("win64") || has("win16")) + let home= substitute(home,'/','\\','g') + endif + endif + " insure that the home directory exists +" call Decho("picked home<".home.">") + if !isdirectory(home) + if exists("g:vimball_mkdir") +" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">") +" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")") + call system(g:vimball_mkdir." ".shellescape(home)) + else +" call Decho("home<".home."> isn't a directory -- making it now with mkdir()") + call mkdir(home) + endif + endif +" call Dret("vimball#VimballHome <".home.">") + return home +endfun + +" --------------------------------------------------------------------- +" vimball#SaveSettings: {{{2 +fun! vimball#SaveSettings() +" call Dfunc("SaveSettings()") + let s:makeep = getpos("'a") + let s:regakeep= @a + if exists("&acd") + let s:acdkeep = &acd + endif + let s:eikeep = &ei + let s:fenkeep = &l:fen + let s:hidkeep = &hidden + let s:ickeep = &ic + let s:lzkeep = &lz + let s:pmkeep = &pm + let s:repkeep = &report + let s:vekeep = &ve + let s:ffkeep = &l:ff + if exists("&acd") + setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix + else + setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix + endif + " vimballs should be in unix format + setlocal ff=unix +" call Dret("SaveSettings") +endfun + +" --------------------------------------------------------------------- +" vimball#RestoreSettings: {{{2 +fun! vimball#RestoreSettings() +" call Dfunc("RestoreSettings()") + let @a = s:regakeep + if exists("&acd") + let &acd = s:acdkeep + endif + let &l:fen = s:fenkeep + let &hidden = s:hidkeep + let &ic = s:ickeep + let &lz = s:lzkeep + let &pm = s:pmkeep + let &report = s:repkeep + let &ve = s:vekeep + let &ei = s:eikeep + let &l:ff = s:ffkeep + if s:makeep[0] != 0 + " restore mark a +" call Decho("restore mark-a: makeep=".string(makeep)) + call setpos("'a",s:makeep) + endif + if exists("&acd") + unlet s:acdkeep + endif + unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep +" call Dret("RestoreSettings") +endfun + +" --------------------------------------------------------------------- +" Modelines: {{{1 +" vim: fdm=marker diff --git a/dotfiles/.vim/autoload/vimclojure.vim b/dotfiles/.vim/autoload/vimclojure.vim @@ -0,0 +1,672 @@ +" Part of Vim filetype plugin for Clojure +" Language: Clojure +" Maintainer: Meikel Brandmeyer <mb@kotka.de> + +let s:save_cpo = &cpo +set cpo&vim + +function! vimclojure#SynIdName() + return synIDattr(synID(line("."), col("."), 0), "name") +endfunction + +function! vimclojure#WithSaved(closure) + let v = a:closure.get(a:closure.tosafe) + let r = a:closure.f() + call a:closure.set(a:closure.tosafe, v) + return r +endfunction + +function! vimclojure#WithSavedPosition(closure) + let a:closure['tosafe'] = "." + let a:closure['get'] = function("getpos") + let a:closure['set'] = function("setpos") + return vimclojure#WithSaved(a:closure) +endfunction + +function! vimclojure#WithSavedRegister(closure) + let a:closure['get'] = function("getreg") + let a:closure['set'] = function("setreg") + return vimclojure#WithSaved(a:closure) +endfunction + +function! vimclojure#Yank(r, how) + let closure = {'tosafe': a:r, 'yank': a:how} + + function closure.f() dict + silent execute self.yank + return getreg(self.tosafe) + endfunction + + return vimclojure#WithSavedRegister(closure) +endfunction + +function! vimclojure#EscapePathForOption(path) + let path = fnameescape(a:path) + + " Hardcore escapeing of whitespace... + let path = substitute(path, '\', '\\\\', 'g') + let path = substitute(path, '\ ', '\\ ', 'g') + + return path +endfunction + +function! vimclojure#AddPathToOption(path, option) + let path = vimclojure#EscapePathForOption(a:path) + execute "setlocal " . a:option . "+=" . path +endfunction + +function! vimclojure#AddCompletions(ns) + let completions = split(globpath(&rtp, "ftplugin/clojure/completions-" . a:ns . ".txt"), '\n') + if completions != [] + call vimclojure#AddPathToOption('k' . completions[0], 'complete') + endif +endfunction + +" Nailgun part: +function! vimclojure#ExtractSexpr(toplevel) + let closure = { "flag" : (a:toplevel ? "r" : "") } + + function closure.f() dict + if searchpairpos('(', '', ')', 'bW' . self.flag, + \ 'vimclojure#SynIdName() !~ "clojureParen\\d"') != [0, 0] + return vimclojure#Yank('l', 'normal! "ly%') + end + return "" + endfunction + + return vimclojure#WithSavedPosition(closure) +endfunction + +function! vimclojure#BufferName() + let file = expand("%") + if file == "" + let file = "UNNAMED" + endif + return file +endfunction + +" Key mappings and Plugs +function! vimclojure#MakePlug(mode, plug, f) + execute a:mode . "noremap <Plug>Clojure" . a:plug + \ . " :call " . a:f . "<CR>" +endfunction + +function! vimclojure#MapPlug(mode, keys, plug) + if !hasmapto("<Plug>Clojure" . a:plug) + execute a:mode . "map <buffer> <unique> <silent> <LocalLeader>" . a:keys + \ . " <Plug>Clojure" . a:plug + endif +endfunction + +" A Buffer... +let vimclojure#Buffer = {} + +function! vimclojure#Buffer.goHere() dict + execute "buffer! " . self._buffer +endfunction + +function! vimclojure#Buffer.resize() dict + call self.goHere() + let size = line("$") + if size < 3 + let size = 3 + endif + execute "resize " . size +endfunction + +function! vimclojure#Buffer.showText(text) dict + call self.goHere() + if type(a:text) == type("") + let text = split(a:text, '\n') + else + let text = a:text + endif + call append(line("$"), text) +endfunction + +function! vimclojure#Buffer.close() dict + execute "bdelete! " . self._buffer +endfunction + +" The transient buffer, used to display results. +let vimclojure#PreviewWindow = copy(vimclojure#Buffer) + +function! vimclojure#PreviewWindow.New() dict + pclose! + + execute &previewheight . "new" + set previewwindow + set winfixheight + + setlocal noswapfile + setlocal buftype=nofile + setlocal bufhidden=wipe + + let leader = exists("g:maplocalleader") ? g:maplocalleader : "\\" + + call append(0, "; Use " . leader . "p to close this buffer!") + + return copy(self) +endfunction + +function! vimclojure#PreviewWindow.goHere() dict + wincmd P +endfunction + +function! vimclojure#PreviewWindow.close() dict + pclose +endfunction + +" Nails +if !exists("vimclojure#NailgunClient") + let vimclojure#NailgunClient = "ng" +endif + +function! vimclojure#ExecuteNailWithInput(nail, input, ...) + if type(a:input) == type("") + let input = split(a:input, '\n', 1) + else + let input = a:input + endif + + let inputfile = tempname() + try + call writefile(input, inputfile) + + let cmdline = [g:vimclojure#NailgunClient, + \ "de.kotka.vimclojure.nails." . a:nail] + \ + map(copy(a:000), 'shellescape(v:val)') + let cmd = join(cmdline, " ") . " <" . inputfile + + let result = system(cmd) + + if v:shell_error + echoerr "Couldn't execute Nail! " + \ . substitute(result, '\n\(\t\?\)', ' ', 'g') + endif + finally + call delete(inputfile) + endtry + + return substitute(result, '\n$', '', '') +endfunction + +function! vimclojure#ExecuteNail(nail, ...) + return call(function("vimclojure#ExecuteNailWithInput"), [a:nail, ""] + a:000) +endfunction + +function! vimclojure#FilterNail(nail, rngStart, rngEnd, ...) + let cmdline = [g:vimclojure#NailgunClient, + \ "de.kotka.vimclojure.nails." . a:nail] + \ + map(copy(a:000), 'shellescape(v:val)') + let cmd = a:rngStart . "," . a:rngEnd . "!" . join(cmdline, " ") + + silent execute cmd +endfunction + +function! vimclojure#DocLookup(word) + let docs = vimclojure#ExecuteNailWithInput("DocLookup", a:word, + \ "-n", b:vimclojure_namespace) + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(docs) + wincmd p +endfunction + +function! vimclojure#FindDoc() + let pattern = input("Pattern to look for: ") + let result = vimclojure#ExecuteNailWithInput("FindDoc", pattern) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + + wincmd p +endfunction + +let s:DefaultJavadocPaths = { + \ "java" : "http://java.sun.com/javase/6/docs/api/", + \ "org/apache/commons/beanutils" : "http://commons.apache.org/beanutils/api/", + \ "org/apache/commons/chain" : "http://commons.apache.org/chain/api-release/", + \ "org/apache/commons/cli" : "http://commons.apache.org/cli/api-release/", + \ "org/apache/commons/codec" : "http://commons.apache.org/codec/api-release/", + \ "org/apache/commons/collections" : "http://commons.apache.org/collections/api-release/", + \ "org/apache/commons/logging" : "http://commons.apache.org/logging/apidocs/", + \ "org/apache/commons/mail" : "http://commons.apache.org/email/api-release/", + \ "org/apache/commons/io" : "http://commons.apache.org/io/api-release/" + \ } + +if !exists("vimclojure#JavadocPathMap") + let vimclojure#JavadocPathMap = {} +endif + +for k in keys(s:DefaultJavadocPaths) + if !has_key(vimclojure#JavadocPathMap, k) + let vimclojure#JavadocPathMap[k] = s:DefaultJavadocPaths[k] + endif +endfor + +if !exists("vimclojure#Browser") + if has("win32") || has("win64") + let vimclojure#Browser = "start" + elseif has("mac") + let vimclojure#Browser = "open" + else + let vimclojure#Browser = "firefox -new-window" + endif +endif + +function! vimclojure#JavadocLookup(word) + let word = substitute(a:word, "\\.$", "", "") + let path = vimclojure#ExecuteNailWithInput("JavadocPath", word, + \ "-n", b:vimclojure_namespace) + + let match = "" + for pattern in keys(g:vimclojure#JavadocPathMap) + if path =~ "^" . pattern && len(match) < len(pattern) + let match = pattern + endif + endfor + + if match == "" + throw "No matching Javadoc URL found for " . path + endif + + let url = g:vimclojure#JavadocPathMap[match] . path + call system(join([g:vimclojure#Browser, url], " ")) +endfunction + +function! vimclojure#MetaLookup(word) + let docs = vimclojure#ExecuteNailWithInput("MetaLookup", a:word, + \ "-n", b:vimclojure_namespace) + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(docs) + setfiletype clojure + wincmd p +endfunction + +function! vimclojure#SourceLookup(word) + let source = vimclojure#ExecuteNailWithInput("SourceLookup", a:word, + \ "-n", b:vimclojure_namespace) + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(source) + setfiletype clojure + wincmd p +endfunction + +function! vimclojure#GotoSource(word) + let result = vimclojure#ExecuteNailWithInput("SourceLocation", a:word, + \ "-n", b:vimclojure_namespace) + execute "let pos = " . result + + if !filereadable(pos.file) + let file = findfile(pos.file) + if file == "" + echoerr pos.file . " not found in 'path'" + return + endif + let pos.file = file + endif + + execute "edit " . pos.file + execute pos.line +endfunction + +" Evaluators +function! vimclojure#MacroExpand(firstOnly) + let sexp = vimclojure#ExtractSexpr(0) + let ns = b:vimclojure_namespace + + let resultBuffer = g:vimclojure#PreviewWindow.New() + + let cmd = ["MacroExpand", sexp, "-n", ns] + if a:firstOnly + let cmd = cmd + [ "-o" ] + endif + + let result = call(function("vimclojure#ExecuteNailWithInput"), cmd) + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#RequireFile(all) + let ns = b:vimclojure_namespace + let all = a:all ? "-all" : "" + + let resultBuffer = g:vimclojure#PreviewWindow.New() + + let require = "(require :reload" . all . " :verbose '". ns. ")" + let result = vimclojure#ExecuteNailWithInput("Repl", require, "-r") + + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#EvalFile() + let content = getbufline(bufnr("%"), 1, line("$")) + let file = vimclojure#BufferName() + let ns = b:vimclojure_namespace + + let result = vimclojure#ExecuteNailWithInput("Repl", content, + \ "-r", "-n", ns, "-f", file) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#EvalLine() + let theLine = line(".") + let content = getline(theLine) + let file = vimclojure#BufferName() + let ns = b:vimclojure_namespace + + let result = vimclojure#ExecuteNailWithInput("Repl", content, + \ "-r", "-n", ns, "-f", file, "-l", theLine) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#EvalBlock() range + let file = vimclojure#BufferName() + let ns = b:vimclojure_namespace + + let content = getbufline(bufnr("%"), a:firstline, a:lastline) + let result = vimclojure#ExecuteNailWithInput("Repl", content, + \ "-r", "-n", ns, "-f", file, "-l", a:firstline - 1) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#EvalToplevel() + let file = vimclojure#BufferName() + let ns = b:vimclojure_namespace + + let pos = searchpairpos('(', '', ')', 'bWnr', + \ 'vimclojure#SynIdName() !~ "clojureParen\\d"') + + if pos == [0, 0] + throw "Error: Not in toplevel expression!" + endif + + let expr = vimclojure#ExtractSexpr(1) + let result = vimclojure#ExecuteNailWithInput("Repl", expr, + \ "-r", "-n", ns, "-f", file, "-l", pos[0] - 1) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +function! vimclojure#EvalParagraph() + let file = vimclojure#BufferName() + let ns = b:vimclojure_namespace + let startPosition = line(".") + + let closure = {} + + function! closure.f() dict + normal! } + return line(".") + endfunction + + let endPosition = vimclojure#WithSavedPosition(closure) + + let content = getbufline(bufnr("%"), startPosition, endPosition) + let result = vimclojure#ExecuteNailWithInput("Repl", content, + \ "-r", "-n", ns, "-f", file, "-l", startPosition - 1) + + let resultBuffer = g:vimclojure#PreviewWindow.New() + call resultBuffer.showText(result) + setfiletype clojure + + wincmd p +endfunction + +" The Repl +let vimclojure#Repl = copy(vimclojure#Buffer) + +let vimclojure#Repl._prompt = "Clojure=>" +let vimclojure#Repl._history = [] +let vimclojure#Repl._historyDepth = 0 +let vimclojure#Repl._replCommands = [ ",close", ",st", ",ct" ] + +function! vimclojure#Repl.New() dict + let instance = copy(self) + + new + setlocal buftype=nofile + setlocal noswapfile + + if !hasmapto("<Plug>ClojureReplEnterHook") + imap <buffer> <silent> <CR> <Plug>ClojureReplEnterHook + endif + if !hasmapto("<Plug>ClojureReplUpHistory") + imap <buffer> <silent> <C-Up> <Plug>ClojureReplUpHistory + endif + if !hasmapto("<Plug>ClojureReplDownHistory") + imap <buffer> <silent> <C-Down> <Plug>ClojureReplDownHistory + endif + + call append(line("$"), ["Clojure", self._prompt . " "]) + + let instance._id = vimclojure#ExecuteNail("Repl", "-s") + call vimclojure#ExecuteNailWithInput("Repl", + \ "(require 'clojure.contrib.stacktrace)", "-r", + \ "-i", instance._id) + let instance._buffer = bufnr("%") + + let b:vimclojure_repl = instance + + setfiletype clojure + + normal! G + startinsert! +endfunction + +function! vimclojure#Repl.isReplCommand(cmd) dict + for candidate in self._replCommands + if candidate == a:cmd + return 1 + endif + endfor + return 0 +endfunction + +function! vimclojure#Repl.doReplCommand(cmd) dict + if a:cmd == ",close" + call vimclojure#ExecuteNail("Repl", "-S", "-i", self._id) + call self.close() + stopinsert + elseif a:cmd == ",st" + let result = vimclojure#ExecuteNailWithInput("Repl", + \ "(clojure.contrib.stacktrace/print-stack-trace *e)", "-r", + \ "-i", self._id) + call self.showText(result) + call self.showText(self._prompt . " ") + normal! G + startinsert! + elseif a:cmd == ",ct" + let result = vimclojure#ExecuteNailWithInput("Repl", + \ "(clojure.contrib.stacktrace/print-cause-trace *e)", "-r", + \ "-i", self._id) + call self.showText(result) + call self.showText(self._prompt . " ") + normal! G + startinsert! + endif +endfunction + +function! vimclojure#Repl.showPrompt() dict + call self.showText(self._prompt . " ") + normal! G + startinsert! +endfunction + +function! vimclojure#Repl.getCommand() dict + let ln = line("$") + + while getline(ln) !~ "^" . self._prompt && ln > 0 + let ln = ln - 1 + endwhile + + " Special Case: User deleted Prompt by accident. Insert a new one. + if ln == 0 + call self.showPrompt() + return "" + endif + + let cmd = vimclojure#Yank("l", ln . "," . line("$") . "yank l") + + let cmd = substitute(cmd, "^" . self._prompt . "\\s*", "", "") + let cmd = substitute(cmd, "\n$", "", "") + return cmd +endfunction + +function! vimclojure#Repl.enterHook() dict + let cmd = self.getCommand() + + " Special Case: Showed prompt (or user just hit enter). + if cmd == "" + return + endif + + if self.isReplCommand(cmd) + call self.doReplCommand(cmd) + return + endif + + let result = vimclojure#ExecuteNailWithInput("CheckSyntax", cmd) + if result == "false" + execute "normal! GA\<CR>x" + normal! ==x + startinsert! + else + let result = vimclojure#ExecuteNailWithInput("Repl", cmd, + \ "-r", "-i", self._id) + call self.showText(result) + + let self._historyDepth = 0 + let self._history = [cmd] + self._history + call self.showPrompt() + endif +endfunction + +function! vimclojure#Repl.upHistory() dict + let histLen = len(self._history) + let histDepth = self._historyDepth + + if histLen > 0 && histLen > histDepth + let cmd = self._history[histDepth] + let self._historyDepth = histDepth + 1 + + call self.deleteLast() + + call self.showText(self._prompt . " " . cmd) + endif + + normal! G$ +endfunction + +function! vimclojure#Repl.downHistory() dict + let histLen = len(self._history) + let histDepth = self._historyDepth + + if histDepth > 0 && histLen > 0 + let self._historyDepth = histDepth - 1 + let cmd = self._history[self._historyDepth] + + call self.deleteLast() + + call self.showText(self._prompt . " " . cmd) + elseif histDepth == 0 + call self.deleteLast() + call self.showText(self._prompt . " ") + endif + + normal! G$ +endfunction + +function! vimclojure#Repl.deleteLast() dict + normal! G + + while getline("$") !~ self._prompt + normal! dd + endwhile + + normal! dd +endfunction + +" Highlighting +function! vimclojure#ColorNamespace(highlights) + for [category, words] in items(a:highlights) + if words != [] + execute "syntax keyword clojure" . category . " " . join(words, " ") + endif + endfor +endfunction + +" Omni Completion +function! vimclojure#OmniCompletion(findstart, base) + if a:findstart == 1 + let line = getline(".") + let start = col(".") - 1 + + while start > 0 && line[start - 1] =~ '\w\|-\|\.\|+\|*\|/' + let start -= 1 + endwhile + + return start + else + let slash = stridx(a:base, '/') + if slash > -1 + let prefix = strpart(a:base, 0, slash) + let base = strpart(a:base, slash + 1) + else + let prefix = "" + let base = a:base + endif + + let completions = vimclojure#ExecuteNail("Complete", + \ "-n", b:vimclojure_namespace, + \ "-p", prefix, "-b", base) + execute "let result = " . completions + return result + endif +endfunction + +function! vimclojure#InitBuffer() + if exists("g:clj_want_gorilla") && g:clj_want_gorilla == 1 + if !exists("b:vimclojure_namespace") + " Get the namespace of the buffer. + if &previewwindow + let b:vimclojure_namespace = "user" + else + try + let content = getbufline(bufnr("%"), 1, line("$")) + let b:vimclojure_namespace = + \ vimclojure#ExecuteNailWithInput( + \ "NamespaceOfFile", content) + catch /.*/ + endtry + endif + endif + endif +endfunction + +" Epilog +let &cpo = s:save_cpo diff --git a/dotfiles/.vim/colors/adaryn.vim b/dotfiles/.vim/colors/adaryn.vim @@ -0,0 +1,72 @@ +" Vim color file +" Maintainer: Glenn T. Norton <gtnorton@adaryn.com> +" 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/dotfiles/.vim/colors/adrian.vim b/dotfiles/.vim/colors/adrian.vim @@ -0,0 +1,97 @@ +" Vim colorscheme file +" Maintainer: Adrian Nagle <vim@naglenet.org> +" 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 <NL> instead of <CR><NR> for DOS) in any +" operating system if the 'fileformats' is not empty and there is no <CR> +" just before the <NL> 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/dotfiles/.vim/colors/aiseered.vim b/dotfiles/.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 <alex@absint.com> +" Version: 0.2 for gVim/Linux, +" tested with gVim 6.3.25 under Ubuntu Linux (Warty) +" by Jo Vermeulen <jo@lumumba.luc.ac.be> +" 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/dotfiles/.vim/colors/anotherdark.vim b/dotfiles/.vim/colors/anotherdark.vim @@ -0,0 +1,108 @@ +" Vim color file +" Maintainer: Hans Fugal <hans@fugal.net> +" 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/dotfiles/.vim/colors/aqua.vim b/dotfiles/.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/dotfiles/.vim/colors/astronaut.vim b/dotfiles/.vim/colors/astronaut.vim @@ -0,0 +1,164 @@ +" astronaut.vim: a colorscheme +" Maintainer: Charles E. Campbell, Jr. <charles.e.campbell.1@gsfc.nasa.gov> +" 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/dotfiles/.vim/colors/asu1dark.vim b/dotfiles/.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/dotfiles/.vim/colors/autumn.vim b/dotfiles/.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/dotfiles/.vim/colors/autumn2.vim b/dotfiles/.vim/colors/autumn2.vim @@ -0,0 +1,88 @@ +" Vim colour file +" Maintainer: Antony Scriven <ad_scriven@postmaster.co.uk> +" 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/dotfiles/.vim/colors/autumnleaf.vim b/dotfiles/.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/dotfiles/.vim/colors/base16-onedark.vim b/dotfiles/.vim/colors/base16-onedark.vim @@ -0,0 +1,413 @@ +" vi:syntax=vim + +" base16-vim (https://github.com/chriskempson/base16-vim) +" by Chris Kempson (http://chriskempson.com) +" OneDark scheme by Lalit Magant (http://github.com/tilal6991) + +" This enables the coresponding base16-shell script to run so that +" :colorscheme works in terminals supported by base16-shell scripts +" User must set this variable in .vimrc +" let g:base16_shell_path=base16-builder/output/shell/ +if !has("gui_running") + if exists("g:base16_shell_path") + execute "silent !/bin/sh ".g:base16_shell_path."/base16-onedark.sh" + endif +endif + +" GUI color definitions +let s:gui00 = "282c34" +let g:base16_gui00 = "282c34" +let s:gui01 = "353b45" +let g:base16_gui01 = "353b45" +let s:gui02 = "3e4451" +let g:base16_gui02 = "3e4451" +let s:gui03 = "545862" +let g:base16_gui03 = "545862" +let s:gui04 = "565c64" +let g:base16_gui04 = "565c64" +let s:gui05 = "abb2bf" +let g:base16_gui05 = "abb2bf" +let s:gui06 = "b6bdca" +let g:base16_gui06 = "b6bdca" +let s:gui07 = "c8ccd4" +let g:base16_gui07 = "c8ccd4" +let s:gui08 = "e06c75" +let g:base16_gui08 = "e06c75" +let s:gui09 = "d19a66" +let g:base16_gui09 = "d19a66" +let s:gui0A = "e5c07b" +let g:base16_gui0A = "e5c07b" +let s:gui0B = "98c379" +let g:base16_gui0B = "98c379" +let s:gui0C = "56b6c2" +let g:base16_gui0C = "56b6c2" +let s:gui0D = "61afef" +let g:base16_gui0D = "61afef" +let s:gui0E = "c678dd" +let g:base16_gui0E = "c678dd" +let s:gui0F = "be5046" +let g:base16_gui0F = "be5046" + +" Terminal color definitions +let s:cterm00 = "00" +let g:base16_cterm00 = "00" +let s:cterm03 = "08" +let g:base16_cterm03 = "08" +let s:cterm05 = "07" +let g:base16_cterm05 = "07" +let s:cterm07 = "15" +let g:base16_cterm07 = "15" +let s:cterm08 = "01" +let g:base16_cterm08 = "01" +let s:cterm0A = "03" +let g:base16_cterm0A = "03" +let s:cterm0B = "02" +let g:base16_cterm0B = "02" +let s:cterm0C = "06" +let g:base16_cterm0C = "06" +let s:cterm0D = "04" +let g:base16_cterm0D = "04" +let s:cterm0E = "05" +let g:base16_cterm0E = "05" +if exists("base16colorspace") && base16colorspace == "256" + let s:cterm01 = "18" + let g:base16_cterm01 = "18" + let s:cterm02 = "19" + let g:base16_cterm02 = "19" + let s:cterm04 = "20" + let g:base16_cterm04 = "20" + let s:cterm06 = "21" + let g:base16_cterm06 = "21" + let s:cterm09 = "16" + let g:base16_cterm09 = "16" + let s:cterm0F = "17" + let g:base16_cterm0F = "17" +else + let s:cterm01 = "10" + let g:base16_cterm01 = "10" + let s:cterm02 = "11" + let g:base16_cterm02 = "11" + let s:cterm04 = "12" + let g:base16_cterm04 = "12" + let s:cterm06 = "13" + let g:base16_cterm06 = "13" + let s:cterm09 = "09" + let g:base16_cterm09 = "09" + let s:cterm0F = "14" + let g:base16_cterm0F = "14" +endif + +" Neovim terminal colours +if has("nvim") + let g:terminal_color_0 = "#282c34" + let g:terminal_color_1 = "#e06c75" + let g:terminal_color_2 = "#98c379" + let g:terminal_color_3 = "#e5c07b" + let g:terminal_color_4 = "#61afef" + let g:terminal_color_5 = "#c678dd" + let g:terminal_color_6 = "#56b6c2" + let g:terminal_color_7 = "#abb2bf" + let g:terminal_color_8 = "#545862" + let g:terminal_color_9 = "#e06c75" + let g:terminal_color_10 = "#98c379" + let g:terminal_color_11 = "#e5c07b" + let g:terminal_color_12 = "#61afef" + let g:terminal_color_13 = "#c678dd" + let g:terminal_color_14 = "#56b6c2" + let g:terminal_color_15 = "#c8ccd4" + let g:terminal_color_background = g:terminal_color_0 + let g:terminal_color_foreground = g:terminal_color_5 + if &background == "light" + let g:terminal_color_background = g:terminal_color_7 + let g:terminal_color_foreground = g:terminal_color_2 + endif +elseif has("terminal") + let g:terminal_ansi_colors = [ + \ "#282c34", + \ "#e06c75", + \ "#98c379", + \ "#e5c07b", + \ "#61afef", + \ "#c678dd", + \ "#56b6c2", + \ "#abb2bf", + \ "#545862", + \ "#e06c75", + \ "#98c379", + \ "#e5c07b", + \ "#61afef", + \ "#c678dd", + \ "#56b6c2", + \ "#c8ccd4", + \ ] +endif + +" Theme setup +hi clear +syntax reset +let g:colors_name = "base16-onedark" + +" Highlighting function +" Optional variables are attributes and guisp +function! g:Base16hi(group, guifg, guibg, ctermfg, ctermbg, ...) + let l:attr = get(a:, 1, "") + let l:guisp = get(a:, 2, "") + + if a:guifg != "" + exec "hi " . a:group . " guifg=#" . a:guifg + endif + if a:guibg != "" + exec "hi " . a:group . " guibg=#" . a:guibg + endif + if a:ctermfg != "" + exec "hi " . a:group . " ctermfg=" . a:ctermfg + endif + if a:ctermbg != "" + exec "hi " . a:group . " ctermbg=" . a:ctermbg + endif + if l:attr != "" + exec "hi " . a:group . " gui=" . l:attr . " cterm=" . l:attr + endif + if l:guisp != "" + exec "hi " . a:group . " guisp=#" . l:guisp + endif +endfunction + + +fun <sid>hi(group, guifg, guibg, ctermfg, ctermbg, attr, guisp) + call g:Base16hi(a:group, a:guifg, a:guibg, a:ctermfg, a:ctermbg, a:attr, a:guisp) +endfun + +" Vim editor colors +call <sid>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "") +call <sid>hi("Bold", "", "", "", "", "bold", "") +call <sid>hi("Debug", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("Directory", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("Error", s:gui00, s:gui08, s:cterm00, s:cterm08, "", "") +call <sid>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") +call <sid>hi("Exception", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("FoldColumn", s:gui0C, s:gui01, s:cterm0C, s:cterm01, "", "") +call <sid>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") +call <sid>hi("IncSearch", s:gui01, s:gui09, s:cterm01, s:cterm09, "none", "") +call <sid>hi("Italic", "", "", "", "", "none", "") +call <sid>hi("Macro", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("MatchParen", "", s:gui03, "", s:cterm03, "", "") +call <sid>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("Question", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("Search", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "", "") +call <sid>hi("Substitute", s:gui01, s:gui0A, s:cterm01, s:cterm0A, "none", "") +call <sid>hi("SpecialKey", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("TooLong", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("Underlined", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("Visual", "", s:gui02, "", s:cterm02, "", "") +call <sid>hi("VisualNOS", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("WarningMsg", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("WildMenu", s:gui08, s:gui0A, s:cterm08, "", "", "") +call <sid>hi("Title", s:gui0D, "", s:cterm0D, "", "none", "") +call <sid>hi("Conceal", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "") +call <sid>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "", "") +call <sid>hi("NonText", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") +call <sid>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") +call <sid>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none", "") +call <sid>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") +call <sid>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none", "") +call <sid>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none", "") +call <sid>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none", "") +call <sid>hi("CursorLine", "", s:gui01, "", s:cterm01, "none", "") +call <sid>hi("CursorLineNr", s:gui04, s:gui01, s:cterm04, s:cterm01, "", "") +call <sid>hi("QuickFixLine", "", s:gui01, "", s:cterm01, "none", "") +call <sid>hi("PMenu", s:gui05, s:gui01, s:cterm05, s:cterm01, "none", "") +call <sid>hi("PMenuSel", s:gui01, s:gui05, s:cterm01, s:cterm05, "", "") +call <sid>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") +call <sid>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none", "") +call <sid>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none", "") + +" Standard syntax highlighting +call <sid>hi("Boolean", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("Character", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("Comment", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("Conditional", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("Constant", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("Define", s:gui0E, "", s:cterm0E, "", "none", "") +call <sid>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "", "") +call <sid>hi("Float", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("Function", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("Identifier", s:gui08, "", s:cterm08, "", "none", "") +call <sid>hi("Include", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("Keyword", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("Label", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("Number", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("Operator", s:gui05, "", s:cterm05, "", "none", "") +call <sid>hi("PreProc", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("Repeat", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("Special", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "", "") +call <sid>hi("Statement", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("String", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("Structure", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("Tag", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "", "") +call <sid>hi("Type", s:gui0A, "", s:cterm0A, "", "none", "") +call <sid>hi("Typedef", s:gui0A, "", s:cterm0A, "", "", "") + +" C highlighting +call <sid>hi("cOperator", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("cPreCondit", s:gui0E, "", s:cterm0E, "", "", "") + +" C# highlighting +call <sid>hi("csClass", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("csAttribute", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("csModifier", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("csType", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("csUnspecifiedStatement", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("csContextualStatement", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("csNewDecleration", s:gui08, "", s:cterm08, "", "", "") + +" CSS highlighting +call <sid>hi("cssBraces", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("cssColor", s:gui0C, "", s:cterm0C, "", "", "") + +" Diff highlighting +call <sid>hi("DiffAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") +call <sid>hi("DiffChange", s:gui03, s:gui01, s:cterm03, s:cterm01, "", "") +call <sid>hi("DiffDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") +call <sid>hi("DiffText", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") +call <sid>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "") +call <sid>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") +call <sid>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "", "") +call <sid>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "", "") +call <sid>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "", "") + +" Git highlighting +call <sid>hi("gitcommitOverflow", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("gitcommitSummary", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("gitcommitComment", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("gitcommitUntracked", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("gitcommitDiscarded", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("gitcommitSelected", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("gitcommitHeader", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("gitcommitSelectedType", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("gitcommitUnmergedType", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("gitcommitDiscardedType", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("gitcommitBranch", s:gui09, "", s:cterm09, "", "bold", "") +call <sid>hi("gitcommitUntrackedFile", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("gitcommitUnmergedFile", s:gui08, "", s:cterm08, "", "bold", "") +call <sid>hi("gitcommitDiscardedFile", s:gui08, "", s:cterm08, "", "bold", "") +call <sid>hi("gitcommitSelectedFile", s:gui0B, "", s:cterm0B, "", "bold", "") + +" GitGutter highlighting +call <sid>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") +call <sid>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") +call <sid>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") +call <sid>hi("GitGutterChangeDelete", s:gui0E, s:gui01, s:cterm0E, s:cterm01, "", "") + +" HTML highlighting +call <sid>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("htmlTag", s:gui05, "", s:cterm05, "", "", "") + +" JavaScript highlighting +call <sid>hi("javaScript", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "", "") +" pangloss/vim-javascript highlighting +call <sid>hi("jsOperator", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("jsStatement", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("jsReturn", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("jsThis", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("jsClassDefinition", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("jsFunction", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("jsFuncName", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("jsFuncCall", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("jsClassFuncName", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("jsClassMethodType", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("jsRegexpString", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("jsGlobalObjects", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("jsGlobalNodeObjects", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("jsExceptions", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("jsBuiltins", s:gui0A, "", s:cterm0A, "", "", "") + +" Mail highlighting +call <sid>hi("mailQuoted1", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("mailQuoted2", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("mailQuoted3", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("mailQuoted4", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("mailQuoted5", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("mailQuoted6", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("mailURL", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("mailEmail", s:gui0D, "", s:cterm0D, "", "", "") + +" Markdown highlighting +call <sid>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("markdownError", s:gui05, s:gui00, s:cterm05, s:cterm00, "", "") +call <sid>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "", "") + +" NERDTree highlighting +call <sid>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "", "") + +" PHP highlighting +call <sid>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("phpComparison", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("phpParent", s:gui05, "", s:cterm05, "", "", "") +call <sid>hi("phpMethodsVar", s:gui0C, "", s:cterm0C, "", "", "") + +" Python highlighting +call <sid>hi("pythonOperator", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("pythonRepeat", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("pythonInclude", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("pythonStatement", s:gui0E, "", s:cterm0E, "", "", "") + +" Ruby highlighting +call <sid>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "", "") +call <sid>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "", "") +call <sid>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "", "") +call <sid>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "", "") + +" SASS highlighting +call <sid>hi("sassidChar", s:gui08, "", s:cterm08, "", "", "") +call <sid>hi("sassClassChar", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "", "") + +" Signify highlighting +call <sid>hi("SignifySignAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "", "") +call <sid>hi("SignifySignChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "", "") +call <sid>hi("SignifySignDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "", "") + +" Spelling highlighting +call <sid>hi("SpellBad", "", "", "", "", "undercurl", s:gui08) +call <sid>hi("SpellLocal", "", "", "", "", "undercurl", s:gui0C) +call <sid>hi("SpellCap", "", "", "", "", "undercurl", s:gui0D) +call <sid>hi("SpellRare", "", "", "", "", "undercurl", s:gui0E) + +" Startify highlighting +call <sid>hi("StartifyBracket", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("StartifyFile", s:gui07, "", s:cterm07, "", "", "") +call <sid>hi("StartifyFooter", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("StartifyHeader", s:gui0B, "", s:cterm0B, "", "", "") +call <sid>hi("StartifyNumber", s:gui09, "", s:cterm09, "", "", "") +call <sid>hi("StartifyPath", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("StartifySection", s:gui0E, "", s:cterm0E, "", "", "") +call <sid>hi("StartifySelect", s:gui0C, "", s:cterm0C, "", "", "") +call <sid>hi("StartifySlash", s:gui03, "", s:cterm03, "", "", "") +call <sid>hi("StartifySpecial", s:gui03, "", s:cterm03, "", "", "") + +" Java highlighting +call <sid>hi("javaOperator", s:gui0D, "", s:cterm0D, "", "", "") + +" Remove functions +delf <sid>hi + +" Remove color variables +unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F +unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F diff --git a/dotfiles/.vim/colors/baycomb.vim b/dotfiles/.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 <axs221@gmail.com> +" +" * 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/dotfiles/.vim/colors/bclear.vim b/dotfiles/.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/dotfiles/.vim/colors/biogoo.vim b/dotfiles/.vim/colors/biogoo.vim @@ -0,0 +1,115 @@ +" Vim color File +" Name: biogoo +" Maintainer: Benjamin Esham <bdesham@gmail.com> +" 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/dotfiles/.vim/colors/blacksea.vim b/dotfiles/.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/dotfiles/.vim/colors/bluegreen.vim b/dotfiles/.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/dotfiles/.vim/colors/borland.vim b/dotfiles/.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/dotfiles/.vim/colors/breeze.vim b/dotfiles/.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/dotfiles/.vim/colors/brookstream.vim b/dotfiles/.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/dotfiles/.vim/colors/buttercream.vim b/dotfiles/.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 <hakan@prinsig.se> +" Version: 1.1 +" Last Change: 20060413 +" As of now only gui is supported +" Based on the theme fog theme by Thomas R. Kimpton <tomk@emcity.net> + +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/dotfiles/.vim/colors/calmar256-dark.vim b/dotfiles/.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 <mac@calmar.ws> +" +" 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-<highlight-group> " +" +" 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/dotfiles/.vim/colors/calmar256-light.vim b/dotfiles/.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 <mac@calmar.ws> +" +" 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-<highlight-group> " +" +" 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/dotfiles/.vim/colors/camo.vim b/dotfiles/.vim/colors/camo.vim @@ -0,0 +1,76 @@ +" Vim color file +" Maintainer: Tim Aldrich <aldy0169@yahoo.com> +" 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/dotfiles/.vim/colors/candy.vim b/dotfiles/.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/dotfiles/.vim/colors/candycode.vim b/dotfiles/.vim/colors/candycode.vim @@ -0,0 +1,174 @@ +" Vim color file -- candycode +" Maintainer: Justin Constantino <goflyapig-at-gmail-com> +" 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/dotfiles/.vim/colors/chela_light.vim b/dotfiles/.vim/colors/chela_light.vim @@ -0,0 +1,110 @@ +" Vim color file +" +" Maintainer: Stefan Karlsson <stefan.74@comhem.se> +" 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/dotfiles/.vim/colors/chocolateliquor.vim b/dotfiles/.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/dotfiles/.vim/colors/clarity.vim b/dotfiles/.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/dotfiles/.vim/colors/cleanphp.vim b/dotfiles/.vim/colors/cleanphp.vim @@ -0,0 +1,81 @@ +" Vim color file +" Maintainer: Billy McIntosh <billymcintosh@ntlworld.com> +" 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/dotfiles/.vim/colors/colorer.vim b/dotfiles/.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 <shaman@interdon.net> +" 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/dotfiles/.vim/colors/dante.vim b/dotfiles/.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 <caciano@inf.ufrgs.br> +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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/dotfiles/.vim/colors/darkZ.vim b/dotfiles/.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/dotfiles/.vim/colors/darkblue2.vim b/dotfiles/.vim/colors/darkblue2.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Datila Carvalho <datila@hotmail.com> +" 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/dotfiles/.vim/colors/darkbone.vim b/dotfiles/.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/dotfiles/.vim/colors/darkslategray.vim b/dotfiles/.vim/colors/darkslategray.vim @@ -0,0 +1,117 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Tuomas Susi <tsusi@cc.hut.fi> +" 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/dotfiles/.vim/colors/darkspectrum.vim b/dotfiles/.vim/colors/darkspectrum.vim @@ -0,0 +1,130 @@ +" Vim color file +" +" Author: Brian Mock <mock.brian@gmail.com> +" +" 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/dotfiles/.vim/colors/dawn.vim b/dotfiles/.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/dotfiles/.vim/colors/denim.vim b/dotfiles/.vim/colors/denim.vim @@ -0,0 +1,141 @@ +" Maintainer: Tim Aldrich <aldy0169@yahoo.com> +" 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/dotfiles/.vim/colors/desert256-transparent.vim b/dotfiles/.vim/colors/desert256-transparent.vim @@ -0,0 +1,341 @@ +" Vim color file +" Maintainer: Henry So, Jr. <henryso@panix.com> +" Modifications by Evan Klitkze <eklitzke@gmail.com> + +" 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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>color(r, g, b) + " get the closest grey + let l:gx = <SID>grey_number(a:r) + let l:gy = <SID>grey_number(a:g) + let l:gz = <SID>grey_number(a:b) + + " get the closest color + let l:x = <SID>rgb_number(a:r) + let l:y = <SID>rgb_number(a:g) + let l:z = <SID>rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = <SID>grey_level(l:gx) - a:r + let l:dgg = <SID>grey_level(l:gy) - a:g + let l:dgb = <SID>grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = <SID>rgb_level(l:gx) - a:r + let l:dg = <SID>rgb_level(l:gy) - a:g + let l:db = <SID>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 <SID>grey_color(l:gx) + else + " use the color + return <SID>rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return <SID>rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun <SID>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 <SID>color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun <SID>X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg) + endif + if a:bg != "" && a:bg != "000000" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg) + elseif a:bg == "000000" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=none" + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + call <SID>X("Normal", "cccccc", "000000", "") + + " highlight groups + call <SID>X("Cursor", "708090", "f0e68c", "") + "CursorIM + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + "ErrorMsg + call <SID>X("VertSplit", "c2bfa5", "7f7f7f", "reverse") + call <SID>X("Folded", "ffd700", "4d4d4d", "") + call <SID>X("FoldColumn", "d2b48c", "4d4d4d", "") + call <SID>X("IncSearch", "708090", "f0e68c", "") + "LineNr + call <SID>X("ModeMsg", "daa520", "", "") + call <SID>X("MoreMsg", "2e8b57", "", "") + call <SID>X("NonText", "addbe7", "000000", "bold") + call <SID>X("Question", "00ff7f", "", "") + call <SID>X("Search", "f5deb3", "cd853f", "") + call <SID>X("SpecialKey", "9acd32", "", "") + call <SID>X("StatusLine", "c2bfa5", "000000", "reverse") + call <SID>X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") + call <SID>X("Title", "cd5c5c", "", "") + call <SID>X("Visual", "6b8e23", "f0e68c", "reverse") + "VisualNOS + call <SID>X("WarningMsg", "fa8072", "", "") + "WildMenu + "Menu + "Scrollbar + "Tooltip + + " syntax highlighting groups + call <SID>X("Comment", "87ceeb", "", "") + call <SID>X("Constant", "ffa0a0", "", "") + call <SID>X("Identifier", "98fb98", "", "none") + call <SID>X("Statement", "f0e68c", "", "bold") + call <SID>X("PreProc", "cd5c5c", "", "") + call <SID>X("Type", "bdb76b", "", "bold") + call <SID>X("Special", "ffdead", "", "") + "Underlined + call <SID>X("Ignore", "666666", "", "") + "Error + call <SID>X("Todo", "ff4500", "eeee00", "") + + " delete functions {{{ + delf <SID>X + delf <SID>rgb + delf <SID>color + delf <SID>rgb_color + delf <SID>rgb_level + delf <SID>rgb_number + delf <SID>grey_color + delf <SID>grey_level + delf <SID>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/dotfiles/.vim/colors/desert256.htm b/dotfiles/.vim/colors/desert256.htm @@ -0,0 +1,23 @@ + + <html> + <head> + <style> + .colorblock + { + width: 24px; + height: 24px; + border: 1px solid #000; + padding: 5px; + margin-right: 5px; + } + + td + { + width: 400px; + padding: 10px; + } + </style> + </head> + <body> + <table><tr><td>" converting color names to #rrggbb form, but decided it was just not worth +</td><td><span class="colorblock" style="background-color: #rrggbb; color: #rrggbb">a</span></td></tr></table></body></html>+ \ No newline at end of file diff --git a/dotfiles/.vim/colors/desert256.vim b/dotfiles/.vim/colors/desert256.vim @@ -0,0 +1,338 @@ +" Vim color file +" Maintainer: Henry So, Jr. <henryso@panix.com> + +" 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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>color(r, g, b) + " get the closest grey + let l:gx = <SID>grey_number(a:r) + let l:gy = <SID>grey_number(a:g) + let l:gz = <SID>grey_number(a:b) + + " get the closest color + let l:x = <SID>rgb_number(a:r) + let l:y = <SID>rgb_number(a:g) + let l:z = <SID>rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = <SID>grey_level(l:gx) - a:r + let l:dgg = <SID>grey_level(l:gy) - a:g + let l:dgb = <SID>grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = <SID>rgb_level(l:gx) - a:r + let l:dg = <SID>rgb_level(l:gy) - a:g + let l:db = <SID>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 <SID>grey_color(l:gx) + else + " use the color + return <SID>rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return <SID>rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun <SID>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 <SID>color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun <SID>X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg) + endif + if a:bg != "" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + call <SID>X("Normal", "cccccc", "000000", "") + + " highlight groups + call <SID>X("Cursor", "708090", "f0e68c", "") + "CursorIM + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + "ErrorMsg + call <SID>X("VertSplit", "c2bfa5", "7f7f7f", "reverse") + call <SID>X("Folded", "ffd700", "4d4d4d", "") + call <SID>X("FoldColumn", "d2b48c", "4d4d4d", "") + call <SID>X("IncSearch", "708090", "f0e68c", "") + "LineNr + call <SID>X("ModeMsg", "daa520", "", "") + call <SID>X("MoreMsg", "2e8b57", "", "") + call <SID>X("NonText", "addbe7", "000000", "bold") + call <SID>X("Question", "00ff7f", "", "") + call <SID>X("Search", "f5deb3", "cd853f", "") + call <SID>X("SpecialKey", "9acd32", "", "") + call <SID>X("StatusLine", "c2bfa5", "000000", "reverse") + call <SID>X("StatusLineNC", "c2bfa5", "7f7f7f", "reverse") + call <SID>X("Title", "cd5c5c", "", "") + call <SID>X("Visual", "6b8e23", "f0e68c", "reverse") + "VisualNOS + call <SID>X("WarningMsg", "fa8072", "", "") + "WildMenu + "Menu + "Scrollbar + "Tooltip + + " syntax highlighting groups + call <SID>X("Comment", "87ceeb", "", "") + call <SID>X("Constant", "ffa0a0", "", "") + call <SID>X("Identifier", "98fb98", "", "none") + call <SID>X("Statement", "f0e68c", "", "bold") + call <SID>X("PreProc", "cd5c5c", "", "") + call <SID>X("Type", "bdb76b", "", "bold") + call <SID>X("Special", "ffdead", "", "") + "Underlined + call <SID>X("Ignore", "666666", "", "") + "Error + call <SID>X("Todo", "ff4500", "eeee00", "") + + " delete functions {{{ + delf <SID>X + delf <SID>rgb + delf <SID>color + delf <SID>rgb_color + delf <SID>rgb_level + delf <SID>rgb_number + delf <SID>grey_color + delf <SID>grey_level + delf <SID>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/dotfiles/.vim/colors/desertEx.vim b/dotfiles/.vim/colors/desertEx.vim @@ -0,0 +1,98 @@ +" Vim color file +" Maintainer: Mingbai <mbbill AT gmail DOT com> +" 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/dotfiles/.vim/colors/dusk.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_blue.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_cyan.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_green.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_orange.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_purple.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_red.vim b/dotfiles/.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/dotfiles/.vim/colors/dw_yellow.vim b/dotfiles/.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/dotfiles/.vim/colors/earendel.vim b/dotfiles/.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=<args>" + +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/dotfiles/.vim/colors/eclipse.vim b/dotfiles/.vim/colors/eclipse.vim @@ -0,0 +1,92 @@ +" Vim color file +" Maintainer: Juan frias <juandfrias at gmail dot com> +" 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/dotfiles/.vim/colors/ekvoli.vim b/dotfiles/.vim/colors/ekvoli.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Preben Randhol <randhol+ekvoli@pvv.org> +" 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/dotfiles/.vim/colors/fine_blue.vim b/dotfiles/.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/dotfiles/.vim/colors/fine_blue2.vim b/dotfiles/.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/dotfiles/.vim/colors/fnaqevan.vim b/dotfiles/.vim/colors/fnaqevan.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer: Rafal Sulejman <rms@poczta.onet.pl> +" 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/dotfiles/.vim/colors/fog.vim b/dotfiles/.vim/colors/fog.vim @@ -0,0 +1,170 @@ +" Vim color file +" vim: tw=0 ts=4 sw=4 +" Maintainer: Thomas R. Kimpton <tomk@emcity.net> +" 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/dotfiles/.vim/colors/freya.vim b/dotfiles/.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/dotfiles/.vim/colors/fruit.vim b/dotfiles/.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/dotfiles/.vim/colors/fruity.vim b/dotfiles/.vim/colors/fruity.vim @@ -0,0 +1,147 @@ +" +" Fruity Color Scheme +" =================== +" +" Author: Armin Ronacher <armin.ronacher@active-4.com> +" 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/dotfiles/.vim/colors/golden.vim b/dotfiles/.vim/colors/golden.vim @@ -0,0 +1,70 @@ +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Creator: Ryan Phillips <ryan@trolocsis.com> +" 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/dotfiles/.vim/colors/guardian.vim b/dotfiles/.vim/colors/guardian.vim @@ -0,0 +1,103 @@ +" Vim color file +" Maintainer: Anders Korte <anderskorte@eml.cc> +" 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/dotfiles/.vim/colors/habilight.vim b/dotfiles/.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/dotfiles/.vim/colors/herald.vim b/dotfiles/.vim/colors/herald.vim @@ -0,0 +1,385 @@ +" Vim color file +" Name: herald.vim +" Author: Fabio Cevasco <h3rald@h3rald.com> +" 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/dotfiles/.vim/colors/impact.vim b/dotfiles/.vim/colors/impact.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Shirk <shirk@gmx.net> +" 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/dotfiles/.vim/colors/inkpot.vim b/dotfiles/.vim/colors/inkpot.vim @@ -0,0 +1,216 @@ +" Vim color file +" Name: inkpot.vim +" Maintainer: Ciaran McCreesh <ciaran.mccreesh@googlemail.com> +" 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! <SID>M(a) + return strpart("0135", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! <SID>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 + <SID>M(l:x) + (6 * <SID>M(l:y)) + (36 * <SID>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=" . <SID>X(79) . " ctermbg=" . <SID>X(80) + else + exec "hi Normal cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(16) + endif + + exec "hi IncSearch cterm=BOLD ctermfg=" . <SID>X(80) . " ctermbg=" . <SID>X(73) + exec "hi Search cterm=NONE ctermfg=" . <SID>X(80) . " ctermbg=" . <SID>X(52) + exec "hi ErrorMsg cterm=BOLD ctermfg=" . <SID>X(16) . " ctermbg=" . <SID>X(48) + exec "hi WarningMsg cterm=BOLD ctermfg=" . <SID>X(16) . " ctermbg=" . <SID>X(68) + exec "hi ModeMsg cterm=BOLD ctermfg=" . <SID>X(38) . " ctermbg=" . "NONE" + exec "hi MoreMsg cterm=BOLD ctermfg=" . <SID>X(38) . " ctermbg=" . "NONE" + exec "hi Question cterm=BOLD ctermfg=" . <SID>X(52) . " ctermbg=" . "NONE" + + exec "hi StatusLine cterm=BOLD ctermfg=" . <SID>X(85) . " ctermbg=" . <SID>X(81) + exec "hi User1 cterm=BOLD ctermfg=" . <SID>X(28) . " ctermbg=" . <SID>X(81) + exec "hi User2 cterm=BOLD ctermfg=" . <SID>X(39) . " ctermbg=" . <SID>X(81) + exec "hi StatusLineNC cterm=NONE ctermfg=" . <SID>X(84) . " ctermbg=" . <SID>X(81) + exec "hi VertSplit cterm=NONE ctermfg=" . <SID>X(84) . " ctermbg=" . <SID>X(81) + + exec "hi WildMenu cterm=BOLD ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(38) + + exec "hi MBENormal ctermfg=" . <SID>X(85) . " ctermbg=" . <SID>X(81) + exec "hi MBEChanged ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(81) + exec "hi MBEVisibleNormal ctermfg=" . <SID>X(85) . " ctermbg=" . <SID>X(82) + exec "hi MBEVisibleChanged ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(82) + + exec "hi DiffText cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(34) + exec "hi DiffChange cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(17) + exec "hi DiffDelete cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(32) + exec "hi DiffAdd cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(20) + + exec "hi Folded cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(35) + exec "hi FoldColumn cterm=NONE ctermfg=" . <SID>X(39) . " ctermbg=" . <SID>X(80) + + exec "hi Directory cterm=NONE ctermfg=" . <SID>X(28) . " ctermbg=" . "NONE" + exec "hi LineNr cterm=NONE ctermfg=" . <SID>X(39) . " ctermbg=" . <SID>X(80) + exec "hi NonText cterm=BOLD ctermfg=" . <SID>X(39) . " ctermbg=" . "NONE" + exec "hi SpecialKey cterm=BOLD ctermfg=" . <SID>X(55) . " ctermbg=" . "NONE" + exec "hi Title cterm=BOLD ctermfg=" . <SID>X(48) . " ctermbg=" . "NONE" + exec "hi Visual cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(38) + + exec "hi Comment cterm=NONE ctermfg=" . <SID>X(52) . " ctermbg=" . "NONE" + exec "hi Constant cterm=NONE ctermfg=" . <SID>X(73) . " ctermbg=" . "NONE" + exec "hi String cterm=NONE ctermfg=" . <SID>X(73) . " ctermbg=" . <SID>X(81) + exec "hi Error cterm=NONE ctermfg=" . <SID>X(79) . " ctermbg=" . <SID>X(32) + exec "hi Identifier cterm=NONE ctermfg=" . <SID>X(53) . " ctermbg=" . "NONE" + exec "hi Ignore cterm=NONE" + exec "hi Number cterm=NONE ctermfg=" . <SID>X(69) . " ctermbg=" . "NONE" + exec "hi PreProc cterm=NONE ctermfg=" . <SID>X(25) . " ctermbg=" . "NONE" + exec "hi Special cterm=NONE ctermfg=" . <SID>X(55) . " ctermbg=" . "NONE" + exec "hi SpecialChar cterm=NONE ctermfg=" . <SID>X(55) . " ctermbg=" . <SID>X(81) + exec "hi Statement cterm=NONE ctermfg=" . <SID>X(27) . " ctermbg=" . "NONE" + exec "hi Todo cterm=BOLD ctermfg=" . <SID>X(16) . " ctermbg=" . <SID>X(57) + exec "hi Type cterm=NONE ctermfg=" . <SID>X(71) . " ctermbg=" . "NONE" + exec "hi Underlined cterm=BOLD ctermfg=" . <SID>X(77) . " ctermbg=" . "NONE" + exec "hi TaglistTagName cterm=BOLD ctermfg=" . <SID>X(39) . " ctermbg=" . "NONE" + + if v:version >= 700 + exec "hi Pmenu cterm=NONE ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(82) + exec "hi PmenuSel cterm=BOLD ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(38) + exec "hi PmenuSbar cterm=BOLD ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(39) + exec "hi PmenuThumb cterm=BOLD ctermfg=" . <SID>X(87) . " ctermbg=" . <SID>X(39) + + exec "hi SpellBad cterm=NONE ctermbg=" . <SID>X(32) + exec "hi SpellRare cterm=NONE ctermbg=" . <SID>X(33) + exec "hi SpellLocal cterm=NONE ctermbg=" . <SID>X(36) + exec "hi SpellCap cterm=NONE ctermbg=" . <SID>X(21) + exec "hi MatchParen cterm=NONE ctermbg=" . <SID>X(14) . "ctermfg=" . <SID>X(25) + endif +endif + +" vim: set et : diff --git a/dotfiles/.vim/colors/ironman.vim b/dotfiles/.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/dotfiles/.vim/colors/jammy.vim b/dotfiles/.vim/colors/jammy.vim @@ -0,0 +1,111 @@ +" Vim color file inherit from the desrt.vim +" Maintainer: Jammy Lee<mistapostle@gmail.com> +" 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/dotfiles/.vim/colors/jellybeans.vim b/dotfiles/.vim/colors/jellybeans.vim @@ -0,0 +1,410 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" Maintainer: NanoTech <http://nanotech.nanotechcorp.net/> +" Version: 1.2 +" Last Change: May 26th, 2009 +" Contributors: Daniel Herbert <http://pocket-ninja.com>, +" Henry So, Jr. <henryso@panix.com>, +" David Liang <bmdavll at gmail dot com> +" +" 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/dotfiles/.vim/colors/kellys.vim b/dotfiles/.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/dotfiles/.vim/colors/leo.vim b/dotfiles/.vim/colors/leo.vim @@ -0,0 +1,150 @@ +" Vim color file +" Maintainer: Lorenzo Leonini <vim-theme[a]leonini[.]net> +" 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/dotfiles/.vim/colors/lettuce.vim b/dotfiles/.vim/colors/lettuce.vim @@ -0,0 +1,215 @@ +" Vim color file +" Version: 1.2 2007.08.08 +" Author: Valyaeff Valentin <hhyperr AT gmail DOT com> +" 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 <http://www.gnu.org/licenses/>. + +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 "\%(\%(\<do\>\|{\)\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/dotfiles/.vim/colors/lucius.vim b/dotfiles/.vim/colors/lucius.vim @@ -0,0 +1,346 @@ +" Vim color file +" Maintainer: Jonathan Filip <jfilip1024@gmail.com> +" 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/dotfiles/.vim/colors/manxome.vim b/dotfiles/.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 <rjbs-vim@lists.manxome.org> +""" 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/dotfiles/.vim/colors/marklar.vim b/dotfiles/.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(<f-args>) + endif +endif + +call s:main() diff --git a/dotfiles/.vim/colors/maroloccio.vim b/dotfiles/.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(<q-args>, "undercurl", "underline", "g"), "guisp\\S\\+", "", "g") + else + command! -nargs=+ CSAHi exe "hi" <q-args> + 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/dotfiles/.vim/colors/martin_krischik.vim b/dotfiles/.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/dotfiles/.vim/colors/mass_swatch.py b/dotfiles/.vim/colors/mass_swatch.py @@ -0,0 +1,75 @@ +from __future__ import with_statement +import re +import sys + + +def hex2dec(s): + return int(s, 16) + +def render_file(filename, items): + out_filename = filename.split('.')[0] + '.htm' + out_file = open(out_filename, "w") + + out_file.write(""" + <html> + <head> + <style> + .colorblock + { + width: 24px; + height: 24px; + border: 1px solid #000; + padding: 5px; + margin-right: 5px; + } + + td + { + width: 400px; + padding: 10px; + } + </style> + </head> + <body> + <table>"""); + + for item in items: + + column = [] + column.append(item[0]) + + out_file.write('<tr><td>' + item[0] + '</td><td>') + + for color in item[1]: + out_file.write('<span class="colorblock" style="background-color: ' + color[0] + '">' + str(color[1]) + '</span>') + + out_file.write('</td></tr>') + + out_file.write("</table></body></html>") + +if __name__ == "__main__": + + filename = sys.argv[1] + + reg = r'#[a-zA-Z0-9]{3,6}' + items = [] + + with open(filename) as file: + for line in file: + colors = re.findall(reg, line) + + rgb = [] + combined = [] + + for color in colors: + rgb = (hex2dec(color[1:3]), hex2dec(color[3:5]), hex2dec(color[5:7])) + combined.append( (color, rgb) ) + + if len(colors) == 0: + continue + + items.append( (line, combined) ) + + render_file(filename, items) + + diff --git a/dotfiles/.vim/colors/matrix.vim b/dotfiles/.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 <koron@tka.att.ne.jp> +" 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/dotfiles/.vim/colors/moria.vim b/dotfiles/.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 = \"<args>\" | 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/dotfiles/.vim/colors/moss.vim b/dotfiles/.vim/colors/moss.vim @@ -0,0 +1,109 @@ +" ------------------------------------------------------------------ +" Vim color file +" Name: moss (è‹”) +" Maintainer: Li Chunlin <yeiicn!gmail.com> +" 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/dotfiles/.vim/colors/motus.vim b/dotfiles/.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 <motus@motus.kiev.ua> +" ICQ: 31114346 Yahoo: motus2 +" http://motus.kiev.ua/motus2/Files/motus.vim +" Last Change: 3 November 2005 +" Orinal torte screme maintainer: Thorsten Maerz <info@netztorte.de> +" 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/dotfiles/.vim/colors/mustang.vim b/dotfiles/.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/dotfiles/.vim/colors/navajo-night.vim b/dotfiles/.vim/colors/navajo-night.vim @@ -0,0 +1,119 @@ +" Vim colour file +" Maintainer: Matthew Hawkins <matt@mh.dropbear.id.au> +" 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/dotfiles/.vim/colors/navajo.vim b/dotfiles/.vim/colors/navajo.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: R. Edward Ralston <eralston@techsan.org> +" 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/dotfiles/.vim/colors/neon.vim b/dotfiles/.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/dotfiles/.vim/colors/neverness.vim b/dotfiles/.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 <sgronblo@gmail.com> +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/dotfiles/.vim/colors/night.vim b/dotfiles/.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/dotfiles/.vim/colors/nightshimmer.vim b/dotfiles/.vim/colors/nightshimmer.vim @@ -0,0 +1,111 @@ +" Vim color file +" Maintainer: Niklas Lindström <nlm@valtech.se> +" 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/dotfiles/.vim/colors/no_quarter.vim b/dotfiles/.vim/colors/no_quarter.vim @@ -0,0 +1,134 @@ +" Vim color file +" Maintainer: Otavio Fernandes <otaviof@gmail.com> +" 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/dotfiles/.vim/colors/northland.vim b/dotfiles/.vim/colors/northland.vim @@ -0,0 +1,149 @@ +" Vim color file - northland +" Maintainer: Luka Djigas <ldigas@gmail.com> +" 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/dotfiles/.vim/colors/nuvola.vim b/dotfiles/.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 <johann.pfefferl@agfa.com> +" 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/dotfiles/.vim/colors/oceanblack.vim b/dotfiles/.vim/colors/oceanblack.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Chris Vertonghen <chris@vertonghen.org> +" 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/dotfiles/.vim/colors/oceandeep.vim b/dotfiles/.vim/colors/oceandeep.vim @@ -0,0 +1,140 @@ +" Vim color file +" Maintainer: Tom Regner <vim@tomsdiner.org> +" 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/dotfiles/.vim/colors/oceanlight.vim b/dotfiles/.vim/colors/oceanlight.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Håkan Wikström <hakan@wikstrom.st> +" 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/dotfiles/.vim/colors/olive.vim b/dotfiles/.vim/colors/olive.vim @@ -0,0 +1,119 @@ +" Vim color file +" Maintainer: Charles <cherry_avium@yahoo.com> +" 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/dotfiles/.vim/colors/papayawhip.vim b/dotfiles/.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/dotfiles/.vim/colors/peaksea.vim b/dotfiles/.vim/colors/peaksea.vim @@ -0,0 +1,597 @@ +" Vim color file --- psc (peak sea color) "Lite version" +" Maintainer: Pan, Shi Zhu <Go to the following URL for my email> +" 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("<sfile>: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/dotfiles/.vim/colors/print_bw.vim b/dotfiles/.vim/colors/print_bw.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Mike Williams <mrw@eandem.co.uk> +" 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/dotfiles/.vim/colors/pyte.vim b/dotfiles/.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 <TAB>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/dotfiles/.vim/colors/railscasts.vim b/dotfiles/.vim/colors/railscasts.vim @@ -0,0 +1,124 @@ +" Vim color scheme +" +" Name: railscast.vim +" Maintainer: Josh O'Rourke <jorourke23@gmail.com> +" 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/dotfiles/.vim/colors/railscasts2.vim b/dotfiles/.vim/colors/railscasts2.vim @@ -0,0 +1,124 @@ +" Vim color scheme +" +" Name: railscast.vim +" Maintainer: Josh O'Rourke <jorourke23@gmail.com> +" 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/dotfiles/.vim/colors/rdark.htm b/dotfiles/.vim/colors/rdark.htm @@ -0,0 +1,94 @@ + + <html> + <head> + <style> + .colorblock + { + width: 24px; + height: 24px; + border: 1px solid #000; + padding: 5px; + margin-right: 5px; + } + + td + { + width: 400px; + padding: 10px; + } + </style> + </head> + <body> + <table><tr><td> hi CursorLine guibg=#191f21 +</td><td><span class="colorblock" style="background-color: #191f21">(25, 31, 33)</span></td></tr><tr><td>hi Normal guifg=#babdb6 guibg=#1e2426 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span><span class="colorblock" style="background-color: #1e2426">(30, 36, 38)</span></td></tr><tr><td>hi NonText guifg=#2c3032 guibg=#2c3032 gui=none +</td><td><span class="colorblock" style="background-color: #2c3032">(44, 48, 50)</span><span class="colorblock" style="background-color: #2c3032">(44, 48, 50)</span></td></tr><tr><td>hi Cursor guibg=#babdb6 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi ICursor guibg=#babdb6 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi Search guifg=#2e3436 guibg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi IncSearch guibg=#2e3436 guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi StatusLine guifg=#2e3436 guibg=#babdb6 gui=none +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi StatusLineNC guifg=#2e3436 guibg=#888a85 gui=none +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi VertSplit guifg=#555753 guibg=#888a85 gui=none +</td><td><span class="colorblock" style="background-color: #555753">(85, 87, 83)</span><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi Visual guibg=#000000 +</td><td><span class="colorblock" style="background-color: #000000">(0, 0, 0)</span></td></tr><tr><td>hi MoreMsg guifg=#729fcf +</td><td><span class="colorblock" style="background-color: #729fcf">(114, 159, 207)</span></td></tr><tr><td>hi Question guifg=#8ae234 gui=none +</td><td><span class="colorblock" style="background-color: #8ae234">(138, 226, 52)</span></td></tr><tr><td>hi WildMenu guifg=#eeeeec guibg=#0e1416 +</td><td><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span><span class="colorblock" style="background-color: #0e1416">(14, 20, 22)</span></td></tr><tr><td>hi LineNr guifg=#3f4b4d guibg=#000000 +</td><td><span class="colorblock" style="background-color: #3f4b4d">(63, 75, 77)</span><span class="colorblock" style="background-color: #000000">(0, 0, 0)</span></td></tr><tr><td>hi SignColumn guibg=#1e2426 +</td><td><span class="colorblock" style="background-color: #1e2426">(30, 36, 38)</span></td></tr><tr><td>hi Pmenu guibg=#2e3436 guifg=#eeeeec +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span></td></tr><tr><td>hi PmenuSel guibg=#ffffff guifg=#1e2426 +</td><td><span class="colorblock" style="background-color: #ffffff">(255, 255, 255)</span><span class="colorblock" style="background-color: #1e2426">(30, 36, 38)</span></td></tr><tr><td>hi PmenuSbar guibg=#555753 +</td><td><span class="colorblock" style="background-color: #555753">(85, 87, 83)</span></td></tr><tr><td>hi PmenuThumb guifg=#ffffff +</td><td><span class="colorblock" style="background-color: #ffffff">(255, 255, 255)</span></td></tr><tr><td>hi DiffDelete guifg=#2e3436 guibg=#0e1416 +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #0e1416">(14, 20, 22)</span></td></tr><tr><td>hi DiffAdd guibg=#1f2b2d +</td><td><span class="colorblock" style="background-color: #1f2b2d">(31, 43, 45)</span></td></tr><tr><td>hi DiffChange guibg=#2e3436 +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span></td></tr><tr><td>hi DiffText guibg=#000000 gui=none +</td><td><span class="colorblock" style="background-color: #000000">(0, 0, 0)</span></td></tr><tr><td>hi Folded guifg=#d3d7cf guibg=#204a87 +</td><td><span class="colorblock" style="background-color: #d3d7cf">(211, 215, 207)</span><span class="colorblock" style="background-color: #204a87">(32, 74, 135)</span></td></tr><tr><td>hi FoldColumn guifg=#3465a4 guibg=#000000 +</td><td><span class="colorblock" style="background-color: #3465a4">(52, 101, 164)</span><span class="colorblock" style="background-color: #000000">(0, 0, 0)</span></td></tr><tr><td>hi Title guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi Todo guifg=#fcaf3e guibg=bg +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi SpecialKey guifg=#ef2929 +</td><td><span class="colorblock" style="background-color: #ef2929">(239, 41, 41)</span></td></tr><tr><td>hi TabLine guibg=#0a1012 guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #0a1012">(10, 16, 18)</span><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi TabLineFill guifg=#0a1012 +</td><td><span class="colorblock" style="background-color: #0a1012">(10, 16, 18)</span></td></tr><tr><td>hi TabLineSel guibg=#555753 guifg=#eeeeec gui=none +</td><td><span class="colorblock" style="background-color: #555753">(85, 87, 83)</span><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span></td></tr><tr><td>hi MatchParen guifg=#2e3436 guibg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #2e3436">(46, 52, 54)</span><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi Directory guifg=#ffffff +</td><td><span class="colorblock" style="background-color: #ffffff">(255, 255, 255)</span></td></tr><tr><td>hi Comment guifg=#656763 +</td><td><span class="colorblock" style="background-color: #656763">(101, 103, 99)</span></td></tr><tr><td>hi Constant guifg=#8ae234 +</td><td><span class="colorblock" style="background-color: #8ae234">(138, 226, 52)</span></td></tr><tr><td>hi Number guifg=#8ae234 +</td><td><span class="colorblock" style="background-color: #8ae234">(138, 226, 52)</span></td></tr><tr><td>hi Statement guifg=#729fcf gui=none +</td><td><span class="colorblock" style="background-color: #729fcf">(114, 159, 207)</span></td></tr><tr><td>hi Identifier guifg=#ffffff +</td><td><span class="colorblock" style="background-color: #ffffff">(255, 255, 255)</span></td></tr><tr><td>hi PreProc guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi Function guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi Type guifg=#e3e7df gui=none +</td><td><span class="colorblock" style="background-color: #e3e7df">(227, 231, 223)</span></td></tr><tr><td>hi Keyword guifg=#eeeeec +</td><td><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span></td></tr><tr><td>hi Special guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi Error guifg=#eeeeec guibg=#cc0000 +</td><td><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span><span class="colorblock" style="background-color: #cc0000">(204, 0, 0)</span></td></tr><tr><td>hi phpRegionDelimiter guifg=#ad7fa8 +</td><td><span class="colorblock" style="background-color: #ad7fa8">(173, 127, 168)</span></td></tr><tr><td>hi phpPropertySelector guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpPropertySelectorInString guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpOperator guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpArrayPair guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpAssignByRef guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpRelation guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpMemberSelector guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpUnknownSelector guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpVarSelector guifg=#babdb6 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi phpSemicolon guifg=#888a85 gui=none +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi phpFunctions guifg=#d3d7cf +</td><td><span class="colorblock" style="background-color: #d3d7cf">(211, 215, 207)</span></td></tr><tr><td>hi phpParent guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi javaScriptBraces guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi javaScriptOperator guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi htmlTag guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi htmlEndTag guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi htmlTagName guifg=#babdb6 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi htmlSpecialTagName guifg=#babdb6 +</td><td><span class="colorblock" style="background-color: #babdb6">(186, 189, 182)</span></td></tr><tr><td>hi htmlArg guifg=#d3d7cf +</td><td><span class="colorblock" style="background-color: #d3d7cf">(211, 215, 207)</span></td></tr><tr><td>hi htmlTitle guifg=#8ae234 gui=none +</td><td><span class="colorblock" style="background-color: #8ae234">(138, 226, 52)</span></td></tr><tr><td>hi cssSelectorOp guifg=#eeeeec +</td><td><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span></td></tr><tr><td>hi cssUIProp guifg=#d3d7cf +</td><td><span class="colorblock" style="background-color: #d3d7cf">(211, 215, 207)</span></td></tr><tr><td>hi cssPseudoClassId guifg=#eeeeec +</td><td><span class="colorblock" style="background-color: #eeeeec">(238, 238, 236)</span></td></tr><tr><td>hi cssBraces guifg=#888a85 +</td><td><span class="colorblock" style="background-color: #888a85">(136, 138, 133)</span></td></tr><tr><td>hi cssIdentifier guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr><tr><td>hi cssTagName guifg=#fcaf3e +</td><td><span class="colorblock" style="background-color: #fcaf3e">(252, 175, 62)</span></td></tr></table></body></html>+ \ No newline at end of file diff --git a/dotfiles/.vim/colors/rdark.vim b/dotfiles/.vim/colors/rdark.vim @@ -0,0 +1,159 @@ +" Vim color file +" Maintaner: Radu Dineiu <radu.dineiu@gmail.com> +" 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/dotfiles/.vim/colors/relaxedgreen.vim b/dotfiles/.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<version>/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/dotfiles/.vim/colors/robinhood.vim b/dotfiles/.vim/colors/robinhood.vim @@ -0,0 +1,103 @@ +" Vim color file +" Maintainer: Datila Carvalho <datila@hotmail.com> +" 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/dotfiles/.vim/colors/rootwater.vim b/dotfiles/.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/dotfiles/.vim/colors/satori.vim b/dotfiles/.vim/colors/satori.vim @@ -0,0 +1,47 @@ +" Vim color file +" Maintainer: Ruda Moura <ruda@rudix.org> +" 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/dotfiles/.vim/colors/sea.vim b/dotfiles/.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/dotfiles/.vim/colors/settlemyer.vim b/dotfiles/.vim/colors/settlemyer.vim @@ -0,0 +1,53 @@ +" Vim color file +" Maintainer: Max Lynch <lynch3@wisc.edu> +" 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/dotfiles/.vim/colors/sienna.vim b/dotfiles/.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 = \"<args>\" | 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/dotfiles/.vim/colors/silent.vim b/dotfiles/.vim/colors/silent.vim @@ -0,0 +1,116 @@ +" Vim color file +" @Author: Pascal Vasilii <jabberroid@gmail.com> + +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/dotfiles/.vim/colors/simpleandfriendly.vim b/dotfiles/.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/dotfiles/.vim/colors/softblue.vim b/dotfiles/.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/dotfiles/.vim/colors/soso.vim b/dotfiles/.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 <soeren DOT sonntag AT web DOT de> +" 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/dotfiles/.vim/colors/spring.vim b/dotfiles/.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 <chewenlong AT buaa.edu.cn> +" 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/dotfiles/.vim/colors/summerfruit256.vim b/dotfiles/.vim/colors/summerfruit256.vim @@ -0,0 +1,322 @@ +" Vim color file +" Maintainer: Martin Baeuml <baeuml@gmail.com> +" 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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>color(r, g, b) + " get the closest grey + let l:gx = <SID>grey_number(a:r) + let l:gy = <SID>grey_number(a:g) + let l:gz = <SID>grey_number(a:b) + + " get the closest color + let l:x = <SID>rgb_number(a:r) + let l:y = <SID>rgb_number(a:g) + let l:z = <SID>rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = <SID>grey_level(l:gx) - a:r + let l:dgg = <SID>grey_level(l:gy) - a:g + let l:dgb = <SID>grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = <SID>rgb_level(l:gx) - a:r + let l:dg = <SID>rgb_level(l:gy) - a:g + let l:db = <SID>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 <SID>grey_color(l:gx) + else + " use the color + return <SID>rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return <SID>rgb_color(l:x, l:y, l:z) + endif + endfun + + " returns the palette index to approximate the 'rrggbb' hex string + fun <SID>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 <SID>color(l:r, l:g, l:b) + endfun + + " sets the highlighting for the given group + fun <SID>X(group, fg, bg, attr) + if a:fg != "" + exec "hi " . a:group . " guifg=#" . a:fg . " ctermfg=" . <SID>rgb(a:fg) + endif + if a:bg != "" + exec "hi " . a:group . " guibg=#" . a:bg . " ctermbg=" . <SID>rgb(a:bg) + endif + if a:attr != "" + exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif + endfun + " }}} + + " Global + call <SID>X("Normal", "000000", "ffffff", "") + call <SID>X("NonText", "438ec3", "b7dce8", "") + + " Search + call <SID>X("Search", "800000", "ffae00", "") + call <SID>X("IncSearch", "800000", "ffae00", "") + + " Interface Elements + call <SID>X("StatusLine", "ffffff", "43c464", "bold") + call <SID>X("StatusLineNC", "9bd4a9", "51b069", "") + call <SID>X("VertSplit", "3687a2", "3687a2", "") + call <SID>X("Folded", "3c78a2", "c3daea", "") + call <SID>X("IncSearch", "708090", "f0e68c", "") + call <SID>X("Pmenu", "ffffff", "cb2f27", "") + call <SID>X("SignColumn", "", "", "") + call <SID>X("CursorLine", "", "c0d9eb", "") + call <SID>X("LineNr", "eeeeee", "438ec3", "bold") + call <SID>X("MatchParen", "", "", "") + + " Specials + call <SID>X("Todo", "e50808", "dbf3cd", "bold") + call <SID>X("Title", "000000", "", "") + call <SID>X("Special", "fd8900", "", "") + + " Syntax Elements + call <SID>X("String", "0086d2", "", "") + call <SID>X("Constant", "0086d2", "", "") + call <SID>X("Number", "0086f7", "", "") + call <SID>X("Statement", "fb660a", "", "") + call <SID>X("Function", "ff0086", "", "") + call <SID>X("PreProc", "ff0007", "", "") + call <SID>X("Comment", "22a21f", "", "bold") + call <SID>X("Type", "70796b", "", "") + call <SID>X("Error", "ffffff", "d40000", "") + call <SID>X("Identifier", "ff0086", "", "") + call <SID>X("Label", "ff0086", "", "") + + " Python Highlighting + call <SID>X("pythonCoding", "ff0086", "", "") + call <SID>X("pythonRun", "ff0086", "", "") + call <SID>X("pythonBuiltinObj", "2b6ba2", "", "") + call <SID>X("pythonBuiltinFunc", "2b6ba2", "", "") + call <SID>X("pythonException", "ee0000", "", "") + call <SID>X("pythonExClass", "66cd66", "", "") + call <SID>X("pythonSpaceError", "", "", "") + call <SID>X("pythonDocTest", "2f5f49", "", "") + call <SID>X("pythonDocTest2", "3b916a", "", "") + call <SID>X("pythonFunction", "ee0000", "", "") + call <SID>X("pythonClass", "ff0086", "", "") + + " HTML Highlighting + call <SID>X("htmlTag", "00bdec", "", "") + call <SID>X("htmlEndTag", "00bdec", "", "") + call <SID>X("htmlSpecialTagName", "4aa04a", "", "") + call <SID>X("htmlTagName", "4aa04a", "", "") + call <SID>X("htmlTagN", "4aa04a", "", "") + + " Jinja Highlighting + call <SID>X("jinjaTagBlock", "ff0007", "fbf4c7", "bold") + call <SID>X("jinjaVarBlock", "ff0007", "fbf4c7", "") + call <SID>X("jinjaString", "0086d2", "fbf4c7", "") + call <SID>X("jinjaNumber", "bf0945", "fbf4c7", "bold") + call <SID>X("jinjaStatement", "fb660a", "fbf4c7", "bold") + call <SID>X("jinjaComment", "008800", "002300", "italic") + call <SID>X("jinjaFilter", "ff0086", "fbf4c7", "") + call <SID>X("jinjaRaw", "aaaaaa", "fbf4c7", "") + call <SID>X("jinjaOperator", "ffffff", "fbf4c7", "") + call <SID>X("jinjaVariable", "92cd35", "fbf4c7", "") + call <SID>X("jinjaAttribute", "dd7700", "fbf4c7", "") + call <SID>X("jinjaSpecial", "008ffd", "fbf4c7", "") + + " delete functions {{{ + delf <SID>X + delf <SID>rgb + delf <SID>color + delf <SID>rgb_color + delf <SID>rgb_level + delf <SID>rgb_number + delf <SID>grey_color + delf <SID>grey_level + delf <SID>grey_number + " }}} +endif + +" vim: set fdl=0 fdm=marker: + diff --git a/dotfiles/.vim/colors/synic.vim b/dotfiles/.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/dotfiles/.vim/colors/tabula.vim b/dotfiles/.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. "<OPTIONS> ... </OPTIONS>" 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/dotfiles/.vim/colors/tango.vim b/dotfiles/.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 <micampe@micampe.it> +" +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/dotfiles/.vim/colors/tango2.vim b/dotfiles/.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/dotfiles/.vim/colors/taqua.vim b/dotfiles/.vim/colors/taqua.vim @@ -0,0 +1,84 @@ +" Vim color file +" Maintainer: TaQ <eustaquiorangel@yahoo.com> +" 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/dotfiles/.vim/colors/tcsoft.vim b/dotfiles/.vim/colors/tcsoft.vim @@ -0,0 +1,83 @@ +" Vim Farben-Datei +" Ersteller: Ingo Fabbri <vim@tcsoft.net> +" 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/dotfiles/.vim/colors/tir_black.vim b/dotfiles/.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/dotfiles/.vim/colors/tolerable.vim b/dotfiles/.vim/colors/tolerable.vim @@ -0,0 +1,43 @@ +" Vim color file +" Maintainer: Ian Langworth +" Last Change: 2004 Dec 24 +" Email: <langworth.com> + +" 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/dotfiles/.vim/colors/torte.vim b/dotfiles/.vim/colors/torte.vim @@ -0,0 +1,51 @@ +" Vim color file +" Maintainer: Thorsten Maerz <info@netztorte.de> +" 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/dotfiles/.vim/colors/twilight.vim b/dotfiles/.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/dotfiles/.vim/colors/two2tango.vim b/dotfiles/.vim/colors/two2tango.vim @@ -0,0 +1,101 @@ +" Vim color file +" Name: two2tango +" Maintainer: Erik Falor <ewfalor@gmail.com> +" Version: 1.1 +" +" Big props to Panos Laganakos <panos.laganakos@gmail.com> +" 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/dotfiles/.vim/colors/vc.vim b/dotfiles/.vim/colors/vc.vim @@ -0,0 +1,24 @@ +" Vim color file +" Maintainer: Vladimir Vrzic <random@bsd.org.yu> +" 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/dotfiles/.vim/colors/vibrantink.vim b/dotfiles/.vim/colors/vibrantink.vim @@ -0,0 +1,68 @@ +" Vim color scheme +" +" Name: vibrantink.vim +" Maintainer: Jo Vermeulen <jo.vermeulen@gmail.com> +" 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/dotfiles/.vim/colors/vividchalk.vim b/dotfiles/.vim/colors/vividchalk.vim @@ -0,0 +1,172 @@ +" Vim color scheme +" Name: vividchalk.vim +" Author: Tim Pope <vimNOSPAM@tpope.info> +" 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/dotfiles/.vim/colors/vylight.vim b/dotfiles/.vim/colors/vylight.vim @@ -0,0 +1,81 @@ +" +" Vim colour file +" +" Maintainer: Vy-Shane Sin Fat <shane@node.mu> +" 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/dotfiles/.vim/colors/winter.vim b/dotfiles/.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 <chewenlong AT buaa.edu.cn> " +" 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/dotfiles/.vim/colors/wombat.vim b/dotfiles/.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=#272727 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/dotfiles/.vim/colors/wombat256-trans.vim b/dotfiles/.vim/colors/wombat256-trans.vim @@ -0,0 +1,305 @@ +" 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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>color(r, g, b) + " get the closest grey + let l:gx = <SID>grey_number(a:r) + let l:gy = <SID>grey_number(a:g) + let l:gz = <SID>grey_number(a:b) + + " get the closest color + let l:x = <SID>rgb_number(a:r) + let l:y = <SID>rgb_number(a:g) + let l:z = <SID>rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = <SID>grey_level(l:gx) - a:r + let l:dgg = <SID>grey_level(l:gy) - a:g + let l:dgb = <SID>grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = <SID>rgb_level(l:gx) - a:r + let l:dg = <SID>rgb_level(l:gy) - a:g + let l:db = <SID>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 <SID>grey_color(l:gx) + else + " use the color + return <SID>rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return <SID>rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun <SID>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 <SID>color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun <SID>X(group, fg, bg, attr) + if a:fg != "" + exec "hi ".a:group." guifg=#".a:fg." ctermfg=".<SID>rgb(a:fg) + endif + if a:bg != "" && a:bg != "242424" + exec "hi ".a:group." guibg=#".a:bg." ctermbg=".<SID>rgb(a:bg) + endif + if a:bg == "242424" + exec "hi ".a:group." guibg=#".a:bg." ctermbg=none" + 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 <SID>X("Normal", "cccccc", "242424", "none") +call <SID>X("Cursor", "222222", "ecee90", "none") +call <SID>X("CursorLine", "", "32322e", "none") +call <SID>X("CursorColumn", "", "2d2d2d", "") + "CursorIM + "Question + "IncSearch +call <SID>X("Search", "444444", "af87d7", "") +call <SID>X("MatchParen", "ecee90", "857b6f", "bold") +call <SID>X("SpecialKey", "6c6c6c", "2d2d2d", "none") +call <SID>X("Visual", "ecee90", "597418", "none") +call <SID>X("LineNr", "857b6f", "121212", "none") +call <SID>X("Folded", "a0a8b0", "404048", "none") +call <SID>X("Title", "f6f3e8", "", "bold") +call <SID>X("VertSplit", "444444", "444444", "none") +call <SID>X("StatusLine", "f6f3e8", "444444", "italic") +call <SID>X("StatusLineNC", "857b6f", "444444", "none") + "Scrollbar + "Tooltip + "Menu + "WildMenu +call <SID>X("Pmenu", "f6f3e8", "444444", "") +call <SID>X("PmenuSel", "121212", "caeb82", "") +call <SID>X("WarningMsg", "ff0000", "", "") + "ErrorMsg + "ModeMsg + "MoreMsg + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + +" syntax highlighting +call <SID>X("Number", "e5786d", "", "none") +call <SID>X("Constant", "e5786d", "", "none") +call <SID>X("String", "95e454", "", "italic") +call <SID>X("Comment", "c0bc6c", "", "italic") +call <SID>X("Identifier", "caeb82", "", "none") +call <SID>X("Keyword", "87afff", "", "none") +call <SID>X("Statement", "87afff", "", "none") +call <SID>X("Function", "caeb82", "", "none") +call <SID>X("PreProc", "e5786d", "", "none") +call <SID>X("Type", "caeb82", "", "none") +call <SID>X("Special", "ffdead", "", "none") +call <SID>X("Todo", "857b6f", "", "italic") + "Underlined + "Error + "Ignore + +hi! link VisualNOS Visual +hi! link NonText LineNr +hi! link FoldColumn Folded + +" delete functions {{{ +delf <SID>X +delf <SID>rgb +delf <SID>color +delf <SID>rgb_color +delf <SID>rgb_level +delf <SID>rgb_number +delf <SID>grey_color +delf <SID>grey_level +delf <SID>grey_number +" }}} + +" vim:set ts=4 sw=4 noet fdm=marker: diff --git a/dotfiles/.vim/colors/wombat256.vim b/dotfiles/.vim/colors/wombat256.vim @@ -0,0 +1,305 @@ +" 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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>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 <SID>color(r, g, b) + " get the closest grey + let l:gx = <SID>grey_number(a:r) + let l:gy = <SID>grey_number(a:g) + let l:gz = <SID>grey_number(a:b) + + " get the closest color + let l:x = <SID>rgb_number(a:r) + let l:y = <SID>rgb_number(a:g) + let l:z = <SID>rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = <SID>grey_level(l:gx) - a:r + let l:dgg = <SID>grey_level(l:gy) - a:g + let l:dgb = <SID>grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = <SID>rgb_level(l:gx) - a:r + let l:dg = <SID>rgb_level(l:gy) - a:g + let l:db = <SID>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 <SID>grey_color(l:gx) + else + " use the color + return <SID>rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return <SID>rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun <SID>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 <SID>color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun <SID>X(group, fg, bg, attr) + if a:fg != "" + exec "hi ".a:group." guifg=#".a:fg." ctermfg=".<SID>rgb(a:fg) + endif + if a:bg != "" + exec "hi ".a:group." guibg=#".a:bg." ctermbg=".<SID>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 <SID>X("Normal", "cccccc", "242424", "none") +call <SID>X("CursorLine", "", "32322e", "none") +call <SID>X("CursorColumn", "", "2d2d2d", "") +call <SID>X("ColorColumn", "", "2d2d2d", "") + "CursorIM + "Question + "IncSearch +call <SID>X("Search", "222222", "b5a3ff", "") +call <SID>X("MatchParen", "ecee90", "857b6f", "bold") +call <SID>X("SpecialKey", "6c6c6c", "202020", "none") +call <SID>X("Visual", "ecee90", "597418", "none") +call <SID>X("LineNr", "857b6f", "202020", "none") +call <SID>X("Folded", "a0a8b0", "404048", "none") +call <SID>X("Title", "f6f3e8", "", "bold") +call <SID>X("VertSplit", "444444", "444444", "none") +call <SID>X("StatusLine", "f6f3e8", "444444", "italic") +call <SID>X("StatusLineNC", "857b6f", "444444", "none") + "Scrollbar + "Tooltip + "Menu + "WildMenu +call <SID>X("Pmenu", "f6f3e8", "444444", "") +call <SID>X("PmenuSel", "121212", "caeb82", "") +call <SID>X("WarningMsg", "ff0000", "", "") + "ErrorMsg + "ModeMsg + "MoreMsg + "Directory + "DiffAdd + "DiffChange + "DiffDelete + "DiffText + +" syntax highlighting +call <SID>X("Number", "e5786d", "", "none") +call <SID>X("Constant", "e5786d", "", "none") +call <SID>X("String", "95e454", "", "italic") +call <SID>X("Comment", "c0bc6c", "", "italic") +call <SID>X("Identifier", "caeb82", "", "none") +call <SID>X("Keyword", "87afff", "", "none") +call <SID>X("Statement", "87afff", "", "none") +call <SID>X("Function", "caeb82", "", "none") +call <SID>X("PreProc", "e5786d", "", "none") +call <SID>X("Type", "caeb82", "", "none") +call <SID>X("Special", "ffdead", "", "none") +call <SID>X("Todo", "857b6f", "", "italic") + "Underlined + "Error + "Ignore + +call <SID>X("IndentGuidesOdd", "", "353535", "none") +call <SID>X("IndentGuidesEven", "", "2d2d2d", "none") + +hi! link VisualNOS Visual +hi! link NonText LineNr +hi! link FoldColumn Folded +242422424244 +" delete functions {{{ +delf <SID>X +delf <SID>rgb +delf <SID>color +delf <SID>rgb_color +delf <SID>rgb_level +delf <SID>rgb_number +delf <SID>grey_color +delf <SID>grey_level +delf <SID>grey_number +" }}} + +" vim:set ts=4 sw=4 noet fdm=marker: diff --git a/dotfiles/.vim/colors/wood.vim b/dotfiles/.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/dotfiles/.vim/colors/wuye.vim b/dotfiles/.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/dotfiles/.vim/colors/xemacs.vim b/dotfiles/.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/dotfiles/.vim/colors/xoria256.vim b/dotfiles/.vim/colors/xoria256.vim @@ -0,0 +1,142 @@ +" Vim color file +" +" Name: xoria256.vim +" Version: 1.5 +" Maintainer: Dmitriy Y. Zotikov (xio) <xio@ungrund.org> +" +" Should work in recent 256 color terminals. 88-color terms like urxvt are +" NOT supported. +" +" 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 +" +" For a specific filetype highlighting rules issue :syntax list when a file of +" that type is opened. + +" Initialization {{{ +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" +"}}} +" Colours {{{1 +"" General {{{2 +hi Normal ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none +hi Cursor ctermbg=214 guibg=#ffaf00 +hi CursorColumn ctermbg=238 guibg=#444444 +hi CursorLine ctermbg=237 guibg=#3a3a3a cterm=none gui=none +hi Error ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000 +hi ErrorMsg ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000 +hi FoldColumn ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 +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 LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 +hi MatchParen ctermfg=188 guifg=#dfdfdf ctermbg=68 guibg=#5f87df cterm=bold gui=bold +" TODO +" hi MoreMsg +hi NonText ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 cterm=bold gui=bold +hi Pmenu ctermfg=0 guifg=#000000 ctermbg=250 guibg=#bcbcbc +hi PmenuSel ctermfg=255 guifg=#eeeeee ctermbg=243 guibg=#767676 +hi PmenuSbar ctermbg=252 guibg=#d0d0d0 +hi PmenuThumb ctermfg=243 guifg=#767676 +hi Search ctermfg=0 guifg=#000000 ctermbg=149 guibg=#afdf5f +hi SignColumn ctermfg=248 guifg=#a8a8a8 +hi SpecialKey ctermfg=77 guifg=#5fdf5f +hi SpellBad ctermfg=160 guifg=fg ctermbg=bg cterm=underline guisp=#df0000 +hi SpellCap ctermfg=189 guifg=#dfdfff ctermbg=bg guibg=bg cterm=underline gui=underline +hi SpellRare ctermfg=168 guifg=#df5f87 ctermbg=bg guibg=bg cterm=underline gui=underline +hi SpellLocal ctermfg=98 guifg=#875fdf ctermbg=bg guibg=bg cterm=underline gui=underline +hi StatusLine ctermfg=15 guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold +hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none +hi TabLine ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=none gui=none +hi TabLineFill ctermfg=fg guifg=fg ctermbg=237 guibg=#3a3a3a cterm=none gui=none +" FIXME +hi Title ctermfg=225 guifg=#ffdfff +hi Todo ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00 +hi Underlined ctermfg=39 guifg=#00afff cterm=underline gui=underline +hi VertSplit ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none +" hi VIsualNOS ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none +" hi Visual ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff +hi Visual ctermfg=255 guifg=#eeeeee ctermbg=96 guibg=#875f87 +" hi Visual ctermfg=255 guifg=#eeeeee ctermbg=24 guibg=#005f87 +hi VisualNOS ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87 +hi WildMenu ctermfg=0 guifg=#000000 ctermbg=150 guibg=#afdf87 cterm=bold gui=bold + +"" Syntax highlighting {{{2 +hi Comment ctermfg=244 guifg=#808080 +hi Constant ctermfg=229 guifg=#ffffaf +hi Identifier ctermfg=182 guifg=#dfafdf cterm=none +hi Ignore ctermfg=238 guifg=#444444 +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 Type ctermfg=146 guifg=#afafdf cterm=none gui=none + +"" Special {{{2 +""" .diff {{{3 +hi diffAdded ctermfg=150 guifg=#afdf87 +hi diffRemoved ctermfg=174 guifg=#df8787 +""" vimdiff {{{3 +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 +""" HTML {{{3 +" hi htmlTag ctermfg=146 guifg=#afafdf +" hi htmlEndTag ctermfg=146 guifg=#afafdf +hi htmlTag ctermfg=244 +hi htmlEndTag ctermfg=244 +hi htmlArg ctermfg=182 guifg=#dfafdf +hi htmlValue ctermfg=187 guifg=#dfdfaf +hi htmlTitle ctermfg=254 ctermbg=95 +" hi htmlArg ctermfg=146 +" hi htmlTagName ctermfg=146 +" hi htmlString ctermfg=187 +""" django {{{3 +hi djangoVarBlock ctermfg=180 +hi djangoTagBlock ctermfg=150 +hi djangoStatement ctermfg=146 +hi djangoFilter ctermfg=174 +""" python {{{3 +hi pythonExceptions ctermfg=174 +""" NERDTree {{{3 +hi Directory ctermfg=110 guifg=#87afdf +hi treeCWD ctermfg=180 guifg=#dfaf87 +hi treeClosable ctermfg=174 guifg=#df8787 +hi treeOpenable ctermfg=150 guifg=#afdf87 +hi treePart ctermfg=244 guifg=#808080 +hi treeDirSlash ctermfg=244 guifg=#808080 +hi treeLink ctermfg=182 guifg=#dfafdf + +""" VimDebug {{{3 +" FIXME +" you may want to set SignColumn highlight in your .vimrc +" :help sign +" :help SignColumn + +" hi currentLine term=reverse cterm=reverse gui=reverse +" hi breakPoint term=NONE cterm=NONE gui=NONE +" hi empty term=NONE cterm=NONE gui=NONE + +" sign define currentLine linehl=currentLine +" sign define breakPoint linehl=breakPoint text=>> +" sign define both linehl=currentLine text=>> +" sign define empty linehl=empty + diff --git a/dotfiles/.vim/colors/zenburn.vim b/dotfiles/.vim/colors/zenburn.vim @@ -0,0 +1,351 @@ +" Vim color file +" Maintainer: Jani Nurminen <slinky@iki.fi> +" 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/dotfiles/.vim/colors/zmrok.vim b/dotfiles/.vim/colors/zmrok.vim @@ -0,0 +1,59 @@ +" Maintainer: Krzysztof Goj <Krzysztof-dot-Goj-at-gmail-dot-com> +" 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/dotfiles/.vim/config/consistency.vim b/dotfiles/.vim/config/consistency.vim @@ -0,0 +1,7 @@ +" Make Y behave like C and D +nnoremap Y y$ + +" Make cw behave like dw and yw +" NOTE: This causes some weird behaviour for end-of-line edge cases: +" https://asciinema.org/a/9843 +"onoremap <silent> w :execute 'normal! '.v:count1.'w'<CR> diff --git a/dotfiles/.vim/doc/NERD_tree.txt b/dotfiles/.vim/doc/NERD_tree.txt @@ -0,0 +1,1194 @@ +*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 [<start-directory> | <bookmark>] *: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 <bookmark> *:NERDTreeFromBookmark* + Opens a fresh NERD tree with the root initialized to the dir for + <bookmark>. This only reason to use this command over :NERDTree is for + the completion (which is for bookmarks rather than directories). + +:NERDTreeToggle [<start-directory> | <bookmark>] *: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. + +------------------------------------------------------------------------------ +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 <name> + Bookmark the current node as <name>. If there is already a <name> + bookmark, it is overwritten. <name> must not contain spaces. + +:BookmarkToRoot <bookmark> + Make the directory corresponding to <bookmark> the new root. If a treenode + corresponding to <bookmark> is already cached somewhere in the tree then + the current tree will be used, otherwise a fresh tree will be opened. + Note that if <bookmark> points to a file then its parent will be used + instead. + +:RevealBookmark <bookmark> + 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 <bookmark> + <bookmark> 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 [<bookmarks>] + 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: +<bookmark name><space><full path to the bookmark location> + +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| + +<CR>...............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| +<C-J>...Jump down to the next sibling of the current directory...|NERDTree-C-J| +<C-K>...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: <C-J> +Map option: NERDTreeMapJumpNextSibling +Applies to: files and directories. + +Jump to the next sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C-K* +Default key: <C-K> +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 <some directory> +< +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| or |NERDTree-i| 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.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 <CR> 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 + <some dir>" (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 <path> would fail if <path> was relative and + didnt start with a ./ or ../ Thanks to James Kanze. + - make the q mapping work with secondary (:e <dir> 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 <directory> 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 '<tab>' 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) + +============================================================================== +8. License *NERDTreeLicense* + +The NERD tree is released under the wtfpl. +See http://sam.zoy.org/wtfpl/COPYING. diff --git a/dotfiles/.vim/doc/Tabular.txt b/dotfiles/.vim/doc/Tabular.txt @@ -0,0 +1,258 @@ +*Tabular.txt* Configurable, flexible, intuitive text aligning + + *tabular* *tabular.vim* + + #|#|#|#|#| #| #| ~ + #| #|#|#| #|#|#| #| #| #| #|#|#| #| #|#| ~ + #| #| #| #| #| #| #| #| #| #| #|#| ~ + #| #| #| #| #| #| #| #| #| #| #| ~ + #| #|#|#| #|#|#| #|#|#| #| #|#|#| #| ~ + + For Vim version 7.0 or newer + + By Matt Wozniski + mjw@drexel.edu + + Reference Manual ~ + + *tabular-toc* + +1. Description |tabular-intro| +2. Walkthrough |tabular-walkthrough| +3. Scripting |tabular-scripting| + +The functionality mentioned here is a plugin, see |add-plugin|. +You can avoid loading this plugin by setting the "Tabular_loaded" global +variable in your |vimrc| file: > + :let g:tabular_loaded = 1 + +============================================================================== +1. Description *tabular-intro* + +Sometimes, it's useful to line up text. Naturally, it's nicer to have the +computer do this for you, since aligning things by hand quickly becomes +unpleasant. While there are other plugins for aligning text, the ones I've +tried are either impossibly difficult to understand and use, or too simplistic +to handle complicated tasks. This plugin aims to make the easy things easy +and the hard things possible, without providing an unnecessarily obtuse +interface. It's still a work in progress, and criticisms are welcome. + +============================================================================== +2. Walkthrough *tabular-walkthrough* + +Tabular's commands are based largely on regular expressions. The basic +technique used by Tabular is taking some regex to match field delimiters, +splitting the input lines at those delimiters, trimming unnecessary spaces +from the non-delimiter parts, padding the non-delimiter parts of the lines +with spaces to make them the same length, and joining things back together +again. + +For instance, consider starting with the following lines: +> + Some short phrase,some other phrase + A much longer phrase here,and another long phrase +< +Let's say we want to line these lines up at the commas. We can tell +Tabularize to do this by passing a pattern matching , to the Tabularize +command: +> + :Tabularize /, + + Some short phrase , some other phrase + A much longer phrase here , and another long phrase +< +I encourage you to try copying those lines to another buffer and trying to +call :Tabularize. You'll want to take notice of two things quickly: First, +instead of requiring a range, Tabularize tries to figure out what you want to +happen. Since it knows that you want to act on lines matching a comma, it +will look upwards and downwards for lines around the current line that match a +comma, and consider all contiguous lines matching the pattern to be the range +to be acted upon. You can always override this by specifying a range, though. + +The second thing you should notice is that you'll almost certainly be able to +abbreviate :Tabularize to :Tab - using this form in mappings and scripts is +discouraged as it will make conflicts with other scripts more likely, but for +interactive use it's a nice timesaver. + +So, anyway, now the commas line up. Splitting the lines on commas, Tabular +realized that 'Some short phrase' would need to be padded with spaces to match +the length of 'A much longer phrase here', and it did that before joining the +lines back together. You'll also notice that, in addition to the spaces +inserting for padding, extra spaces were inserted between fields. That's +because by default, Tabular prints things left-aligned with one space between +fields. If you wanted to print things right-aligned with no spaces between +fields, you would provide a different format to the Tabularize command: +> + :Tabularize /,/r0 + + Some short phrase, some other phrase + A much longer phrase here,and another long phrase +< +A format specifier is either l, r, or c, followed by one or more digits. If +the letter is l, the field will be left aligned, similarly for r and right +aligning and c and center aligning. The number following the letter is the +number of spaces padding to insert before the start of the next field. +Multiple format specifiers can be added to the same command - each field will +be printed with the next format specifier in the list; when they all have been +used the first will be used again, and so on. So, the last command right +aligned every field, then inserted 0 spaces of padding before the next field. +What if we wanted to right align the text before the comma, and left align the +text after the comma? The command would look like this: +> + :Tabularize /,/r1c1l0 + + Some short phrase , some other phrase + A much longer phrase here , and another long phrase +< +That command would be read as "Align the matching text, splitting fields on +commas. Print everything before the first comma right aligned, then 1 space, +then the comma center aligned, then 1 space, then everything after the comma +left aligned." Notice that the alignment of the field the comma is in is +irrelevant - since it's only 1 cell wide, it looks the same whether it's right, +left, or center aligned. Also notice that the 0 padding spaces specified for +the 3rd field are unused - but they would be used if there were enough fields +to require looping through the fields again. For instance: +> + abc,def,ghi + a,b + a,b,c + + :Tabularize /,/r1c1l0 + + abc , def, ghi + a , b + a , b , c +< +Notice that now, the format pattern has been reused; field 4 (the second comma) +is right aligned, field 5 is center aligned. No spaces were inserted between +the 3rd field (containing "def") and the 4th field (the second comma) because +the format specified 'l0'. + +But, what if you only wanted to act on the first comma on the line, rather than +all of the commas on the line? Let's say we want everything before the first +comma right aligned, then the comma, then everything after the comma left +aligned: +> + abc,def,ghi + a,b + a,b,c + + :Tabularize /^[^,]*\zs,/r0c0l0 + + abc,def,ghi + a,b + a,b,c +< +Here, we used a Vim regex that would only match the first comma on the line. +It matches the beginning of the line, followed by all the non-comma characters +up to the first comma, and then forgets about what it matched so far and +pretends that the match starts exactly at the comma. + +But, now that this command does exactly what we want it to, it's become pretty +unwieldy. It would be unpleasant to need to type that more than once or +twice. The solution is to assign a name to it. +> + :AddTabularPattern first_comma /^[^,]*\zs,/r0c0l0 +< +Now, typing ":Tabularize first_comma" will do the same thing as typing the +whole pattern out each time. Of course this is more useful if you store the +name in a file to be used later. + +NOTE: In order to make these new commands available every time vim starts, +you'll need to put those new commands into a .vim file in a plugin directory +somewhere in your 'runtimepath'. In order to make sure that Tabular.vim has +already been loaded before your file tries to use :AddTabularPattern or +:AddTabularPipeline, the new file should be installed in an after/plugin +directory in 'runtimepath'. In general, it will be safe to find out where the +TabularMaps.vim plugin was installed, and place other files extending +Tabular.vim in the same directory as TabularMaps.vim. For more information, +and some suggested best practices, check out the |tabular-scripting| section. + +Lastly, we'll approach the case where tabular cannot achieve your desired goal +just by splitting lines appart, trimming whitespace, padding with whitespace, +and rejoining the lines. As an example, consider the multiple_spaces command +from TabularMaps.vim. The goal is to split using two or more spaces as a +field delimiter, and join fields back together, properly lined up, with only +two spaces between the end of each field and the beginning of the next. +Unfortunately, Tabular can't do this with only the commands we know so far: +> + :Tabularize / / +< +The above function won't work, because it will consider "a b" as 5 fields +delimited by two pairs of 2 spaces ( 'a', ' ', '', ' ', 'b' ) instead of as +3 fields delimited by one set of 2 or more spaces ( 'a', ' ', 'b' ). +> + :Tabularize / \+/ +< +The above function won't work either, because it will leave the delimiter as 4 +spaces when used against "a b", meaning that we would fail at our goal of +collapsing everything down to two spaces between fields. So, we need a new +command to get around this: +> + :AddTabularPipeline multiple_spaces / \{2,}/ + \ map(a:lines, "substitute(v:val, ' \{2,}', ' ', 'g')") + \ | tabular#TabularizeStrings(a:lines, ' ', 'l0') +< +Yeah. I know it looks complicated. Bear with me. I probably will try to add +in some shortcuts for this syntax, but this verbose will be guaranteed to +always work. + +You should already recognize the name being assigned. The next thing to +happen is / \{2,}/ which is a pattern specifying which lines should +automatically be included in the range when no range is given. Without this, +there would be no pattern to use for extending the range. Everything after +that is a | separated list of expressions to be evaluated. In the context in +which they will be evaluated, a:lines will be set to a List of Strings +containing the text of the lines being filtered as they procede through the +pipeline you've set up. The \ at the start of the lines are just vim's line +continuation marker; you needn't worry much about them. So, the first +expression in the pipeline transforms each line by replacing every instance of +2 or more spaces with exactly two spaces. The second command in the pipeline +performs the equivalent of ":Tabularize / /l0"; the only difference is that +it is operating on a List of Strings rather than text in the buffer. At the +end of the pipeline, the Strings in the modified a:lines (or the return value +of the last expression in the pipeline, if it returns a List) will replace the +chosen range. + +============================================================================== +3. Extending *tabular-scripting* + +As mentioned above, the most important consideration when extending Tabular +with new maps or commands is that your plugin must be loaded after Tabular.vim +has finished loading, and only if Tabular.vim has loaded successfully. The +easiest approach to making sure it loads after Tabular.vim is simply putting +the new file (we'll call it "tabular_extra.vim" as an example) into an +"after/plugin/" directory in 'runtimepath', for instance: +> + ~/.vim/after/plugin/tabular_extra.vim +< +The default set of mappings, found in "TabularMaps.vim", is installed in +the after/plugin/ subdirectory of whatever directory Tabular was installed to. + +The other important consideration is making sure that your commands are only +called if Tabular.vim was actually loaded. The easiest way to do this is by +checking for the existence of the :Tabularize command at the start of your +plugin. A short example plugin would look like this: +> + " after/plugin/my_tabular_commands.vim + " Provides extra :Tabularize commands + + if !exists(':Tabularize') + finish " Give up here; the Tabular plugin musn't have been loaded + endif + + " Make line wrapping possible by resetting the 'cpo' option, first saving it + let s:save_cpo = &cpo + set cpo&vim + + AddTabularPattern! asterisk /*/l1 + + AddTabularPipeline! remove_leading_spaces /^ / + \ map(a:lines, "substitute(v:val, '^ *', '', '')") + + " Restore the saved value of 'cpo' + let &cpo = s:save_cpo + unlet s:save_cpo +< +============================================================================== +vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: diff --git a/dotfiles/.vim/doc/clojure.txt b/dotfiles/.vim/doc/clojure.txt @@ -0,0 +1,266 @@ +*vimclojure.txt* *clojure.vim* + +VimClojure - A Clojure Environment +================================== + +Introduction +------------ + +VimClojure is a filetype plugin and development environment for Clojure. It +provides indenting, syntax highlighting and – if configured – interactive +features like omni completion, documentation lookup and a Repl running in a +Vim buffer. + +Nailgun Server *clj-nailgun-server* +-------------- + +To use the interactive part you have to start the nailgun server via the jar +file. Make sure, that clojure and clojure-contrib are in your classpath and +start the com.martiansoftware.nailgun.NGServer class. Example invocation: +> + java -cp clojure.jar:clojure-contrib.jar:vimclojure.jar com.martiansoftware.nailgun.NGServer 127.0.0.1 +< +This may look different depending on your system. + +You can stop the server by invoking the nailgun client with the ng-stop +argument. +> + ng ng-stop +< +Set the clj_want_gorilla variable in your vimrc. +> + let g:clj_want_gorilla = 1 +< +Note: Should there be an error when executing an interactive command +and the error message goes away to quickly, you can use |:messages| to +recall the message and read it conveniently without time pressure. + +Syntax Highlighting *ft-clj-syntax* +------------------- + +The clojure syntax highlighting provides several options: +> + g:clj_highlight_builtins + If it exists and is nonzero, then Clojure's builtin functions + are highlighted. This useful to distuingish macros and special + forms from functions. + + g:clj_highlight_contrib + If it exists and is nonzero, then Clojure-Contrib's functions + are highlighted. (Currently incomplete) + + g:clj_paren_rainbow + If it exists and is nonzero, then differing levels of + parenthesisation will receive different highlighting. +< +The g:clj_paren_rainbow option provides 10 levels of individual colorisation +for the parentheses. Because of the quantity of colorisation levels, unlike +non-rainbow highlighting, the rainbow mode specifies its highlighting using +ctermfg and guifg, thereby bypassing the usual colorscheme control using +standard highlighting groups. The actual highlighting used depends on the +dark/bright setting (see |'bg'|). + +Keybindings +----------- + +Note: <LocalLeader> is a Vim feature. More information can be found +under the |maplocalleader| help topic. + +You can redefine any key mapping using some autocommand in your .vimrc file. +All mappings use so-called Plugs. Simply prepend <Plug>Clojure to the given +Plug name and your setting will override the default mapping. +> + aucmd BufRead,BufNewFile *.clj nmap xyz <Plug>ClojureEvalToplevel +< + +<LocalLeader>et *et* *EvalToplevel* + Send off the toplevel sexpression currently + containing the cursor to the Clojure server. + +<LocalLeader>ef *ef* *EvalFile* + Send off the current file to the Clojure Server. + +<LocalLeader>eb *eb* *EvalBlock* + Send off the the mark visual block to the + Clojure server. Obviously this mapping is only + active in visual mode. + Note: This does not check for structure. + +<LocalLeader>el *el* *EvalLine* + Send off the current line to the Clojure Server. + Note: This does not check for structure. + +<LocalLeader>ep *ep* *EvalParagraph* + Send off the current paragraph to the Clojure Server. + Note: This does not check for structure. + +<LocalLeader>rf *rf* *RequireFile* + Require the namespace of the current file with + the :reload flag. Note: For this to work with + a remote Clojure server, the files have to put in + place before issueing the command, eg. via scp + or NFS. + +<LocalLeader>rF *rF* *RequireFileAll* + Require the namespace of the current file with + the :reload-all flag. Note: For this to work with + a remote Clojure server, the files have to put in + place before issueing the command, eg. via scp + or NFS. + +<LocalLeader>me *me* *MacroExpand* + Expand the innermost sexpression currently + containing the cursor using macroexpand. + +<LocalLeader>m1 *m1* *MacroExpand1* + Same as MacroExpand, but use macroexpand-1. + + +<LocalLeader>lw *lw* *DocLookupWord* + Lookup up the word under the cursor and print + the documentation for it via (doc). + +<LocalLeader>li *li* *DocLookupInteractive* + Lookup the documentation of an arbitrary word. + The user is prompted for input. + +<LocalLeader>fd *fd* *FindDoc* + Find a the documentation for a given pattern + with (find-doc). The user is prompted for input. + +<LocalLeader>jw *jw* *JavadocLookupWord* + Open the javadoc for the word under the cursor + in an external browser. + +<LocalLeader>ji *ji* *JavadocLookupInteractive* + Open the javadoc for an arbitrary word in an + external browser. The user is prompted for input. + +<LocalLeader>sw *sw* *SourceLookupWord* + Show a read-only view of the source the word under + the cursor. For this to work, the source must be + available in the Classpath or as a file (depending + on how the source was loaded). + +<LocalLeader>si *si* *SourceLookupInteractive* + Show a read-only view of the source of an arbitrary + word. For this to work, the source must be available + in the Classpath or as a file (depending on how the + source was loaded). + +<LocalLeader>gw *gw* *GotoSourceWord* + Goto the source of the word under the cursor. For this + to work, the source must be available in a directory + of the |'path'| option. The directories in the + CLOJURE_SOURCE_DIRS environment variable will be added + to the |'path'| setting. + +<LocalLeader>gi *gi* *GotoSourceInteractive* + Goto the source of an arbitrary word. For this to work, + the source must be available in a directory of the + |'path'| option. The directories in the + CLOJURE_SOURCE_DIRS environment variable will be added + to the |'path'| setting. + +<LocalLeader>mw *mw* *MetaLookupWord* + Lookup the meta data of the word under the cursor. + +<LocalLeader>mi *mi* *MetaLookupInteractive* + Lookup the meta data of an arbitrary word. The + user is prompted for input. + +<LocalLeader>sr *sr* *StartRepl* + Start a new Vim Repl in a fresh buffer. There + might be multiple Repls at the same time. + +Vim Repl +-------- + +Start a Repl via the |sr| shortcut. At the prompt just type expressions. +Hitting enter will determine, whether the expression is complete and +will send it to the Clojure instance. In case the expression is incomplete, +eg. after "(defn foo" will result in a newline for multiline expressions. + +Previously sent expressions may be recalled via <C-Up> and <C-Down>. +Note: sending multiple expressions will save them in the same history +entry. So playing back with <C-Up> will again send all of the contained +expressions. + +The Plugs are: + - <Plug>ClojureReplEnterHook for the enter key + - <Plug>ClojureReplUpHistory for going backwards in history (<C-Up>) + - <Plug>ClojureReplDownHistory for going forwards in history (<C-Down>) + +The following convenience commands are provided: + + - ,close - close the Repl and free the Repl resources in the server process + - ,st - print a stack trace of *e as with clojure.contrib.stacktrace + - ,ct - print a cause trace of *e as with clojure.contrib.stacktrace + +Pretty Printing +--------------- + +In case Tom Faulhaber's cl-format package is available in the Classpath +it will be used for pretty printing, eg. of macroexpansions. The Repl +can be told to use pretty printing via a global Var. +> + (set! de.kotka.vimclojure.repl/*print-pretty* true) +< + +Omni Completion +--------------- + +VimClojure supports omni completion for Clojure code. Hitting <C-X><C-O> in +insert mode will try to provide completions for the item in front of the +cursor. + +The completion tries to be somewhat intelligent in what it completes. + + - a word starting with an upper case letter will be completed to an + imported class. + Str<C-x><C-o> => String, StringBuilder, ... + + - a word containing dots will be completed to a namespace. + c.c<C-x><C-o> => clojure.core, clojure.contrib.repl-utils, ... + + - everything else will be completed to a Var, an alias or namespace. + + - a word containing a slash will be handled differently + - if the word starts with an upper case letter, will complete + static fields of the given class + String/va<C-x><C-o> => String/valueOf + + - otherwise it is treated as a namespace or alias + clojure.core/re<C-x><C-o> => clojure.core/read, ... + +The completion uses certain characters to split the matching. This are +hyphens and (for namespaces) dots. So r-s<C-x><C-o> matches read-string. + +Note: Completion of symbols and keywords is also provided via the <C-N> +functionality of Vim. + +License +------- + +Copyright (c) 2008,2009 Meikel Brandmeyer, Frankfurt am Main +All rights reserved. + +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: set ft=help norl ts=8 tw=78 et : diff --git a/dotfiles/.vim/doc/csupport.txt b/dotfiles/.vim/doc/csupport.txt @@ -0,0 +1,1638 @@ +*csupport.txt* C/C++ Support March 05 2008 + +C/C++ Support *c-support* *csupport* + Plugin version 5.1 + for Vim version 6.0 and above + Fritz Mehner <mehner@fh-swf.de> + +C/C++-IDE for Vim/gVim. It is written to considerably speed up writing code in +a consistent style. This is done by inserting complete statements,idioms, code +snippets, templates, and comments. Syntax checking, compiling, running a +program, running a code checker or indent can be done with a keystroke. + + + 1. Usage |csupport-usage-gvim| + 1.1 Menu 'Comments' |csupport-comm| + 1.1.1 Append aligned comments |csupport-comm-aligned| + 1.1.2 Adjust end-of-line comments |csupport-comm-realign| + 1.1.3 Code to comment |csupport-code-to-comm| + 1.1.4 Comment to code |csupport-comm-to-code| + 1.1.5 Frame comments, file header, ... |csupport-comm-frame| + 1.1.6 KEYWORD + comment |csupport-comm-keywords| + 1.1.7 C to C++ comments and vice versa |csupport-comm-c-cpp| + 1.1.8 Date and date+time |csupport-comm-date| + 1.2 Menu 'Statements' |csupport-stat| + 1.2.1 Normal mode, insert mode. |csupport-stat-normal-mode| + 1.2.2 Visual mode. |csupport-stat-visual-mode| + 1.3 Menu 'Preprocessor' |csupport-prep| + 1.3.1 Normal mode, insert mode. |csupport-prep-normal-mode| + 1.3.2 Visual mode. |csupport-prep-visual-mode| + 1.3.3 Block out code with #if 0 .. #endif |csupport-prep-if0| + 1.4 Menu 'Idioms' |csupport-idioms| + 1.5 Menu 'Snippets' |csupport-snippets| + 1.5.1 Code snippets |csupport-snippets| + 1.5.2 Picking up prototypes |csupport-proto| + 1.6 Menu 'C++' |csupport-c++| + 1.6.1 Normal mode, insert mode. |csupport-c++-normal-mode| + 1.6.2 Visual mode. |csupport-c++-visual-mode| + 1.6.3 Method implementation |csupport-c++-method-impl| + 1.7 Menu 'Run' |csupport-run| + 1.7.1 Minimal make functionality |csupport-run-buffer| + 1.7.2 Command line arguments |csupport-run-cmdline-args| + 1.7.3 Run make |csupport-run-make| + 1.7.4 Command line arguments for make |csupport-run-make-args| + 1.7.5 Splint |csupport-run-splint| + 1.7.6 CodeCheck |csupport-run-codecheck| + 1.7.7 Indent |csupport-run-indent| + 1.7.8 Hardcopy |csupport-run-hardcopy| + 1.7.9 Rebuild templates |csupport-run-templates| + 1.7.10 Xterm size |csupport-run-xterm| + 1.7.11 Output redirection |csupport-run-output| + 1.8 Help |csupport-help| + + 2. Usage without GUI |csupport-usage-vim| + 3. Hotkeys |csupport-hotkeys| + 4. Customization and configuration |csupport-custom| + 4.1 Global variables |csupport-custom-glob-vars| + 4.2 The root menu |csupport-custom-root-menu| + 4.3 System-wide installation |csupport-system-wide| + 5. Template files and tags |csupport-templates| + 5.1 Template files |csupport-templates-files| + 5.2 Macros |csupport-templates-macros| + 5.3 Templates |csupport-templates-names| + 5.3.1 Template names |csupport-templates-names| + 5.3.2 Template definition |csupport-templates-definition| + 5.3.3 Template expansion |csupport-templates-expansion| + 6. C/C++ Dictionaries |csupport-dictionary| + 7. Extend taglist.vim for make and qmake |csupport-taglist| + 8. Syntax based folding |csupport-folding| + 9. Windows particularities |csupport-windows| +10. Troubleshooting |csupport-troubleshooting| +11. Release Notes /Change Log |csupport-release-notes| + + How to add this help file to Vim's help |add-local-help| + + +============================================================================== +1. USAGE WITH GUI (gVim) *csupport-usage-gvim* +============================================================================== + +If the root menu 'C/C++' is not visible call it with the item "Load C Support" +from the standard Tools-menu. +The item "Load C Support" can also be used to unload the C/C++-root menu. + +Nearly all menu entries insert code snippets or comments. All these stuff is +taken from template files and can be changed by the user to meet his +requirements (see|csupport-templates|). + +------------------------------------------------------------------------------ +1.1 MENU 'Comments' *csupport-comm* +------------------------------------------------------------------------------ + +1.1.1 APPEND ALIGNED COMMENTS TO CONSECUTIVE LINES *csupport-comm-aligned* + +In NORMAL MODE the menu items 'end-of-line comment' will append an comment to +the current line. +In VISUAL MODE these item will append aligned comments to all marked lines. +Marking the first 4 lines + + print_double_array ( double array[], + int n, + int columns, + char* arrayname + ) + +and choosing 'end-of-line com. /**/' will yield. + + print_double_array ( double array[], /* */ + int n, /* */ + int columns, /* */ + char* arrayname /* */ + ) /* */ + +If one ore more lines go beyond the starting column (s.below) the comments +will start at the 2. column after the longest line. The cursor will be +positioned inside the first comment. + +The default starting column is 49 ( = (multiple of 2,4, or 8) + 1 ). This can +be changed by setting a global variable in the file ~/.vimrc , e.g. : + + let g:C_LineEndCommColDefault = 45 + +The starting column can also be set by the menu item +'Comments->set end-of-line com. col' . Just position the cursor in an +arbitrary column (column number is shown in the Vim status line) and choose +this menu item. This setting is buffer related. + +If the cursor was at the end of a line you will be asked for a column number +because this position is most likely not the desired starting column. +Your choice will be confirmed. + +------------------------------------------------------------------------------ + +1.1.2 ADJUST END-OF-LINE COMMENTS *csupport-comm-realign* + +After some changes end-of-line comments may be no longer aligned: + + print_double_array ( double array[], /* */ + long int n, /* */ + unsigned int columns, /* */ + char* a_name /* */ + ) /* */ + +Realignment can be achieved with the menu item 'adjust end-of-line com.' In +normal mode the comment (if any) in the current line will be aligned to the +end-of-line comment column (see above) if possible. In visual mode the +comments in the marked block will be aligned: + + print_double_array ( double array[], /* */ + long int n, /* */ + unsigned int columns, /* */ + char* a_name /* */ + ) /* */ + +------------------------------------------------------------------------------ + +1.1.3 CODE TO COMMENT *csupport-code-to-comm* + +The marked block + +xxxxxxxx +xxxxxxxx +xxxxxxxx + +will be changed by the menu item 'code->comment /**/' into the multiline +comment (all (partially) marked lines): + +/* xxxxxxxx + * xxxxxxxx + * xxxxxxxx + */ + +The marked block will be changed by the menu item 'code->comment //' into the +multiline comment + +//xxxxxxxx +//xxxxxxxx +//xxxxxxxx + +The menu items works also for a single line. A single line needs not to be +marked. + +------------------------------------------------------------------------------ + +1.1.4 COMMENT TO CODE *csupport-comm-to-code* + +If one (or more) complete comment (i.e. all lines belonging to the comment) is +marked the item 'comment->code' will uncomment it. If the following lines +are marked + + * printf ("\n"); + */ + + printf ("\n"); + + // printf ("\n"); + // + + /* + * printf ("\n"); + */ + +uncommenting will yield + + * printf ("\n"); + */ + + printf ("\n"); + + printf ("\n"); + + + + printf ("\n"); + +The first 2 lines are only a part of a C-comment and remain unchanged. +A C-comment can start with /* , /** or /*! . + +The menu item works also for a single line with a leading // . A single line +needs not to be marked. + +------------------------------------------------------------------------------ + +1.1.5 FRAME COMMENTS, FILE HEADER, ... *csupport-comm-frame* + +Frame comments, file header comments and function, methods, class descriptions +are read as templates from the appropriate files (see |csupport-templates|). + +------------------------------------------------------------------------------ + +1.1.6 KEYWORD+comment *csupport-comm-keywords* + +Preliminary comments to document (and find again) places where works will be +resumed shortly. Usually not meant for the final documentation. + +------------------------------------------------------------------------------ + +1.1.7 C TO C++ COMMENTS AND VICE VERSA *csupport-comm-c-cpp* + +The menu item '// xxx -> /* xxx */' changes a C++ comment into an C comment. +This is done for the current line in normal or insert mode and for a marked +area of lines in visual mode. +If there are multiple C comments only the first one will be changed: + printf ("\n"); /* one */ /* two */ /* three */ +will be changed into + printf ("\n"); // one /* two */ /* three */ + +The menu item '/* xxx */ -> // xxx' changes a C comment into an C++ comment. + +------------------------------------------------------------------------------ + +1.1.8 DATE AND DATE+TIME *csupport-comm-date* + +The format for 'date' and 'date time' can be defined by the user (see +|csupport-templates-date|). + +------------------------------------------------------------------------------ +1.2 MENU 'Statements' *csupport-stat* +------------------------------------------------------------------------------ + +1.2.1 NORMAL MODE, INSERT MODE. *csupport-stat-normal-mode* + +An empty statement will be inserted and properly indented. The item 'if{}' +will insert an if-statement: + +if ( ) +{ +} + + +1.2.2 VISUAL MODE. *csupport-stat-visual-mode* + +STATEMENTS WITH BLOCKS AND CASE LABEL. +-------------------------------------- +The highlighted area + +xxxxx +xxxxx + +can be surrounded by one of the following statements: + + +----------------------------+-----------------------------+ + | if ( ) | if ( ) | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + | | else | + | | { | + | | } | + +----------------------------+-----------------------------+ + | for ( ; ; ) | while ( ) | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + +----------------------------+-----------------------------+ + | do | | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + | while ( ); | | + +----------------------------+-----------------------------+ + | switch ( ) { | + | case : | + | break; | + | | + | case : | + | break; | + | | + | case : | + | break; | + | | + | case : | + | break; | + | | + | default: | + | break; | + | } | + +----------------------------+-----------------------------+ + +For 'switch' and 'case' see |csupport-stat-switch| and |csupport-stat-case|. + +The whole statement will be indented after insertion. + + +STATEMENTS WITHOUT BLOCKS. +-------------------------- +One of the following statements can be inserted: + + +-------------------------------+--------------------------+ + | if ( ) | for ( ; ; ) | + +-------------------------------+--------------------------+ + | if ( ) | while ( ) | + | else | | + +-------------------------------+--------------------------+ + | case : | | + | break; | | + +-------------------------------+--------------------------+ + + +------------------------------------------------------------------------------ +1.3 MENU 'Preprocessor' *csupport-prep* +------------------------------------------------------------------------------ + +1.3.1 NORMAL MODE, INSERT MODE. *csupport-prep-normal-mode* + +The preprocessor statements will be inserted and properly indented. + +1.3.2 VISUAL MODE. *csupport-prep-visual-mode* + +STATEMENTS WITH BLOCKS +---------------------- +The highlighted area + +xxxxx +xxxxx + +can be surrounded by one of the following statements: + + +----------------------------+-----------------------------+ + | #if CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #if CONDITION ----- */ | + | | + | #endif /* ----- #if CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifdef CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #ifdef CONDITION ----- */ | + | | + | #endif /* ----- #ifdef CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifndef CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #ifndef CONDITION ----- */ | + | | + | #endif /* ----- #ifndef CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifndef INC_TEST | + | #define INC_TEST | + | xxxxx | + | xxxxx | + | #endif /* ----- #ifndef INC_TEST ----- */ | + +----------------------------------------------------------+ + | #if 0 /* ----- #if 0 : If0Label_1 ----- */ | + | | + | #endif /* ----- #if 0 : If0Label_1 ----- */ | + +----------------------------------------------------------+ + +The macro name for an include guard (e.g. INC_TEST above) will be derived as a +suggestion from the file name. + +1.3.3 BLOCK OUT CODE WITH #if 0 ... #endif *csupport-prep-if0* + +The menu item #if 0 #endif inserts the lines + + #if 0 /* ----- #if 0 : If0Label_1 ----- */ + + #endif /* ----- #if 0 : If0Label_1 ----- */ + +In visual mode the marked block of lines will be surrounded by these lines. + +This is usually done to temporarily block out some code. The label names like +If0Label_1 are automatically inserted into the comments. The trailing numbers +are automatically incremented. These numbers can be changed by the user. The +next number will be one above the highest number found in the current buffer. + +A corresponding label can be found by searching with the vim star command (*). +All labels can be found with a global search like :g/If0Label_/ or +:g/If0Label_\d\+/. All corresponding lines can be deleted with :g/If0Label_/d . + + +REMOVE THE ENCLOSING #if 0 ... #endif -CONSTRUCT. + +The menu item 'remove #if #endif' removes such a construct if the cursor is +in the middle of such a section or on one of the two enclosing lines. Nested +constructs will be untouched. + +------------------------------------------------------------------------------ +1.4 MENU 'Idioms' *csupport-idioms* +------------------------------------------------------------------------------ + +1.4.1 ENTRY 'function' + +NORMAL MODE, INSERT MODE: +The name of the function is asked for and the following lines (for function +name "f") will be inserted: + + void + f ( ) + { + return ; + } /* ---------- end of function f ---------- */ + +VISUAL MODE: +Main or [static] function: the highlighted lines will go inside the new +function or main. +for-loops: the highlighted lines will be set in braces. + +1.4.2 ENTRY 'open input file' + +The item 'open input file' will create the statements to open and close an +input file (e.g. with the file pointer 'infile'). + +1.4.3 ENTRY 'open output file' + +The item 'open output file' will create the statements to open and close an +output file (e.g. with the file pointer 'outfile'). + +------------------------------------------------------------------------------ +1.5 MENU 'Snippets' *csupport-snippets* +------------------------------------------------------------------------------ + +1.5.1 CODE SNIPPETS + +Code snippets are pieces of code which are kept in separate files in a special +directory (e.g. a few lines of code or a complete template for a Makefile). +File names are used to identify the snippets. The snippet directory will be +created during the installation ( $HOME/.vim/codesnippets-c is the default). +Snippets are managed with the 3 items + + C/C++ -> Snippets -> read code snippet + C/C++ -> Snippets -> write code snippet + C/C++ -> Snippets -> edit code snippet + +from the Snippets submenu. + +CREATING A NEW SNIPPET +When nothing is marked, "write code snippet" will write the whole buffer +to a snippet file, otherwise the marked area will be written to a file. + +INSERT A SNIPPET +Select the appropriate file from the snippet directory ("read code snippet"). +The inserted lines will be indented. + +EDIT A SNIPPET +This is a normal edit. + +INDENTATION / NO INDENTATION +Code snippets are normally indented after insertion. To suppress indentation +add the file extension "ni" or "noindent" to the snippet file name, e.g. + + parameter_handling.c.noindent + + +1.5.2 PICKING UP PROTOTYPES *csupport-proto* + +PICK UP PROTOTYPES. +To make a prototype from a function head mark the function head and choose +'Snippets -> pick up prototype'. From the first six lines of + + void + print_double_array ( double array[], /* array to print */ + int n, /* number of elements to print */ + int columns, /* number of elements per column */ + char* arrayname /* array name */ + ) + { + ... + } /* ---------- end of function print_double_array ---------- */ + +the prototype + + void print_double_array ( double array[], int n, int columns, char* arrayname ); + +is produced and put in an internal buffer. +- Leading and trailing whitespaces are removed. +- All inner whitespaces are squeezed. +- All comments will be discarded. +- Trailing parts of the function body (e.g a '{' ) will also be removed. +- The class name and the scope resolution operator will be removed (C++ method + implementations). +Further prototypes can be picked up and gathered in the buffer. + +For C++ methods namespace names and class names will be removed +(exception: 'std::' ). The first two lines of + + std::string + ROBOT::Robot::get_name ( void ) + { + return type_name; + } /* ----- end of method Robot::get_name ----- */ + +result in the prototype + + std::string get_name ( void ); + +Folding may help picking up prototypes (see |csupport-folding|). + + +INSERT PROTOTYPES +With 'Snippets -> insert prototype(s)' all picked up prototypes currently in +the buffer will be inserted below the cursor. +The prototype buffer will be cleared after insertion. + + +DISCARD PROTOTYPES +The prototype buffer can be cleared with 'Snippets -> clear prototype(s)' . + + +SHOW PROTOTYPES +The list of gathered prototypes can be shown with +'Snippets -> show prototype(s)'. The number and the filename are shown, e.g. + + (1) matrix.c # double** calloc_double_matrix ( int rows, int columns ); + (2) matrix.c # void free_double_matrix ( double **m ); + (3) foomain.c # void foo ( ); + + +REMARK. Generating prototypes this way is nice in a small project. You may +want to use an extractor like cextract or something else. + + +------------------------------------------------------------------------------ +1.6 MENU 'C++' *csupport-c++* +------------------------------------------------------------------------------ + +1.6.1 NORMAL MODE, INSERT MODE. *csupport-c++-normal-mode* + +An empty statement will be inserted and in some cases properly indented. The +item 'try .. catch' will insert the following lines: + + try { + } + catch ( const &ExceptObj ) { // handle exception: + } + catch (...) { // handle exception: unspezified + } + +The cursor will go into the try block. + +1.6.2 VISUAL MODE. *csupport-c++-visual-mode* + +The highlighted area can be surrounded by one of the following statements: + + try - catch + catch + catch(...) + namespace { } + extern "C" { } + +The whole statement will be indented after insertion. + +1.6.3 METHOD IMPLEMENTATION *csupport-c++-method-impl* + +The menu item 'method implement.' asks for a method name. If this item is +called the first time you will see just an scope resolution operator. If you +specify the scope this is used the next time you call this item. If you use +one of the menu items to generate a class (see |csupport-templates|) the +scope will be extracted and used for the next method. + +------------------------------------------------------------------------------ +1.7 MENU 'Run' *csupport-run* +------------------------------------------------------------------------------ + +1.7.1 MINIMAL MAKE FUNCTIONALITY *csupport-run-buffer* + +The 'Run' menu provides a minimal make functionality for single file projects +(e.g. in education) : + +SAVE AND COMPILE +'save and compile' saves the buffer and run the compiler with the given +options (see |csupport-custom-glob-vars|). + +An error window will be opened if the compiler reports errors and/or warnings. +Quickfix commands can now be used to jump to an error location. + +Consider using maps like + map <silent> <F7> <Esc>:cp<CR> + map <silent> <F8> <Esc>:cn<CR> +in your ~/.vimrc file to jump over the error locations and make navigation +easier. The error list and the error locations in your source buffer will be +synchronized. + + +LINK +'link' makes an executable from the current buffer. If the buffer is not +saved, or no object is available or the object is older then the source step +'save and compile' is executed first. + +The behavior of the compiler / linker is determined by the options assigned to +the variables described in |csupport-custom-glob-vars| (4.group). + +RUN +'run' runs the executable with the same name (extension .e) as the current +buffer. If the buffer is not saved, or no executable is available or the +executable is older then the source steps 'save and compile' and 'link' are +executed first. + + +1.7.2 COMMAND LINE ARGUMENTS *csupport-run-cmdline-args* + +The item 'command line arguments' calls an input dialog which asks for command +line arguments. These arguments are forwarded to the program which is run by +the 'run' item. The arguments are kept until you change them. + +The arguments belong to the current buffer (that is, each buffer can have its +own arguments). +If the buffer gets a new name with "save as" the arguments will now belong to +the buffer with the new name. + +The command line arguments can be followed by pipes and redirections: + + 11 22 | sort -rn | head -10 > out + +Caveat: If you look for the current arguments by calling this menu item again +be sure to leave it with a CR (not Esc !). Due to a limitation of an internal +Vim function CR will keep the arguments, Esc with discard them. + + +1.7.3 RUN make *csupport-run-make* + +The item 'make' runs the external make program. + + +1.7.4 COMMAND LINE ARGUMENTS FOR make *csupport-run-make-args* + +The item 'command line arguments for make' calls an input dialog which asks +for command line arguments for make. These arguments are forwarded to make +when called by the item 'make'. + + +1.7.5 SPLINT *csupport-run-splint* + +Splint is a tool for statically checking C programs (see http://www.splint.org). +Of course it has to be installed in order to be used within Vim. The menu +item 'Run->splint' will run the current buffer through splint. + +An error window will be opened if splint has something to complain about. +Quickfix commands can now be used to jump to an error location. For easier +navigation see tip under 'SAVE AND COMPILE' |csupport-run-buffer|. + +Splint has many options. Presumably the best way is to keep the options in an +option file (~/.splintrc). For a quick try you can use the menu item +'Run->cmd. line arg. for splint' to specify some buffer related options. + +When vim is started this plugin will check whether splint is executable. If +not, the menu item will *NOT' be visible. + + +1.7.6 CODECHECK *csupport-run-codecheck* + +CodeCheck (TM) is a commercial code analyzing tool produced by Abraxas +Software, Inc. (www.abraxas-software.com). +Of course it has to be installed in order to be used within Vim. The menu +item 'Run->CodeCheck' will run the current buffer through CodeCheck. + +An error window will be opened if CodeCheck has something to complain about. +Quickfix commands can now be used to jump to an error location. For easier +navigation see tip under 'SAVE AND COMPILE' |csupport-run-buffer|. + +CodeCheck has many options. For a quick try you can use the menu item +'Run->cmd. line arg. for CodeCheck' to specify some buffer related options. + +CodeCheck will be run with default options (see |csupport-custom-glob-vars|). +The default options can be overwritten by placing a global variable in +~/.vimrc , e.g. + + let g:C_CodeCheckOptions = "-K13 -Rmeyers" + +The default name for the executable is 'check'. There are other names in use +on different platforms. The name can be changed by placing a global variable +in ~/.vimrc , e.g. + + let g:C_CodeCheckExeName = "chknt.exe" + +When vim is started this plugin will check whether CodeCheck is executable. If +not, the menu item will *NOT' be visible. + + +1.7.7 INDENT *csupport-run-indent* + +The formatter 'indent' can be run over the whole buffer or a marked region. +Before formatting the whole buffer this buffer will be saved to disk and you +will be asked for a confirmation. + +Indent has many options. These are kept in the file '.indent.pro' in your home +directory. See the indent manual for more information. + + +1.7.8 HARDCOPY *csupport-run-hardcopy* + +Generates a PostScript file from the whole buffer or from a marked region. +On a Windows system a printer dialog is displayed. + +The print header contains date and time for the current locale. The definition +used is + + let s:C_Printheader = "%<%f%h%m%< %=%{strftime('%x %X')} Page %N" + +The current locale can be overwritten by changing the language, e.g. + + :language C + +or by setting a global variable in the file ~/.vimrc , e.g. : + + let g:C_Printheader = "%<%f%h%m%< %=%{strftime('%x %X')} SEITE %N" + +See :h printheader and :h strftime() for more details. + + +1.7.9 REBUILD TEMPLATES *csupport-run-templates* + +After editing one or more template files a click on this item rereads the +template files and rebuilds all templates. + + +1.7.10 XTERM SIZE *csupport-run-xterm* + +The size of the xterm used for running a program (below) can be set by this +menu item. The default is 80 columns with 24 lines. +This feature is not available under Windows. + + +1.7.11 OUTPUT REDIRECTION *csupport-run-output* + +Running a program can be done in one of three ways: +(1) Run the program from the gVim command line. + This is for interactive programs with little input and output. +(2) Run the program and direct the output into a window with name "C-Output". + The buffer and its content will disappear when the window is closed and + reused otherwise. + This is for non-interactive programs with little to very much output. + You have unlimited line length, regex search, navigation, ... + The tabstop value will be set to 8 for "C-Output". +(3) Run the program in an xterm. + +The output method can be chosen from the menu item 'Run->output: ...'. +This menu has three states: + + output: VIM->buffer->xterm + output: BUFFER->xterm->vim + output: XTERM->vim->buffer + +The first (uppercase) item shows the current method. The default is 'vim'. +This can be changed by setting the variable g:C_OutputGvim to another value. +Possible values are 'vim', 'buffer' and 'xterm' . + +The xterm defaults can be set in ~/.vimrc by the variable g:C_XtermDefaults . +The default is "-fa courier -fs 12 -geometry 80x24" : + font name : -fa courier + font size : -fs 12 + terminal size : -geometry 80x24 +See 'xterm -help' for more options. Xterms are not available under Windows. + +------------------------------------------------------------------------------ +1.8 'help' *csupport-help* +------------------------------------------------------------------------------ + +The root menu item 'help' shows this plugin help in a help window. The help +tags must have been generated with + :helptags ~/.vim/doc + +============================================================================== +2. USAGE WITHOUT GUI (Vim) *csupport-usage-vim* +============================================================================== + +The frequently used constructs can be inserted with key mappings. The +mappings are also described in the document c-hot-keys.pdf (reference card, +part of this package). +Hint: Typing speed matters. The combination of a leader ('\') and the +following character(s) will only be recognized for a short time. +The insert mode mappings start with ` (backtick). + +Legend: (i) insert mode, (n) normal mode, (v) visual mode + + -- Load / Unload C/C++ Support ---------------------------------------- + + \lcs Load C/C++ Support Menus (n, GUI only) + \ucs Unload C/C++ Support Menus (n, GUI only) + + -- Comments ----------------------------------------------------------- + + \cl end-of-line comment (n,v,i) + \cj adjust end-of-line comment(s) (n,v,i) + \cs set end-of-line comment column (n) + \c* code -> comment /* */ (n,v) + \c/ code -> comment // (n,v) + \cc code -> comment // (n,v) + \co comment -> code (n,v) + \cfr frame comment (n,i) + \cfu function comment (n,i) + \cme method description (n,i) + \ccl class description (n,i) + \cd date (n,i) + \ct date \& time (n,i) + + -- Statements --------------------------------------------------------- + + \sd do { } while (n,v,i) + \sf for (n,i) + \sfo for { } (n,v,i) + \si if (n,i) + \sif if { } (n,v,i) + \sie if else (n,v,i) + \sife if { } else { } (n,v,i) + \sw while (n,i) + \swh while { } (n,v,i) + \ss switch (n,v,i) + \sc case (n,i) + \s{ { } (n,v,i) + + -- Preprocessor ------------------------------------------------------- + + \p< #include <> (n,i) + \p" #include "" (n,i) + \pd #define (n,i) + \pu #undef (n,i) + \pie #if #else #endif (n,v,i) + \pid #ifdef #else #endif (n,v,i) + \pin #ifndef #else #endif (n,v,i) + \pind #ifndef #def #endif (n,v,i) + \pi0 #if 0 #endif (n,v,i) + \pr0 remove #if 0 #endif (n) + -- Idioms ------------------------------------------------------------- + + \if function (n,v,i) + \isf static function (n,v,i) + \im main() (n,v,i) + \i0 for( x=0; x<n; x+=1 ) (n,v,i) + \in for( x=n-1; x>=0; x-=1 ) (n,v,i) + \ie enum + typedef (n,i) + \is struct + typedef (n,i) + \iu union + typedef (n,i) + \ip printf() (n,i) + \isc scanf() (n,i) + \ica p=calloc() (n,i) + \ima p=malloc() (n,i) + \isi sizeof() (n,v,i) + \ias assert() (n,v) + \ii open input file (n,i) + \io open output file (n,i) + + -- Snippets ----------------------------------------------------------- + + \nr read code snippet (n) + \nw write code snippet (n,v) + \ne edit code snippet (n) + \np pick up prototype (n,v) + \ni insert prototype(s) (n) + \nc clear prototype(s) (n) + \ns show prototype(s) (n) + + -- C++ ---------------------------------------------------------------- + + \+c class (n,i) + \+cn class (using new) (n,i) + \+ci class implementation (n,i) + \+cni class (using new) implementation (n,i) + \+mi method implementation (n,i) + \+ai accessor implementation (n,i) + + \+tc template class (n,i) + \+tcn template class (using new) (n,i) + \+tci template class implementation (n,i) + \+tcni template class (using new) impl. (n,i) + \+tmi template method implementation (n,i) + \+tai template accessor implementation (n,i) + + \+tf template function (n,i) + \+ec error class (n,i) + \+tr try ... catch (n,v,i) + \+ca catch (n,v,i) + \+c. catch(...) (n,v,i) + + -- Run ---------------------------------------------------------------- + + \rc save and compile (n) + \rl link (n) + \rr run (n) + \ra set comand line arguments (n) + \rm run make (n) + \rg cmd. line arg. for make (n) + \rp run splint (n) + \ri cmd. line arg. for splint (n) + \rk run CodeCheck (TM) (n) + \re cmd. line arg. for CodeCheck (TM) (n) + \rd run indent (n,v) + \rh hardcopy buffer (n,v) + \rs show plugin settings (n) + \rx set xterm size (n, only Linux/UNIX & GUI) + \ro change output destination (n) + \rt rebuild templates (n) + +The hotkeys are defined in the file type plugin c.vim (part of this csupport +plugin package) and described in the document c-hot-keys.pdf + +============================================================================== +3. HOTKEYS *csupport-hotkeys* +============================================================================== + +The following hotkeys are defined in normal, visual and insert mode: + + F9 compile and link + Alt-F9 write buffer and compile + Ctrl-F9 run executable + Shift-F9 set command line arguments + + Shift-F2 switch between source files and header files + +Shift-F2 can be used to switch between source files and header files if the +plugin a.vim is present. To suppress the creation of a new header file when +switching from a source file the file ~/.vimrc should contain a line + + let g:alternateNoDefaultAlternate = 1 + +A header file will only be opened if it already exists. + +The hotkeys are defined in the file type plugin c.vim . + +All hotkeys from the non-GUI mode also work for gVim (see |csupport-usage-vim|). + +============================================================================== +4. CUSTOMIZATION *csupport-custom* +============================================================================== + +------------------------------------------------------------------------------ +4.1 GLOBAL VARIABLES *csupport-custom-glob-vars* +------------------------------------------------------------------------------ + +Several global variables are checked by the script to customize it: + + ---------------------------------------------------------------------------- + GLOBAL VARIABLE DEFAULT VALUE TAG (see below) + ---------------------------------------------------------------------------- + g:C_GlobalTemplateFile plugin_dir.'c-support/templates/Templates' + g:C_LocalTemplateFile $HOME.'/.vim/c-support/templates/Templates' + g:C_TemplateOverwrittenMsg 'yes' + + g:C_CodeSnippets plugin_dir."/c-support/codesnippets/" + g:C_Dictionary_File "" + g:C_LoadMenus "yes" + g:C_MenuHeader "yes" + g:C_OutputGvim "vim" + g:C_XtermDefaults "-fa courier -fs 12 -geometry 80x24" + g:C_Printheader "%<%f%h%m%< %=%{strftime('%x %X')} Page %N" + + Linux/UNIX: + g:C_ObjExtension ".o" + g:C_ExeExtension "" + g:C_CCompiler "gcc" + g:C_CplusCompiler "g++" + Windows: + g:C_ObjExtension ".obj" + g:C_ExeExtension ".exe" + g:C_CCompiler "gcc.exe" + g:C_CplusCompiler "g++.exe" + g:C_CFlags "-Wall -g -O0 -c" + g:C_LFlags "-Wall -g -O0" + g:C_Libs "-lm" + g:C_LineEndCommColDefault 49 + g:C_CExtension "c" + g:C_TypeOfH "cpp" + + g:C_CodeCheckExeName "check" + g:C_CodeCheckOptions "-K13" + +The variable plugin_dir will automatically be set to one of the following values: + $HOME.'/.vim/' for Linux/Unix + $VIM.'/vimfiles/' for Windows + + ---------------------------------------------------------------------------- + +1. group: g:C_GlobalTemplateFile : Sets the master template file (see|csupport-templates|) + g:C_LocalTemplateFile : Sets the local template file (see|csupport-templates|) + g:C_TemplateOverwrittenMsg : message if template is overwritten + +2. group: g:C_CodeSnippets : The name of the code snippet directory + (see |csupport-snippets|). + g:C_Dictionary_File : The name(s) of the dictionary file(s) used for + word completion (see also |csupport-dictionary|) + g:C_Root : the name of the root menu of this plugin + g:C_LoadMenus : Load menus and mappings ("yes", "no") at startup. + g:C_MenuHeader : Switch the submenu header on/off. + g:C_OutputGvim : when program is running output goes to the vim + command line ("vim"), to a buffer ("buffer") or to + an xterm ("xterm"). + g:C_XtermDefaults : the xterm defaults + g:C_Printheader : hardcopy: definition of the page header + +3. group: g:C_CExtension : Extension of C files. Everything else is C++. + g:C_TypeOfH : filetype of header files with extension 'h' (c,cpp) + (see |csupport-comm-style|) + g:C_CCompiler : The name of the C compiler. + g:C_CplusCompiler : The name of the C++ compiler. + g:C_CFlags : Compiler flags used for a compilation. + g:C_LFlags : Compiler flags used for linkage. + g:C_Libs : Libraries to link with. + g:C_ObjExtension : C/C+ file extension for objects + (leading point required if not empty) + g:C_ExeExtension : C/C+ file extension for executables + (leading point required if not empty) + g:C_LineEndCommColDefault : Default starting column for end-of-line comments. + g:C_CodeCheckExeName : The name of the CodeCheck (TM) executable + (the default is 'check') + g:C_CodeCheckOptions : Default options for CodeCheck (TM) + (see |csupport-run-codecheck|). + +To override the default add appropriate assignments to ~/.vimrc . + +------------------------------------------------------------------------------ +4.2 THE ROOT MENU *csupport-custom-root-menu* +------------------------------------------------------------------------------ + +The variable g:C_Root, if set (in ~/.vimrc or in ~/.gvimrc), gives the name of +the single Vim root menu item in which the C/C++ submenus will be put. The +default is + '&C\/C\+\+.' +Note the terminating dot. A single root menu can be used if the screen is +limited or several plugins are used in parallel. + +If set to "", this single root menu item will not appear. Now all submenus +are put into the Vim root menu. This is nice for beginners in a lab +installation or for C-only programmers. + +------------------------------------------------------------------------------ +4.3 SYSTEM-WIDE INSTALLATION *csupport-system-wide* +------------------------------------------------------------------------------ + +A system-wide installation (one installation for all users) is done as +follows. + +As *** SUPERUSER *** : + +(1) Find the Vim installation directory. +The Vim ex command ':echo $VIM' gives '/usr/local/share/vim' or something like +that. Beyond this directory you will find the Vim installation, e.g. in +'/usr/local/share/vim/vim71' if Vim version 7.1 has been installed. + +(2) Create a new subdirectory 'vimfiles', e.g. '/usr/local/share/vim/vimfiles'. + +(3) Install C/C++ Support +Copy the archive cvim.zip to this new directory and unpack it: + unzip cvim.zip + +(4) Generate the help tags: + :helptags $VIM/vimfiles/doc + + +As *** USER *** : + +Create your private snippet directory: + + mkdir --parents ~/.vim/c-support/codesnippets + +You may want to copy the snippets comming with this plugin (in +$VIM/vimfiles/c-support/codesnippets) into the new directory or to set a +link to the global directory. + +Create your private template directory: + + mkdir --parents ~/.vim/c-support/template + +Create a private template file 'Templates' in this directory to overwrite some +macros, e.g. + + *|AUTHOR|* = your name + *|AUTHORREF|* = ... + *|EMAIL|* = ... + *|COMPANY|* = ... + *|COPYRIGHT|* = ... + +You can also have local templates which overwrite the global ones. To suppress +the messages in this case set a global variable in '~/.vimrc' : + + let g:C_TemplateOverwrittenMsg= 'no' + +The default is 'yes'. + +============================================================================== +5. TEMPLATE FILES AND TAGS *csupport-templates* +============================================================================== + +------------------------------------------------------------------------------ +5.1 TEMPLATE FILES *csupport-templates-files* +------------------------------------------------------------------------------ + +Nearly all menu entries insert code snippets or comments. All these stuff is +taken from template files and can be changed by the user to meet his +requirements. + +The master template file is '$HOME/.vim/c-support/templates/Templates' for a +user installation and '$VIM/vimfiles/c-support/templates/Templates' for a +system-wide installation (see|csupport-system-wide|). + +The master template file starts with a macro section followed by templates for +single menu items or better by including other template files grouping the +templates according to the menu structure of this plugin. The master file +could look like this: + + $ + $ ============================================================= + $ ========== USER MACROS ====================================== + $ ============================================================= + $ + *|AUTHOR|* = Dr. Fritz Mehner + *|AUTHORREF|* = mn + *|EMAIL|* = mehner@fh-swf.de + *|COMPANY|* = FH Südwestfalen, Iserlohn + *|COPYRIGHT|* = Copyright (c)*|YEAR|,|AUTHOR|* + $ + $ ============================================================= + $ ========== FILE INCLUDES ==================================== + $ ============================================================= + $ + *|includefile|* = c.comments.template + *|includefile|* = c.cpp.template + *|includefile|* = c.idioms.template + *|includefile|* = c.preprocessor.template + *|includefile|* = c.statements.template + +Lines starting with a dollar sign are comments. The section starting +with *|AUTHOR|* assigns values to predefined tags +(see|csupport-templates-macros|) to personalize some templates. Other +predefined tags with given default values can be used (e.g. *|YEAR|* ). + +User defined tags are possible. They have the following syntax: + + *|macroname|* = replacement + +A macroname starts with a letter (uppercase or lowercase) followed by zero or +more letters, digits or underscores. + +------------------------------------------------------------------------------ +5.2 MACROS *csupport-templates-macros* +------------------------------------------------------------------------------ + +The following macro names are predefined. The first group is used to +personalize templates. + + ---------------------------------------------------------------------------- + PREDEFINED MACROS DEFAULT VALUE + ---------------------------------------------------------------------------- +*|AUTHOR|* "" +*|AUTHORREF|* "" +*|EMAIL|* "" +*|COMPANY|* "" +*|PROJECT|* "" +*|COPYRIGHTHOLDER|* "" +*|includefile|* "" + +*|BASENAME|* filename without path and suffix +*|DATE|* the preferred date representation for the current locale + without the time +*|FILENAME|* filename without path +*|PATH|* path without filename +*|SUFFIX|* filename suffix +*|TIME|* the preferred time representation for the current locale + without the date and the time zone or name or abbreviation +*|YEAR|* the year as a decimal number including the century + +*|includefile|* can be used to include an additional template file. A file +will be included only once. Commenting and uncommenting include macros is a +simple way to switch between several sets of templates (see also +|csupport-run-templates|). Overwriting existing macros and templates is +possible. + + ---------------------------------------------------------------------------- + PREDEFINED TAGS + ---------------------------------------------------------------------------- + <CURSOR> The cursor position after insertion of a template + <SPLIT> The split point when inserting in visual mode + (see|csupport-templates-definition|) + +A dependent template file can start with its own macro section. There is no +need to have all user defined macros in the master file. +When the first template definition is found (see below) macro definitions are +no longer recognized. + + ---------------------------------------------------------------------------- + USER DEFINED FORMATS FOR DATE AND TIME *csupport-templates-date* + ---------------------------------------------------------------------------- +The format for *|DATE|* ,*|TIME|* , and*|YEAR|* can be set by the user. The +defaults are + *|DATE|* '%x' + *|TIME|* '%X' + *|YEAR|* '%Y' +See the manual page of the C function strftime() for the format. The accepted +format depends on your system, thus this is not portable! The maximum length +of the result is 80 characters. + +User defined formats can be set using the following global variables in +~/.vimrc , e.g. + let g:C_FormatDate = '%D' + let g:C_FormatTime = '%H:%M' + let g:C_FormatYear = 'year %Y' + +------------------------------------------------------------------------------ +5.3 TEMPLATES *csupport-templates-names* +------------------------------------------------------------------------------ + +5.3.1 Template names + +The template behind a menu entry is identified by a given name. The first part +of the name identifies the menu, the second part identifies the item. The +modes are also hard coded (see|csupport-templates-definition|for the use of +<SPLIT>). + + TEMPLATE NAME MODES + -------------------------------------------------------------------------- + + comment.class normal + comment.end-of-line-comment normal + comment.file-description normal + comment.file-section-cpp-class-defs normal + comment.file-section-cpp-class-implementations-exported normal + comment.file-section-cpp-class-implementations-local normal + comment.file-section-cpp-data-types normal + comment.file-section-cpp-function-defs-exported normal + comment.file-section-cpp-function-defs-local normal + comment.file-section-cpp-header-includes normal + comment.file-section-cpp-local-variables normal + comment.file-section-cpp-macros normal + comment.file-section-cpp-prototypes normal + comment.file-section-cpp-typedefs normal + comment.file-section-hpp-exported-class-defs normal + comment.file-section-hpp-exported-data-types normal + comment.file-section-hpp-exported-function-declarations normal + comment.file-section-hpp-exported-typedefs normal + comment.file-section-hpp-exported-variables normal + comment.file-section-hpp-header-includes normal + comment.file-section-hpp-macros normal + comment.frame normal + comment.function normal + comment.keyword-bug normal + comment.keyword-compiler normal + comment.keyword-keyword normal + comment.keyword-todo normal + comment.keyword-tricky normal + comment.keyword-warning normal + comment.keyword-workaround normal + comment.method normal + comment.special-constant-type-is-long normal + comment.special-constant-type-is-unsigned-long normal + comment.special-constant-type-is-unsigned normal + comment.special-empty normal + comment.special-fall-through normal + comment.special-implicit-type-conversion normal + comment.special-no-return normal + comment.special-not-reached normal + comment.special-remains-to-be-implemented normal + + cpp.accessor-implementation normal + cpp.catch normal, visual + cpp.catch-points normal, visual + cpp.cin normal + cpp.class-definition normal + cpp.class-implementation normal + cpp.class-using-new-definition normal + cpp.class-using-new-implementation normal + cpp.cout-operator normal + cpp.cout-string normal + cpp.cout-variabe normal + cpp.error-class normal + cpp.extern normal, visual + cpp.method-implementation normal + cpp.namespace-block normal, visual + cpp.namespace normal + cpp.namespace-std normal + cpp.open-input-file normal + cpp.open-output-file normal + cpp.operator-in normal + cpp.operator-out normal + cpp.output-manipulator-boolalpha normal + cpp.output-manipulator-dec normal + cpp.output-manipulator-endl normal + cpp.output-manipulator-fixed normal + cpp.output-manipulator-flush normal + cpp.output-manipulator-hex normal + cpp.output-manipulator-internal normal + cpp.output-manipulator-left normal + cpp.output-manipulator-oct normal + cpp.output-manipulator-right normal + cpp.output-manipulator-scientific normal + cpp.output-manipulator-setbase normal + cpp.output-manipulator-setfill normal + cpp.output-manipulator-setiosflag normal + cpp.output-manipulator-setprecision normal + cpp.output-manipulator-setw normal + cpp.output-manipulator-showbase normal + cpp.output-manipulator-showpoint normal + cpp.output-manipulator-showpos normal + cpp.output-manipulator-uppercase normal + cpp.rtti-const-cast normal + cpp.rtti-dynamic-cast normal + cpp.rtti-reinterpret-cast normal + cpp.rtti-static-cast normal + cpp.rtti-typeid normal + cpp.template-accessor-implementation normal + cpp.template-class-definition normal + cpp.template-class-implementation normal + cpp.template-class-using-new-definition normal + cpp.template-class-using-new-implementation normal + cpp.template-function normal + cpp.template-method-implementation normal + cpp.try-catch normal, visual + + idioms.assert normal + idioms.calloc normal + idioms.enum normal, visual + idioms.fprintf normal + idioms.fscanf normal + idioms.function normal, visual + idioms.function-static normal, visual + idioms.main normal, visual + idioms.malloc normal + idioms.open-input-file normal + idioms.open-output-file normal + idioms.printf normal + idioms.scanf normal + idioms.sizeof normal + idioms.struct normal, visual + idioms.union normal, visual + + preprocessor.define normal + preprocessor.ifdef-else-endif normal, visual + preprocessor.if-else-endif normal, visual + preprocessor.ifndef-def-endif normal, visual + preprocessor.ifndef-else-endif normal, visual + preprocessor.include-global normal + preprocessor.include-local normal + preprocessor.undefine normal + + statements.block normal, visual + statements.case normal + statements.do-while normal, visual + statements.for-block normal + statements.for normal + statements.if-block-else normal, visual + statements.if-block normal, visual + statements.if-else normal, visual + statements.if normal + statements.switch normal, visual + statements.while-block normal, visual + statements.while normal + + +5.3.2 Template definition *csupport-templates-definition* + +A template definition starts with a template head line with the following +syntax: + + == templatename == [ position == ] + +The templatename is one of the above template identifiers. The position +attribute is optional. Possible attribute values are: + + above insert the template before the current line + append append the template to the current line + below insert the template below the current line + insert insert the template at the cursor position + start insert the template before the first line of the buffer + +An example: + + == comment.function == + /* + * === FUNCTION ======================================================= + * Name: <CURSOR> + * Description: + * ====================================================================== + */ + +The definition of a template ends at the next head line or at the end of the +file. + +Templates for the visual mode can use <SPLIT>. The text before <SPLIT> will +than be inserted above the marked area, the text after <SPLIT> will be +inserted behind the marked area. An example: + + == statements.if-block-else == + if ( <CURSOR> ) { + <SPLIT>} else { + } + +If applied to the marked block + + xxxxxxxxxxx + xxxxxxxxxxx + +this template yields + + if ( ) { + xxxxxxxxxxx + xxxxxxxxxxx + } else { + } + +The templates with a visual mode are shown in the table under +|csupport-templates-names|. + +5.3.3 Template expansion *csupport-templates-expansion* + +There are additional ways to control the expansion of a template. + +USER INPUT +---------- +If the usage of a yet undefined user macro starts with a question mark the +user will be asked for the replacement first, e.g. with the following template + + == idioms.function == + void<CURSOR> + *|?FUNCTION_NAME|* ( ) + { + <SPLIT> return ; + } /* ----- end of function*|FUNCTION_NAME|* ----- */ + +The user can specify the function name which then will be applied twice. If +the macro was already in use the old value will be suggested as default. + +MACRO MANIPULATION +------------------ + +A macro expansion can be controlled by the following attributes + + :l change macro text to lowercase + :u change macro text to uppercase + :c capitalize macro text + :L legalize name + +The include guard template is an example for the use of ':L' : + + == preprocessor.ifndef-def-endif == + #ifndef *|?BASENAME:L|_INC* + #define *|BASENAME|_INC* + <CURSOR><SPLIT> + #endif // ----- #ifndef*|BASENAME|_INC* ----- + +The base name of the file shall be used as part of the include guard name. +The predefined macro*|BASENAME|* is used to ask for this part because this +macro has already a defined value. That value can accepted or replaced by the +user. For the filename 'test test++test.h' the legalized base name +'TEST_TEST_TEST' will be suggested. + +Legalization means: + - replace all whitespaces by underscores + - replace all non-word characters by underscores + - replace '+' and '-' by underscore + + +============================================================================== +6. C/C++ DICTIONARY *csupport-dictionary* +============================================================================== + +The files + + c-c++-keywords.list + k+r.list + stl_index.list + +are a part of this plugin and can be used (together with your own lists) as +dictionaries for automatic word completion. This feature is enabled by +default. The default word lists are + + plugin_dir/c-support/wordlists/c-c++-keywords.list + plugin_dir/c-support/wordlists/k+r.list + plugin_dir/c-support/wordlists/stl_index.list + +The variable plugin_dir will automatically be set by the plugin to one of the +following values: + $HOME.'/.vim/' for Linux/Unix + $VIM.'/vimfiles/' for Windows +If you want to use an additional list MyC.list put the following lines into + ~/.vimrc : + + let g:C_Dictionary_File = PLUGIN_DIR.'/c-support/wordlists/c-c++-keywords.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/k+r.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/stl_index.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/MyC.list' + +When in file ~/.vimrc the name PLUGIN_DIR has to be replaced by $HOME or +$VIM (see above). Whitespaces in the pathnames have to be escaped with a +backslash. +The right side is a comma separated list of files. Note the point at the end +of the first line (string concatenation) and the backslash in front of the +second line (continuation line). +You can use Vim's dictionary feature CTRL-X, CTRL-K (and CTRL-P, CTRL-N). + + +============================================================================== +7. EXTEND taglist.vim FOR make AND qmake *csupport-taglist* +============================================================================== + +The use of the Vim plugin taglist.vim (Author: Yegappan Lakshmanan) is highly +recommended. It uses the program ctags which generates tag files for 3 dozen +languages (Exuberant Ctags, Darren Hiebert, http://ctags.sourceforge.net). +With the following extensions the list of targets in a makefile can be shown +in the taglist window. + +1) Append the file customization.ctags to the file $HOME/.ctags . + +2) Add the following lines (from customization.vimrc) to $HOME/.vimrc : + + " + "------------------------------------------------------------------- + " taglist.vim : toggle the taglist window + " taglist.vim : define the title texts for make + " taglist.vim : define the title texts for qmake + "------------------------------------------------------------------- + noremap <silent> <F11> <Esc><Esc>:Tlist<CR> + inoremap <silent> <F11> <Esc><Esc>:Tlist<CR> + + let tlist_make_settings = 'make;m:makros;t:targets' + let tlist_qmake_settings = 'qmake;t:SystemVariables' + + if has("autocmd") + " ---------- qmake : set file type for *.pro ---------- + autocmd BufNewFile,BufRead *.pro set filetype=qmake + endif " has("autocmd") + +3) restart vim/gvim + +The two maps will toggle the taglist window (hotkey F11) in all editing modes. +The two assignments define the headings for the (q)make sections in the +taglist window. The autocmd set the file type 'qmake' for the filename +extension 'pro' (ctags needs this). + +============================================================================== +8. SYNTAX BASED FOLDING *csupport-folding* +============================================================================== + +Syntax based folding can be enabled by adding the following lines to the file +'~/.vim/syntax/c.vim': + + syn region cBlock start="{" end="}" transparent fold + set foldmethod=syntax + " initially all folds open: + set foldlevel=999 + +You may have to create this file first. See |folding| for more information. + +============================================================================== +9. WINDOWS PARTICULARITIES *csupport-windows* +============================================================================== + +The plugin should go into the directory structure below the local +installation directory $HOME/.vim/ for LINUX/UNIX and $VIM/vimfiles/ for +Windows. +The values of the two variables can be found from inside Vim: + :echo $VIM +or + :echo $HOME + +Configuration files: + + LINUX/UNIX : $HOME/.vimrc and $HOME/.gvimrc + Windows : $VIM/_vimrc and $VIM/_gvimrc + +Compiler settings: + +It could be necessary to add further settings for your compiler. To compile +C++-programs using a Dev-C++ installation (http://www.bloodshed.net) the +following item in $VIM/_vimrc is needed (depends on the Dev-C++ install +directory): + + let g:C_CFlags = '-Wall -g -o0 -c -I c:\programs\dev-c++\include\g++' + +============================================================================== +10. TROUBLESHOOTING *csupport-troubleshooting* +============================================================================== + +* I do not see any new main menu item. + - Was the archive extracted into the right directory? + +* How can I see what was loaded? + - Use ':scriptnames' from the Vim command line. + +* No main menu item. + - Loading of plugin files must be enabled. If not use + :filetype plugin on + This is the minimal content of the file '$HOME/.vimrc'. Create one if there + is none, or better use customization.vimrc. + +* Most key mappings do not work. + - They are defined in a filetype plugin in '$HOME/.vim/ftplugin/'. Use ':filetype' + to check if filetype plugins are enabled. If not, add the line + filetype plugin on + to the file '~/.vimrc'. + +* Some hotkeys do not work. + - The hotkeys might be in use by your graphical desktop environment. + Under KDE Ctrl-F9 is the hotkey which let you switch to the 9. desktop. + The key settings can usually be redefined. + +* Splint and/or CodeCheck menu item not visible. + - The program is not installed or not found (path not set) or not executable. + +============================================================================== +11. RELEASE NOTES *csupport-release-notes* +============================================================================== +See file c-support/doc/ChangeLog . + +============================================================================== +vim:tw=78:noet:ts=2:ft=help:norl: diff --git a/dotfiles/.vim/doc/fugitive.txt b/dotfiles/.vim/doc/fugitive.txt @@ -0,0 +1,226 @@ +*fugitive.txt* A Git wrapper so awesome, it should be illegal + +Author: Tim Pope <vimNOSPAM@tpope.org> *fugitive-author* +License: Same terms as Vim itself (see |license|) + +This plugin is only available if 'compatible' is not set. + +INTRODUCTION *fugitive* + +Install in ~/.vim, or in ~\vimfiles if you're on Windows and feeling lucky. +Vim 7.2 is recommended as it ships with syntax highlighting for many Git file +types. + +If you're in a hurry to get started, here are some things to try: + +In any file in your repository, run |:Gedit| HEAD. Press <CR> to jump to the +current branch. Press <CR> again to jump to the top most commit. Keep using +<CR> to explore parent commits, trees, and blobs. Use C in a tree or blob to +get back to the commit. + +Edit a file in the work tree and make some changes. Use |:Gdiff| to open up +the indexed version. Use |do| and |dp| on various hunks to bring the files in +sync, or use |:Gread| to pull in all changes. Write the indexed version to +stage the file. + +Run |:Gstatus| to check your repository's status. Use "-" to stage and reset +files and "p" to add/reset --patch them. Invoke |:Gcommit| to commit your +changes. + +Run |:Gblame| in a work tree file to see a blame in a vertical split. Press +<CR> on any line to reopen and reblame that file as it stood in that commit. +Press o or O on any line to inspect that commit in a split or a tab. + +Run |:Ggrep| to search the work tree or history. Run |:Gmove| to rename a +file. Run |:Gremove| to delete a file. + +COMMANDS *fugitive-commands* + +These commands are local to the buffers in which they work (generally, buffers +that are part of Git repositories). + + *fugitive-:Git* +:Git [args] Run an arbitrary git command. Similar to :!git [args] + but chdir to the repository tree first. + + *fugitive-:Gcd* +:Gcd [directory] |:cd| relative to the repository. + + *fugitive-:Glcd* +:Glcd [directory] |:lcd| relative to the repository. + + *fugitive-:Gstatus* +:Gstatus Bring up the output of git-status in the preview + window. In addition to standard motions, you can + use <C-N> and <C-P> to jump from filename to + filename. Press D to |:Gdiff| the file on the cursor + line, or dh to |:Gdiff!|. Press - to stage or unstage + the file on the cursor line. Press p to do so on a + per hunk basis (--patch). Press C to invoke + |:Gcommit|. + + *fugitive-:Gcommit* +:Gcommit [args] A wrapper around git-commit. If there is nothing + to commit, |:Gstatus| is called instead. Unless the + arguments given would skip the invocation of an editor + (e.g., -m), a split window will be used to obtain a + commit message. Write and close that window (:wq or + |:Gwrite|) to finish the commit. Unlike when running + the actual git-commit command, it is possible (but + unadvisable) to muck with the index with commands like + git-add and git-reset while a commit message is + pending. + + *fugitive-:Ggrep* +:Ggrep [args] |:grep| with git-grep as 'grepprg'. + + *fugitive-:Glog* +:Glog [args] Load all previous revisions of the current file into + the quickfix list. Additional git-log arguments can + be given (for example, --reverse). If "--" appears as + an argument, no file specific filtering is done, and + commits are loaded into the quickfix list. + + *fugitive-:Gedit* *fugitive-:Ge* +:Gedit [revision] |:edit| a |fugitive-revision|. + + *fugitive-:Gsplit* +:Gsplit [revision] |:split| a |fugitive-revision|. + + *fugitive-:Gvsplit* +:Gvsplit [revision] |:vsplit| a |fugitive-revision|. + + *fugitive-:Gtabedit* +:Gtabedit [revision] |:tabedit| a |fugitive-revision| + + *fugitive-:Gpedit* +:Gpedit [revision] |:pedit| a |fugitive-revision| + + *fugitive-:Gread* +:Gread [revision] Empty the buffer and |:read| a |fugitive-revision|. + When the argument is omitted, this is similar to + git-checkout on a work tree file or git-add on a stage + file, but without writing anything to disk. + +:{range}Gread [revision] + |:read| in a |fugitive-revision| after {range}. + + *fugitive-:Gread!* +:Gread! [revision] Deprecated synonym for |:Gread|. + + *fugitive-:Gwrite* +:Gwrite Write to the current file's path and stage the results. + When run in a work tree file, it is effectively git + add. Elsewhere, it is effectively git-checkout. A + great deal of effort is expended to behave sensibly + when the work tree or index version of the file is + open in another buffer. + +:Gwrite {path} You can give |:Gwrite| an explicit path of where in + the work tree to write. You can also give a path like + :0:foo.txt or even :0 to write to just that stage in + the index. + + *fugitive-:Gdiff* +:Gdiff [revision] Perform a |vimdiff| against the current file in the + given revision. With no argument, the version in the + index is used (which means a three-way diff during a + merge conflict, making it a git-mergetool + alternative). The newer of the two files is placed + to the right. Use |do| and |dp| and write to the + index file to simulate "git add --patch". + + *fugitive-:Gdiff!* +:Gdiff! [revision] Like |:Gdiff|, but split horizontally. + + *fugitive-:Gmove* +:Gmove {destination} Wrapper around git-mv that renames the buffer + afterward. The destination is relative to the current + directory except when started with a /, in which case + it is relative to the work tree. Add a ! to pass -f. + + *fugitive-:Gremove* +:Gremove Wrapper around git-rm that deletes the buffer + afterward. When invoked in an index file, --cached is + passed. Add a ! to pass -f and forcefully discard the + buffer. + + *fugitive-:Gblame* +:Gblame [flags] Run git-blame on the file and open the results in a + scroll bound vertical split. Press enter on a line to + reblame the file as it was in that commit. You can + give any of ltwfsMC as flags and they will be passed + along to git-blame. + +:[range]Gblame [flags] Run git-blame on the given range. + +MAPPINGS *fugitive-mappings* + +These maps are available in Git objects. + + *fugitive-<CR>* +<CR> Jump to the revision under the cursor. + + *fugitive-o* +o Jump to the revision under the cursor in a new split. + + *fugitive-O* +O Jump to the revision under the cursor in a new tab. + + *fugitive-~* +~ Go to the current file in the [count]th first + ancestor. + + *fugitive-P* +P Go to the current file in the [count]th parent. + + *fugitive-C* +C Go to the commit containing the current file. + + *fugitive-a* +a Show the current tag, commit, or tree in an alternate + format. + +SPECIFYING REVISIONS *fugitive-revision* + +Fugitive revisions are similar to Git revisions as defined in the "SPECIFYING +REVISIONS" section in the git-rev-parse man page. For commands that accept an +optional revision, the default is the file in the index for work tree files +and the work tree file for everything else. Example revisions follow. + +Revision Meaning ~ +HEAD .git/HEAD +master .git/refs/heads/master +HEAD^{} The commit referenced by HEAD +HEAD^ The parent of the commit referenced by HEAD +HEAD: The tree referenced by HEAD +/HEAD The file named HEAD in the work tree +Makefile The file named Makefile in the work tree +HEAD^:Makefile The file named Makefile in the parent of HEAD +:Makefile The file named Makefile in the index (writable) +- The current file in HEAD +^ The current file in the previous commit +~3 The current file 3 commits ago +: .git/index (Same as |:Gstatus|) +:0 The current file in the index +:1 The current file's common ancestor during a conflict +:2 The current file in the target branch during a conflict +:3 The current file in the merged branch during a conflict +:/foo The most recent commit with "foo" in the message + +STATUSLINE *fugitive-statusline* + + *fugitive#statusline()* +Add %{fugitive#statusline()} to your statusline to get an indicator including +the current branch and the currently edited file's commit. If you don't have +a statusline, this one matches the default when 'ruler' is set: +> + set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P +< +ABOUT *fugitive-about* + +Grab the latest version or report a bug on GitHub: + +http://github.com/tpope/vim-fugitive + + vim:tw=78:et:ft=help:norl: diff --git a/dotfiles/.vim/doc/omnicppcomplete.txt b/dotfiles/.vim/doc/omnicppcomplete.txt @@ -0,0 +1,1078 @@ +*omnicppcomplete.txt* Plugin for C/C++ omnicompletion +*omnicppcomplete* + +Author: Vissale NEANG (fromtonrouge AT gmail DOT com) +Last Change: 26 sept. 2007 + +OmniCppComplete version 0.41 + +For Vim version 7.0 and above + +============================================================================== + +1. Overview |omnicpp-overview| +2. Downloads |omnicpp-download| +3. Installation |omnicpp-installation| +4. Options |omnicpp-options| +5. Features |omnicpp-features| +6. Limitations |omnicpp-limitations| +7. FAQ & TIPS |omnicpp-faq| +8. History |omnicpp-history| +9. Thanks |omnicpp-thanks| + +============================================================================== +1. Overview~ + *omnicpp-overview* +The purpose of this script is to provide an 'omnifunc' function for C and C++ +language. In a C++ file, while in insert mode, you can use CTRL-X CTRL-O to: + + * Complete namespaces, classes, structs and unions + * Complete attribute members and return type of functions + * Complete the "this" pointer + * Complete an object after a cast (C and C++ cast) + * Complete typedefs and anonymous types + +You can set a "may complete" behaviour to start a completion automatically +after a '.', '->' or '::'. Please see |omnicpp-may-complete| for more details. + +The script needs an |Exuberant_ctags| database to work properly. + +============================================================================== +2. Downloads~ + *omnicpp-download* +You can download the latest release of the script from this url : + + http://www.vim.org/scripts/script.php?script_id=1520 + +You can download |Exuberant_ctags| from : + + http://ctags.sourceforge.net + +============================================================================== +3. Installation~ + *omnicpp-installation* +3.1. Script installation~ + +Unzip the downloaded file in your personal |vimfiles| directory (~/.vim under +unix or %HOMEPATH%\vimfiles under windows). The 'omnifunc' will be +automatically set for C and C++ files. + +You also have to enable plugins by adding these two lines in your|.vimrc|file: > + + set nocp + filetype plugin on +< +Please see |cp| and |filetype-plugin-on| sections for more details. + +3.1.1. Files~ + +After installation you should find these files : + + after\ftplugin\cpp.vim + after\ftplugin\c.vim + + autoload\omni\common\debug.vim + \utils.vim + + autoload\omni\cpp\complete.vim + \includes.vim + \items.vim + \maycomplete.vim + \namespaces.vim + \settings.vim + \tokenizer.vim + \utils.vim + + doc\omnicppcomplete.txt + +3.2. Building the Exuberant Ctags database~ + +To extract C/C++ symbols information, the script needs an |Exuberant_ctags| +database. + +You have to build your database with at least the following options: + --c++-kinds=+p : Adds prototypes in the database for C/C++ files. + --fields=+iaS : Adds inheritance (i), access (a) and function + signatures (S) information. + --extra=+q : Adds context to the tag name. Note: Without this + option, the script cannot get class members. + +Thus to build recursively a ctags database from the current directory, the +command looks like this: +> + ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . +< +You can add a map in your |.vimrc| file, eg: > + + map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR> +< +Or you can add these options in your ctags config file (~/.ctags under unix or +%HOMEPATH%\ctags.cnf under windows) and execute the command : > + + :!ctags -R . +< +If your project contains files of other languages you may add the following +options: + --languages=c++ : Builds only the tags for C++ files. + +If your project contains macros you may also use the -I option. + +Please read the ctags help or ctags man page for more details. + +3.3. Setting the 'tags' option~ + +The default value of the option 'tags' is "./tags,tags" ("./tags,./TAGS,tags,TAGS" +when |+emacs_tags| is enabled), if you build your tag database with the cmd above, +you normally don't have to change this setting (The cmd used above generates a +file with the name "tags"). In this case your current working directory must be +the directory where the tags file reside. + +Note: When |+emacs_tags| is enabled, the script may display members twice, it's + recommended to set tags to "./tags,tags' or "./TAGS,TAGS". + +If your tags file is not named "tags" you have to add it in the 'tags' +option eg: > + + set tags+=/usr/tagsdir/mytagfile +< +You can ensure that the 'tags' option is set properly by executing the following +command: > + + :tselect MyClass +< +Where MyClass is a class of your project. This command should display all +possible tags for the type MyClass. + +3.4. Simple test~ + +Now you can do a simple test. Edit a C++ file and write the simplest case : > + + MyClass myObject; + myObject.<C-X><C-O> +< +You should see class members of MyClass. + +============================================================================== +4. Options~ + *omnicpp-options* + +You can change completion behaviour by setting script options in your |.vimrc| +configuration file. + +4.1. Global scope search toggle~ + *OmniCpp_GlobalScopeSearch* + +You can enable/disable the global scope search by setting the +OmniCpp_GlobalScopeSearch option. + +Possible values are : + 0 = disabled + 1 = enabled + [default=1] > + + let OmniCpp_GlobalScopeSearch = 1 +< +4.2. Namespace search method~ + *OmniCpp_NamespaceSearch* + +You can change the 'using namespace' search behaviour by setting the +OmniCpp_NamespaceSearch option. + +Possible values are : + 0 = namespaces disabled + 1 = search namespaces in the current buffer + 2 = search namespaces in the current buffer and in included files + [default=1] > + + let OmniCpp_NamespaceSearch = 1 +< +When OmniCpp_NamespaceSearch is 2, "using namespace" declarations are parsed +in the current buffer and also in included files. To find included files, the +script use the vim env 'path', so you have to set it properly. + +Note: included files are searched with lvimgrep, thus the location list of the +current window is changed. + +Note: When the 'filetype' is "c", namespace search is always disabled even if +OmniCpp_NamespaceSearch != 0 + +4.3. Class scope completion mode~ + *OmniCpp_DisplayMode* + +When you are completing a class scope (eg: MyClass::<C-X><C-O>), depending on +the current scope, you may see sometimes static, public, protected or private +members and sometimes you may see all members. By default the choice is done +automatically by the script but you can override it with the +OmniCpp_DisplayMode option. + +Note: This option can be use when you have friend classes in your project (the +script does not support friend classes). + +Possible values are : + 0 = auto + 1 = always show all members + [default=0] > + + let OmniCpp_DisplayMode = 0 +< +4.4. Show scope in abbreviation~ + *OmniCpp_ShowScopeInAbbr* + +By default, in the |omnicpp-popup| menu, you will see the scope of a match in +the last column. You can remove this column and add the scope at the beginning +of match abbreviation. +eg: + +OmniCpp_ShowScopeInAbbr = 0 + +-------------------------------------+ + |method1( f + MyNamespace::MyClass| + |_member1 m + MyNamespace::MyClass| + |_member2 m # MyNamespace::MyClass| + |_member3 m - MyNamespace::MyClass| + +-------------------------------------+ + +OmniCpp_ShowScopeInAbbr = 1 + +-------------------------------------+ + |MyNamespace::MyClass::method1( f + | + |MyNamespace::MyClass::_member1 m + | + |MyNamespace::MyClass::_member2 m # | + |MyNamespace::MyClass::_member3 m - | + +-------------------------------------+ + +Possible values are : + 0 = don't show scope in abbreviation + 1 = show scope in abbreviation and remove the last column + [default=0] > + + let OmniCpp_ShowScopeInAbbr = 0 +< +4.5. Show prototype in abbreviation~ + *OmniCpp_ShowPrototypeInAbbr* + +This option allows to display the prototype of a function in the abbreviation +part of the popup menu. + +Possible values are: + 0 = don't display prototype in abbreviation + 1 = display prototype in abbreviation + [default=0] > + + let OmniCpp_ShowPrototypeInAbbr = 0 +< +4.6. Show access~ + *OmniCpp_ShowAccess* + +This option allows to show/hide the access information ('+', '#', '-') in the +popup menu. + +Possible values are: + 0 = hide access + 1 = show access + [default=1] > + + let OmniCpp_ShowAccess = 1 + +4.7. Default using namespace list~ + *OmniCpp_DefaultNamespaces* + +When |OmniCpp_NamespaceSearch| is not 0, the script will parse using namespace +declarations in the current buffer and maybe in included files. +You can specify manually a default namespace list if you want with the +OmniCpp_DefaultNamespaces option. Each item in the list is a namespace name. +eg: If you have + + let OmniCpp_DefaultNamespaces = ["std", "MyNamespace"] + + It will be the same as inserting this declarations at the top of the + current buffer : + + using namespace std; + using namespace MyNamespace; + +This option can be use if you don't want to parse using namespace declarations +in included files and want to add namespaces that are always used in your +project. + +Possible values are : + List of String + [default=[]] > + + let OmniCpp_DefaultNamespaces = [] +< +4.8. May complete behaviour~ + *omnicpp-may-complete* + +This feature allows you to run automatically a completion after a '.', '->' +or '::'. By default, the "may complete" feature is set automatically for '.' +and '->'. The reason to not set this feature for the scope operator '::' is +sometimes you don't want to complete a namespace that contains many members. + +To enable/disable the "may complete" behaviour for dot, arrow and scope +operator, you can change the option OmniCpp_MayCompleteDot, +OmniCpp_MayCompleteArrow and OmniCpp_MayCompleteScope respectively. + + *OmniCpp_MayCompleteDot* +Possible values are : + 0 = May complete disabled for dot + 1 = May complete enabled for dot + [default=1] > + + let OmniCpp_MayCompleteDot = 1 +< + *OmniCpp_MayCompleteArrow* +Possible values are : + 0 = May complete disabled for arrow + 1 = May complete enabled for arrow + [default=1] > + + let OmniCpp_MayCompleteArrow = 1 +< + *OmniCpp_MayCompleteScope* +Possible values are : + 0 = May complete disabled for scope + 1 = May complete enabled for scope + [default=0] > + + let OmniCpp_MayCompleteScope = 0 +< + +Note: You can obviously continue to use <C-X><C-O> + +4.9. Select/Don't select first popup item~ + *OmniCpp_SelectFirstItem* + +Note: This option is only used when 'completeopt' does not contain "longest". + +When 'completeopt' does not contain "longest", Vim automatically select the +first entry of the popup menu. You can change this behaviour with the +OmniCpp_SelectFirstItem option. + +Possible values are: + 0 = don't select first popup item + 1 = select first popup item (inserting it to the text) + 2 = select first popup item (without inserting it to the text) + [default=0] > + + let OmniCpp_SelectFirstItem = 0 + +4.10 Use local search function for variable definitions~ + *OmniCpp_LocalSearchDecl* + +The internal search function for variable definitions of vim requires that the +enclosing braces of the function are located in the first column. You can +change this behaviour with the OmniCpp_LocalSearchDecl option. The local +version works irrespective the position of braces. + +Possible values are: + 0 = use standard vim search function + 1 = use local search function + [default=0] > + +============================================================================== +5. Features~ + *omnicpp-features* +5.1. Popup menu~ + *omnicpp-popup* +Popup menu format: + +-------------------------------------+ + |method1( f + MyNamespace::MyClass| + |_member1 m + MyNamespace::MyClass| + |_member2 m # MyNamespace::MyClass| + |_member3 m - MyNamespace::MyClass| + +-------------------------------------+ + ^ ^ ^ ^ + (1) (2)(3) (4) + +(1) name of the symbol, when a match ends with '(' it's a function. + +(2) kind of the symbol, possible kinds are : + * c = classes + * d = macro definitions + * e = enumerators (values inside an enumeration) + * f = function definitions + * g = enumeration names + * m = class, struct, and union members + * n = namespaces + * p = function prototypes + * s = structure names + * t = typedefs + * u = union names + * v = variable definitions + +(3) access, possible values are : + * + = public + * # = protected + * - = private +Note: enumerators have no access information + +(4) scope where the symbol is defined. +Note: If the scope is empty it's a global symbol +Note: anonymous scope may end with __anon[number] +eg: If you have an anonymous enum in MyNamespace::MyClass : > + + namespace MyNamespace + { + class MyClass + { + private: + + enum + { + E_ENUM0, + E_ENUM1, + E_ENUM2 + }; + }; + } +< + +You should see : + + +----------------------------------------------+ + |E_ENUM0 e MyNamespace::MyClass::__anon1| + |E_ENUM1 e MyNamespace::MyClass::__anon1| + |E_ENUM2 e MyNamespace::MyClass::__anon1| + +----------------------------------------------+ + ^ + __anon[number] + +5.2. Global scope completion~ + +The global scope completion allows you to complete global symbols for the base +you are currently typing. The base can start with '::' or not. +Note: Global scope completion only works with a non empty base, if you run a +completion just after a '::' the completion will fail. The reason is that if +there is no base to complete the script will try to display all the tags in +the database. For small project it could be not a problem but for others you +may wait 5 minutes or more for a result. + +eg1 : > + + pthread_cr<C-X><C-O> => pthread_create +< +Where pthread_create is a global function. +eg2: > + ::globa<C-X><C-O> => ::global_func( + +----------------+ + |global_func( f| + |global_var1 v| + |global_var2 v| + +----------------+ +< +Where global_var1, global_var2 and global_func are global symbols +eg3: > + ::<C-X><C-O> => [NO MATCH] +< +No match because a global completion from an empty base is not allowed. + +5.3. Namespace scope completion~ + +You can complete namespace members after a 'MyNamespace::'. Contrary to global +scope completion you can run a completion from an empty base. +Possible members are: + * Namespaces + * Classes + * Structs + * Unions + * Enums + * Functions + * Variables + * Typedefs + +eg: > + MyNamespace::<C-X><C-O> + +--------------------------------+ + |E_ENUM0 e MyNamespace| + |E_ENUM1 e MyNamespace| + |E_ENUM2 e MyNamespace| + |MyClass c MyNamespace| + |MyEnum g MyNamespace| + |MyStruct s MyNamespace| + |MyUnion u MyNamespace| + |SubNamespace n MyNamespace| + |doSomething( f MyNamespace| + |myVar v MyNamespace| + |something_t t MyNamespace| + +--------------------------------+ + +5.4. Class scope completion~ + +You can complete class members after a 'MyClass::'. Contrary to global scope +completion you can run a completion from an empty base. +By default, there is two behaviours for class scope completion. + + a) Completion of a base class of the current class scope + + When you are completing a base class of the current class scope, you + will see all members of this class in the popup menu. + eg: > + + class A + { + public: + enum + { + E_ENUM0, + E_ENUM1, + E_ENUM2, + }; + + void func1(); + static int _staticMember; + + private: + int _member; + }; + + class B : public A + { + public: + void doSomething(); + }; + + + void MyClassB::doSomething() + { + MyClassA::<C-X><C-O> + +---------------------------+ + |E_ENUM0 e MyClassA| + |E_ENUM1 e MyClassA| + |E_ENUM2 e MyClassA| + |func1( f + MyClassA| + |_member m - MyClassA| + |_staticMember m + MyClassA| + +---------------------------+ + } +< + + b) Completion of a non base class of the current class scope + + When you are completing a class that is not a base class of the + current class you will see only enumerators and static members. + eg: > + + class C + { + public: + void doSomething(); + }; + + void MyClassC::doSomething() + { + MyClassA::<C-X><C-O> + +---------------------------+ + |E_ENUM0 e MyClassA| + |E_ENUM1 e MyClassA| + |E_ENUM2 e MyClassA| + |_staticMember m + MyClassA| + +---------------------------+ + } +< +You can override the default behaviour by setting the +|OmniCpp_DisplayMode| option. + +5.5. Current scope completion~ + +When you start a completion from an empty instruction you are in "Current +scope completion" mode. You will see possible members of each context in +the context stack. +eg: > + void MyClass::doSomething() + { + using namespace MyNamespace; + using namespace SubNamespace; + + // You will see members of each context in the context stack + // 1) MyClass members + // 2) MyNamespace::SubNamespace members + // 3) MyNamespace members + + <C-X><C-O> + +------------------------------------------+ + |_member1 m + MyClass | + |_member2 m # MyClass | + |func1( f MyNamespace::SubNamespace| + |var v MyNamespace::SubNamespace| + |func1( f MyNamespace | + |var v MyNamespace | + +------------------------------------------+ + } +< + +5.6. Class, Struct and Union members completion~ + +You can complete members of class, struct and union instances after a '->' or +'.'. +eg: > + MyClass myObject; + myObject.<C-X><C-O> + +-----------------------+ + |_member1 m + MyClass | + |_member2 m # MyClass | + +-----------------------+ +< + +5.7. Attribute members and returned type completion~ + +You can complete a class member or a return type of a function. +eg: > + MyClass myObject; + + // Completion of the member _member1 + myObject._member1-><C-X><C-O> + +------------------------+ + |get( m + AnotherClass1| + +------------------------+ + + // Completion of the return type of the function get() + myObject._member1->get()-><C-X><C-O> + +--------------------------+ + |_member1 m + AnotherClass2| + |_member2 m # AnotherClass2| + |_member3 m - AnotherClass2| + +--------------------------+ + +5.8. Anonymous type completion~ + +Note: To use this feature you need at least|Exuberant_ctags| version 5.6 + +You can complete an anonymous type like this : > + struct + { + int a; + int b; + int c; + }globalVar; + + void func() + { + globalVar.<C-X><C-O> + +---------------+ + |a m + __anon1| + |b m + __anon1| + |c m + __anon1| + +---------------+ + } +< +Where globalVar is a global variable of an anonymous type + +5.9. Typedef completion~ + +You can complete a typedef. The typedef is resolved recursively, thus typedef +of typedef of... may not be a problem. + +You can also complete a typedef of an anonymous type, eg : > + typedef struct + { + int a; + int b; + int c; + }something_t; + + something_t globalVar; + + void func() + { + globalVar.<C-X><C-O> + +---------------+ + |a m + __anon1| + |b m + __anon1| + |c m + __anon1| + +---------------+ + } +< +Where globalVar is a global variable of typedef of an anonymous type. + +5.10. Completion of the "this" pointer~ + +You can complete the "this" pointer. +eg: > + this-><C-X><C-O> + +-----------------------+ + |_member1 m + MyClass | + |_member2 m # MyClass | + +-----------------------+ + + (*this).<C-X><C-O> + +-----------------------+ + |_member1 m + MyClass | + |_member2 m # MyClass | + +-----------------------+ +< + +5.11. Completion after a cast~ + +You can complete an object after a C or C++ cast. +eg: > + // C cast style + ((AnotherStruct*)pStruct)-><C-X><C-O> + + // C++ cast style + static_cast<AnotherStruct*>(pStruct)-><C-X><C-O> +< + +5.12. Preview window~ + +If the 'completeopt' option contains the setting "preview" (this is the +default value), you will see a preview window during the completion. +This window shows useful information like function signature, filename where +the symbol is define etc... + +The preview window contains tag information, the list below is non exhaustive. + + * name : name of the tag + * cmd : regexp or line number that helps to find the tag + * signature : signature for prototypes and functions + * kind : kind of the tag (eg: namespace, class etc...) + * access : access information (eg: public, protected, private) + * inherits : list of base classes + * filename : filename where the tag is define + +5.13. Code tokenization~ + +When you start a completion, the current instruction is tokenized ignoring +spaces, tabs, carriage returns and comments. Thus you can complete a symbol +even if the current instruction is on multiple lines, has comments between +words etc... : +eg: this case is unrealistic but it's just for illustration > + + myObject [ 0 ]/* Why is there a comment here ?*/ + ->_member + -> <C-X><C-O> +< + +============================================================================== +6. Limitations~ + *omnicpp-limitations* +Some C++ features are not supported by the script, some implemented features +may not work properly in some conditions. They are multiple reasons like a +lack of information in the database, performance issues and so on... + +6.1. Attribute members and returned type completion~ + +To work properly, the completion of attribute members and returned type of +functions depends on how you write your code in the class declaration. +Because the tags database does not contain information like return type or +type of a member, the script use the cmd information of the tag to determine +the type of an attribute member or the return type of a function. + +Thus, because the cmd is a regular expression (or line number for #define) if +you write your code like this : > + + class MyClass + { + public: + + MyOtherClass + _member; + }; +< +The type of _member will not be recognized, because the cmd will be +/^ _member;$/ and does not contain the type MyOtherClass. +The correct case should be : > + + class MyClass + { + public: + + MyOtherClass _member; + }; +< +It's the same problem for return type of function : > + + class MyClass + { + public: + + MyOtherClass + getOtherClass(); + }; +< +Here the cmd will be /^ getOtherClass();$/ and the script won't find the +return type. +The correct case should be : > + class MyClass + { + public: + + MyOtherClass getOtherClass(); + }; +< + +6.2. Static members~ + +It's the same problem as above, tags database does not contain information +about static members. The only fast way to get this information is to use the +cmd. + +6.3. Typedef~ + +It's the same problem as above, tags database does not contain information +about the type of a typedef. The script use the cmd information to resolve the +typedef. + +6.4. Restricted inheritance access~ + +Tags database contains inheritance information but unfortunately inheritance +access are not available. We could use the cmd but we often find code +indentation like this : > + + class A : + public B, + protected C, + private D + { + }; +< +Here the cmd will be /^class A :$/, we can't extract inheritance access. + +6.5. Using namespace parsing~ + +When you start a completion, using namespace declarations are parsed from the +cursor position to the first scope to detect local using namespace +declarations. After that, global using namespace declarations are parsed in the +file and included files. + +There is a limitation for global using namespace detection, for performance +issues only using namespace that starts a line will be detected. + +6.6. Friend classes~ + +Tags database does not contain information about friend classes. The script +does not support friend classes. + +6.7. Templates~ + +At the moment, |Exuberant_ctags| does not provide additional information for +templates. That's why the script does not handle templates. + +============================================================================== +7. FAQ & TIPS~ + *omnicpp-faq* + +* How to complete STL objects ? + If you have some troubles to generate a good ctags database for STL you + can try this solution : + + 1) Download SGI's STL from SGI's site + (http://www.sgi.com/tech/stl/download.html) + 2) Replace all __STL_BEGIN_NAMESPACE by "namespace std {" and + __STL_END_NAMESPACE by "}" from header and source files. (with Vim, + or with tar and sed or another tool) + 3) Run ctags and put the generated tags file in a directory eg: + ~/MyTags/stl.tags + 4) set tags+=~/MyTags/stl.tags + + The main problem is that you can't tell to ctags that + __STL_BEGIN_NAMESPACE = "namespace std {" even with the option -I. + That's why you need the step 2). + + Here is another solution if you have STL sources using _GLIBCXX_STD macro + (Tip by Nicola Bonelli) : > + + let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] +< +* How to close automatically the preview window after a completion ? + (Tip by Kamil Renczewski) + + You can add to your |vimrc| the following lines : > + + autocmd CursorMovedI * if pumvisible() == 0|pclose|endif + autocmd InsertLeave * if pumvisible() == 0|pclose|endif +< +============================================================================== +8. History~ + *omnicpp-history* +Version O.41 + - It's recommended to update ctags to version 5.7 or higher + - The plugin is now activated for C files + - New value for OmniCpp_SelectFirstItem when the option is equal to + 2 the first item is selected without inserting it to + the text (patch from Marek Olszewski) + - Bug when completing union members fixed with ctags 5.7 + (reported by Willem-Jan de Hoog) + - New option OmniCpp_LocalSearchDecl (patch from Roland Kuck) + - Bug when tags=something,,somethingelse (reported by Tobias Pflug) + - Bug with nested structure (reported by Mikhail Daen) + - Bug where the script fails to detect the type of a variable when + the ignorecase option is on (reported by Alexey Vakhov) + - Error message when trying to use completion on a not yet saved + Vim buffer (reported by Neil Bird) + - Error message when trying to use completion on an file opened from + a tselect command (reported by Henrique Andrade) + +Version 0.4 + - The script is renamed to OmniCppComplete according to the library + script directory structure. + - OmniCpp_ClassScopeCompletionMethod renamed to OmniCpp_DisplayMode + - Fixed a bug where the quickfix list is modified after a completion. + - OmniCpp_ShowPrototypeInAbbr option added. It allows to show the + function signature in the abbreviation. + - OmniCpp_ShowAccess option added. It allows to hide the access + information in the popup menu. + - The tags database format must be a ctags 5.6 database if you want to + complete anonymous types. + - Fixed current scope detection not working properly in destructors. + - Don't show protected and private members according to the current scope. + - Overloaded functions are now filtered properly. + - New cache system using less memory. + - The class scope of a method is now resolved properly with "using + namespace" declarations. + - OmniCpp_SelectFirstItem option added. It allows to not select the first + item in the popup menu when 'completeopt' does not contain "longest". + - Fixed the bug where a "random" item in the popup menu is selected + by default when 'completeopt' does not contain "longest" option. + - The script is now split in library scripts. + - Cache added for 'using namespace' search in included files + - Default value for OmniCpp_NamespaceSearch is now 1 (search only in the + current buffer). + - Namespace search automatically disabled for C files even if + OmniCpp_NamespaceSearch != 0. + - To avoid linear search in tags files, the ignorecase option is now + disabled when getting tags datas (the user setting is restored after). + - Fixed a bug where friend functions may crash the script and also crash vim. + +Version 0.32 + - Optimizations in search members methods. + - 'May complete' behaviour is now set to default for dot '.' and arrow + '->' (mappings are set in after/ftplugin/cpp.vim) + - Fixed the option CppOmni_ShowScopeInAbbr not detected after the first + completion. + - Exceptions catched from taglist() when a tag file is corrupted. + - Fixed a bug where enumerators in global scope didn't appear in the + popup menu. + +Version 0.31 + WARNING: For this release and future releases you have to build your tags + database with this cmd : + "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ." + Please read installation instructions in the documentation for details + + - May complete added, please see installation notes for details. + - Fixed a bug where the completion works while in a comment or in a string. + +Version 0.3 + WARNING: For this release and future releases you have to build your tags + database with this cmd : + "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ." + Please read installation instructions in the documentation for details + + - Documentation added. + - Fixed a bug where typedefs were not correctly resolved in namespaces + in some cases. + - Fixed a bug where the type can not be detected when we have a decl + like this: class A {}globalVar; + - Fixed a bug in type detection where searchdecl() (gd) find + incorrect declaration instruction. + - Global scope completion now only works with non-empty base. + - Using namespace list is now parsed in the current buffer and in + included files. + - Fixed a bug where the completion fails in some cases when the user + sets the ignorecase to on + - Preview window information added + - Some improvements in type detection, the type can be properly detected + with a declaration like this: + 'Class1 *class1A = NULL, **class1B = NULL, class1C[9], class1D[1] = {};' + - Fixed a bug where parent scopes were not displayed in the popup menu + in the current scope completion mode. + - Fixed a bug where an error message was displayed when the last + instruction was not finished. + - Fixed a bug where the completion fails if a punctuator or operator was + immediately after the cursor. + - The script can now detect parent contexts at the cursor position + thanks to 'using namespace' declarations. + It can also detect ambiguous namespaces. They are not included in + the context list. + - Fixed a bug where the current scope is not properly detected when + a file starts with a comment + - Fixed a bug where the type is not detected when we have myObject[0] + - Removed the system() call in SearchMembers(), no more calls to the + ctags binary. The user have to build correctly his database with the cmd: + "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ." + - File time cache removed, the user have to rebuild his data base after a + modification. + +Version 0.22 + - Completion of unnamed type (eg: You can complete g_Var defined like + this 'struct {int a; int b;}g_Var;'). It also works for a typedef of + an unnamed type (eg: 'typedef struct {int a; int b;}t_mytype; t_mytype + g_Var;'). + - Tag file's time cache added, if a tag file has changed the global + scope result cache is cleared. + - Fixed a bug where the tokenization process enter in an infinite loop + when a file starts with '/*'. + +Version 0.21 + - Improvements on the global scope completion. + The user can now see the progression of the search and complete + matches are stored in a cache for optimization. The cache is cleared + when the tag env is modified. + - Within a class scope when the user complete an empty word, the popup + menu displays the members of the class then members of the global + scope. + - Fixed a bug where a current scope completion failed after a punctuator + or operator (eg: after a '=' or '!='). + +Version 0.2 + - Improvements in type detection (eg: when a variable is declared in a + parameter list, a catch clause, etc...) + - Code tokenization => ignoring spaces, tabs, carriage returns and comments + You can complete a code even if the instruction has bad + indentation, spaces or carriage returns between words + - Completion of class members added + - Detection of the current scope at the cursor position. + If you run a completion from en empty line, members of the current + scope are displayed. It works on the global namespace and the current + class scope (but there is not the combination of the 2 for the moment) + - Basic completion on the global namespace (very slow) + - Completion of returned type added + - this pointer completion added + - Completion after a cast added (C and C++ cast) + - Fixed a bug where the matches of the complete menu are not filtered + according to what the user typed + - Change the output of the popup menu. The type of the member + (function, member, enum etc...) is now display as a single letter. + The access information is display like this : '+' for a public member + '#' for a protected member and '-' for a private member. + The last information is the class, namespace or enum where the member is define. + +Version 0.12: + - Complete check added to the search process, you can now cancel + the search during a complete search. + +Version 0.1: + - First release + +============================================================================== +9. Thanks~ + *omnicpp-thanks* + * For advices, bug report, documentation, help, ideas : + Alexey Vakhov (bug report) + Arthur Axel "fREW" Schmidt (documentation) + Dennis Lubert (bug report) + Henrique Andrade (bug report) + Kamil Renczewski (tips) + Marek Olszewski (patch) + Markus Trenkwalder (bug report) + Martin Stubenschrott (bug report) + Mikhail Daen (bug report) + Neil Bird (bug report) + Nicola Bonelli (tips) + Robert Webb (bug report) + Roland Kuck (patch) + Tobias Pflug (bug report) + Willem-Jan de Hoog (bug report) + Yegappan Lakshmanan (advices) + + + * Darren Hiebert for Exuberant Ctags + + * All Vim devs for Vim + + * Bram Moolenaar for Vim + + * You for using this script :) + +============================================================================== + + vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: diff --git a/dotfiles/.vim/doc/pi_vimball.txt b/dotfiles/.vim/doc/pi_vimball.txt @@ -0,0 +1,231 @@ +*pi_vimball.txt* For Vim version 7.2. Last change: 2009 Dec 28 + + ---------------- + Vimball Archiver + ---------------- + +Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM> + (remove NOSPAM from Campbell's email first) +Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. *Vimball-copyright* + The VIM LICENSE applies to Vimball.vim, and Vimball.txt + (see |copyright|) except use "Vimball" instead of "Vim". + No warranty, express or implied. + Use At-Your-Own-Risk! + +============================================================================== +1. Contents *vba* *vimball* *vimball-contents* + + 1. Contents......................................: |vimball-contents| + 3. Vimball Manual................................: |vimball-manual| + MkVimball.....................................: |:MkVimball| + UseVimball....................................: |:UseVimball| + RmVimball.....................................: |:RmVimball| + 4. Vimball History...............................: |vimball-history| + + +============================================================================== +2. Vimball Introduction *vimball-intro* + + Vimball is intended to make life simpler for users of plugins. All + a user needs to do with a vimball is: > + vim someplugin.vba + :so % + :q +< and the plugin and all its components will be installed into their + appropriate directories. Note that one doesn't need to be in any + particular directory when one does this. Plus, any help for the + plugin will also be automatically installed. + + If a user has decided to use the AsNeeded plugin, vimball is smart + enough to put scripts nominally intended for .vim/plugin/ into + .vim/AsNeeded/ instead. + + Removing a plugin that was installed with vimball is really easy: > + vim + :RmVimball someplugin +< This operation is not at all easy for zips and tarballs, for example. + + Vimball examines the user's |'runtimepath'| to determine where to put + the scripts. The first directory mentioned on the runtimepath is + usually used if possible. Use > + :echo &rtp +< to see that directory. + + +============================================================================== +3. Vimball Manual *vimball-manual* + +MAKING A VIMBALL *:MkVimball* + :[range]MkVimball[!] filename [path] + + The range is composed of lines holding paths to files to be included + in your new vimball, omitting the portion of the paths that is + normally specified by the runtimepath (|'rtp'|). As an example: > + plugin/something.vim + doc/something.txt +< using > + :[range]MkVimball filename +< + on this range of lines will create a file called "filename.vba" which + can be used by Vimball.vim to re-create these files. If the + "filename.vba" file already exists, then MkVimball will issue a + warning and not create the file. Note that these paths are relative + to your .vim (vimfiles) directory, and the files should be in that + directory. The vimball plugin normally uses the first |'runtimepath'| + directory that exists as a prefix; don't use absolute paths, unless + the user has specified such a path. + + If you use the exclamation point (!), then MkVimball will create the + "filename.vba" file, overwriting it if it already exists. This + behavior resembles that for |:w|. + + If you wish to force slashes into the filename, that can also be done + by using the exclamation mark (ie. :MkVimball! path/filename). + + The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27 + has a good idea on how to automate the production of vimballs using + make. + + +MAKING DIRECTORIES VIA VIMBALLS *g:vimball_mkdir* + + First, the |mkdir()| command is tried (not all systems support it). + + If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set + as follows: > + |g:netrw_local_mkdir|, if it exists + "mkdir" , if it is executable + "makedir" , if it is executable + Otherwise , it is undefined. +< One may explicitly specify the directory making command using + g:vimball_mkdir. This command is used to make directories that + are needed as indicated by the vimball. + + +CONTROLLING THE VIMBALL EXTRACTION DIRECTORY *g:vimball_home* + + You may override the use of the |'runtimepath'| by specifying a + variable, g:vimball_home. + + *vimball-extract* + vim filename.vba + + Simply editing a Vimball will cause Vimball.vim to tell the user to + source the file to extract its contents. + + Extraction will only proceed if the first line of a putative vimball + file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D." + line. + +LISTING FILES IN A VIMBALL *:VimballList* + + :VimballList + + This command will tell Vimball to list the files in the archive, along + with their lengths in lines. + +MANUALLY INVOKING VIMBALL EXTRACTION *:UseVimball* + + :UseVimball [path] + + This command is contained within the vimball itself; it invokes the + vimball#Vimball() routine which is responsible for unpacking the + vimball. One may choose to execute it by hand instead of sourcing + the vimball; one may also choose to specify a path for the + installation, thereby overriding the automatic choice of the first + existing directory on the |'runtimepath'|. + +REMOVING A VIMBALL *:RmVimball* + + :RmVimball vimballfile [path] + + This command removes all files generated by the specified vimball + (but not any directories it may have made). One may choose a path + for de-installation, too (see |'runtimepath'|); otherwise, the + default is the first existing directory on the |'runtimepath'|. + To implement this, a file (.VimballRecord) is made in that directory + containing a record of what files need to be removed for all vimballs + used thus far. + +PREVENTING LOADING + + If for some reason you don't want to be able to extract plugins + using vimballs: you may prevent the loading of vimball.vim by + putting the following two variables in your <.vimrc>: > + + let g:loaded_vimballPlugin= 1 + let g:loaded_vimball = 1 +< + +============================================================================== +4. Vimball History *vimball-history* {{{1 + + 30 : Dec 08, 2008 * fnameescape() inserted to protect error + messaging using corrupted filenames from + causing problems + * RmVimball supports filenames that would + otherwise be considered to have "magic" + characters (ie. Abc[1].vba) + Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq + removed (shellescape() used directly) + Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball + be allowed to use slashes in the filename. + 26 : May 27, 2008 * g:vimball_mkdir usage installed. Makes the + $HOME/.vim (or $HOME\vimfiles) directory if + necessary. + May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug: + vimball wasn't updating plugins to AsNeeded/ + when it should + 25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x + files as help files, too. + Apr 18, 2008 * RmVimball command is now protected by saving and + restoring settings -- in particular, acd was + causing problems as reported by Zhang Shuhan + 24 : Nov 15, 2007 * |g:vimball_path_escape| used by s:Path() to + prevent certain characters from causing trouble + 22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter + 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header + handling problem and it now changes \s to /s + 20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag + removed. + 18 : Aug 01, 2006 * vimballs now use folding to easily display their + contents. + * if a user has AsNeeded/somefile, then vimball + will extract plugin/somefile to the AsNeeded/ + directory + 17 : Jun 28, 2006 * changes all \s to /s internally for Windows + 16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify + installation root paths implemented for + UseVimball, MkVimball, and RmVimball. + * RmVimball implemented + 15 : Jun 13, 2006 * bugfix + 14 : May 26, 2006 * bugfixes + 13 : May 01, 2006 * exists("&acd") used to determine if the acd + option exists + 12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined + 11 : Apr 27, 2006 * VimballList would create missing subdirectories that + the vimball specified were needed. Fixed. + 10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of + functions. Included some more settings in them + which frequently cause trouble. + 9 : Apr 26, 2006 * various changes to support Windows' predilection + for backslashes and spaces in file and directory + names. + 7 : Apr 25, 2006 * bypasses foldenable + * uses more exe and less norm! (:yank :put etc) + * does better at insuring a "Press ENTER" prompt + appears to keep its messages visible + 4 : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter + only fires once, so the "Source this file..." + message is now issued only once. + 3 : Mar 20, 2006 * removed query, now requires sourcing to be + extracted (:so %). Message to that effect + included. + * :VimballList now shows files that would be + extracted. + 2 : Mar 20, 2006 * query, :UseVimball included + 1 : Mar 20, 2006 * initial release + + +============================================================================== +vim:tw=78:ts=8:ft=help:fdm=marker diff --git a/dotfiles/.vim/doc/showmarks.txt b/dotfiles/.vim/doc/showmarks.txt @@ -0,0 +1,264 @@ +*showmarks.txt* Visually show the location of marks + + By Anthony Kruize <trandor@labyrinth.net.au> + Michael Geddes <michaelrgeddes@optushome.com.au> + + +ShowMarks provides a visual representation of |marks| local to a buffer. +Marks are useful for jumping back and forth between interesting points in a +buffer, but can be hard to keep track of without any way to see where you have +placed them. + +ShowMarks hopefully makes life easier by placing a |sign| in the +leftmost column of the buffer. The sign indicates the label of the mark and +its location. + +ShowMarks is activated by the |CursorHold| |autocommand| which is triggered +every |updatetime| milliseconds. This is set to 4000(4 seconds) by default. +If this is too slow, setting it to a lower value will make it more responsive. + +Note: This plugin requires Vim 6.x compiled with the |+signs| feature. + +=============================================================================== +1. Contents *showmarks* *showmarks-contents* + + 1. Contents |showmarks-contents| + 2. Configuration |showmarks-configuration| + 3. Highlighting |showmarks-highlighting| + 4. Key mappings |showmarks-mappings| + 5. Commands |showmarks-commands| + 6. ChangeLog |showmarks-changelog| + + Appendix + A. Using marks |marks| + B. Using signs |sign| + C. Defining updatetime |updatetime| + D. Defining a mapleader |mapleader| + E. Defining highlighting |highlight| + +=============================================================================== +2. Configuration *showmarks-configuration* + +ShowMarks can be configured to suit your needs. +The following options can be added to your |vimrc| to change how ShowMarks +behaves: + + *'showmarks_enable'* +'showmarks_enable' boolean (default: 1) + global + This option enables or disables ShowMarks on startup. Normally ShowMarks + will be enabled when Vim starts, setting this to 0 will disable ShowMarks + by default. + ShowMarks can be turned back on using the |ShowMarksToggle| command. + + *'showmarks_include'* +'showmarks_include' string (default: +"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.'`^<>[]{}()\"") + global or local to buffer + This option specifies which marks will be shown and in which order if + placed on the same line. Marks earlier in the list take precedence over + marks later in the list. + This option can also be specified as a buffer option which will override + the global version. + + NOTE: When including the " mark, it must be escaped with a \. + + For example to only include marks 'abcdefzxABHJio', in that order: +> + let g:showmarks_include="abcdefzxABJio" +< + To override this for a particular buffer with 'ABCDhj.'^': +> + let b:showmarks_include="abcdefzxABJio" +< + *'showmarks_ignore_type'* +'showmarks_ignore_type' string (default: "hq") + global + This option defines which types of buffers should be ignored. + Each type is represented by a letter. This option is not case-sensitive. + Valid buffer types are: + - h : Help + - m : Non-modifiable + - p : Preview + - q : Quickfix + - r : Readonly + + For example to ignore help, preview and readonly files: +> + let g:showmarks_ignore_type="hpr" +< + *'showmarks_ignore_name'* +'showmarks_textlower' string (default: ">" ) + global + This option defines how the marks a-z will be displayed. + A maximum of two characters can be defined. + To include the mark in the text use a tab(\t) character. A single + character will display as the mark with the character suffixed (same as + "\t<character>"). Specifying two characters will simply display those two + characters. + + Some examples: + To display the mark with a > suffixed: > + let g:showmarks_textlower="\t>" +< or > + let g:showmarks_textlower=">" +< + To display the mark with a ( prefixed: > + let g:showmarks_textlower="(\t" +< + To display two > characters: > + let g:showmarks_textlower=">>" +< + *'showmarks_textupper'* +'showmarks_textupper' string (default: ">") + global + This option defines how the marks A-Z will be displayed. It behaves the same + as the |'showmarks_textlower'| option. + + *'showmarks_textother'* +'showmarks_textother' string (default: ">") + global + This option defines how all other marks will be displayed. It behaves the + same as the |'showmarks_textlower'| option. + +'showmarks_hlline_lower' boolean (default: 0) *'showmarks_hlline_lower'* + global + This option defines whether the entire line a lowercase mark is on will + be highlighted. + +'showmarks_hlline_upper' boolean (default: 0) *'showmarks_hlline_upper'* + global + This option defines whether the entire line an uppercase mark is on will + be highlighted. + +'showmarks_hlline_other' boolean (default: 0) *'showmarks_hlline_other'* + global + This option defines whether the entire line other marks are on will be + highlighted. + +=============================================================================== +3. Highlighting *showmarks-highlighting* + +Four highlighting groups are used by ShowMarks to define the colours used to +highlight each of the marks. + + - ShowMarksHLl : This group is used to highlight all the lowercase marks. + - ShowMarksHLu : This group is used to highlight all the uppercase marks. + - ShowMarksHLo : This group is used to highlight all other marks. + - ShowMarksHLm : This group is used when multiple marks are on the same line. + +You can define your own highlighting by overriding these groups in your |vimrc|. +For example: > + + highlight ShowMarksHLl guifg=red guibg=green +< +Will set all lowercase marks to be red on green when running in GVim. +See |highlight| for more information. + +=============================================================================== +4. Mappings *showmarks-mappings* + +The following mappings are setup by default: + + <Leader>mt - Toggles ShowMarks on and off. + <Leader>mo - Forces ShowMarks on. + <Leader>mh - Clears the mark at the current line. + <Leader>ma - Clears all marks in the current buffer. + <Leader>mm - Places the next available mark on the current line. + +(see |mapleader| for how to setup the mapleader variable.) + +=============================================================================== +5. Commands *showmarks-commands* + + *ShowMarksToggle* +:ShowMarksToggle + This command will toggle the display of marks on or off. + + +:ShowMarksOn *ShowMarksOn* + This command will force the display of marks on. + + *ShowMarksClearMark* +:ShowMarksClearMark + This command will clear the mark on the current line. + It doesn't actually remove the mark, it simply moves it to line 1 and + removes the sign. + + *ShowMarksClearAll* +:ShowMarksClearAll + This command will clear all marks in the current buffer. + It doesn't actually remove the marks, it simply moves them to line 1 and + removes the signs. + + *ShowMarksPlaceMark* +:ShowMarksPlaceMark + This command will place the next available mark on the current line. This + effectively automates mark placement so you don't have to remember which + marks are placed or not. Hidden marks are considered to be available. + NOTE: Only marks a-z are supported by this function. + +=============================================================================== +6. ChangeLog *showmarks-changelog* + +2.2 - 2004-08-17 + Fixed highlighting of the A-Z marks when ignorecase is on. (Mike Kelly) + Fixed the delay with ShowMarks triggering when entering a buffer for the + first time. (Mikolaj Machowski) + Added support for highlighting the entire line where a mark is placed. + Now uses HelpExtractor by Charles E. Campbell to install the help file. + +2.1 - 2004-03-04 + Added ShowMarksOn. It forces ShowMarks to be enabled whether it's on or not. + (Gary Holloway) + Marks now have a definable order of precedence for when mulitple alpha marks + have been placed on the same line. A new highlight group, ShowMarksHLm is + used to identify this situation. (Gary Holloway) + - showmarks_include has changed accordingly. + - ShowMarksHL is now ShowMarksHLl. + ShowMarksPlaceMark now places marks in the order specified by + showmarks_include. (Gary Holloway) + showmarks_include can now be specified per buffer. (Gary Holloway) + +2.0 - 2003-08-11 + Added ability to ignore buffers by type. + Fixed toggling ShowMarks off when switching buffers. + ShowMarksHideMark and ShowMarksHideAll have been renamed to + ShowMarksClearMark and ShowMarksClearAll. + Marks a-z, A-Z and others now have different highlighting from each other. + Added support for all other marks. (Gary Holloway) + Enhanced customization of how marks are displayed by allowing a prefix to + be specified.(Gary Holloway & Anthony Kruize) + Fixed CursorHold autocmd triggering even when ShowMarks is disabled. + (Charles E. Campbell) + +1.5 - 2002-07-16 + Added ability to customize how the marks are displayed. + +1.4 - 2002-05-29 + Added support for placing the next available mark. + (Thanks to Shishir Ramam for the idea) + Added support for hiding all marks. + Marks on line 1 are no longer shown. This stops hidden marks from + reappearing when the file is opened again. + Added a help file. + +1.3 - 2002-05-20 + Fixed toggling ShowMarks not responding immediately. + Added user commands for toggling/hiding marks. + Added ability to disable ShowMarks by default. + +1.2 - 2002-03-06 + Added a check that Vim was compiled with +signs support. + Added the ability to define which marks are shown. + Removed debugging code that was accidently left in. + +1.1 - 2002-02-05 + Added support for the A-Z marks. + Fixed sign staying placed if the line it was on is deleted. + Clear autocommands before making new ones. + +1.0 - 2001-11-20 + First release. + +vim:tw=78:ts=8:ft=help diff --git a/dotfiles/.vim/doc/supertab.txt b/dotfiles/.vim/doc/supertab.txt @@ -0,0 +1,308 @@ +*supertab.txt* + +Authors: + Original: Gergely Kontra <kgergely@mcl.hu> + Current: Eric Van Dewoestine <ervandew@gmail.com> (as of version 0.4) + +Contributors: + Christophe-Marie Duquesne <chm.duquesne@gmail.com> (documentation) + +Please direct all correspondence to Eric. + +This plugin is licensed under the terms of the BSD License. Please see +supertab.vim for the license in its entirety. + +============================================================================== +Supertab *supertab* + +1. Introduction |supertab-intro| +2. Supertab Usage |supertab-usage| +3. Supertab Options |supertab-options| + Default completion type |supertab-defaultcompletion| + Secondary default completion type |supertab-contextdefault| + Completion contexts |supertab-completioncontexts| + Context text |supertab-contexttext| + Context Discover |supertab-contextdiscover| + Example |supertab-contextexample| + Completion Duration |supertab-duration| + Midword completion |supertab-midword| + Changing default mapping |supertab-forwardbackward| + Inserting true tabs |supertab-mappingtabliteral| + Preselecting the first entry |supertab-longesthighlight| + +============================================================================== +1. Introduction *supertab-intro* + +Supertab is a plugin which allows you to perform all your insert completion +(|ins-completion|) using the tab key. + +Supertab requires Vim version 7.0 or above. + +============================================================================== +2. Supertab usage *supertab-usage* + +Using Supertab is as easy as hitting <Tab> or <S-Tab> (shift+tab) while in +insert mode, with at least one non whitespace character before the cursor, to +start the completion and then <Tab> or <S-Tab> again to cycle forwards or +backwards through the available completions. + +Example ('|' denotes the cursor location): + +bar +baz +b|<Tab> Hitting <Tab> here will start the completion, allowing you to + then cycle through the suggested words ('bar' and 'baz'). + +============================================================================== +3. Supertab Options *supertab-options* + +Supertab is configured via several global variables that you can set in your +|vimrc| file according to your needs. Below is a comprehensive list of +the variables available. + +g:SuperTabDefaultCompletionType |supertab-defaultcompletion| + The default completion type to use. If you program in languages that support + omni or user completions, it is highly recommended setting this to + 'context'. + + For help about built in completion types in vim, see |i_CTRL-X_index|. + +g:SuperTabContextDefaultCompletionType |supertab-contextdefault| + The default completion type to use when 'context' is the global default, but + context completion has determined that neither omni, user, or file + completion should be used in the current context. + +g:SuperTabCompletionContexts |supertab-completioncontexts| + Used to configure a list of function names which are used when the global + default type is 'context'. These functions will be consulted in order to + determine which completion type to use. Advanced users can plug in their own + functions here to customize their 'context' completion. + +g:SuperTabRetainCompletionDuration |supertab-duration| + This setting determines how long a non-default completion type should be + retained as the temporary default. By default supertab will retain the + alternate completion type until you leave insert mode. + +g:SuperTabMidWordCompletion |supertab-midword| + This can be used to turn off completion if you are in the middle of a word + (word characters immediately preceding and following the cursor). + +g:SuperTabMappingForward |supertab-forwardbackward| +g:SuperTabMappingBackward |supertab-forwardbackward| + If using the tab key for completion isn't for you, then you can use these to + set an alternate key to be used for your insert completion needs. + +g:SuperTabMappingTabLiteral |supertab-mappingtabliteral| + For those rare cases where supertab would normal want to start insert + completion, but you just want to insert a tab, this setting is used to + define the key combination to use to do just that. By default Ctrl-Tab is + used. + +g:SuperTabLongestHighlight |supertab-longesthighlight| + When enabled and you have the completion popup enable and 'longest' in your + completeopt, supertab will auto highlight the first selection in the popup. + + +Default Completion Type *supertab-defaultcompletion* + *g:SuperTabDefaultCompletionType* + +g:SuperTabDefaultCompletionType (default value: "<c-p>") + +Used to set the default completion type. There is no need to escape this +value as that will be done for you when the type is set. + + Example: setting the default completion to 'user' completion: + + let g:SuperTabDefaultCompletionType = "<c-x><c-u>" + +Note: a special value of 'context' is supported which will result in +super tab attempting to use the text preceding the cursor to decide which +type of completion to attempt. Currently super tab can recognize method +calls or attribute references via '.', '::' or '->', and file path +references containing '/'. + + let g:SuperTabDefaultCompletionType = "context" + + /usr/l<tab> # will use filename completion + myvar.t<tab> # will use user completion if completefunc set, + # or omni completion if omnifunc set. + myvar-><tab> # same as above + +When using context completion, super tab will fall back to a secondary default +completion type set by |g:SuperTabContextDefaultCompletionType|. + +Note: once the buffer has been initialized, changing the value of this setting +will not change the default complete type used. If you want to change the +default completion type for the current buffer after it has been set, perhaps +in an ftplugin, you'll need to call SuperTabSetDefaultCompletionType like so, +supplying the completion type you wish to switch to: + + call SuperTabSetDefaultCompletionType("<c-x><c-u>") + + +Secondary default completion type *supertab-contextdefault* + *g:SuperTabContextDefaultCompletionType* + +g:SuperTabContextDefaultCompletionType (default value: "<c-p>") + +Sets the default completion type used when g:SuperTabDefaultCompletionType is +set to 'context' and no completion type is returned by any of the configured +contexts. + + +Completion contexts *supertab-completioncontexts* + *g:SuperTabCompletionContexts* + +g:SuperTabCompletionContexts (default value: ['s:ContextText']) + +Sets the list of contexts used for context completion. This value should +be a list of function names which provide the context implementation. + +When supertab starts the default completion, each of these contexts will be +consulted, in the order they were supplied, to determine the completion type +to use. If a context returns a completion type, that type will be used, +otherwise the next context in the list will be consulted. If after executing +all the context functions, no completion type has been determined, then the +value of g:SuperTabContextDefaultCompletionType will be used. + +Built in completion contexts: + + s:ContextText *supertab-contexttext* + + The text context will examine the text near the cursor to decide which type + of completion to attempt. Currently the text context can recognize method + calls or attribute references via '.', '::' or '->', and file path + references containing '/'. + + /usr/l<tab> # will use filename completion + myvar.t<tab> # will use user completion if completefunc set, or + # omni completion if omnifunc set. + myvar-><tab> # same as above + + Supported configuration attributes: + + g:SuperTabContextTextFileTypeExclusions + List of file types for which the text context will be skipped. + + g:SuperTabContextTextOmniPrecedence + List of omni completion option names in the order of precedence that they + should be used if available. By default, user completion will be given + precedence over omni completion, but you can use this variable to give + omni completion higher precedence by placing it first in the list. + + s:ContextDiscover *supertab-contextdiscover* + + This context will use the 'g:SuperTabContextDiscoverDiscovery' variable to + determine the completion type to use. It will evaluate each value, in the + order they were defined, until a variable evaluates to a non-zero or + non-empty value, then the associated completion type is used. + + Supported configuration properties: + + g:SuperTabContextDiscoverDiscovery + List of variable:completionType mappings. + + Example context configuration: *supertab-contextexample* + + let g:SuperTabCompletionContexts = ['s:ContextText', 's:ContextDiscover'] + let g:SuperTabContextTextOmniPrecedence = ['&omnifunc', '&completefunc'] + let g:SuperTabContextDiscoverDiscovery = + \ ["&completefunc:<c-x><c-u>", "&omnifunc:<c-x><c-o>"] + + In addition to the default completion contexts, you can plug in your own + implementation by creating a globally accessible function that returns + the completion type to use (eg. "\<c-x>\<c-u>"). + + function MyTagContext() + if filereadable(expand('%:p:h') . '/tags') + return "\<c-x>\<c-]>" + endif + " no return will result in the evaluation of the next + " configured context + endfunction + let g:SuperTabCompletionContexts = + \ ['MyTagContext', 's:ContextText', 's:ContextDiscover'] + + Note: supertab also supports the b:SuperTabCompletionContexts variable + allowing you to set the list of contexts separately for the current buffer, + like from an ftplugin for example. + + +Completion Duration *supertab-duration* + *g:SuperTabRetainCompletionDuration* + +g:SuperTabRetainCompletionDuration (default value: 'insert') + +Determines if, and for how long, the current completion type is retained. +The possible values include: +'completion' - The current completion type is only retained for the + current completion. Once you have chosen a completion + result or exited the completion mode, the default + completion type is restored. +'insert' - The current completion type is saved until you exit insert + mode (via ESC). Once you exit insert mode the default + completion type is restored. (supertab default) +'session' - The current completion type is saved for the duration of + your vim session or until you enter a different completion + mode. + + +Midword completion *supertab-midword* + *g:SuperTabMidWordCompletion* + +g:SuperTabMidWordCompletion (default value: 1) + +Sets whether or not mid word completion is enabled. When enabled, <tab> will +kick off completion when ever a non whitespace character is to the left of the +cursor. When disabled, completion will only occur if the char to the left is +non whitespace char and the char to the right is not a keyword character (you +are at the end of the word). + + +Changing the default mapping *supertab-forwardbackward* + *g:SuperTabMappingForward* + *g:SuperTabMappingBackward* + +g:SuperTabMappingForward (default value: '<tab>') +g:SuperTabMappingBackward (default value: '<s-tab>') + +These two variables allow you to set the keys used to kick off the current +completion. By default this is <tab> and <s-tab>. To change to something +like <c-space> and <s-c-space>, you can add the following to your |vimrc|. + + let g:SuperTabMappingForward = '<c-space>' + let g:SuperTabMappingBackward = '<s-c-space>' + +Note: if the above does not have the desired effect (which may happen in +console version of vim), you can try the following mappings. Although the +backwards mapping still doesn't seem to work in the console for me, your +milage may vary. + + let g:SuperTabMappingForward = '<nul>' + let g:SuperTabMappingBackward = '<s-nul>' + + +Inserting true tabs *supertab-mappingtabliteral* + *g:SuperTabMappingTabLiteral* + +g:SuperTabMappingTabLiteral (default value: '<c-tab>') + +Sets the key mapping used to insert a literal tab where supertab would +otherwise attempt to kick off insert completion. The default is '<c-tab>' +(ctrl-tab) which unfortunately might not work at the console. So if you are +using a console vim and want this functionality, you may have to change it to +something that is supported. Alternatively, you can escape the <tab> with +<c-v> (see |i_CTRL-V| for more infos). + + +Preselecting the first entry *supertab-longesthighlight* + *g:SuperTabLongestHighlight* + +g:SuperTabLongestHighlight (default value: 0) + +Sets whether or not to pre-highlight the first match when completeopt has the +popup menu enabled and the 'longest' option as well. When enabled, <tab> will +kick off completion and pre-select the first entry in the popup menu, allowing +you to simply hit <enter> to use it. + +vim:tw=78:ts=8:ft=help:norl: diff --git a/dotfiles/.vim/doc/tags b/dotfiles/.vim/doc/tags @@ -0,0 +1,382 @@ +'NERDChristmasTree' NERD_tree.txt /*'NERDChristmasTree'* +'NERDTreeAutoCenter' NERD_tree.txt /*'NERDTreeAutoCenter'* +'NERDTreeAutoCenterThreshold' NERD_tree.txt /*'NERDTreeAutoCenterThreshold'* +'NERDTreeBookmarksFile' NERD_tree.txt /*'NERDTreeBookmarksFile'* +'NERDTreeCaseSensitiveSort' NERD_tree.txt /*'NERDTreeCaseSensitiveSort'* +'NERDTreeChDirMode' NERD_tree.txt /*'NERDTreeChDirMode'* +'NERDTreeHighlightCursorline' NERD_tree.txt /*'NERDTreeHighlightCursorline'* +'NERDTreeHijackNetrw' NERD_tree.txt /*'NERDTreeHijackNetrw'* +'NERDTreeIgnore' NERD_tree.txt /*'NERDTreeIgnore'* +'NERDTreeMouseMode' NERD_tree.txt /*'NERDTreeMouseMode'* +'NERDTreeQuitOnOpen' NERD_tree.txt /*'NERDTreeQuitOnOpen'* +'NERDTreeShowBookmarks' NERD_tree.txt /*'NERDTreeShowBookmarks'* +'NERDTreeShowFiles' NERD_tree.txt /*'NERDTreeShowFiles'* +'NERDTreeShowHidden' NERD_tree.txt /*'NERDTreeShowHidden'* +'NERDTreeShowLineNumbers' NERD_tree.txt /*'NERDTreeShowLineNumbers'* +'NERDTreeSortOrder' NERD_tree.txt /*'NERDTreeSortOrder'* +'NERDTreeStatusline' NERD_tree.txt /*'NERDTreeStatusline'* +'NERDTreeWinPos' NERD_tree.txt /*'NERDTreeWinPos'* +'NERDTreeWinSize' NERD_tree.txt /*'NERDTreeWinSize'* +'Tlist_Auto_Highlight_Tag' tlist.txt /*'Tlist_Auto_Highlight_Tag'* +'Tlist_Auto_Open' tlist.txt /*'Tlist_Auto_Open'* +'Tlist_Auto_Update' tlist.txt /*'Tlist_Auto_Update'* +'Tlist_Close_On_Select' tlist.txt /*'Tlist_Close_On_Select'* +'Tlist_Compact_Format' tlist.txt /*'Tlist_Compact_Format'* +'Tlist_Ctags_Cmd' tlist.txt /*'Tlist_Ctags_Cmd'* +'Tlist_Display_Prototype' tlist.txt /*'Tlist_Display_Prototype'* +'Tlist_Display_Tag_Scope' tlist.txt /*'Tlist_Display_Tag_Scope'* +'Tlist_Enable_Fold_Column' tlist.txt /*'Tlist_Enable_Fold_Column'* +'Tlist_Exit_OnlyWindow' tlist.txt /*'Tlist_Exit_OnlyWindow'* +'Tlist_File_Fold_Auto_Close' tlist.txt /*'Tlist_File_Fold_Auto_Close'* +'Tlist_GainFocus_On_ToggleOpen' tlist.txt /*'Tlist_GainFocus_On_ToggleOpen'* +'Tlist_Highlight_Tag_On_BufEnter' tlist.txt /*'Tlist_Highlight_Tag_On_BufEnter'* +'Tlist_Inc_Winwidth' tlist.txt /*'Tlist_Inc_Winwidth'* +'Tlist_Max_Submenu_Items' tlist.txt /*'Tlist_Max_Submenu_Items'* +'Tlist_Max_Tag_Length' tlist.txt /*'Tlist_Max_Tag_Length'* +'Tlist_Process_File_Always' tlist.txt /*'Tlist_Process_File_Always'* +'Tlist_Show_Menu' tlist.txt /*'Tlist_Show_Menu'* +'Tlist_Show_One_File' tlist.txt /*'Tlist_Show_One_File'* +'Tlist_Sort_Type' tlist.txt /*'Tlist_Sort_Type'* +'Tlist_Use_Horiz_Window' tlist.txt /*'Tlist_Use_Horiz_Window'* +'Tlist_Use_Right_Window' tlist.txt /*'Tlist_Use_Right_Window'* +'Tlist_Use_SingleClick' tlist.txt /*'Tlist_Use_SingleClick'* +'Tlist_WinHeight' tlist.txt /*'Tlist_WinHeight'* +'Tlist_WinWidth' tlist.txt /*'Tlist_WinWidth'* +'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'* +'showmarks_enable' showmarks.txt /*'showmarks_enable'* +'showmarks_hlline_lower' showmarks.txt /*'showmarks_hlline_lower'* +'showmarks_hlline_other' showmarks.txt /*'showmarks_hlline_other'* +'showmarks_hlline_upper' showmarks.txt /*'showmarks_hlline_upper'* +'showmarks_ignore_name' showmarks.txt /*'showmarks_ignore_name'* +'showmarks_ignore_type' showmarks.txt /*'showmarks_ignore_type'* +'showmarks_include' showmarks.txt /*'showmarks_include'* +'showmarks_textother' showmarks.txt /*'showmarks_textother'* +'showmarks_textupper' showmarks.txt /*'showmarks_textupper'* +:MkVimball pi_vimball.txt /*:MkVimball* +:NERDTree NERD_tree.txt /*:NERDTree* +:NERDTreeClose NERD_tree.txt /*:NERDTreeClose* +:NERDTreeFromBookmark NERD_tree.txt /*:NERDTreeFromBookmark* +:NERDTreeMirror NERD_tree.txt /*:NERDTreeMirror* +:NERDTreeToggle NERD_tree.txt /*:NERDTreeToggle* +:RmVimball pi_vimball.txt /*:RmVimball* +:TlistAddFiles tlist.txt /*:TlistAddFiles* +:TlistAddFilesRecursive tlist.txt /*:TlistAddFilesRecursive* +:TlistClose tlist.txt /*:TlistClose* +:TlistDebug tlist.txt /*:TlistDebug* +:TlistHighlightTag tlist.txt /*:TlistHighlightTag* +:TlistLock tlist.txt /*:TlistLock* +:TlistMessages tlist.txt /*:TlistMessages* +:TlistOpen tlist.txt /*:TlistOpen* +:TlistSessionLoad tlist.txt /*:TlistSessionLoad* +:TlistSessionSave tlist.txt /*:TlistSessionSave* +:TlistShowPrototype tlist.txt /*:TlistShowPrototype* +:TlistShowTag tlist.txt /*:TlistShowTag* +:TlistToggle tlist.txt /*:TlistToggle* +:TlistUndebug tlist.txt /*:TlistUndebug* +:TlistUnlock tlist.txt /*:TlistUnlock* +:TlistUpdate tlist.txt /*:TlistUpdate* +:UseVimball pi_vimball.txt /*:UseVimball* +:VimballList pi_vimball.txt /*:VimballList* +DocLookupInteractive clojure.txt /*DocLookupInteractive* +DocLookupWord clojure.txt /*DocLookupWord* +EvalBlock clojure.txt /*EvalBlock* +EvalFile clojure.txt /*EvalFile* +EvalLine clojure.txt /*EvalLine* +EvalParagraph clojure.txt /*EvalParagraph* +EvalToplevel clojure.txt /*EvalToplevel* +FindDoc clojure.txt /*FindDoc* +GotoSourceInteractive clojure.txt /*GotoSourceInteractive* +GotoSourceWord clojure.txt /*GotoSourceWord* +JavadocLookupInteractive clojure.txt /*JavadocLookupInteractive* +JavadocLookupWord clojure.txt /*JavadocLookupWord* +MacroExpand clojure.txt /*MacroExpand* +MacroExpand1 clojure.txt /*MacroExpand1* +MetaLookupInteractive clojure.txt /*MetaLookupInteractive* +MetaLookupWord clojure.txt /*MetaLookupWord* +NERDTree NERD_tree.txt /*NERDTree* +NERDTree-? NERD_tree.txt /*NERDTree-?* +NERDTree-A NERD_tree.txt /*NERDTree-A* +NERDTree-B NERD_tree.txt /*NERDTree-B* +NERDTree-C NERD_tree.txt /*NERDTree-C* +NERDTree-C-J NERD_tree.txt /*NERDTree-C-J* +NERDTree-C-K NERD_tree.txt /*NERDTree-C-K* +NERDTree-D NERD_tree.txt /*NERDTree-D* +NERDTree-F NERD_tree.txt /*NERDTree-F* +NERDTree-I NERD_tree.txt /*NERDTree-I* +NERDTree-J NERD_tree.txt /*NERDTree-J* +NERDTree-K NERD_tree.txt /*NERDTree-K* +NERDTree-O NERD_tree.txt /*NERDTree-O* +NERDTree-P NERD_tree.txt /*NERDTree-P* +NERDTree-R NERD_tree.txt /*NERDTree-R* +NERDTree-T NERD_tree.txt /*NERDTree-T* +NERDTree-U NERD_tree.txt /*NERDTree-U* +NERDTree-X NERD_tree.txt /*NERDTree-X* +NERDTree-cd NERD_tree.txt /*NERDTree-cd* +NERDTree-contents NERD_tree.txt /*NERDTree-contents* +NERDTree-e NERD_tree.txt /*NERDTree-e* +NERDTree-f NERD_tree.txt /*NERDTree-f* +NERDTree-gi NERD_tree.txt /*NERDTree-gi* +NERDTree-go NERD_tree.txt /*NERDTree-go* +NERDTree-gs NERD_tree.txt /*NERDTree-gs* +NERDTree-i NERD_tree.txt /*NERDTree-i* +NERDTree-m NERD_tree.txt /*NERDTree-m* +NERDTree-o NERD_tree.txt /*NERDTree-o* +NERDTree-p NERD_tree.txt /*NERDTree-p* +NERDTree-q NERD_tree.txt /*NERDTree-q* +NERDTree-r NERD_tree.txt /*NERDTree-r* +NERDTree-s NERD_tree.txt /*NERDTree-s* +NERDTree-t NERD_tree.txt /*NERDTree-t* +NERDTree-u NERD_tree.txt /*NERDTree-u* +NERDTree-x NERD_tree.txt /*NERDTree-x* +NERDTreeAPI NERD_tree.txt /*NERDTreeAPI* +NERDTreeAbout NERD_tree.txt /*NERDTreeAbout* +NERDTreeAddKeyMap() NERD_tree.txt /*NERDTreeAddKeyMap()* +NERDTreeAddMenuItem() NERD_tree.txt /*NERDTreeAddMenuItem()* +NERDTreeAddMenuSeparator() NERD_tree.txt /*NERDTreeAddMenuSeparator()* +NERDTreeAddSubmenu() NERD_tree.txt /*NERDTreeAddSubmenu()* +NERDTreeBookmarkCommands NERD_tree.txt /*NERDTreeBookmarkCommands* +NERDTreeBookmarkTable NERD_tree.txt /*NERDTreeBookmarkTable* +NERDTreeBookmarks NERD_tree.txt /*NERDTreeBookmarks* +NERDTreeChangelog NERD_tree.txt /*NERDTreeChangelog* +NERDTreeCredits NERD_tree.txt /*NERDTreeCredits* +NERDTreeFunctionality NERD_tree.txt /*NERDTreeFunctionality* +NERDTreeGlobalCommands NERD_tree.txt /*NERDTreeGlobalCommands* +NERDTreeInvalidBookmarks NERD_tree.txt /*NERDTreeInvalidBookmarks* +NERDTreeKeymapAPI NERD_tree.txt /*NERDTreeKeymapAPI* +NERDTreeLicense NERD_tree.txt /*NERDTreeLicense* +NERDTreeMappings NERD_tree.txt /*NERDTreeMappings* +NERDTreeMenu NERD_tree.txt /*NERDTreeMenu* +NERDTreeMenuAPI NERD_tree.txt /*NERDTreeMenuAPI* +NERDTreeOptionDetails NERD_tree.txt /*NERDTreeOptionDetails* +NERDTreeOptionSummary NERD_tree.txt /*NERDTreeOptionSummary* +NERDTreeOptions NERD_tree.txt /*NERDTreeOptions* +NERDTreeRender() NERD_tree.txt /*NERDTreeRender()* +NERD_tree.txt NERD_tree.txt /*NERD_tree.txt* +OmniCpp_DefaultNamespaces omnicppcomplete.txt /*OmniCpp_DefaultNamespaces* +OmniCpp_DisplayMode omnicppcomplete.txt /*OmniCpp_DisplayMode* +OmniCpp_GlobalScopeSearch omnicppcomplete.txt /*OmniCpp_GlobalScopeSearch* +OmniCpp_LocalSearchDecl omnicppcomplete.txt /*OmniCpp_LocalSearchDecl* +OmniCpp_MayCompleteArrow omnicppcomplete.txt /*OmniCpp_MayCompleteArrow* +OmniCpp_MayCompleteDot omnicppcomplete.txt /*OmniCpp_MayCompleteDot* +OmniCpp_MayCompleteScope omnicppcomplete.txt /*OmniCpp_MayCompleteScope* +OmniCpp_NamespaceSearch omnicppcomplete.txt /*OmniCpp_NamespaceSearch* +OmniCpp_SelectFirstItem omnicppcomplete.txt /*OmniCpp_SelectFirstItem* +OmniCpp_ShowAccess omnicppcomplete.txt /*OmniCpp_ShowAccess* +OmniCpp_ShowPrototypeInAbbr omnicppcomplete.txt /*OmniCpp_ShowPrototypeInAbbr* +OmniCpp_ShowScopeInAbbr omnicppcomplete.txt /*OmniCpp_ShowScopeInAbbr* +RequireFile clojure.txt /*RequireFile* +RequireFileAll clojure.txt /*RequireFileAll* +ShowMarksClearAll showmarks.txt /*ShowMarksClearAll* +ShowMarksClearMark showmarks.txt /*ShowMarksClearMark* +ShowMarksOn showmarks.txt /*ShowMarksOn* +ShowMarksPlaceMark showmarks.txt /*ShowMarksPlaceMark* +ShowMarksToggle showmarks.txt /*ShowMarksToggle* +SourceLookupInteractive clojure.txt /*SourceLookupInteractive* +SourceLookupWord clojure.txt /*SourceLookupWord* +StartRepl clojure.txt /*StartRepl* +Tabular.txt Tabular.txt /*Tabular.txt* +Tlist_Get_Tag_Prototype_By_Line() tlist.txt /*Tlist_Get_Tag_Prototype_By_Line()* +Tlist_Get_Tagname_By_Line() tlist.txt /*Tlist_Get_Tagname_By_Line()* +Tlist_Set_App() tlist.txt /*Tlist_Set_App()* +Tlist_Update_File_Tags() tlist.txt /*Tlist_Update_File_Tags()* +Vimball-copyright pi_vimball.txt /*Vimball-copyright* +c-support csupport.txt /*c-support* +clj-nailgun-server clojure.txt /*clj-nailgun-server* +clojure.vim clojure.txt /*clojure.vim* +csupport csupport.txt /*csupport* +csupport-c++ csupport.txt /*csupport-c++* +csupport-c++-method-impl csupport.txt /*csupport-c++-method-impl* +csupport-c++-normal-mode csupport.txt /*csupport-c++-normal-mode* +csupport-c++-visual-mode csupport.txt /*csupport-c++-visual-mode* +csupport-code-to-comm csupport.txt /*csupport-code-to-comm* +csupport-comm csupport.txt /*csupport-comm* +csupport-comm-aligned csupport.txt /*csupport-comm-aligned* +csupport-comm-c-cpp csupport.txt /*csupport-comm-c-cpp* +csupport-comm-date csupport.txt /*csupport-comm-date* +csupport-comm-frame csupport.txt /*csupport-comm-frame* +csupport-comm-keywords csupport.txt /*csupport-comm-keywords* +csupport-comm-realign csupport.txt /*csupport-comm-realign* +csupport-comm-to-code csupport.txt /*csupport-comm-to-code* +csupport-custom csupport.txt /*csupport-custom* +csupport-custom-glob-vars csupport.txt /*csupport-custom-glob-vars* +csupport-custom-root-menu csupport.txt /*csupport-custom-root-menu* +csupport-dictionary csupport.txt /*csupport-dictionary* +csupport-folding csupport.txt /*csupport-folding* +csupport-help csupport.txt /*csupport-help* +csupport-hotkeys csupport.txt /*csupport-hotkeys* +csupport-idioms csupport.txt /*csupport-idioms* +csupport-prep csupport.txt /*csupport-prep* +csupport-prep-if0 csupport.txt /*csupport-prep-if0* +csupport-prep-normal-mode csupport.txt /*csupport-prep-normal-mode* +csupport-prep-visual-mode csupport.txt /*csupport-prep-visual-mode* +csupport-proto csupport.txt /*csupport-proto* +csupport-release-notes csupport.txt /*csupport-release-notes* +csupport-run csupport.txt /*csupport-run* +csupport-run-buffer csupport.txt /*csupport-run-buffer* +csupport-run-cmdline-args csupport.txt /*csupport-run-cmdline-args* +csupport-run-codecheck csupport.txt /*csupport-run-codecheck* +csupport-run-hardcopy csupport.txt /*csupport-run-hardcopy* +csupport-run-indent csupport.txt /*csupport-run-indent* +csupport-run-make csupport.txt /*csupport-run-make* +csupport-run-make-args csupport.txt /*csupport-run-make-args* +csupport-run-output csupport.txt /*csupport-run-output* +csupport-run-splint csupport.txt /*csupport-run-splint* +csupport-run-templates csupport.txt /*csupport-run-templates* +csupport-run-xterm csupport.txt /*csupport-run-xterm* +csupport-snippets csupport.txt /*csupport-snippets* +csupport-stat csupport.txt /*csupport-stat* +csupport-stat-normal-mode csupport.txt /*csupport-stat-normal-mode* +csupport-stat-visual-mode csupport.txt /*csupport-stat-visual-mode* +csupport-system-wide csupport.txt /*csupport-system-wide* +csupport-taglist csupport.txt /*csupport-taglist* +csupport-templates csupport.txt /*csupport-templates* +csupport-templates-date csupport.txt /*csupport-templates-date* +csupport-templates-definition csupport.txt /*csupport-templates-definition* +csupport-templates-expansion csupport.txt /*csupport-templates-expansion* +csupport-templates-files csupport.txt /*csupport-templates-files* +csupport-templates-macros csupport.txt /*csupport-templates-macros* +csupport-templates-names csupport.txt /*csupport-templates-names* +csupport-troubleshooting csupport.txt /*csupport-troubleshooting* +csupport-usage-gvim csupport.txt /*csupport-usage-gvim* +csupport-usage-vim csupport.txt /*csupport-usage-vim* +csupport-windows csupport.txt /*csupport-windows* +csupport.txt csupport.txt /*csupport.txt* +eb clojure.txt /*eb* +ef clojure.txt /*ef* +el clojure.txt /*el* +ep clojure.txt /*ep* +et clojure.txt /*et* +fd clojure.txt /*fd* +ft-clj-syntax clojure.txt /*ft-clj-syntax* +fugitive fugitive.txt /*fugitive* +fugitive#statusline() fugitive.txt /*fugitive#statusline()* +fugitive-:Gblame fugitive.txt /*fugitive-:Gblame* +fugitive-:Gcd fugitive.txt /*fugitive-:Gcd* +fugitive-:Gcommit fugitive.txt /*fugitive-:Gcommit* +fugitive-:Gdiff fugitive.txt /*fugitive-:Gdiff* +fugitive-:Gdiff! fugitive.txt /*fugitive-:Gdiff!* +fugitive-:Ge fugitive.txt /*fugitive-:Ge* +fugitive-:Gedit fugitive.txt /*fugitive-:Gedit* +fugitive-:Ggrep fugitive.txt /*fugitive-:Ggrep* +fugitive-:Git fugitive.txt /*fugitive-:Git* +fugitive-:Glcd fugitive.txt /*fugitive-:Glcd* +fugitive-:Glog fugitive.txt /*fugitive-:Glog* +fugitive-:Gmove fugitive.txt /*fugitive-:Gmove* +fugitive-:Gpedit fugitive.txt /*fugitive-:Gpedit* +fugitive-:Gread fugitive.txt /*fugitive-:Gread* +fugitive-:Gread! fugitive.txt /*fugitive-:Gread!* +fugitive-:Gremove fugitive.txt /*fugitive-:Gremove* +fugitive-:Gsplit fugitive.txt /*fugitive-:Gsplit* +fugitive-:Gstatus fugitive.txt /*fugitive-:Gstatus* +fugitive-:Gtabedit fugitive.txt /*fugitive-:Gtabedit* +fugitive-:Gvsplit fugitive.txt /*fugitive-:Gvsplit* +fugitive-:Gwrite fugitive.txt /*fugitive-:Gwrite* +fugitive-<CR> fugitive.txt /*fugitive-<CR>* +fugitive-C fugitive.txt /*fugitive-C* +fugitive-O fugitive.txt /*fugitive-O* +fugitive-P fugitive.txt /*fugitive-P* +fugitive-a fugitive.txt /*fugitive-a* +fugitive-about fugitive.txt /*fugitive-about* +fugitive-author fugitive.txt /*fugitive-author* +fugitive-commands fugitive.txt /*fugitive-commands* +fugitive-mappings fugitive.txt /*fugitive-mappings* +fugitive-o fugitive.txt /*fugitive-o* +fugitive-revision fugitive.txt /*fugitive-revision* +fugitive-statusline fugitive.txt /*fugitive-statusline* +fugitive-~ fugitive.txt /*fugitive-~* +fugitive.txt fugitive.txt /*fugitive.txt* +g:SuperTabCompletionContexts supertab.txt /*g:SuperTabCompletionContexts* +g:SuperTabContextDefaultCompletionType supertab.txt /*g:SuperTabContextDefaultCompletionType* +g:SuperTabDefaultCompletionType supertab.txt /*g:SuperTabDefaultCompletionType* +g:SuperTabLongestHighlight supertab.txt /*g:SuperTabLongestHighlight* +g:SuperTabMappingBackward supertab.txt /*g:SuperTabMappingBackward* +g:SuperTabMappingForward supertab.txt /*g:SuperTabMappingForward* +g:SuperTabMappingTabLiteral supertab.txt /*g:SuperTabMappingTabLiteral* +g:SuperTabMidWordCompletion supertab.txt /*g:SuperTabMidWordCompletion* +g:SuperTabRetainCompletionDuration supertab.txt /*g:SuperTabRetainCompletionDuration* +g:vimball_home pi_vimball.txt /*g:vimball_home* +g:vimball_mkdir pi_vimball.txt /*g:vimball_mkdir* +gi clojure.txt /*gi* +gw clojure.txt /*gw* +ji clojure.txt /*ji* +jw clojure.txt /*jw* +li clojure.txt /*li* +lw clojure.txt /*lw* +m1 clojure.txt /*m1* +me clojure.txt /*me* +mi clojure.txt /*mi* +mw clojure.txt /*mw* +omnicpp-download omnicppcomplete.txt /*omnicpp-download* +omnicpp-faq omnicppcomplete.txt /*omnicpp-faq* +omnicpp-features omnicppcomplete.txt /*omnicpp-features* +omnicpp-history omnicppcomplete.txt /*omnicpp-history* +omnicpp-installation omnicppcomplete.txt /*omnicpp-installation* +omnicpp-limitations omnicppcomplete.txt /*omnicpp-limitations* +omnicpp-may-complete omnicppcomplete.txt /*omnicpp-may-complete* +omnicpp-options omnicppcomplete.txt /*omnicpp-options* +omnicpp-overview omnicppcomplete.txt /*omnicpp-overview* +omnicpp-popup omnicppcomplete.txt /*omnicpp-popup* +omnicpp-thanks omnicppcomplete.txt /*omnicpp-thanks* +omnicppcomplete omnicppcomplete.txt /*omnicppcomplete* +omnicppcomplete.txt omnicppcomplete.txt /*omnicppcomplete.txt* +pi_vimball.txt pi_vimball.txt /*pi_vimball.txt* +rF clojure.txt /*rF* +rf clojure.txt /*rf* +showmarks showmarks.txt /*showmarks* +showmarks-changelog showmarks.txt /*showmarks-changelog* +showmarks-commands showmarks.txt /*showmarks-commands* +showmarks-configuration showmarks.txt /*showmarks-configuration* +showmarks-contents showmarks.txt /*showmarks-contents* +showmarks-highlighting showmarks.txt /*showmarks-highlighting* +showmarks-mappings showmarks.txt /*showmarks-mappings* +showmarks.txt showmarks.txt /*showmarks.txt* +si clojure.txt /*si* +sr clojure.txt /*sr* +supertab supertab.txt /*supertab* +supertab-completioncontexts supertab.txt /*supertab-completioncontexts* +supertab-contextdefault supertab.txt /*supertab-contextdefault* +supertab-contextdiscover supertab.txt /*supertab-contextdiscover* +supertab-contextexample supertab.txt /*supertab-contextexample* +supertab-contexttext supertab.txt /*supertab-contexttext* +supertab-defaultcompletion supertab.txt /*supertab-defaultcompletion* +supertab-duration supertab.txt /*supertab-duration* +supertab-forwardbackward supertab.txt /*supertab-forwardbackward* +supertab-intro supertab.txt /*supertab-intro* +supertab-longesthighlight supertab.txt /*supertab-longesthighlight* +supertab-mappingtabliteral supertab.txt /*supertab-mappingtabliteral* +supertab-midword supertab.txt /*supertab-midword* +supertab-options supertab.txt /*supertab-options* +supertab-usage supertab.txt /*supertab-usage* +supertab.txt supertab.txt /*supertab.txt* +sw clojure.txt /*sw* +tabular Tabular.txt /*tabular* +tabular-intro Tabular.txt /*tabular-intro* +tabular-scripting Tabular.txt /*tabular-scripting* +tabular-toc Tabular.txt /*tabular-toc* +tabular-walkthrough Tabular.txt /*tabular-walkthrough* +tabular.vim Tabular.txt /*tabular.vim* +taglist-commands tlist.txt /*taglist-commands* +taglist-debug tlist.txt /*taglist-debug* +taglist-extend tlist.txt /*taglist-extend* +taglist-faq tlist.txt /*taglist-faq* +taglist-functions tlist.txt /*taglist-functions* +taglist-install tlist.txt /*taglist-install* +taglist-internet tlist.txt /*taglist-internet* +taglist-intro tlist.txt /*taglist-intro* +taglist-keys tlist.txt /*taglist-keys* +taglist-license tlist.txt /*taglist-license* +taglist-menu tlist.txt /*taglist-menu* +taglist-options tlist.txt /*taglist-options* +taglist-requirements tlist.txt /*taglist-requirements* +taglist-session tlist.txt /*taglist-session* +taglist-todo tlist.txt /*taglist-todo* +taglist-using tlist.txt /*taglist-using* +tlist.txt tlist.txt /*tlist.txt* +vba pi_vimball.txt /*vba* +vimball pi_vimball.txt /*vimball* +vimball-contents pi_vimball.txt /*vimball-contents* +vimball-extract pi_vimball.txt /*vimball-extract* +vimball-history pi_vimball.txt /*vimball-history* +vimball-intro pi_vimball.txt /*vimball-intro* +vimball-manual pi_vimball.txt /*vimball-manual* +vimclojure.txt clojure.txt /*vimclojure.txt* diff --git a/dotfiles/.vim/doc/tlist.txt b/dotfiles/.vim/doc/tlist.txt @@ -0,0 +1,1501 @@ +*tlist.txt* Plugin for browsing source code + +Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +For Vim version 6.0 and above +Last change: 2007 May 24 + +1. Overview |taglist-intro| +2. Taglist on the internet |taglist-internet| +3. Requirements |taglist-requirements| +4. Installation |taglist-install| +5. Usage |taglist-using| +6. Options |taglist-options| +7. Commands |taglist-commands| +8. Global functions |taglist-functions| +9. Extending |taglist-extend| +10. FAQ |taglist-faq| +11. License |taglist-license| +12. Todo |taglist-todo| + +============================================================================== + *taglist-intro* +1. Overview~ + +The "Tag List" plugin is a source code browser plugin for Vim. This plugin +allows you to efficiently browse through source code files for different +programming languages. The "Tag List" plugin provides the following features: + + * Displays the tags (functions, classes, structures, variables, etc.) + defined in a file in a vertically or horizontally split Vim window. + * In GUI Vim, optionally displays the tags in the Tags drop-down menu and + in the popup menu. + * Automatically updates the taglist window as you switch between + files/buffers. As you open new files, the tags defined in the new files + are added to the existing file list and the tags defined in all the + files are displayed grouped by the filename. + * When a tag name is selected from the taglist window, positions the + cursor at the definition of the tag in the source file. + * Automatically highlights the current tag name. + * Groups the tags by their type and displays them in a foldable tree. + * Can display the prototype and scope of a tag. + * Can optionally display the tag prototype instead of the tag name in the + taglist window. + * The tag list can be sorted either by name or by chronological order. + * Supports the following language files: Assembly, ASP, Awk, Beta, C, + C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, + Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, + SML, Sql, TCL, Verilog, Vim and Yacc. + * Can be easily extended to support new languages. Support for + existing languages can be modified easily. + * Provides functions to display the current tag name in the Vim status + line or the window title bar. + * The list of tags and files in the taglist can be saved and + restored across Vim sessions. + * Provides commands to get the name and prototype of the current tag. + * Runs in both console/terminal and GUI versions of Vim. + * Works with the winmanager plugin. Using the winmanager plugin, you + can use Vim plugins like the file explorer, buffer explorer and the + taglist plugin at the same time like an IDE. + * Can be used in both Unix and MS-Windows systems. + +============================================================================== + *taglist-internet* +2. Taglist on the internet~ + +The home page of the taglist plugin is at: +> + http://vim-taglist.sourceforge.net/ +< +You can subscribe to the taglist mailing list to post your questions or +suggestions for improvement or to send bug reports. Visit the following page +for subscribing to the mailing list: +> + http://groups.yahoo.com/group/taglist +< +============================================================================== + *taglist-requirements* +3. Requirements~ + +The taglist plugin requires the following: + + * Vim version 6.0 and above + * Exuberant ctags 5.0 and above + +The taglist plugin will work on all the platforms where the exuberant ctags +utility and Vim are supported (this includes MS-Windows and Unix based +systems). + +The taglist plugin relies on the exuberant ctags utility to dynamically +generate the tag listing. The exuberant ctags utility must be installed in +your system to use this plugin. The exuberant ctags utility is shipped with +most of the Linux distributions. You can download the exuberant ctags utility +from +> + http://ctags.sourceforge.net +< +The taglist plugin doesn't use or create a tags file and there is no need to +create a tags file to use this plugin. The taglist plugin will not work with +the GNU ctags or the Unix ctags utility. + +This plugin relies on the Vim "filetype" detection mechanism to determine the +type of the current file. You have to turn on the Vim filetype detection by +adding the following line to your .vimrc file: +> + filetype on +< +The taglist plugin will not work if you run Vim in the restricted mode (using +the -Z command-line argument). + +The taglist plugin uses the Vim system() function to invoke the exuberant +ctags utility. If Vim is compiled without the system() function then you +cannot use the taglist plugin. Some of the Linux distributions (Suse) compile +Vim without the system() function for security reasons. + +============================================================================== + *taglist-install* +4. Installation~ + +1. Download the taglist.zip file and unzip the files to the $HOME/.vim or the + $HOME/vimfiles or the $VIM/vimfiles directory. After this step, you should + have the following two files (the directory structure should be preserved): + + plugin/taglist.vim - main taglist plugin file + doc/taglist.txt - documentation (help) file + + Refer to the |add-plugin|and |'runtimepath'| Vim help pages for more + details about installing Vim plugins. +2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc + directory, start Vim and run the ":helptags ." command to process the + taglist help file. Without this step, you cannot jump to the taglist help + topics. +3. If the exuberant ctags utility is not present in one of the directories in + the PATH environment variable, then set the 'Tlist_Ctags_Cmd' variable to + point to the location of the exuberant ctags utility (not to the directory) + in the .vimrc file. +4. If you are running a terminal/console version of Vim and the terminal + doesn't support changing the window width then set the + 'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file. +5. Restart Vim. +6. You can now use the ":TlistToggle" command to open/close the taglist + window. You can use the ":help taglist" command to get more information + about using the taglist plugin. + +To uninstall the taglist plugin, remove the plugin/taglist.vim and +doc/taglist.txt files from the $HOME/.vim or $HOME/vimfiles directory. + +============================================================================== + *taglist-using* +5. Usage~ + +The taglist plugin can be used in several different ways. + +1. You can keep the taglist window open during the entire editing session. On + opening the taglist window, the tags defined in all the files in the Vim + buffer list will be displayed in the taglist window. As you edit files, the + tags defined in them will be added to the taglist window. You can select a + tag from the taglist window and jump to it. The current tag will be + highlighted in the taglist window. You can close the taglist window when + you no longer need the window. +2. You can configure the taglist plugin to process the tags defined in all the + edited files always. In this configuration, even if the taglist window is + closed and the taglist menu is not displayed, the taglist plugin will + processes the tags defined in newly edited files. You can then open the + taglist window only when you need to select a tag and then automatically + close the taglist window after selecting the tag. +3. You can configure the taglist plugin to display only the tags defined in + the current file in the taglist window. By default, the taglist plugin + displays the tags defined in all the files in the Vim buffer list. As you + switch between files, the taglist window will be refreshed to display only + the tags defined in the current file. +4. In GUI Vim, you can use the Tags pull-down and popup menu created by the + taglist plugin to display the tags defined in the current file and select a + tag to jump to it. You can use the menu without opening the taglist window. + By default, the Tags menu is disabled. +5. You can configure the taglist plugin to display the name of the current tag + in the Vim window status line or in the Vim window title bar. For this to + work without the taglist window or menu, you need to configure the taglist + plugin to process the tags defined in a file always. +6. You can save the tags defined in multiple files to a taglist session file + and load it when needed. You can also configure the taglist plugin to not + update the taglist window when editing new files. You can then manually add + files to the taglist window. + +Opening the taglist window~ +You can open the taglist window using the ":TlistOpen" or the ":TlistToggle" +commands. The ":TlistOpen" command opens the taglist window and jumps to it. +The ":TlistToggle" command opens or closes (toggle) the taglist window and the +cursor remains in the current window. If the 'Tlist_GainFocus_On_ToggleOpen' +variable is set to 1, then the ":TlistToggle" command opens the taglist window +and moves the cursor to the taglist window. + +You can map a key to invoke these commands. For example, the following command +creates a normal mode mapping for the <F8> key to toggle the taglist window. +> + nnoremap <silent> <F8> :TlistToggle<CR> +< +Add the above mapping to your ~/.vimrc or $HOME/_vimrc file. + +To automatically open the taglist window on Vim startup, set the +'Tlist_Auto_Open' variable to 1. + +You can also open the taglist window on startup using the following command +line: +> + $ vim +TlistOpen +< +Closing the taglist window~ +You can close the taglist window from the taglist window by pressing 'q' or +using the Vim ":q" command. You can also use any of the Vim window commands to +close the taglist window. Invoking the ":TlistToggle" command when the taglist +window is opened, closes the taglist window. You can also use the +":TlistClose" command to close the taglist window. + +To automatically close the taglist window when a tag or file is selected, you +can set the 'Tlist_Close_On_Select' variable to 1. To exit Vim when only the +taglist window is present, set the 'Tlist_Exit_OnlyWindow' variable to 1. + +Jumping to a tag or a file~ +You can select a tag in the taglist window either by pressing the <Enter> key +or by double clicking the tag name using the mouse. To jump to a tag on a +single mouse click set the 'Tlist_Use_SingleClick' variable to 1. + +If the selected file is already opened in a window, then the cursor is moved +to that window. If the file is not currently opened in a window then the file +is opened in the window used by the taglist plugin to show the previously +selected file. If there are no usable windows, then the file is opened in a +new window. The file is not opened in special windows like the quickfix +window, preview window and windows containing buffer with the 'buftype' option +set. + +To jump to the tag in a new window, press the 'o' key. To open the file in the +previous window (Ctrl-W_p) use the 'P' key. You can press the 'p' key to jump +to the tag but still keep the cursor in the taglist window (preview). + +To open the selected file in a tab, use the 't' key. If the file is already +present in a tab then the cursor is moved to that tab otherwise the file is +opened in a new tab. To jump to a tag in a new tab press Ctrl-t. The taglist +window is automatically opened in the newly created tab. + +Instead of jumping to a tag, you can open a file by pressing the <Enter> key +or by double clicking the file name using the mouse. + +In the taglist window, you can use the [[ or <Backspace> key to jump to the +beginning of the previous file. You can use the ]] or <Tab> key to jump to the +beginning of the next file. When you reach the first or last file, the search +wraps around and the jumps to the next/previous file. + +Highlighting the current tag~ +The taglist plugin automatically highlights the name of the current tag in the +taglist window. The Vim |CursorHold| autocmd event is used for this. If the +current tag name is not visible in the taglist window, then the taglist window +contents are scrolled to make that tag name visible. You can also use the +":TlistHighlightTag" command to force the highlighting of the current tag. + +The tag name is highlighted if no activity is performed for |'updatetime'| +milliseconds. The default value for this Vim option is 4 seconds. To avoid +unexpected problems, you should not set the |'updatetime'| option to a very +low value. + +To disable the automatic highlighting of the current tag name in the taglist +window, set the 'Tlist_Auto_Highlight_Tag' variable to zero. + +When entering a Vim buffer/window, the taglist plugin automatically highlights +the current tag in that buffer/window. If you like to disable the automatic +highlighting of the current tag when entering a buffer, set the +'Tlist_Highlight_Tag_On_BufEnter' variable to zero. + +Adding files to the taglist~ +When the taglist window is opened, all the files in the Vim buffer list are +processed and the supported files are added to the taglist. When you edit a +file in Vim, the taglist plugin automatically processes this file and adds it +to the taglist. If you close the taglist window, the tag information in the +taglist is retained. + +To process files even when the taglist window is not open, set the +'Tlist_Process_File_Always' variable to 1. + +You can manually add multiple files to the taglist without opening them using +the ":TlistAddFiles" and the ":TlistAddFilesRecursive" commands. + +For example, to add all the C files in the /my/project/dir directory to the +taglist, you can use the following command: +> + :TlistAddFiles /my/project/dir/*.c +< +Note that when adding several files with a large number of tags or a large +number of files, it will take several seconds to several minutes for the +taglist plugin to process all the files. You should not interrupt the taglist +plugin by pressing <CTRL-C>. + +You can recursively add multiple files from a directory tree using the +":TlistAddFilesRecursive" command: +> + :TlistAddFilesRecursive /my/project/dir *.c +< +This command takes two arguments. The first argument specifies the directory +from which to recursively add the files. The second optional argument +specifies the wildcard matching pattern for selecting the files to add. The +default pattern is * and all the files are added. + +Displaying tags for only one file~ +The taglist window displays the tags for all the files in the Vim buffer list +and all the manually added files. To display the tags for only the current +active buffer, set the 'Tlist_Show_One_File' variable to 1. + +Removing files from the taglist~ +You can remove a file from the taglist window, by pressing the 'd' key when the +cursor is on one of the tags listed for the file in the taglist window. The +removed file will no longer be displayed in the taglist window in the current +Vim session. To again display the tags for the file, open the file in a Vim +window and then use the ":TlistUpdate" command or use ":TlistAddFiles" command +to add the file to the taglist. + +When a buffer is removed from the Vim buffer list using the ":bdelete" or the +":bwipeout" command, the taglist is updated to remove the stored information +for this buffer. + +Updating the tags displayed for a file~ +The taglist plugin keeps track of the modification time of a file. When the +modification time changes (the file is modified), the taglist plugin +automatically updates the tags listed for that file. The modification time of +a file is checked when you enter a window containing that file or when you +load that file. + +You can also update or refresh the tags displayed for a file by pressing the +"u" key in the taglist window. If an existing file is modified, after the file +is saved, the taglist plugin automatically updates the tags displayed for the +file. + +You can also use the ":TlistUpdate" command to update the tags for the current +buffer after you made some changes to it. You should save the modified buffer +before you update the taglist window. Otherwise the listed tags will not +include the new tags created in the buffer. + +If you have deleted the tags displayed for a file in the taglist window using +the 'd' key, you can again display the tags for that file using the +":TlistUpdate" command. + +Controlling the taglist updates~ +To disable the automatic processing of new files or modified files, you can +set the 'Tlist_Auto_Update' variable to zero. When this variable is set to +zero, the taglist is updated only when you use the ":TlistUpdate" command or +the ":TlistAddFiles" or the ":TlistAddFilesRecursive" commands. You can use +this option to control which files are added to the taglist. + +You can use the ":TlistLock" command to lock the taglist contents. After this +command is executed, new files are not automatically added to the taglist. +When the taglist is locked, you can use the ":TlistUpdate" command to add the +current file or the ":TlistAddFiles" or ":TlistAddFilesRecursive" commands to +add new files to the taglist. To unlock the taglist, use the ":TlistUnlock" +command. + +Displaying the tag prototype~ +To display the prototype of the tag under the cursor in the taglist window, +press the space bar. If you place the cursor on a tag name in the taglist +window, then the tag prototype is displayed at the Vim status line after +|'updatetime'| milliseconds. The default value for the |'updatetime'| Vim +option is 4 seconds. + +You can get the name and prototype of a tag without opening the taglist window +and the taglist menu using the ":TlistShowTag" and the ":TlistShowPrototype" +commands. These commands will work only if the current file is already present +in the taglist. To use these commands without opening the taglist window, set +the 'Tlist_Process_File_Always' variable to 1. + +You can use the ":TlistShowTag" command to display the name of the tag at or +before the specified line number in the specified file. If the file name and +line number are not supplied, then this command will display the name of the +current tag. For example, +> + :TlistShowTag + :TlistShowTag myfile.java 100 +< +You can use the ":TlistShowPrototype" command to display the prototype of the +tag at or before the specified line number in the specified file. If the file +name and the line number are not supplied, then this command will display the +prototype of the current tag. For example, +> + :TlistShowPrototype + :TlistShowPrototype myfile.c 50 +< +In the taglist window, when the mouse is moved over a tag name, the tag +prototype is displayed in a balloon. This works only in GUI versions where +balloon evaluation is supported. + +Taglist window contents~ +The taglist window contains the tags defined in various files in the taglist +grouped by the filename and by the tag type (variable, function, class, etc.). +For tags with scope information (like class members, structures inside +structures, etc.), the scope information is displayed in square brackets "[]" +after the tag name. + +The contents of the taglist buffer/window are managed by the taglist plugin. +The |'filetype'| for the taglist buffer is set to 'taglist'. The Vim +|'modifiable'| option is turned off for the taglist buffer. You should not +manually edit the taglist buffer, by setting the |'modifiable'| flag. If you +manually edit the taglist buffer contents, then the taglist plugin will be out +of sync with the taglist buffer contents and the plugin will no longer work +correctly. To redisplay the taglist buffer contents again, close the taglist +window and reopen it. + +Opening and closing the tag and file tree~ +In the taglist window, the tag names are displayed as a foldable tree using +the Vim folding support. You can collapse the tree using the '-' key or using +the Vim |zc| fold command. You can open the tree using the '+' key or using +the Vim |zo| fold command. You can open all the folds using the '*' key or +using the Vim |zR| fold command. You can also use the mouse to open/close the +folds. You can close all the folds using the '=' key. You should not manually +create or delete the folds in the taglist window. + +To automatically close the fold for the inactive files/buffers and open only +the fold for the current buffer in the taglist window, set the +'Tlist_File_Fold_Auto_Close' variable to 1. + +Sorting the tags for a file~ +The tags displayed in the taglist window can be sorted either by their name or +by their chronological order. The default sorting method is by the order in +which the tags appear in a file. You can change the default sort method by +setting the 'Tlist_Sort_Type' variable to either "name" or "order". You can +sort the tags by their name by pressing the "s" key in the taglist window. You +can again sort the tags by their chronological order using the "s" key. Each +file in the taglist window can be sorted using different order. + +Zooming in and out of the taglist window~ +You can press the 'x' key in the taglist window to maximize the taglist +window width/height. The window will be maximized to the maximum possible +width/height without closing the other existing windows. You can again press +'x' to restore the taglist window to the default width/height. + + *taglist-session* +Taglist Session~ +A taglist session refers to the group of files and their tags stored in the +taglist in a Vim session. + +You can save and restore a taglist session (and all the displayed tags) using +the ":TlistSessionSave" and ":TlistSessionLoad" commands. + +To save the information about the tags and files in the taglist to a file, use +the ":TlistSessionSave" command and specify the filename: +> + :TlistSessionSave <file name> +< +To load a saved taglist session, use the ":TlistSessionLoad" command: > + + :TlistSessionLoad <file name> +< +When you load a taglist session file, the tags stored in the file will be +added to the tags already stored in the taglist. + +The taglist session feature can be used to save the tags for large files or a +group of frequently used files (like a project). By using the taglist session +file, you can minimize the amount to time it takes to load/refresh the taglist +for multiple files. + +You can create more than one taglist session file for multiple groups of +files. + +Displaying the tag name in the Vim status line or the window title bar~ +You can use the Tlist_Get_Tagname_By_Line() function provided by the taglist +plugin to display the current tag name in the Vim status line or the window +title bar. Similarly, you can use the Tlist_Get_Tag_Prototype_By_Line() +function to display the current tag prototype in the Vim status line or the +window title bar. + +For example, the following command can be used to display the current tag name +in the status line: +> + :set statusline=%<%f%=%([%{Tlist_Get_Tagname_By_Line()}]%) +< +The following command can be used to display the current tag name in the +window title bar: +> + :set title titlestring=%<%f\ %([%{Tlist_Get_Tagname_By_Line()}]%) +< +Note that the current tag name can be displayed only after the file is +processed by the taglist plugin. For this, you have to either set the +'Tlist_Process_File_Always' variable to 1 or open the taglist window or use +the taglist menu. For more information about configuring the Vim status line, +refer to the documentation for the Vim |'statusline'| option. + +Changing the taglist window highlighting~ +The following Vim highlight groups are defined and used to highlight the +various entities in the taglist window: + + TagListTagName - Used for tag names + TagListTagScope - Used for tag scope + TagListTitle - Used for tag titles + TagListComment - Used for comments + TagListFileName - Used for filenames + +By default, these highlight groups are linked to the standard Vim highlight +groups. If you want to change the colors used for these highlight groups, +prefix the highlight group name with 'My' and define it in your .vimrc or +.gvimrc file: MyTagListTagName, MyTagListTagScope, MyTagListTitle, +MyTagListComment and MyTagListFileName. For example, to change the colors +used for tag names, you can use the following command: +> + :highlight MyTagListTagName guifg=blue ctermfg=blue +< +Controlling the taglist window~ +To use a horizontally split taglist window, instead of a vertically split +window, set the 'Tlist_Use_Horiz_Window' variable to 1. + +To use a vertically split taglist window on the rightmost side of the Vim +window, set the 'Tlist_Use_Right_Window' variable to 1. + +You can specify the width of the vertically split taglist window, by setting +the 'Tlist_WinWidth' variable. You can specify the height of the horizontally +split taglist window, by setting the 'Tlist_WinHeight' variable. + +When opening a vertically split taglist window, the Vim window width is +increased to accommodate the new taglist window. When the taglist window is +closed, the Vim window is reduced. To disable this, set the +'Tlist_Inc_Winwidth' variable to zero. + +To reduce the number of empty lines in the taglist window, set the +'Tlist_Compact_Format' variable to 1. + +To not display the Vim fold column in the taglist window, set the +'Tlist_Enable_Fold_Column' variable to zero. + +To display the tag prototypes instead of the tag names in the taglist window, +set the 'Tlist_Display_Prototype' variable to 1. + +To not display the scope of the tags next to the tag names, set the +'Tlist_Display_Tag_Scope' variable to zero. + + *taglist-keys* +Taglist window key list~ +The following table lists the description of the keys that can be used +in the taglist window. + + Key Description~ + + <CR> Jump to the location where the tag under cursor is + defined. + o Jump to the location where the tag under cursor is + defined in a new window. + P Jump to the tag in the previous (Ctrl-W_p) window. + p Display the tag definition in the file window and + keep the cursor in the taglist window itself. + t Jump to the tag in a new tab. If the file is already + opened in a tab, move to that tab. + Ctrl-t Jump to the tag in a new tab. + <Space> Display the prototype of the tag under the cursor. + For file names, display the full path to the file, + file type and the number of tags. For tag types, display the + tag type and the number of tags. + u Update the tags listed in the taglist window + s Change the sort order of the tags (by name or by order) + d Remove the tags for the file under the cursor + x Zoom-in or Zoom-out the taglist window + + Open a fold + - Close a fold + * Open all folds + = Close all folds + [[ Jump to the beginning of the previous file + <Backspace> Jump to the beginning of the previous file + ]] Jump to the beginning of the next file + <Tab> Jump to the beginning of the next file + q Close the taglist window + <F1> Display help + +The above keys will work in both the normal mode and the insert mode. + + *taglist-menu* +Taglist menu~ +When using GUI Vim, the taglist plugin can display the tags defined in the +current file in the drop-down menu and the popup menu. By default, this +feature is turned off. To turn on this feature, set the 'Tlist_Show_Menu' +variable to 1. + +You can jump to a tag by selecting the tag name from the menu. You can use the +taglist menu independent of the taglist window i.e. you don't need to open the +taglist window to get the taglist menu. + +When you switch between files/buffers, the taglist menu is automatically +updated to display the tags defined in the current file/buffer. + +The tags are grouped by their type (variables, functions, classes, methods, +etc.) and displayed as a separate sub-menu for each type. If all the tags +defined in a file are of the same type (e.g. functions), then the sub-menu is +not used. + +If the number of items in a tag type submenu exceeds the value specified by +the 'Tlist_Max_Submenu_Items' variable, then the submenu will be split into +multiple submenus. The default setting for 'Tlist_Max_Submenu_Items' is 25. +The first and last tag names in the submenu are used to form the submenu name. +The menu items are prefixed by alpha-numeric characters for easy selection by +keyboard. + +If the popup menu support is enabled (the |'mousemodel'| option contains +"popup"), then the tags menu is added to the popup menu. You can access +the popup menu by right clicking on the GUI window. + +You can regenerate the tags menu by selecting the 'Tags->Refresh menu' entry. +You can sort the tags listed in the menu either by name or by order by +selecting the 'Tags->Sort menu by->Name/Order' menu entry. + +You can tear-off the Tags menu and keep it on the side of the Vim window +for quickly locating the tags. + +Using the taglist plugin with the winmanager plugin~ +You can use the taglist plugin with the winmanager plugin. This will allow you +to use the file explorer, buffer explorer and the taglist plugin at the same +time in different windows. To use the taglist plugin with the winmanager +plugin, set 'TagList' in the 'winManagerWindowLayout' variable. For example, +to use the file explorer plugin and the taglist plugin at the same time, use +the following setting: > + + let winManagerWindowLayout = 'FileExplorer|TagList' +< +Getting help~ +If you have installed the taglist help file (this file), then you can use the +Vim ":help taglist-<keyword>" command to get help on the various taglist +topics. + +You can press the <F1> key in the taglist window to display the help +information about using the taglist window. If you again press the <F1> key, +the help information is removed from the taglist window. + + *taglist-debug* +Debugging the taglist plugin~ +You can use the ":TlistDebug" command to enable logging of the debug messages +from the taglist plugin. To display the logged debug messages, you can use the +":TlistMessages" command. To disable the logging of the debug messages, use +the ":TlistUndebug" command. + +You can specify a file name to the ":TlistDebug" command to log the debug +messages to a file. Otherwise, the debug messages are stored in a script-local +variable. In the later case, to minimize memory usage, only the last 3000 +characters from the debug messages are stored. + +============================================================================== + *taglist-options* +6. Options~ + +A number of Vim variables control the behavior of the taglist plugin. These +variables are initialized to a default value. By changing these variables you +can change the behavior of the taglist plugin. You need to change these +settings only if you want to change the behavior of the taglist plugin. You +should use the |:let| command in your .vimrc file to change the setting of any +of these variables. + +The configurable taglist variables are listed below. For a detailed +description of these variables refer to the text below this table. + +|'Tlist_Auto_Highlight_Tag'| Automatically highlight the current tag in the + taglist. +|'Tlist_Auto_Open'| Open the taglist window when Vim starts. +|'Tlist_Auto_Update'| Automatically update the taglist to include + newly edited files. +|'Tlist_Close_On_Select'| Close the taglist window when a file or tag is + selected. +|'Tlist_Compact_Format'| Remove extra information and blank lines from + the taglist window. +|'Tlist_Ctags_Cmd'| Specifies the path to the ctags utility. +|'Tlist_Display_Prototype'| Show prototypes and not tags in the taglist + window. +|'Tlist_Display_Tag_Scope'| Show tag scope next to the tag name. +|'Tlist_Enable_Fold_Column'| Show the fold indicator column in the taglist + window. +|'Tlist_Exit_OnlyWindow'| Close Vim if the taglist is the only window. +|'Tlist_File_Fold_Auto_Close'| Close tag folds for inactive buffers. +|'Tlist_GainFocus_On_ToggleOpen'| + Jump to taglist window on open. +|'Tlist_Highlight_Tag_On_BufEnter'| + On entering a buffer, automatically highlight + the current tag. +|'Tlist_Inc_Winwidth'| Increase the Vim window width to accommodate + the taglist window. +|'Tlist_Max_Submenu_Items'| Maximum number of items in a tags sub-menu. +|'Tlist_Max_Tag_Length'| Maximum tag length used in a tag menu entry. +|'Tlist_Process_File_Always'| Process files even when the taglist window is + closed. +|'Tlist_Show_Menu'| Display the tags menu. +|'Tlist_Show_One_File'| Show tags for the current buffer only. +|'Tlist_Sort_Type'| Sort method used for arranging the tags. +|'Tlist_Use_Horiz_Window'| Use a horizontally split window for the + taglist window. +|'Tlist_Use_Right_Window'| Place the taglist window on the right side. +|'Tlist_Use_SingleClick'| Single click on a tag jumps to it. +|'Tlist_WinHeight'| Horizontally split taglist window height. +|'Tlist_WinWidth'| Vertically split taglist window width. + + *'Tlist_Auto_Highlight_Tag'* +Tlist_Auto_Highlight_Tag~ +The taglist plugin will automatically highlight the current tag in the taglist +window. If you want to disable this, then you can set the +'Tlist_Auto_Highlight_Tag' variable to zero. Note that even though the current +tag highlighting is disabled, the tags for a new file will still be added to +the taglist window. +> + let Tlist_Auto_Highlight_Tag = 0 +< +With the above variable set to 1, you can use the ":TlistHighlightTag" command +to highlight the current tag. + + *'Tlist_Auto_Open'* +Tlist_Auto_Open~ +To automatically open the taglist window, when you start Vim, you can set the +'Tlist_Auto_Open' variable to 1. By default, this variable is set to zero and +the taglist window will not be opened automatically on Vim startup. +> + let Tlist_Auto_Open = 1 +< +The taglist window is opened only when a supported type of file is opened on +Vim startup. For example, if you open text files, then the taglist window will +not be opened. + + *'Tlist_Auto_Update'* +Tlist_Auto_Update~ +When a new file is edited, the tags defined in the file are automatically +processed and added to the taglist. To stop adding new files to the taglist, +set the 'Tlist_Auto_Update' variable to zero. By default, this variable is set +to 1. +> + let Tlist_Auto_Update = 0 +< +With the above variable set to 1, you can use the ":TlistUpdate" command to +add the tags defined in the current file to the taglist. + + *'Tlist_Close_On_Select'* +Tlist_Close_On_Select~ +If you want to close the taglist window when a file or tag is selected, then +set the 'Tlist_Close_On_Select' variable to 1. By default, this variable is +set zero and when you select a tag or file from the taglist window, the window +is not closed. +> + let Tlist_Close_On_Select = 1 +< + *'Tlist_Compact_Format'* +Tlist_Compact_Format~ +By default, empty lines are used to separate different tag types displayed for +a file and the tags displayed for different files in the taglist window. If +you want to display as many tags as possible in the taglist window, you can +set the 'Tlist_Compact_Format' variable to 1 to get a compact display. +> + let Tlist_Compact_Format = 1 +< + *'Tlist_Ctags_Cmd'* +Tlist_Ctags_Cmd~ +The 'Tlist_Ctags_Cmd' variable specifies the location (path) of the exuberant +ctags utility. If exuberant ctags is present in any one of the directories in +the PATH environment variable, then there is no need to set this variable. + +The exuberant ctags tool can be installed under different names. When the +taglist plugin starts up, if the 'Tlist_Ctags_Cmd' variable is not set, it +checks for the names exuberant-ctags, exctags, ctags, ctags.exe and tags in +the PATH environment variable. If any one of the named executable is found, +then the Tlist_Ctags_Cmd variable is set to that name. + +If exuberant ctags is not present in one of the directories specified in the +PATH environment variable, then set this variable to point to the location of +the ctags utility in your system. Note that this variable should point to the +fully qualified exuberant ctags location and NOT to the directory in which +exuberant ctags is installed. If the exuberant ctags tool is not found in +either PATH or in the specified location, then the taglist plugin will not be +loaded. Examples: +> + let Tlist_Ctags_Cmd = 'd:\tools\ctags.exe' + let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' +< + *'Tlist_Display_Prototype'* +Tlist_Display_Prototype~ +By default, only the tag name will be displayed in the taglist window. If you +like to see tag prototypes instead of names, set the 'Tlist_Display_Prototype' +variable to 1. By default, this variable is set to zero and only tag names +will be displayed. +> + let Tlist_Display_Prototype = 1 +< + *'Tlist_Display_Tag_Scope'* +Tlist_Display_Tag_Scope~ +By default, the scope of a tag (like a C++ class) will be displayed in +square brackets next to the tag name. If you don't want the tag scopes +to be displayed, then set the 'Tlist_Display_Tag_Scope' to zero. By default, +this variable is set to 1 and the tag scopes will be displayed. +> + let Tlist_Display_Tag_Scope = 0 +< + *'Tlist_Enable_Fold_Column'* +Tlist_Enable_Fold_Column~ +By default, the Vim fold column is enabled and displayed in the taglist +window. If you wish to disable this (for example, when you are working with a +narrow Vim window or terminal), you can set the 'Tlist_Enable_Fold_Column' +variable to zero. +> + let Tlist_Enable_Fold_Column = 1 +< + *'Tlist_Exit_OnlyWindow'* +Tlist_Exit_OnlyWindow~ +If you want to exit Vim if only the taglist window is currently opened, then +set the 'Tlist_Exit_OnlyWindow' variable to 1. By default, this variable is +set to zero and the Vim instance will not be closed if only the taglist window +is present. +> + let Tlist_Exit_OnlyWindow = 1 +< + *'Tlist_File_Fold_Auto_Close'* +Tlist_File_Fold_Auto_Close~ +By default, the tags tree displayed in the taglist window for all the files is +opened. You can close/fold the tags tree for the files manually. To +automatically close the tags tree for inactive files, you can set the +'Tlist_File_Fold_Auto_Close' variable to 1. When this variable is set to 1, +the tags tree for the current buffer is automatically opened and for all the +other buffers is closed. +> + let Tlist_File_Fold_Auto_Close = 1 +< + *'Tlist_GainFocus_On_ToggleOpen'* +Tlist_GainFocus_On_ToggleOpen~ +When the taglist window is opened using the ':TlistToggle' command, this +option controls whether the cursor is moved to the taglist window or remains +in the current window. By default, this option is set to 0 and the cursor +remains in the current window. When this variable is set to 1, the cursor +moves to the taglist window after opening the taglist window. +> + let Tlist_GainFocus_On_ToggleOpen = 1 +< + *'Tlist_Highlight_Tag_On_BufEnter'* +Tlist_Highlight_Tag_On_BufEnter~ +When you enter a Vim buffer/window, the current tag in that buffer/window is +automatically highlighted in the taglist window. If the current tag name is +not visible in the taglist window, then the taglist window contents are +scrolled to make that tag name visible. If you like to disable the automatic +highlighting of the current tag when entering a buffer, you can set the +'Tlist_Highlight_Tag_On_BufEnter' variable to zero. The default setting for +this variable is 1. +> + let Tlist_Highlight_Tag_On_BufEnter = 0 +< + *'Tlist_Inc_Winwidth'* +Tlist_Inc_Winwidth~ +By default, when the width of the window is less than 100 and a new taglist +window is opened vertically, then the window width is increased by the value +set in the 'Tlist_WinWidth' variable to accommodate the new window. The value +of this variable is used only if you are using a vertically split taglist +window. + +If your terminal doesn't support changing the window width from Vim (older +version of xterm running in a Unix system) or if you see any weird problems in +the screen due to the change in the window width or if you prefer not to +adjust the window width then set the 'Tlist_Inc_Winwidth' variable to zero. +CAUTION: If you are using the MS-Windows version of Vim in a MS-DOS command +window then you must set this variable to zero, otherwise the system may hang +due to a Vim limitation (explained in :help win32-problems) +> + let Tlist_Inc_Winwidth = 0 +< + *'Tlist_Max_Submenu_Items'* +Tlist_Max_Submenu_Items~ +If a file contains too many tags of a particular type (function, variable, +class, etc.), greater than that specified by the 'Tlist_Max_Submenu_Items' +variable, then the menu for that tag type will be split into multiple +sub-menus. The default setting for the 'Tlist_Max_Submenu_Items' variable is +25. This can be changed by setting the 'Tlist_Max_Submenu_Items' variable: +> + let Tlist_Max_Submenu_Items = 20 +< +The name of the submenu is formed using the names of the first and the last +tag entries in that submenu. + + *'Tlist_Max_Tag_Length'* +Tlist_Max_Tag_Length~ +Only the first 'Tlist_Max_Tag_Length' characters from the tag names will be +used to form the tag type submenu name. The default value for this variable is +10. Change the 'Tlist_Max_Tag_Length' setting if you want to include more or +less characters: +> + let Tlist_Max_Tag_Length = 10 +< + *'Tlist_Process_File_Always'* +Tlist_Process_File_Always~ +By default, the taglist plugin will generate and process the tags defined in +the newly opened files only when the taglist window is opened or when the +taglist menu is enabled. When the taglist window is closed, the taglist plugin +will stop processing the tags for newly opened files. + +You can set the 'Tlist_Process_File_Always' variable to 1 to generate the list +of tags for new files even when the taglist window is closed and the taglist +menu is disabled. +> + let Tlist_Process_File_Always = 1 +< +To use the ":TlistShowTag" and the ":TlistShowPrototype" commands without the +taglist window and the taglist menu, you should set this variable to 1. + + *'Tlist_Show_Menu'* +Tlist_Show_Menu~ +When using GUI Vim, you can display the tags defined in the current file in a +menu named "Tags". By default, this feature is turned off. To turn on this +feature, set the 'Tlist_Show_Menu' variable to 1: +> + let Tlist_Show_Menu = 1 +< + *'Tlist_Show_One_File'* +Tlist_Show_One_File~ +By default, the taglist plugin will display the tags defined in all the loaded +buffers in the taglist window. If you prefer to display the tags defined only +in the current buffer, then you can set the 'Tlist_Show_One_File' to 1. When +this variable is set to 1, as you switch between buffers, the taglist window +will be refreshed to display the tags for the current buffer and the tags for +the previous buffer will be removed. +> + let Tlist_Show_One_File = 1 +< + *'Tlist_Sort_Type'* +Tlist_Sort_Type~ +The 'Tlist_Sort_Type' variable specifies the sort order for the tags in the +taglist window. The tags can be sorted either alphabetically by their name or +by the order of their appearance in the file (chronological order). By +default, the tag names will be listed by the order in which they are defined +in the file. You can change the sort type (from name to order or from order to +name) by pressing the "s" key in the taglist window. You can also change the +default sort order by setting 'Tlist_Sort_Type' to "name" or "order": +> + let Tlist_Sort_Type = "name" +< + *'Tlist_Use_Horiz_Window'* +Tlist_Use_Horiz_Window~ +Be default, the tag names are displayed in a vertically split window. If you +prefer a horizontally split window, then set the 'Tlist_Use_Horiz_Window' +variable to 1. If you are running MS-Windows version of Vim in a MS-DOS +command window, then you should use a horizontally split window instead of a +vertically split window. Also, if you are using an older version of xterm in a +Unix system that doesn't support changing the xterm window width, you should +use a horizontally split window. +> + let Tlist_Use_Horiz_Window = 1 +< + *'Tlist_Use_Right_Window'* +Tlist_Use_Right_Window~ +By default, the vertically split taglist window will appear on the left hand +side. If you prefer to open the window on the right hand side, you can set the +'Tlist_Use_Right_Window' variable to 1: +> + let Tlist_Use_Right_Window = 1 +< + *'Tlist_Use_SingleClick'* +Tlist_Use_SingleClick~ +By default, when you double click on the tag name using the left mouse +button, the cursor will be positioned at the definition of the tag. You +can set the 'Tlist_Use_SingleClick' variable to 1 to jump to a tag when +you single click on the tag name using the mouse. By default this variable +is set to zero. +> + let Tlist_Use_SingleClick = 1 +< +Due to a bug in Vim, if you set 'Tlist_Use_SingleClick' to 1 and try to resize +the taglist window using the mouse, then Vim will crash. This problem is fixed +in Vim 6.3 and above. In the meantime, instead of resizing the taglist window +using the mouse, you can use normal Vim window resizing commands to resize the +taglist window. + + *'Tlist_WinHeight'* +Tlist_WinHeight~ +The default height of the horizontally split taglist window is 10. This can be +changed by modifying the 'Tlist_WinHeight' variable: +> + let Tlist_WinHeight = 20 +< +The |'winfixheight'| option is set for the taglist window, to maintain the +height of the taglist window, when new Vim windows are opened and existing +windows are closed. + + *'Tlist_WinWidth'* +Tlist_WinWidth~ +The default width of the vertically split taglist window is 30. This can be +changed by modifying the 'Tlist_WinWidth' variable: +> + let Tlist_WinWidth = 20 +< +Note that the value of the |'winwidth'| option setting determines the minimum +width of the current window. If you set the 'Tlist_WinWidth' variable to a +value less than that of the |'winwidth'| option setting, then Vim will use the +value of the |'winwidth'| option. + +When new Vim windows are opened and existing windows are closed, the taglist +plugin will try to maintain the width of the taglist window to the size +specified by the 'Tlist_WinWidth' variable. + +============================================================================== + *taglist-commands* +7. Commands~ + +The taglist plugin provides the following ex-mode commands: + +|:TlistAddFiles| Add multiple files to the taglist. +|:TlistAddFilesRecursive| + Add files recursively to the taglist. +|:TlistClose| Close the taglist window. +|:TlistDebug| Start logging of taglist debug messages. +|:TlistLock| Stop adding new files to the taglist. +|:TlistMessages| Display the logged taglist plugin debug messages. +|:TlistOpen| Open and jump to the taglist window. +|:TlistSessionSave| Save the information about files and tags in the + taglist to a session file. +|:TlistSessionLoad| Load the information about files and tags stored + in a session file to taglist. +|:TlistShowPrototype| Display the prototype of the tag at or before the + specified line number. +|:TlistShowTag| Display the name of the tag defined at or before the + specified line number. +|:TlistHighlightTag| Highlight the current tag in the taglist window. +|:TlistToggle| Open or close (toggle) the taglist window. +|:TlistUndebug| Stop logging of taglist debug messages. +|:TlistUnlock| Start adding new files to the taglist. +|:TlistUpdate| Update the tags for the current buffer. + + *:TlistAddFiles* +:TlistAddFiles {file(s)} [file(s) ...] + Add one or more specified files to the taglist. You can + specify multiple filenames using wildcards. To specify a + file name with space character, you should escape the space + character with a backslash. + Examples: +> + :TlistAddFiles *.c *.cpp + :TlistAddFiles file1.html file2.html +< + If you specify a large number of files, then it will take some + time for the taglist plugin to process all of them. The + specified files will not be edited in a Vim window and will + not be added to the Vim buffer list. + + *:TlistAddFilesRecursive* +:TlistAddFilesRecursive {directory} [ {pattern} ] + Add files matching {pattern} recursively from the specified + {directory} to the taglist. If {pattern} is not specified, + then '*' is assumed. To specify the current directory, use "." + for {directory}. To specify a directory name with space + character, you should escape the space character with a + backslash. + Examples: +> + :TlistAddFilesRecursive myproject *.java + :TlistAddFilesRecursive smallproject +< + If large number of files are present in the specified + directory tree, then it will take some time for the taglist + plugin to process all of them. + + *:TlistClose* +:TlistClose Close the taglist window. This command can be used from any + one of the Vim windows. + + *:TlistDebug* +:TlistDebug [filename] + Start logging of debug messages from the taglist plugin. + If {filename} is specified, then the debug messages are stored + in the specified file. Otherwise, the debug messages are + stored in a script local variable. If the file {filename} is + already present, then it is overwritten. + + *:TlistLock* +:TlistLock + Lock the taglist and don't process new files. After this + command is executed, newly edited files will not be added to + the taglist. + + *:TlistMessages* +:TlistMessages + Display the logged debug messages from the taglist plugin + in a window. This command works only when logging to a + script-local variable. + + *:TlistOpen* +:TlistOpen Open and jump to the taglist window. Creates the taglist + window, if the window is not opened currently. After executing + this command, the cursor is moved to the taglist window. When + the taglist window is opened for the first time, all the files + in the buffer list are processed and the tags defined in them + are displayed in the taglist window. + + *:TlistSessionSave* +:TlistSessionSave {filename} + Saves the information about files and tags in the taglist to + the specified file. This command can be used to save and + restore the taglist contents across Vim sessions. + + *:TlistSessionLoad* +:TlistSessionLoad {filename} + Load the information about files and tags stored in the + specified session file to the taglist. + + *:TlistShowPrototype* +:TlistShowPrototype [filename] [linenumber] + Display the prototype of the tag at or before the specified + line number. If the file name and the line number are not + specified, then the current file name and line number are + used. A tag spans multiple lines starting from the line where + it is defined to the line before the next tag. This command + displays the prototype for the tag for any line number in this + range. + + *:TlistShowTag* +:TlistShowTag [filename] [linenumber] + Display the name of the tag defined at or before the specified + line number. If the file name and the line number are not + specified, then the current file name and line number are + used. A tag spans multiple lines starting from the line where + it is defined to the line before the next tag. This command + displays the tag name for any line number in this range. + + *:TlistHighlightTag* +:TlistHighlightTag + Highlight the current tag in the taglist window. By default, + the taglist plugin periodically updates the taglist window to + highlight the current tag. This command can be used to force + the taglist plugin to highlight the current tag. + + *:TlistToggle* +:TlistToggle Open or close (toggle) the taglist window. Opens the taglist + window, if the window is not opened currently. Closes the + taglist window, if the taglist window is already opened. When + the taglist window is opened for the first time, all the files + in the buffer list are processed and the tags are displayed in + the taglist window. After executing this command, the cursor + is not moved from the current window to the taglist window. + + *:TlistUndebug* +:TlistUndebug + Stop logging of debug messages from the taglist plugin. + + *:TlistUnlock* +:TlistUnlock + Unlock the taglist and start processing newly edited files. + + *:TlistUpdate* +:TlistUpdate Update the tags information for the current buffer. This + command can be used to re-process the current file/buffer and + get the tags information. As the taglist plugin uses the file + saved in the disk (instead of the file displayed in a Vim + buffer), you should save a modified buffer before you update + the taglist. Otherwise the listed tags will not include the + new tags created in the buffer. You can use this command even + when the taglist window is not opened. + +============================================================================== + *taglist-functions* +8. Global functions~ + +The taglist plugin provides several global functions that can be used from +other Vim plugins to interact with the taglist plugin. These functions are +described below. + +|Tlist_Update_File_Tags()| Update the tags for the specified file +|Tlist_Get_Tag_Prototype_By_Line()| Return the prototype of the tag at or + before the specified line number in the + specified file. +|Tlist_Get_Tagname_By_Line()| Return the name of the tag at or + before the specified line number in + the specified file. +|Tlist_Set_App()| Set the name of the application + controlling the taglist window. + + *Tlist_Update_File_Tags()* +Tlist_Update_File_Tags({filename}, {filetype}) + Update the tags for the file {filename}. The second argument + specifies the Vim filetype for the file. If the taglist plugin + has not processed the file previously, then the exuberant + ctags tool is invoked to generate the tags for the file. + + *Tlist_Get_Tag_Prototype_By_Line()* +Tlist_Get_Tag_Prototype_By_Line([{filename}, {linenumber}]) + Return the prototype of the tag at or before the specified + line number in the specified file. If the filename and line + number are not specified, then the current buffer name and the + current line number are used. + + *Tlist_Get_Tagname_By_Line()* +Tlist_Get_Tagname_By_Line([{filename}, {linenumber}]) + Return the name of the tag at or before the specified line + number in the specified file. If the filename and line number + are not specified, then the current buffer name and the + current line number are used. + + *Tlist_Set_App()* +Tlist_Set_App({appname}) + Set the name of the plugin that controls the taglist plugin + window and buffer. This can be used to integrate the taglist + plugin with other Vim plugins. + + For example, the winmanager plugin and the Cream package use + this function and specify the appname as "winmanager" and + "cream" respectively. + + By default, the taglist plugin is a stand-alone plugin and + controls the taglist window and buffer. If the taglist window + is controlled by an external plugin, then the appname should + be set appropriately. + +============================================================================== + *taglist-extend* +9. Extending~ + +The taglist plugin supports all the languages supported by the exuberant ctags +tool, which includes the following languages: Assembly, ASP, Awk, Beta, C, +C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, Lua, +Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, SML, Sql, +TCL, Verilog, Vim and Yacc. + +You can extend the taglist plugin to add support for new languages and also +modify the support for the above listed languages. + +You should NOT make modifications to the taglist plugin script file to add +support for new languages. You will lose these changes when you upgrade to the +next version of the taglist plugin. Instead you should follow the below +described instructions to extend the taglist plugin. + +You can extend the taglist plugin by setting variables in the .vimrc or _vimrc +file. The name of these variables depends on the language name and is +described below. + +Modifying support for an existing language~ +To modify the support for an already supported language, you have to set the +tlist_xxx_settings variable in the ~/.vimrc or $HOME/_vimrc file. Replace xxx +with the Vim filetype name for the language file. For example, to modify the +support for the perl language files, you have to set the tlist_perl_settings +variable. To modify the support for java files, you have to set the +tlist_java_settings variable. + +To determine the filetype name used by Vim for a file, use the following +command in the buffer containing the file: + + :set filetype + +The above command will display the Vim filetype for the current buffer. + +The format of the value set in the tlist_xxx_settings variable is + + <language_name>;flag1:name1;flag2:name2;flag3:name3 + +The different fields in the value are separated by the ';' character. + +The first field 'language_name' is the name used by exuberant ctags to refer +to this language file. This name can be different from the file type name used +by Vim. For example, for C++, the language name used by ctags is 'c++' but the +filetype name used by Vim is 'cpp'. To get the list of language names +supported by exuberant ctags, use the following command: + + $ ctags --list-maps=all + +The remaining fields follow the format "flag:name". The sub-field 'flag' is +the language specific flag used by exuberant ctags to generate the +corresponding tags. For example, for the C language, to list only the +functions, the 'f' flag is used. To get the list of flags supported by +exuberant ctags for the various languages use the following command: + + $ ctags --list-kinds=all + +The sub-field 'name' specifies the title text to use for displaying the tags +of a particular type. For example, 'name' can be set to 'functions'. This +field can be set to any text string name. + +For example, to list only the classes and functions defined in a C++ language +file, add the following line to your .vimrc file: + + let tlist_cpp_settings = 'c++;c:class;f:function' + +In the above setting, 'cpp' is the Vim filetype name and 'c++' is the name +used by the exuberant ctags tool. 'c' and 'f' are the flags passed to +exuberant ctags to list C++ classes and functions and 'class' is the title +used for the class tags and 'function' is the title used for the function tags +in the taglist window. + +For example, to display only functions defined in a C file and to use "My +Functions" as the title for the function tags, use + + let tlist_c_settings = 'c;f:My Functions' + +When you set the tlist_xxx_settings variable, you will override the default +setting used by the taglist plugin for the 'xxx' language. You cannot add to +the default options used by the taglist plugin for a particular file type. To +add to the options used by the taglist plugin for a language, copy the option +values from the taglist plugin file to your .vimrc file and modify it. + +Adding support for a new language~ +If you want to add support for a new language to the taglist plugin, you need +to first extend the exuberant ctags tool. For more information about extending +exuberant ctags, visit the following page: + + http://ctags.sourceforge.net/EXTENDING.html + +To add support for a new language, set the tlist_xxx_settings variable in the +~/.vimrc file appropriately as described above. Replace 'xxx' in the variable +name with the Vim filetype name for the new language. + +For example, to extend the taglist plugin to support the latex language, you +can use the following line (assuming, you have already extended exuberant +ctags to support the latex language): + + let tlist_tex_settings='latex;b:bibitem;c:command;l:label' + +With the above line, when you edit files of filetype "tex" in Vim, the taglist +plugin will invoke the exuberant ctags tool passing the "latex" filetype and +the flags b, c and l to generate the tags. The text heading 'bibitem', +'command' and 'label' will be used in the taglist window for the tags which +are generated for the flags b, c and l respectively. + +============================================================================== + *taglist-faq* +10. Frequently Asked Questions~ + +Q. The taglist plugin doesn't work. The taglist window is empty and the tags + defined in a file are not displayed. +A. Are you using Vim version 6.0 and above? The taglist plugin relies on the + features supported by Vim version 6.0 and above. You can use the following + command to get the Vim version: +> + $ vim --version +< + Are you using exuberant ctags version 5.0 and above? The taglist plugin + relies on the features supported by exuberant ctags and will not work with + GNU ctags or the Unix ctags utility. You can use the following command to + determine whether the ctags installed in your system is exuberant ctags: +> + $ ctags --version +< + Is exuberant ctags present in one of the directories in your PATH? If not, + you need to set the Tlist_Ctags_Cmd variable to point to the location of + exuberant ctags. Use the following Vim command to verify that this is setup + correctly: +> + :echo system(Tlist_Ctags_Cmd . ' --version') +< + The above command should display the version information for exuberant + ctags. + + Did you turn on the Vim filetype detection? The taglist plugin relies on + the filetype detected by Vim and passes the filetype to the exuberant ctags + utility to parse the tags. Check the output of the following Vim command: +> + :filetype +< + The output of the above command should contain "filetype detection:ON". + To turn on the filetype detection, add the following line to the .vimrc or + _vimrc file: +> + filetype on +< + Is your version of Vim compiled with the support for the system() function? + The following Vim command should display 1: +> + :echo exists('*system') +< + In some Linux distributions (particularly Suse Linux), the default Vim + installation is built without the support for the system() function. The + taglist plugin uses the system() function to invoke the exuberant ctags + utility. You need to rebuild Vim after enabling the support for the + system() function. If you use the default build options, the system() + function will be supported. + + Do you have the |'shellslash'| option set? You can try disabling the + |'shellslash'| option. When the taglist plugin invokes the exuberant ctags + utility with the path to the file, if the incorrect slashes are used, then + you will see errors. + + Check the shell related Vim options values using the following command: +> + :set shell? shellcmdflag? shellpipe? + :set shellquote? shellredir? shellxquote? +< + If these options are set in your .vimrc or _vimrc file, try removing those + lines. + + Are you using a Unix shell in a MS-Windows environment? For example, + the Unix shell from the MKS-toolkit. Do you have the SHELL environment + set to point to this shell? You can try resetting the SHELL environment + variable. + + If you are using a Unix shell on MS-Windows, you should try to use + exuberant ctags that is compiled for Unix-like environments so that + exuberant ctags will understand path names with forward slash characters. + + Is your filetype supported by the exuberant ctags utility? The file types + supported by the exuberant ctags utility are listed in the ctags help. If a + file type is not supported, you have to extend exuberant ctags. You can use + the following command to list the filetypes supported by exuberant ctags: +> + ctags --list-languages +< + Run the following command from the shell prompt and check whether the tags + defined in your file are listed in the output from exuberant ctags: +> + ctags -f - --format=2 --excmd=pattern --fields=nks <filename> +< + If you see your tags in the output from the above command, then the + exuberant ctags utility is properly parsing your file. + + Do you have the .ctags or _ctags or the ctags.cnf file in your home + directory for specifying default options or for extending exuberant ctags? + If you do have this file, check the options in this file and make sure + these options are not interfering with the operation of the taglist plugin. + + If you are using MS-Windows, check the value of the TEMP and TMP + environment variables. If these environment variables are set to a path + with space characters in the name, then try using the DOS 8.3 short name + for the path or set them to a path without the space characters in the + name. For example, if the temporary directory name is "C:\Documents and + Settings\xyz\Local Settings\Temp", then try setting the TEMP variable to + the following: +> + set TEMP=C:\DOCUMEN~1\xyz\LOCALS~1\Temp +< + If exuberant ctags is installed in a directory with space characters in the + name, then try adding the directory to the PATH environment variable or try + setting the 'Tlist_Ctags_Cmd' variable to the shortest path name to ctags + or try copying the exuberant ctags to a path without space characters in + the name. For example, if exuberant ctags is installed in the directory + "C:\Program Files\Ctags", then try setting the 'Tlist_Ctags_Cmd' variable + as below: +> + let Tlist_Ctags_Cmd='C:\Progra~1\Ctags\ctags.exe' +< + If you are using a cygwin compiled version of exuberant ctags on MS-Windows, + make sure that either you have the cygwin compiled sort utility installed + and available in your PATH or compile exuberant ctags with internal sort + support. Otherwise, when exuberant ctags sorts the tags output by invoking + the sort utility, it may end up invoking the MS-Windows version of + sort.exe, thereby resulting in failure. + +Q. When I try to open the taglist window, I am seeing the following error + message. How do I fix this problem? + + Taglist: Failed to generate tags for /my/path/to/file + ctags: illegal option -- -^@usage: ctags [-BFadtuwvx] [-f tagsfile] file ... + +A. The taglist plugin will work only with the exuberant ctags tool. You + cannot use the GNU ctags or the Unix ctags program with the taglist plugin. + You will see an error message similar to the one shown above, if you try + use a non-exuberant ctags program with Vim. To fix this problem, either add + the exuberant ctags tool location to the PATH environment variable or set + the 'Tlist_Ctags_Cmd' variable. + +Q. A file has more than one tag with the same name. When I select a tag name + from the taglist window, the cursor is positioned at the incorrect tag + location. +A. The taglist plugin uses the search pattern generated by the exuberant ctags + utility to position the cursor at the location of a tag definition. If a + file has more than one tag with the same name and same prototype, then the + search pattern will be the same. In this case, when searching for the tag + pattern, the cursor may be positioned at the incorrect location. + +Q. I have made some modifications to my file and introduced new + functions/classes/variables. I have not yet saved my file. The taglist + plugin is not displaying the new tags when I update the taglist window. +A. The exuberant ctags utility will process only files that are present in the + disk. To list the tags defined in a file, you have to save the file and + then update the taglist window. + +Q. I have created a ctags file using the exuberant ctags utility for my source + tree. How do I configure the taglist plugin to use this tags file? +A. The taglist plugin doesn't use a tags file stored in disk. For every opened + file, the taglist plugin invokes the exuberant ctags utility to get the + list of tags dynamically. The Vim system() function is used to invoke + exuberant ctags and get the ctags output. This function internally uses a + temporary file to store the output. This file is deleted after the output + from the command is read. So you will never see the file that contains the + output of exuberant ctags. + +Q. When I set the |'updatetime'| option to a low value (less than 1000) and if + I keep pressing a key with the taglist window open, the current buffer + contents are changed. Why is this? +A. The taglist plugin uses the |CursorHold| autocmd to highlight the current + tag. The CursorHold autocmd triggers for every |'updatetime'| milliseconds. + If the |'updatetime'| option is set to a low value, then the CursorHold + autocmd will be triggered frequently. As the taglist plugin changes + the focus to the taglist window to highlight the current tag, this could + interfere with the key movement resulting in changing the contents of + the current buffer. The workaround for this problem is to not set the + |'updatetime'| option to a low value. + +============================================================================== + *taglist-license* +11. License~ +Permission is hereby granted to use and distribute the taglist plugin, with or +without modifications, provided that this copyright notice is copied with it. +Like anything else that's free, taglist.vim is provided *as is* and comes with +no warranty of any kind, either expressed or implied. In no event will the +copyright holder be liable for any damamges resulting from the use of this +software. + +============================================================================== + *taglist-todo* +12. Todo~ + +1. Group tags according to the scope and display them. For example, + group all the tags belonging to a C++/Java class +2. Support for displaying tags in a modified (not-yet-saved) file. +3. Automatically open the taglist window only for selected filetypes. + For other filetypes, close the taglist window. +4. When using the shell from the MKS toolkit, the taglist plugin + doesn't work. +5. The taglist plugin doesn't work with files edited remotely using the + netrw plugin. The exuberant ctags utility cannot process files over + scp/rcp/ftp, etc. + +============================================================================== + +vim:tw=78:ts=8:noet:ft=help: diff --git a/dotfiles/.vim/exec_menuitem.vim b/dotfiles/.vim/exec_menuitem.vim @@ -0,0 +1,41 @@ +" ============================================================================ +" File: exec_menuitem.vim +" Description: plugin for NERD Tree that provides an execute file menu item +" Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> +" Last Change: 22 July, 2009 +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists("g:loaded_nerdtree_exec_menuitem") + finish +endif +let g:loaded_nerdtree_exec_menuitem = 1 + +call NERDTreeAddMenuItem({ + \ 'text': '(!)Execute file', + \ 'shortcut': '!', + \ 'callback': 'NERDTreeExecFile', + \ 'isActiveCallback': 'NERDTreeExecFileActive' }) + +function! NERDTreeExecFileActive() + let node = g:NERDTreeFileNode.GetSelected() + return !node.path.isDirectory && node.path.isExecutable +endfunction + +function! NERDTreeExecFile() + let treenode = g:NERDTreeFileNode.GetSelected() + echo "==========================================================\n" + echo "Complete the command to execute (add arguments etc):\n" + let cmd = treenode.path.str({'escape': 1}) + let cmd = input(':!', cmd . ' ') + + if cmd != '' + exec ':!' . cmd + else + echo "Aborted" + endif +endfunction diff --git a/dotfiles/.vim/filetype.vim b/dotfiles/.vim/filetype.vim diff --git a/dotfiles/.vim/fs_menu.vim b/dotfiles/.vim/fs_menu.vim @@ -0,0 +1,194 @@ +" ============================================================================ +" File: fs_menu.vim +" Description: plugin for the NERD Tree that provides a file system menu +" Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> +" Last Change: 17 July, 2009 +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists("g:loaded_nerdtree_fs_menu") + finish +endif +let g:loaded_nerdtree_fs_menu = 1 + +call NERDTreeAddMenuItem({'text': '(a)dd a childnode', 'shortcut': 'a', 'callback': 'NERDTreeAddNode'}) +call NERDTreeAddMenuItem({'text': '(m)ove the curent node', 'shortcut': 'm', 'callback': 'NERDTreeMoveNode'}) +call NERDTreeAddMenuItem({'text': '(d)elete the curent node', 'shortcut': 'd', 'callback': 'NERDTreeDeleteNode'}) +if g:NERDTreePath.CopyingSupported() + call NERDTreeAddMenuItem({'text': '(c)copy the current node', 'shortcut': 'c', 'callback': 'NERDTreeCopyNode'}) +endif + +"FUNCTION: s:echo(msg){{{1 +function! s:echo(msg) + redraw + echomsg "NERDTree: " . a:msg +endfunction + +"FUNCTION: s:echoWarning(msg){{{1 +function! s:echoWarning(msg) + echohl warningmsg + call s:echo(a:msg) + echohl normal +endfunction + +"FUNCTION: s:promptToDelBuffer(bufnum, msg){{{1 +"prints out the given msg and, if the user responds by pushing 'y' then the +"buffer with the given bufnum is deleted +" +"Args: +"bufnum: the buffer that may be deleted +"msg: a message that will be echoed to the user asking them if they wish to +" del the buffer +function! s:promptToDelBuffer(bufnum, msg) + echo a:msg + if nr2char(getchar()) ==# 'y' + exec "silent bdelete! " . a:bufnum + endif +endfunction + +"FUNCTION: NERDTreeAddNode(){{{1 +function! NERDTreeAddNode() + let curDirNode = g:NERDTreeDirNode.GetSelected() + + let newNodeName = input("Add a childnode\n". + \ "==========================================================\n". + \ "Enter the dir/file name to be created. Dirs end with a '/'\n" . + \ "", curDirNode.path.str({'format': 'Glob'}) . g:NERDTreePath.Slash()) + + if newNodeName ==# '' + call s:echo("Node Creation Aborted.") + return + endif + + try + let newPath = g:NERDTreePath.Create(newNodeName) + let parentNode = b:NERDTreeRoot.findNode(newPath.getParent()) + + let newTreeNode = g:NERDTreeFileNode.New(newPath) + if parentNode.isOpen || !empty(parentNode.children) + call parentNode.addChild(newTreeNode, 1) + call NERDTreeRender() + call newTreeNode.putCursorHere(1, 0) + endif + catch /^NERDTree/ + call s:echoWarning("Node Not Created.") + endtry +endfunction + +"FUNCTION: NERDTreeMoveNode(){{{1 +function! NERDTreeMoveNode() + let curNode = g:NERDTreeFileNode.GetSelected() + let newNodePath = input("Rename the current node\n" . + \ "==========================================================\n" . + \ "Enter the new path for the node: \n" . + \ "", curNode.path.str()) + + if newNodePath ==# '' + call s:echo("Node Renaming Aborted.") + return + endif + + try + let bufnum = bufnr(curNode.path.str()) + + call curNode.rename(newNodePath) + call NERDTreeRender() + + "if the node is open in a buffer, ask the user if they want to + "close that buffer + if bufnum != -1 + let prompt = "\nNode renamed.\n\nThe old file is open in buffer ". bufnum . (bufwinnr(bufnum) ==# -1 ? " (hidden)" : "") .". Delete this buffer? (yN)" + call s:promptToDelBuffer(bufnum, prompt) + endif + + call curNode.putCursorHere(1, 0) + + redraw + catch /^NERDTree/ + call s:echoWarning("Node Not Renamed.") + endtry +endfunction + +" FUNCTION: NERDTreeDeleteNode() {{{1 +function! NERDTreeDeleteNode() + let currentNode = g:NERDTreeFileNode.GetSelected() + let confirmed = 0 + + if currentNode.path.isDirectory + let choice =input("Delete the current node\n" . + \ "==========================================================\n" . + \ "STOP! To delete this entire directory, type 'yes'\n" . + \ "" . currentNode.path.str() . ": ") + let confirmed = choice ==# 'yes' + else + echo "Delete the current node\n" . + \ "==========================================================\n". + \ "Are you sure you wish to delete the node:\n" . + \ "" . currentNode.path.str() . " (yN):" + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + + if confirmed + try + call currentNode.delete() + call NERDTreeRender() + + "if the node is open in a buffer, ask the user if they want to + "close that buffer + let bufnum = bufnr(currentNode.path.str()) + if buflisted(bufnum) + let prompt = "\nNode deleted.\n\nThe file is open in buffer ". bufnum . (bufwinnr(bufnum) ==# -1 ? " (hidden)" : "") .". Delete this buffer? (yN)" + call s:promptToDelBuffer(bufnum, prompt) + endif + + redraw + catch /^NERDTree/ + call s:echoWarning("Could not remove node") + endtry + else + call s:echo("delete aborted") + endif + +endfunction + +" FUNCTION: NERDTreeCopyNode() {{{1 +function! NERDTreeCopyNode() + let currentNode = g:NERDTreeFileNode.GetSelected() + let newNodePath = input("Copy the current node\n" . + \ "==========================================================\n" . + \ "Enter the new path to copy the node to: \n" . + \ "", currentNode.path.str()) + + if newNodePath != "" + "strip trailing slash + let newNodePath = substitute(newNodePath, '\/$', '', '') + + let confirmed = 1 + if currentNode.path.copyingWillOverwrite(newNodePath) + call s:echo("Warning: copying may overwrite files! Continue? (yN)") + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + if confirmed + try + let newNode = currentNode.copy(newNodePath) + call NERDTreeRender() + call newNode.putCursorHere(0, 0) + catch /^NERDTree/ + call s:echoWarning("Could not copy node") + endtry + endif + else + call s:echo("Copy aborted.") + endif + redraw +endfunction + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/dotfiles/.vim/ftdetect/clojure.vim b/dotfiles/.vim/ftdetect/clojure.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead *.clj setfiletype clojure diff --git a/dotfiles/.vim/ftdetect/go.vim b/dotfiles/.vim/ftdetect/go.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead *.go set filetype=go diff --git a/dotfiles/.vim/ftdetect/jade.vim b/dotfiles/.vim/ftdetect/jade.vim @@ -0,0 +1,2 @@ +" Jade +autocmd BufNewFile,BufReadPost *.jade set filetype=jade diff --git a/dotfiles/.vim/ftplugin/c.vim b/dotfiles/.vim/ftplugin/c.vim @@ -0,0 +1,309 @@ +" Vim filetype plugin file +" +" Language : C / C++ +" Plugin : c.vim (version 5.1) +" Maintainer : Fritz Mehner <mehner@fh-swf.de> +" Revision : $Id: c.vim,v 1.23 2008/03/12 16:26:03 mehner Exp $ +" +" This will enable keyword completion for C and C++ +" using Vim's dictionary feature |i_CTRL-X_CTRL-K|. +" ----------------------------------------------------------------- +" +" Only do this when not done yet for this buffer +" +if exists("b:did_C_ftplugin") + finish +endif +let b:did_C_ftplugin = 1 +" +" ---------- C/C++ dictionary ----------------------------------- +" +if exists("g:C_Dictionary_File") + silent! exec 'setlocal dictionary+='.g:C_Dictionary_File +endif +" +" ---------- F-key mappings ------------------------------------ +" +" Alt-F9 write buffer and compile +" F9 compile and link +" Ctrl-F9 run executable +" Shift-F9 command line arguments +" + map <buffer> <silent> <A-F9> <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> +imap <buffer> <silent> <A-F9> <C-C><C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> +" + map <buffer> <silent> <F9> <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> +imap <buffer> <silent> <F9> <C-C><C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> +" +" <C-C> seems to be essential here: + map <buffer> <silent> <C-F9> <C-C>:call C_Run()<CR> +imap <buffer> <silent> <C-F9> <C-C><C-C>:call C_Run()<CR> +" + map <buffer> <silent> <S-F9> <C-C>:call C_Arguments()<CR> +imap <buffer> <silent> <S-F9> <C-C><C-C>:call C_Arguments()<CR> +" +" alternate file plugin +" +" ---------- KEY MAPPINGS : MENU ENTRIES ------------------------------------- +" +" ---------- comments menu ------------------------------------------------ +" + noremap <buffer> <silent> <Leader>cl <Esc>:call C_LineEndComment()<CR> +inoremap <buffer> <silent> <Leader>cl <Esc>:call C_LineEndComment()<CR>a +vnoremap <buffer> <silent> <Leader>cl <Esc>:call C_MultiLineEndComments()<CR> + noremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("a")<CR> +vnoremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("v")<CR> +inoremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("a")<CR>a + noremap <buffer> <silent> <Leader>cs <Esc>:call C_GetLineEndCommCol()<CR> + + noremap <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("a","yes")<CR><Esc>:nohlsearch<CR>j +vnoremap <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("v","yes")<CR><Esc>:nohlsearch<CR>j + noremap <buffer> <silent> <Leader>c/ <Esc>:call C_CodeComment("a","no")<CR><Esc>:nohlsearch<CR>j +vnoremap <buffer> <silent> <Leader>c/ <Esc>:call C_CodeComment("v","no")<CR><Esc>:nohlsearch<CR>j + + noremap <buffer> <silent> <Leader>cc <Esc>:call C_CodeComment("a","no")<CR><Esc>:nohlsearch<CR>j +vnoremap <buffer> <silent> <Leader>cc <Esc>:call C_CodeComment("v","no")<CR><Esc>:nohlsearch<CR>j + noremap <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("a")<CR><Esc>:nohlsearch<CR> +vnoremap <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("v")<CR><Esc>:nohlsearch<CR> + + noremap <buffer> <silent> <Leader>cfr <Esc>:call C_InsertTemplate("comment.frame")<CR> + noremap <buffer> <silent> <Leader>cfu <Esc>:call C_InsertTemplate("comment.function")<CR> + noremap <buffer> <silent> <Leader>cme <Esc>:call C_InsertTemplate("comment.method")<CR> + noremap <buffer> <silent> <Leader>ccl <Esc>:call C_InsertTemplate("comment.class")<CR> + +inoremap <buffer> <silent> <Leader>cfr <Esc>:call C_InsertTemplate("comment.frame")<CR> +inoremap <buffer> <silent> <Leader>cfu <Esc>:call C_InsertTemplate("comment.function")<CR> +inoremap <buffer> <silent> <Leader>cme <Esc>:call C_InsertTemplate("comment.method")<CR> +inoremap <buffer> <silent> <Leader>ccl <Esc>:call C_InsertTemplate("comment.class")<CR> + + noremap <buffer> <silent> <Leader>cd a<C-R>=C_InsertDateAndTime('d')<CR> +inoremap <buffer> <silent> <Leader>cd <C-R>=C_InsertDateAndTime('d')<CR> + noremap <buffer> <silent> <Leader>ct a<C-R>=C_InsertDateAndTime('dt')<CR> +inoremap <buffer> <silent> <Leader>ct <C-R>=C_InsertDateAndTime('dt')<CR> +" +" ---------- statements menu ------------------------------------------------ +" + noremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while")<CR> +vnoremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while", "v")<CR> +inoremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while")<CR> + + noremap <buffer> <silent> <Leader>sf <Esc>:call C_InsertTemplate("statements.for")<CR> +inoremap <buffer> <silent> <Leader>sf <Esc>:call C_InsertTemplate("statements.for")<CR> + + noremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block")<CR> +vnoremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block", "v")<CR> +inoremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block")<CR> + + noremap <buffer> <silent> <Leader>si <Esc>:call C_InsertTemplate("statements.if")<CR> +inoremap <buffer> <silent> <Leader>si <Esc>:call C_InsertTemplate("statements.if")<CR> + + noremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block")<CR> +vnoremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block", "v")<CR> +inoremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block")<CR> + + noremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else")<CR> +vnoremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else", "v")<CR> +inoremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else")<CR> + + noremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else")<CR> +vnoremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else", "v")<CR> +inoremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else")<CR> + + noremap <buffer> <silent> <Leader>sw <Esc>:call C_InsertTemplate("statements.while")<CR> +inoremap <buffer> <silent> <Leader>sw <Esc>:call C_InsertTemplate("statements.while")<CR> + + noremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block")<CR> +vnoremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block", "v")<CR> +inoremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block")<CR> + + noremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch")<CR> +vnoremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch", "v")<CR> +inoremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch")<CR> + + noremap <buffer> <silent> <Leader>sc <Esc>:call C_InsertTemplate("statements.case")<CR> +inoremap <buffer> <silent> <Leader>sc <Esc>:call C_InsertTemplate("statements.case")<CR> + + noremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block")<CR> +vnoremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block", "v")<CR> +inoremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block")<CR> +" +" ---------- preprocessor menu ---------------------------------------------- +" + noremap <buffer> <silent> <Leader>p< <Esc><Esc>:call C_InsertTemplate("preprocessor.include-global")<CR> + noremap <buffer> <silent> <Leader>p" <Esc><Esc>:call C_InsertTemplate("preprocessor.include-local")<CR> + noremap <buffer> <silent> <Leader>pd <Esc><Esc>:call C_InsertTemplate("preprocessor.define")<CR> + noremap <buffer> <silent> <Leader>pu <Esc><Esc>:call C_InsertTemplate("preprocessor.undefine")<CR> +" +inoremap <buffer> <silent> <Leader>p< <Esc><Esc>:call C_InsertTemplate("preprocessor.include-global")<CR> +inoremap <buffer> <silent> <Leader>p" <Esc><Esc>:call C_InsertTemplate("preprocessor.include-local")<CR> +inoremap <buffer> <silent> <Leader>pd <Esc><Esc>:call C_InsertTemplate("preprocessor.define")<CR> +inoremap <buffer> <silent> <Leader>pu <Esc><Esc>:call C_InsertTemplate("preprocessor.undefine")<CR> + + noremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR> + noremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR> + noremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR> + noremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR> + +vnoremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif", "v")<CR> + +inoremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR> + + noremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("a")<CR>2ji +vnoremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("v")<CR> +inoremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("a")<CR>2ji + + noremap <buffer> <silent> <Leader>pr0 <Esc><Esc>:call C_PPIf0Remove()<CR> +" +" ---------- idioms menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function")<CR> +vnoremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function", "v")<CR> +inoremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function")<CR> + noremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static")<CR> +vnoremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static", "v")<CR> +inoremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static")<CR> + noremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main")<CR> +vnoremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main", "v")<CR> +inoremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main")<CR> +" + noremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "a")<CR>a +vnoremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "v")<CR> +inoremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "a")<CR>a + noremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "a")<CR>a +vnoremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "v")<CR> +inoremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "a")<CR>a +" + noremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum")<CR> +vnoremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum" , "v")<CR> +inoremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum")<CR> + noremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct")<CR> +vnoremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct", "v")<CR> +inoremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct")<CR> + noremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union")<CR> +vnoremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union" , "v")<CR> +inoremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union")<CR> +" + noremap <buffer> <silent> <Leader>ip <Esc><Esc>:call C_InsertTemplate("idioms.printf")<CR> +inoremap <buffer> <silent> <Leader>ip <Esc><Esc>:call C_InsertTemplate("idioms.printf")<CR> + noremap <buffer> <silent> <Leader>isc <Esc><Esc>:call C_InsertTemplate("idioms.scanf")<CR> +inoremap <buffer> <silent> <Leader>isc <Esc><Esc>:call C_InsertTemplate("idioms.scanf")<CR> +" + noremap <buffer> <silent> <Leader>ica <Esc>:call C_InsertTemplate("idioms.calloc") +inoremap <buffer> <silent> <Leader>ica <Esc>:call C_InsertTemplate("idioms.calloc") + noremap <buffer> <silent> <Leader>ima <Esc>:call C_InsertTemplate("idioms.malloc")<CR> +inoremap <buffer> <silent> <Leader>ima <Esc>:call C_InsertTemplate("idioms.malloc")<CR> +" + noremap <buffer> <silent> <Leader>isi <Esc><Esc>:call C_InsertTemplate("idioms.sizeof")<CR> +inoremap <buffer> <silent> <Leader>isi <Esc><Esc>:call C_InsertTemplate("idioms.sizeof")<CR> +vnoremap <buffer> <silent> <Leader>isi <Esc><Esc>:call C_InsertTemplate("idioms.sizeof", "v")<CR> + + noremap <buffer> <silent> <Leader>ias <Esc><Esc>:call C_InsertTemplate("idioms.assert")<CR> +vnoremap <buffer> <silent> <Leader>ias <Esc><Esc>:call C_InsertTemplate("idioms.assert", "v")<CR> +" + noremap <buffer> <silent> <Leader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file")<CR> +inoremap <buffer> <silent> <Leader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file")<CR> +vnoremap <buffer> <silent> <Leader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file", "v")<CR> + noremap <buffer> <silent> <Leader>io <Esc>:call C_InsertTemplate("idioms.open-output-file")<CR> +inoremap <buffer> <silent> <Leader>io <Esc>:call C_InsertTemplate("idioms.open-output-file")<CR> +vnoremap <buffer> <silent> <Leader>io <Esc>:call C_InsertTemplate("idioms.open-output-file", "v")<CR> +" +" ---------- snippet menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>nr <Esc>:call C_CodeSnippet("r")<CR> + noremap <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("w")<CR> +vnoremap <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("wv")<CR> + noremap <buffer> <silent> <Leader>ne <Esc>:call C_CodeSnippet("e")<CR> +" + noremap <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("n")<CR> +vnoremap <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("v")<CR> + noremap <buffer> <silent> <Leader>ni <Esc>:call C_ProtoInsert()<CR> + noremap <buffer> <silent> <Leader>nc <Esc>:call C_ProtoClear()<CR> + noremap <buffer> <silent> <Leader>ns <Esc>:call C_ProtoShow()<CR> +" +" ---------- C++ menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>+c <Esc>:call C_InsertTemplate("cpp.class-definition")<CR> +inoremap <buffer> <silent> <Leader>+c <Esc>:call C_InsertTemplate("cpp.class-definition")<CR> + noremap <buffer> <silent> <Leader>+cn <Esc>:call C_InsertTemplate("cpp.class-using-new-definition")<CR> +inoremap <buffer> <silent> <Leader>+cn <Esc>:call C_InsertTemplate("cpp.class-using-new-definition")<CR> + + noremap <buffer> <silent> <Leader>+ci <Esc>:call C_InsertTemplate("cpp.class-implementation")<CR> +inoremap <buffer> <silent> <Leader>+ci <Esc>:call C_InsertTemplate("cpp.class-implementation")<CR> + noremap <buffer> <silent> <Leader>+cni <Esc>:call C_InsertTemplate("cpp.class-using-new-implementation")<CR> +inoremap <buffer> <silent> <Leader>+cni <Esc>:call C_InsertTemplate("cpp.class-using-new-implementation")<CR> + + noremap <buffer> <silent> <Leader>+mi <Esc>:call C_InsertTemplate("cpp.method-implementation")<CR> +inoremap <buffer> <silent> <Leader>+mi <Esc>:call C_InsertTemplate("cpp.method-implementation")<CR> + noremap <buffer> <silent> <Leader>+ai <Esc>:call C_InsertTemplate("cpp.accessor-implementation")<CR> +inoremap <buffer> <silent> <Leader>+ai <Esc>:call C_InsertTemplate("cpp.accessor-implementation")<CR> + + noremap <buffer> <silent> <Leader>+tc <Esc>:call C_InsertTemplate("cpp.template-class-definition")<CR> +inoremap <buffer> <silent> <Leader>+tc <Esc>:call C_InsertTemplate("cpp.template-class-definition")<CR> + noremap <buffer> <silent> <Leader>+tcn <Esc>:call C_InsertTemplate("cpp.template-class-using-new-definition")<CR> +inoremap <buffer> <silent> <Leader>+tcn <Esc>:call C_InsertTemplate("cpp.template-class-using-new-definition")<CR> + + noremap <buffer> <silent> <Leader>+tci <Esc>:call C_InsertTemplate("cpp.template-class-implementation")<CR> +inoremap <buffer> <silent> <Leader>+tci <Esc>:call C_InsertTemplate("cpp.template-class-implementation")<CR> + noremap <buffer> <silent> <Leader>+tcni <Esc>:call C_InsertTemplate("cpp.template-class-using-new-implementation")<CR> +inoremap <buffer> <silent> <Leader>+tcni <Esc>:call C_InsertTemplate("cpp.template-class-using-new-implementation")<CR> + + noremap <buffer> <silent> <Leader>+tmi <Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR> +inoremap <buffer> <silent> <Leader>+tmi <Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR> + noremap <buffer> <silent> <Leader>+tai <Esc>:call C_InsertTemplate("cpp.template-accessor-implementation")<CR> +inoremap <buffer> <silent> <Leader>+tai <Esc>:call C_InsertTemplate("cpp.template-accessor-implementation")<CR> + + noremap <buffer> <silent> <Leader>+tf <Esc>:call C_InsertTemplate("cpp.template-function")<CR> +inoremap <buffer> <silent> <Leader>+tf <Esc>:call C_InsertTemplate("cpp.template-function")<CR> + + noremap <buffer> <silent> <Leader>+ec <Esc>:call C_InsertTemplate("cpp.error-class")<CR> +inoremap <buffer> <silent> <Leader>+ec <Esc>:call C_InsertTemplate("cpp.error-class")<CR> + + noremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch")<CR> +vnoremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch", "v")<CR> +inoremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch")<CR> + + noremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch")<CR> +vnoremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch", "v")<CR> +inoremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch")<CR> + + noremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points")<CR> +vnoremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points", "v")<CR> +inoremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points")<CR> +" +" ---------- run menu -------------------------------------------------------- +" + map <buffer> <silent> <Leader>rc <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rl <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rr <C-C>:call C_Run()<CR> + map <buffer> <silent> <Leader>ra <C-C>:call C_Arguments()<CR> + map <buffer> <silent> <Leader>rm <C-C>:call C_Make()<CR> + map <buffer> <silent> <Leader>rg <C-C>:call C_MakeArguments()<CR> + map <buffer> <silent> <Leader>rp <C-C>:call C_SplintCheck()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>ri <C-C>:call C_SplintArguments()<CR> + map <buffer> <silent> <Leader>rd <C-C>:call C_Indent("a")<CR>:redraw<CR>:call C_HlMessage()<CR> +vmap <buffer> <silent> <Leader>rd <C-C>:call C_Indent("v")<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("n")<CR> +vmap <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("v")<CR> + map <buffer> <silent> <Leader>rs <C-C>:call C_Settings()<CR> + map <buffer> <silent> <Leader>rt <C-C>:call C_RebuildTemplates()<CR> + if has("unix") + map <buffer> <silent> <Leader>rx <C-C>:call C_XtermSize()<CR> + endif + map <buffer> <silent> <Leader>ro <C-C>:call C_Toggle_Gvim_Xterm()<CR> +" +" Abraxas CodeCheck (R) +" +if executable("check") + map <buffer> <silent> <Leader>rk <C-C>:call C_CodeCheck()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>re <C-C>:call C_CodeCheckArguments()<CR> +endif +" ---------- plugin help ----------------------------------------------------- +" + map <buffer> <silent> <Leader>h <Esc>:call C_HelpCsupport()<CR> +" diff --git a/dotfiles/.vim/ftplugin/clojure.vim b/dotfiles/.vim/ftplugin/clojure.vim @@ -0,0 +1,157 @@ +" Vim filetype plugin file +" Language: Clojure +" Maintainer: Meikel Brandmeyer <mb@kotka.de> + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setlocal fo< com< cms< cpt< isk< def<" + +setlocal iskeyword+=?,-,*,!,+,/,=,<,>,. + +setlocal define=^\\s*(def\\(-\\|n\\|n-\\|macro\\|struct\\|multi\\)? + +" Set 'formatoptions' to break comment lines but not other lines, +" and insert the comment leader when hitting <CR> or using "o". +setlocal formatoptions-=t formatoptions+=croql +setlocal commentstring=;%s + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:;\ -,mO:;\ \ ,n:; + +" Take all directories of the CLOJURE_SOURCE_DIRS environment variable +" and add them to the path option. +if has("win32") || has("win64") + let s:delim = ";" +else + let s:delim = ":" +endif +for dir in split($CLOJURE_SOURCE_DIRS, s:delim) + call vimclojure#AddPathToOption(dir . "/**", 'path') +endfor + +" When the matchit plugin is loaded, this makes the % command skip parens and +" braces in comments. +let b:match_words = &matchpairs +let b:match_skip = 's:comment\|string\|character' + +" Win32 can filter files in the browse dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" . + \ "Jave Source Files (*.java)\t*.java\n" . + \ "All Files (*.*)\t*.*\n" +endif + +for ns in ['clojure.core', 'clojure.set', 'clojure.xml', 'clojure.zip'] + call vimclojure#AddCompletions(ns) +endfor + +" Define toplevel folding if desired. +function! ClojureGetFoldingLevel(lineno) + let closure = { 'lineno' : a:lineno } + + function closure.f() dict + execute self.lineno + + if vimclojure#SynIdName() =~ 'clojureParen\d' && vimclojure#Yank('l', 'normal! "lyl') == '(' + return 1 + endif + + if searchpairpos('(', '', ')', 'bWr', 'vimclojure#SynIdName() !~ "clojureParen\\d"') != [0, 0] + return 1 + endif + + return 0 + endfunction + + return vimclojure#WithSavedPosition(closure) +endfunction + +" Disabled for now. Too slow (and naive). +if exists("g:clj_want_folding") && g:clj_want_folding == 1 && 0 == 1 + setlocal foldexpr=ClojureGetFoldingLevel(v:lnum) + setlocal foldmethod=expr +endif + +call vimclojure#InitBuffer() + +if exists("b:vimclojure_namespace") + call vimclojure#MakePlug("n", "DocLookupWord", 'vimclojure#DocLookup(expand("<cword>"))') + call vimclojure#MakePlug("n", "DocLookupInteractive", 'vimclojure#DocLookup(input("Symbol to look up: "))') + call vimclojure#MakePlug("n", "JavadocLookupWord", 'vimclojure#JavadocLookup(expand("<cword>"))') + call vimclojure#MakePlug("n", "JavadocLookupInteractive", 'vimclojure#JavadocLookup(input("Class to lookup: "))') + call vimclojure#MakePlug("n", "FindDoc", 'vimclojure#FindDoc())') + + call vimclojure#MapPlug("n", "lw", "DocLookupWord") + call vimclojure#MapPlug("n", "li", "DocLookupInteractive") + call vimclojure#MapPlug("n", "jw", "JavadocLookupWord") + call vimclojure#MapPlug("n", "ji", "JavadocLookupInteractive") + call vimclojure#MapPlug("n", "fd", "FindDoc") + + call vimclojure#MakePlug("n", "MetaLookupWord", 'vimclojure#MetaLookup(expand("<cword>"))') + call vimclojure#MakePlug("n", "MetaLookupInteractive", 'vimclojure#MetaLookup(input("Symbol to look up: "))') + + call vimclojure#MapPlug("n", "mw", "MetaLookupWord") + call vimclojure#MapPlug("n", "mi", "MetaLookupInteractive") + + call vimclojure#MakePlug("n", "SourceLookupWord", 'vimclojure#SourceLookup(expand("<cword>"))') + call vimclojure#MakePlug("n", "SourceLookupInteractive", 'vimclojure#SourceLookup(input("Symbol to look up: "))') + + call vimclojure#MapPlug("n", "sw", "SourceLookupWord") + call vimclojure#MapPlug("n", "si", "SourceLookupInteractive") + + call vimclojure#MakePlug("n", "GotoSourceWord", 'vimclojure#GotoSource(expand("<cword>"))') + call vimclojure#MakePlug("n", "GotoSourceInteractive", 'vimclojure#GotoSource(input("Symbol to go to: "))') + + call vimclojure#MapPlug("n", "gw", "GotoSourceWord") + call vimclojure#MapPlug("n", "gi", "GotoSourceInteractive") + + call vimclojure#MakePlug("n", "RequireFile", 'vimclojure#RequireFile(0)') + call vimclojure#MakePlug("n", "RequireFileAll", 'vimclojure#RequireFile(1)') + + call vimclojure#MapPlug("n", "rf", "RequireFile") + call vimclojure#MapPlug("n", "rF", "RequireFileAll") + + call vimclojure#MakePlug("n", "MacroExpand", 'vimclojure#MacroExpand(0)') + call vimclojure#MakePlug("n", "MacroExpand1", 'vimclojure#MacroExpand(1)') + + call vimclojure#MapPlug("n", "me", "MacroExpand") + call vimclojure#MapPlug("n", "m1", "MacroExpand1") + + call vimclojure#MakePlug("n", "EvalFile", 'vimclojure#EvalFile()') + call vimclojure#MakePlug("n", "EvalLine", 'vimclojure#EvalLine()') + call vimclojure#MakePlug("v", "EvalBlock", 'vimclojure#EvalBlock()') + call vimclojure#MakePlug("n", "EvalToplevel", 'vimclojure#EvalToplevel()') + call vimclojure#MakePlug("n", "EvalParagraph", 'vimclojure#EvalParagraph()') + + call vimclojure#MapPlug("n", "ef", "EvalFile") + call vimclojure#MapPlug("n", "el", "EvalLine") + call vimclojure#MapPlug("v", "eb", "EvalBlock") + call vimclojure#MapPlug("n", "et", "EvalToplevel") + call vimclojure#MapPlug("n", "ep", "EvalParagraph") + + call vimclojure#MakePlug("n", "StartRepl", 'vimclojure#Repl.New()') + call vimclojure#MapPlug("n", "sr", "StartRepl") + + inoremap <Plug>ClojureReplEnterHook <Esc>:call b:vimclojure_repl.enterHook()<CR> + inoremap <Plug>ClojureReplUpHistory <C-O>:call b:vimclojure_repl.upHistory()<CR> + inoremap <Plug>ClojureReplDownHistory <C-O>:call b:vimclojure_repl.downHistory()<CR> + + nnoremap <Plug>ClojureClosePreview :pclose!<CR> + call vimclojure#MapPlug("n", "p", "ClosePreview") + + setlocal omnifunc=vimclojure#OmniCompletion + + augroup VimClojure + autocmd CursorMovedI <buffer> if pumvisible() == 0 | pclose | endif + augroup END +endif + +let &cpo = s:cpo_save diff --git a/dotfiles/.vim/ftplugin/clojure/completions-clojure.core.txt b/dotfiles/.vim/ftplugin/clojure/completions-clojure.core.txt @@ -0,0 +1,433 @@ +*agent* +*allow-unresolved-vars* +*command-line-args* +*compile-files* +*compile-path* +*err* +*file* +*flush-on-newline* +*in* +*macro-meta* +*math-context* +*ns* +*out* +*print-dup* +*print-length* +*print-level* +*print-meta* +*print-readably* +*source-path* +*use-context-classloader* +*warn-on-reflection* +accessor +aclone +add-classpath +add-watch +add-watcher +agent +agent-errors +aget +alength +alias +all-ns +alter +alter-meta! +alter-var-root +amap +ancestors +and +apply +areduce +array-map +aset +aset-boolean +aset-byte +aset-char +aset-double +aset-float +aset-int +aset-long +aset-short +assert +assoc +assoc-in +associative? +atom +await +await-for +await1 +bases +bean +bigdec +bigint +binding +bit-and +bit-and-not +bit-clear +bit-flip +bit-not +bit-or +bit-set +bit-shift-left +bit-shift-right +bit-test +bit-xor +boolean +butlast +byte +cast +char +char-escape-string +char-name-string +class +class? +clear-agent-errors +coll? +comment +commute +comp +comparator +compare +compare-and-set! +compile +complement +concat +cond +condp +conj +cons +constantly +construct-proxy +contains? +count +counted? +create-ns +create-struct +cycle +dec +decimal? +declare +definline +defmacro +defmethod +defmulti +defn +defn- +defonce +defstruct +delay +delay? +deref +derive +descendants +destructure +disj +dissoc +distinct +distinct? +doall +doc +dorun +doseq +dosync +dotimes +doto +double +double-array +doubles +drop +drop-last +drop-while +empty +empty? +ensure +enumeration-seq +eval +even? +every? +false? +ffirst +file-seq +filter +find +find-doc +find-ns +find-var +first +float +float-array +float? +floats +flush +fn? +fnext +for +force +format +future +future-call +gen-class +gen-interface +gensym +get +get-in +get-proxy-class +get-validator +hash +hash-map +hash-set +identical? +identity +if-let +if-not +ifn? +import +in-ns +inc +init-proxy +instance? +int +int-array +integer? +interleave +intern +interpose +into +into-array +ints +io! +isa? +iterate +iterator-seq +key +keys +keyword +keyword? +last +lazy-cat +lazy-seq +let +letfn +line-seq +list +list* +list? +load +load-file +load-reader +load-string +loaded-libs +locking +long +long-array +longs +loop +macroexpand +macroexpand-1 +make-array +make-hierarchy +map +map? +mapcat +max +max-key +memfn +memoize +merge +merge-with +meta +method-sig +methods +min +min-key +mod +name +namespace +neg? +newline +next +nfirst +nil? +nnext +not +not-any? +not-empty +not-every? +not= +ns-aliases +ns-imports +ns-interns +ns-map +ns-name +ns-publics +ns-refers +ns-resolve +ns-unalias +ns-unmap +nth +nthnext +num +number? +odd? +parents +partial +partition +pcalls +peek +pmap +pop +pos? +pr-str +prefer-method +prefers +primitives-classnames +print +print-ctor +print-doc +print-dup +print-method +print-namespace-doc +print-simple +print-special-doc +print-str +printf +println +println-str +prn +prn-str +proxy +proxy-call-with-super +proxy-mappings +proxy-name +proxy-super +pvalues +quot +rand +rand-int +range +ratio? +rational? +rationalize +re-find +re-groups +re-matcher +re-matches +re-pattern +re-seq +read +read-line +read-string +reduce +ref +ref-set +refer +refer-clojure +release-pending-sends +rem +remove +remove-method +remove-ns +remove-watch +remove-watcher +repeat +repeatedly +replace +replicate +require +reset! +reset-meta! +resolve +rest +resultset-seq +reverse +reversible? +rseq +rsubseq +second +select-keys +send +send-off +seq +seq? +seque +sequence +sequential? +set +set-validator! +set? +short +shutdown-agents +slurp +some +sort +sort-by +sorted-map +sorted-map-by +sorted-set +sorted? +special-form-anchor +special-symbol? +split-at +split-with +str +string? +struct +struct-map +subs +subseq +subvec +supers +swap! +symbol +symbol? +sync +syntax-symbol-anchor +take +take-nth +take-while +test +the-ns +time +to-array +to-array-2d +trampoline +tree-seq +true? +type +unchecked-add +unchecked-dec +unchecked-divide +unchecked-inc +unchecked-multiply +unchecked-negate +unchecked-remainder +unchecked-subtract +underive +unquote +unquote-splicing +update-in +update-proxy +use +val +vals +var-get +var-set +var? +vary-meta +vec +vector +vector? +when +when-first +when-let +when-not +while +with-in-str +with-local-vars +with-meta +with-open +with-out-str +with-precision +xml-seq +zero? +zipmap diff --git a/dotfiles/.vim/ftplugin/clojure/completions-clojure.set.txt b/dotfiles/.vim/ftplugin/clojure/completions-clojure.set.txt @@ -0,0 +1,10 @@ +difference +index +intersection +join +map-invert +project +rename +rename-keys +select +union diff --git a/dotfiles/.vim/ftplugin/clojure/completions-clojure.xml.txt b/dotfiles/.vim/ftplugin/clojure/completions-clojure.xml.txt @@ -0,0 +1,13 @@ +*current* +*sb* +*stack* +*state* +attrs +content +content-handler +element +emit +emit-element +parse +startparse-sax +tag diff --git a/dotfiles/.vim/ftplugin/clojure/completions-clojure.zip.txt b/dotfiles/.vim/ftplugin/clojure/completions-clojure.zip.txt @@ -0,0 +1,27 @@ +append-child +branch? +children +down +edit +end? +insert-child +insert-left +insert-right +left +leftmost +lefts +make-node +next +node +path +prev +remove +replace +right +rightmost +rights +root +seq-zip +vector-zip +xml-zip +zipper diff --git a/dotfiles/.vim/ftplugin/html_snip_helper.vim b/dotfiles/.vim/ftplugin/html_snip_helper.vim @@ -0,0 +1,10 @@ +" Helper function for (x)html snippets +if exists('s:did_snip_helper') || &cp || !exists('loaded_snips') + finish +endif +let s:did_snip_helper = 1 + +" Automatically closes tag if in xhtml +fun! Close() + return stridx(&ft, 'xhtml') == -1 ? '' : ' /' +endf diff --git a/dotfiles/.vim/ftplugin/jade.vim b/dotfiles/.vim/ftplugin/jade.vim @@ -0,0 +1,53 @@ +" Vim filetype plugin +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +unlet! b:did_ftplugin + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter + unlet b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words + unlet b:match_words +endif + +" Change the browse dialog on Win32 to show mainly Haml-related files +if has("gui_win32") + let b:browsefilter="Jade Files (*.jade)\t*.jade\n" . s:browsefilter +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +setlocal comments= commentstring=-#\ %s + +let b:undo_ftplugin = "setl cms< com< " + \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +let &cpo = s:save_cpo + +" vim:set sw=2: diff --git a/dotfiles/.vim/indent/clojure.vim b/dotfiles/.vim/indent/clojure.vim @@ -0,0 +1,206 @@ +" Vim indent file +" Language: Clojure +" Maintainer: Meikel Brandmeyer <mb@kotka.de> +" URL: http://kotka.de/projects/clojure/vimclojure.html + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +let s:save_cpo = &cpo +set cpo&vim + +let b:undo_indent = "setlocal ai< si< lw< et< sts< sw< inde< indk<" + +setlocal autoindent expandtab nosmartindent + +setlocal softtabstop=2 +setlocal shiftwidth=2 + +setlocal indentkeys=!,o,O + +if exists("*searchpairpos") + +function! s:MatchPairs(open, close, stopat) + " Stop only on vector and map [ resp. {. Ignore the ones in strings and + " comments. + return searchpairpos(a:open, '', a:close, 'bWn', + \ 'vimclojure#SynIdName() !~ "clojureParen\\d"', + \ a:stopat) +endfunction + +function! VimClojureCheckForStringWorker() + " Check whether there is the last character of the previous line is + " highlighted as a string. If so, we check whether it's a ". In this + " case we have to check also the previous character. The " might be the + " closing one. In case the we are still in the string, we search for the + " opening ". If this is not found we take the indent of the line. + let nb = prevnonblank(v:lnum - 1) + + if nb == 0 + return -1 + endif + + call cursor(nb, 0) + call cursor(0, col("$") - 1) + if vimclojure#SynIdName() != "clojureString" + return -1 + endif + + " This will not work for a " in the first column... + if vimclojure#Yank('l', 'normal! "lyl') == '"' + call cursor(0, col("$") - 2) + if vimclojure#SynIdName() != "clojureString" + return -1 + endif + if vimclojure#Yank('l', 'normal! "lyl') != '\\' + return -1 + endif + call cursor(0, col("$") - 1) + endif + + let p = searchpos('\(^\|[^\\]\)\zs"', 'bW') + + if p != [0, 0] + return p[1] - 1 + endif + + return indent(".") +endfunction + +function! VimClojureCheckForString() + return vimclojure#WithSavedPosition({'f': function("VimClojureCheckForStringWorker")}) +endfunction + +function! GetClojureIndent() + " Get rid of special case. + if line(".") == 1 + return 0 + endif + + " We have to apply some heuristics here to figure out, whether to use + " normal lisp indenting or not. + let i = VimClojureCheckForString() + if i > -1 + return i + endif + + call cursor(0, 1) + + " Find the next enclosing [ or {. We can limit the second search + " to the line, where the [ was found. If no [ was there this is + " zero and we search for an enclosing {. + let paren = s:MatchPairs('(', ')', 0) + let bracket = s:MatchPairs('\[', '\]', paren[0]) + let curly = s:MatchPairs('{', '}', bracket[0]) + + " In case the curly brace is on a line later then the [ or - in + " case they are on the same line - in a higher column, we take the + " curly indent. + if curly[0] > bracket[0] || curly[1] > bracket[1] + if curly[0] > paren[0] || curly[1] > paren[1] + return curly[1] + endif + endif + + " If the curly was not chosen, we take the bracket indent - if + " there was one. + if bracket[0] > paren[0] || bracket[1] > paren[1] + return bracket[1] + endif + + " There are neither { nor [ nor (, ie. we are at the toplevel. + if paren == [0, 0] + return 0 + endif + + " Now we have to reimplement lispindent. This is surprisingly easy, as + " soon as one has access to syntax items. + " + " - Get the next keyword after the (. + " - If its first character is also a (, we have another sexp and align + " one column to the right of the unmatched (. + " - In case it is in lispwords, we indent the next line to the column of + " the ( + sw. + " - If not, we check whether it is last word in the line. In that case + " we again use ( + sw for indent. + " - In any other case we use the column of the end of the word + 2. + call cursor(paren[0] , paren[1]) + + " In case we are at the last character, we use the paren position. + if col("$") - 1 == paren[1] + return paren[1] + endif + + " In case after the paren is a whitespace, we search for the next word. + normal! l + let reg = getreg("l") + normal! "lyl + if getreg("l") == ' ' + normal! w + endif + call setreg("l", reg) + + " If we moved to another line, there is no word after the (. We + " use the ( position for indent. + if line(".") > paren[0] + return paren[1] + endif + + " We still have to check, whether the keyword starts with a (, [ or {. + " In that case we use the ( position for indent. + let reg = getreg("l") + normal! "lye + let w = getreg("l") + call setreg("l", reg) + if stridx('([{', w[0]) > 0 + return paren[1] + endif + + if &lispwords =~ '\<' . w . '\>' + return paren[1] + &shiftwidth - 1 + endif + + normal! w + if paren[0] < line(".") + return paren[1] + &shiftwidth - 1 + endif + + normal! ge + return col(".") + 1 +endfunction + +setlocal indentexpr=GetClojureIndent() + +else + + " In case we have searchpairpos not available we fall back to + " normal lisp indenting. + setlocal indentexpr= + setlocal lisp + let b:undo_indent .= " lisp<" + +endif + +" Defintions: +setlocal lispwords=def,def-,defn,defn-,defmacro,defmacro-,defmethod,defmulti +setlocal lispwords+=defonce,defvar,defvar-,defunbound,let,fn,letfn,binding,proxy +setlocal lispwords+=defnk + +" Conditionals and Loops: +setlocal lispwords+=if,if-not,if-let,when,when-not,when-let,when-first +setlocal lispwords+=cond,condp,loop,dotimes,for,while + +" Blocks: +setlocal lispwords+=do,doto,try,catch,locking,with-in-str,with-out-str,with-open +setlocal lispwords+=dosync,with-local-vars,doseq,dorun,doall,->,future + +" Namespaces: +setlocal lispwords+=ns,clojure.core/ns + +" Java Classes: +setlocal lispwords+=gen-class,gen-interface + +let &cpo = s:save_cpo diff --git a/dotfiles/.vim/indent/jade.vim b/dotfiles/.vim/indent/jade.vim @@ -0,0 +1,70 @@ +" Vim indent file +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope (vim-jade) +" Last Change: 2010 Sep 22 + +if exists("b:did_indent") + finish +endif + +unlet! b:did_indent +let b:did_indent = 1 + +setlocal autoindent sw=2 et +setlocal indentexpr=GetJadeIndent() +setlocal indentkeys=o,O,*<Return>,},],0),!^F + +" Only define the function once. +if exists("*GetJadeIndent") + finish +endif + +let s:attributes = '\%((.\{-\})\)' +let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' + +if !exists('g:jade_self_closing_tags') + let g:jade_self_closing_tags = 'meta|link|img|hr|br' +endif + +setlocal formatoptions+=r +setlocal comments+=n:\| + +function! GetJadeIndent() + let lnum = prevnonblank(v:lnum-1) + if lnum == 0 + return 0 + endif + let line = substitute(getline(lnum),'\s\+$','','') + let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') + let lastcol = strlen(line) + let line = substitute(line,'^\s\+','','') + let indent = indent(lnum) + let cindent = indent(v:lnum) + let increase = indent + &sw + if indent == indent(lnum) + let indent = cindent <= indent ? -1 : increase + endif + + let group = synIDattr(synID(lnum,lastcol,1),'name') + + if line =~ '^!!!' + return indent + elseif line =~ '^/\%(\[[^]]*\]\)\=$' + return increase + elseif group == 'jadeFilter' + return increase + elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$' + return increase + elseif line == '-#' + return increase + elseif line =~? '^\v%('.g:jade_self_closing_tags.')>' + return indent + elseif group =~? '\v^%(jadeTag|jadeAttributesDelimiter|jadeClass|jadeId|htmlTagName|htmlSpecialTagName)$' + return increase + else + return indent + endif +endfunction + +" vim:set sw=2: diff --git a/dotfiles/.vim/init.vim b/dotfiles/.vim/init.vim @@ -0,0 +1 @@ +.vimrc+ \ No newline at end of file diff --git a/dotfiles/.vim/nerdtree_plugin/exec_menuitem.vim b/dotfiles/.vim/nerdtree_plugin/exec_menuitem.vim @@ -0,0 +1,41 @@ +" ============================================================================ +" File: exec_menuitem.vim +" Description: plugin for NERD Tree that provides an execute file menu item +" Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> +" Last Change: 22 July, 2009 +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists("g:loaded_nerdtree_exec_menuitem") + finish +endif +let g:loaded_nerdtree_exec_menuitem = 1 + +call NERDTreeAddMenuItem({ + \ 'text': '(!)Execute file', + \ 'shortcut': '!', + \ 'callback': 'NERDTreeExecFile', + \ 'isActiveCallback': 'NERDTreeExecFileActive' }) + +function! NERDTreeExecFileActive() + let node = g:NERDTreeFileNode.GetSelected() + return !node.path.isDirectory && node.path.isExecutable +endfunction + +function! NERDTreeExecFile() + let treenode = g:NERDTreeFileNode.GetSelected() + echo "==========================================================\n" + echo "Complete the command to execute (add arguments etc):\n" + let cmd = treenode.path.str({'escape': 1}) + let cmd = input(':!', cmd . ' ') + + if cmd != '' + exec ':!' . cmd + else + echo "Aborted" + endif +endfunction diff --git a/dotfiles/.vim/nerdtree_plugin/fs_menu.vim b/dotfiles/.vim/nerdtree_plugin/fs_menu.vim @@ -0,0 +1,194 @@ +" ============================================================================ +" File: fs_menu.vim +" Description: plugin for the NERD Tree that provides a file system menu +" Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> +" Last Change: 17 July, 2009 +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists("g:loaded_nerdtree_fs_menu") + finish +endif +let g:loaded_nerdtree_fs_menu = 1 + +call NERDTreeAddMenuItem({'text': '(a)dd a childnode', 'shortcut': 'a', 'callback': 'NERDTreeAddNode'}) +call NERDTreeAddMenuItem({'text': '(m)ove the curent node', 'shortcut': 'm', 'callback': 'NERDTreeMoveNode'}) +call NERDTreeAddMenuItem({'text': '(d)elete the curent node', 'shortcut': 'd', 'callback': 'NERDTreeDeleteNode'}) +if g:NERDTreePath.CopyingSupported() + call NERDTreeAddMenuItem({'text': '(c)copy the current node', 'shortcut': 'c', 'callback': 'NERDTreeCopyNode'}) +endif + +"FUNCTION: s:echo(msg){{{1 +function! s:echo(msg) + redraw + echomsg "NERDTree: " . a:msg +endfunction + +"FUNCTION: s:echoWarning(msg){{{1 +function! s:echoWarning(msg) + echohl warningmsg + call s:echo(a:msg) + echohl normal +endfunction + +"FUNCTION: s:promptToDelBuffer(bufnum, msg){{{1 +"prints out the given msg and, if the user responds by pushing 'y' then the +"buffer with the given bufnum is deleted +" +"Args: +"bufnum: the buffer that may be deleted +"msg: a message that will be echoed to the user asking them if they wish to +" del the buffer +function! s:promptToDelBuffer(bufnum, msg) + echo a:msg + if nr2char(getchar()) ==# 'y' + exec "silent bdelete! " . a:bufnum + endif +endfunction + +"FUNCTION: NERDTreeAddNode(){{{1 +function! NERDTreeAddNode() + let curDirNode = g:NERDTreeDirNode.GetSelected() + + let newNodeName = input("Add a childnode\n". + \ "==========================================================\n". + \ "Enter the dir/file name to be created. Dirs end with a '/'\n" . + \ "", curDirNode.path.str({'format': 'Glob'}) . g:NERDTreePath.Slash()) + + if newNodeName ==# '' + call s:echo("Node Creation Aborted.") + return + endif + + try + let newPath = g:NERDTreePath.Create(newNodeName) + let parentNode = b:NERDTreeRoot.findNode(newPath.getParent()) + + let newTreeNode = g:NERDTreeFileNode.New(newPath) + if parentNode.isOpen || !empty(parentNode.children) + call parentNode.addChild(newTreeNode, 1) + call NERDTreeRender() + call newTreeNode.putCursorHere(1, 0) + endif + catch /^NERDTree/ + call s:echoWarning("Node Not Created.") + endtry +endfunction + +"FUNCTION: NERDTreeMoveNode(){{{1 +function! NERDTreeMoveNode() + let curNode = g:NERDTreeFileNode.GetSelected() + let newNodePath = input("Rename the current node\n" . + \ "==========================================================\n" . + \ "Enter the new path for the node: \n" . + \ "", curNode.path.str()) + + if newNodePath ==# '' + call s:echo("Node Renaming Aborted.") + return + endif + + try + let bufnum = bufnr(curNode.path.str()) + + call curNode.rename(newNodePath) + call NERDTreeRender() + + "if the node is open in a buffer, ask the user if they want to + "close that buffer + if bufnum != -1 + let prompt = "\nNode renamed.\n\nThe old file is open in buffer ". bufnum . (bufwinnr(bufnum) ==# -1 ? " (hidden)" : "") .". Delete this buffer? (yN)" + call s:promptToDelBuffer(bufnum, prompt) + endif + + call curNode.putCursorHere(1, 0) + + redraw + catch /^NERDTree/ + call s:echoWarning("Node Not Renamed.") + endtry +endfunction + +" FUNCTION: NERDTreeDeleteNode() {{{1 +function! NERDTreeDeleteNode() + let currentNode = g:NERDTreeFileNode.GetSelected() + let confirmed = 0 + + if currentNode.path.isDirectory + let choice =input("Delete the current node\n" . + \ "==========================================================\n" . + \ "STOP! To delete this entire directory, type 'yes'\n" . + \ "" . currentNode.path.str() . ": ") + let confirmed = choice ==# 'yes' + else + echo "Delete the current node\n" . + \ "==========================================================\n". + \ "Are you sure you wish to delete the node:\n" . + \ "" . currentNode.path.str() . " (yN):" + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + + if confirmed + try + call currentNode.delete() + call NERDTreeRender() + + "if the node is open in a buffer, ask the user if they want to + "close that buffer + let bufnum = bufnr(currentNode.path.str()) + if buflisted(bufnum) + let prompt = "\nNode deleted.\n\nThe file is open in buffer ". bufnum . (bufwinnr(bufnum) ==# -1 ? " (hidden)" : "") .". Delete this buffer? (yN)" + call s:promptToDelBuffer(bufnum, prompt) + endif + + redraw + catch /^NERDTree/ + call s:echoWarning("Could not remove node") + endtry + else + call s:echo("delete aborted") + endif + +endfunction + +" FUNCTION: NERDTreeCopyNode() {{{1 +function! NERDTreeCopyNode() + let currentNode = g:NERDTreeFileNode.GetSelected() + let newNodePath = input("Copy the current node\n" . + \ "==========================================================\n" . + \ "Enter the new path to copy the node to: \n" . + \ "", currentNode.path.str()) + + if newNodePath != "" + "strip trailing slash + let newNodePath = substitute(newNodePath, '\/$', '', '') + + let confirmed = 1 + if currentNode.path.copyingWillOverwrite(newNodePath) + call s:echo("Warning: copying may overwrite files! Continue? (yN)") + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + if confirmed + try + let newNode = currentNode.copy(newNodePath) + call NERDTreeRender() + call newNode.putCursorHere(0, 0) + catch /^NERDTree/ + call s:echoWarning("Could not copy node") + endtry + endif + else + call s:echo("Copy aborted.") + endif + redraw +endfunction + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/dotfiles/.vim/plugin/Tabular.vim b/dotfiles/.vim/plugin/Tabular.vim @@ -0,0 +1,280 @@ +" Tabular: Align columnar data using regex-designated column boundaries +" Maintainer: Matthew Wozniski (mjw@drexel.edu) +" Date: Thu, 11 Oct 2007 00:35:34 -0400 +" Version: 0.1 + +" Abort if running in vi-compatible mode or the user doesn't want us. +if &cp || exists('g:tabular_loaded') + if &cp && &verbose + echo "Not loading Tabular in compatible mode." + endif + finish +endif + +let g:tabular_loaded = 1 + +" Stupid vimscript crap {{{1 +let s:savecpo = &cpo +set cpo&vim + +" Private Things {{{1 + +" Dictionary of command name to command +let s:TabularCommands = {} + +" Generate tab completion list for :Tabularize {{{2 +" Return a list of commands that match the command line typed so far. +" NOTE: Tries to handle commands with spaces in the name, but Vim doesn't seem +" to handle that terribly well... maybe I should give up on that. +function! s:CompleteTabularizeCommand(argstart, cmdline, cursorpos) + let names = keys(s:TabularCommands) + if exists("b:TabularCommands") + let names += keys(b:TabularCommands) + endif + + let cmdstart = substitute(a:cmdline, '^\s*\S\+\s*', '', '') + + return filter(names, 'v:val =~# ''^\V'' . escape(cmdstart, ''\'')') +endfunction + +" Choose the proper command map from the given command line {{{2 +" Returns [ command map, command line with leading <buffer> removed ] +function! s:ChooseCommandMap(commandline) + let map = s:TabularCommands + let cmd = a:commandline + + if cmd =~# '^<buffer>\s\+' + if !exists('b:TabularCommands') + let b:TabularCommands = {} + endif + let map = b:TabularCommands + let cmd = substitute(cmd, '^<buffer>\s\+', '', '') + endif + + return [ map, cmd ] +endfunction + +" Parse '/pattern/format' into separate pattern and format parts. {{{2 +" If parsing fails, return [ '', '' ] +function! s:ParsePattern(string) + if a:string[0] != '/' + return ['',''] + endif + + let pat = '\\\@<!\%(\\\\\)\{-}\zs/' . tabular#ElementFormatPattern() . '*$' + let format = matchstr(a:string[1:-1], pat) + if !empty(format) + let format = format[1 : -1] + let pattern = a:string[1 : -len(format) - 2] + else + let pattern = a:string[1 : -1] + endif + + return [pattern, format] +endfunction + +" Split apart a list of | separated expressions. {{{2 +function! s:SplitCommands(string) + if a:string =~ '^\s*$' + return [] + endif + + let end = match(a:string, "[\"'|]") + + " Loop until we find a delimiting | or end-of-string + while end != -1 && (a:string[end] != '|' || a:string[end+1] == '|') + if a:string[end] == "'" + let end = match(a:string, "'", end+1) + 1 + if end == 0 + throw "No matching end single quote" + endif + elseif a:string[end] == '"' + " Find a " preceded by an even number of \ (or 0) + let pattern = '\%(\\\@<!\%(\\\\\)*\)\@<="' + let end = matchend(a:string, pattern, end+1) + 1 + if end == 0 + throw "No matching end double quote" + endif + else " Found || + let end += 2 + endif + + let end = match(a:string, "[\"'|]", end) + endwhile + + if end == 0 || a:string[0 : end - (end > 0)] =~ '^\s*$' + throw "Empty element" + endif + + if end == -1 + let rv = [ a:string ] + else + let rv = [ a:string[0 : end-1] ] + s:SplitCommands(a:string[end+1 : -1]) + endif + + return rv +endfunction + +" Public Things {{{1 + +" Command associating a command name with a simple pattern command {{{2 +" AddTabularPattern[!] [<buffer>] name /pattern[/format] +" +" If <buffer> is provided, the command will only be available in the current +" buffer, and will be used instead of any global command with the same name. +" +" If a command with the same name and scope already exists, it is an error, +" unless the ! is provided, in which case the existing command will be +" replaced. +" +" pattern is a regex describing the delimiter to be used. +" +" format describes the format pattern to be used. The default will be used if +" none is provided. +com! -nargs=+ -bang AddTabularPattern + \ call AddTabularPattern(<q-args>, <bang>0) + +function! AddTabularPattern(command, force) + try + let [ commandmap, rest ] = s:ChooseCommandMap(a:command) + + let name = matchstr(rest, '.\{-}\ze\s*/') + let pattern = substitute(rest, '.\{-}\s*\ze/', '', '') + + let [ pattern, format ] = s:ParsePattern(pattern) + + if empty(name) || empty(pattern) + throw "Invalid arguments!" + endif + + if !a:force && has_key(commandmap, name) + throw string(name) . " is already defined, use ! to overwrite." + endif + + let command = "tabular#TabularizeStrings(a:lines, " . string(pattern) + + if !empty(format) + let command .= ", " . string(format) + endif + + let command .= ")" + + let commandmap[name] = ":call tabular#PipeRange(" + \ . string(pattern) . "," + \ . string(command) . ")" + catch + echohl ErrorMsg + echomsg "AddTabularPattern: " . v:exception + echohl None + endtry +endfunction + +" Command associating a command name with a pipeline of functions {{{2 +" AddTabularPipeline[!] [<buffer>] name /pattern/ func [ | func2 [ | func3 ] ] +" +" If <buffer> is provided, the command will only be available in the current +" buffer, and will be used instead of any global command with the same name. +" +" If a command with the same name and scope already exists, it is an error, +" unless the ! is provided, in which case the existing command will be +" replaced. +" +" pattern is a regex that will be used to determine which lines will be +" filtered. If the cursor line doesn't match the pattern, using the command +" will be a no-op, otherwise the cursor and all contiguous lines matching the +" pattern will be filtered. +" +" Each 'func' argument represents a function to be called. This function +" will have access to a:lines, a List containing one String per line being +" filtered. +com! -nargs=+ -bang AddTabularPipeline + \ call AddTabularPipeline(<q-args>, <bang>0) + +function! AddTabularPipeline(command, force) + try + let [ commandmap, rest ] = s:ChooseCommandMap(a:command) + + let name = matchstr(rest, '.\{-}\ze\s*/') + let pattern = substitute(rest, '.\{-}\s*\ze/', '', '') + + let commands = matchstr(pattern, '^/.\{-}\\\@<!\%(\\\\\)\{-}/\zs.*') + let pattern = matchstr(pattern, '/\zs.\{-}\\\@<!\%(\\\\\)\{-}\ze/') + + if empty(name) || empty(pattern) + throw "Invalid arguments!" + endif + + if !a:force && has_key(commandmap, name) + throw string(name) . " is already defined, use ! to overwrite." + endif + + let commandlist = s:SplitCommands(commands) + + if empty(commandlist) + throw "Must provide a list of functions!" + endif + + let cmd = ":call tabular#PipeRange(" . string(pattern) + + for command in commandlist + let cmd .= "," . string(command) + endfor + + let cmd .= ")" + + let commandmap[name] = cmd + catch + echohl ErrorMsg + echomsg "AddTabularPipeline: " . v:exception + echohl None + endtry +endfunction + +" Tabularize /pattern[/format] {{{2 +" Tabularize name +" +" Align text, either using the given pattern, or the command associated with +" the given name. +com! -nargs=+ -range -complete=customlist,<SID>CompleteTabularizeCommand + \ Tabularize <line1>,<line2>call Tabularize(<q-args>) + +function! Tabularize(command) range + let range = a:firstline . ',' . a:lastline + + try + let [ pattern, format ] = s:ParsePattern(a:command) + + if !empty(pattern) + let cmd = "tabular#TabularizeStrings(a:lines, " . string(pattern) + + if !empty(format) + let cmd .= "," . string(format) + endif + + let cmd .= ")" + + exe range . 'call tabular#PipeRange(pattern, cmd)' + else + if exists('b:TabularCommands') && has_key(b:TabularCommands, a:command) + let command = b:TabularCommands[a:command] + elseif has_key(s:TabularCommands, a:command) + let command = s:TabularCommands[a:command] + else + throw "Unrecognized command " . string(a:command) + endif + + exe range . command + endif + catch + echohl ErrorMsg + echomsg "Tabularize: " . v:exception + echohl None + return + endtry +endfunction + +" Stupid vimscript crap, part 2 {{{1 +let &cpo = s:savecpo +unlet s:savecpo + +" vim:set sw=2 sts=2 fdm=marker: diff --git a/dotfiles/.vim/plugin/bufdiff.vim b/dotfiles/.vim/plugin/bufdiff.vim @@ -0,0 +1,8 @@ +function! s:DiffWithSaved() + let filetype=&ft + diffthis + vnew | r # | normal! 1Gdd + diffthis + exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype +endfunction +com! DiffSaved call s:DiffWithSaved() diff --git a/dotfiles/.vim/plugin/clay.vim b/dotfiles/.vim/plugin/clay.vim @@ -0,0 +1,118 @@ +nmap <Leader>cl :LibClayModule<SPACE> +nmap <Leader>cn :LibClayNewModule<SPACE> +nmap <Leader>cN :LibClayNewModuleDir<SPACE> +nmap <Leader>c0 :LibClayAlternate 0<CR> +nmap <Leader>c1 :LibClayAlternate 1<CR> +nmap <Leader>c2 :LibClayAlternate 2<CR> +nmap <Leader>c3 :LibClayAlternate 3<CR> +nmap <Leader>c4 :LibClayAlternate 4<CR> +nmap <Leader>c5 :LibClayAlternate 5<CR> +nmap <Leader>c6 :LibClayAlternate 6<CR> +nmap <Leader>c7 :LibClayAlternate 7<CR> +nmap <Leader>c8 :LibClayAlternate 8<CR> +nmap <Leader>c9 :LibClayAlternate 9<CR> + +if !exists("g:LibClay") + let g:LibClay = "/usr/local/lib/lib-clay" +endif + +if !exists("g:LibClayAlternates") + let g:LibClayAlternates = ["/usr/local/lib/lib-clay"] +endif + +function! s:unique(list) + let dict = {} + for value in a:list + let dict[value] = 1 + endfor + return sort(keys(dict)) +endfunction + +function! ClayCompleteLibraryModule(arglead, cmdline, cursorpos) + let modulesl = [] + let modulelead = substitute(a:arglead, "\\.", "/", "g") + let modules = globpath(g:LibClay, modulelead . "*") + if modules != "" + let modulesl = split(modules, "\n") + let modulesl = filter(modulesl, 'getftype(v:val) == "dir" || matchstr(v:val, "\\.clay$") != ""') + let modulesl = map(modulesl, 'substitute(v:val, "\\(\\..*\\)\\?\\.clay$", "", "")') + let modulesl = map(modulesl, 'substitute(v:val, "^\\V" . escape(g:LibClay, "\\") . "\\v[/\\\\]", "", "")') + let modulesl = s:unique(modulesl) + let modulesl = map(modulesl, 'substitute(v:val, "/\\|\\\\", ".", "g")') + endif + return modulesl +endfunction + +command! -nargs=1 -complete=customlist,ClayCompleteLibraryModule LibClayModule :call GoToLibClayModule("<args>") +command! -nargs=1 -complete=customlist,ClayCompleteLibraryModule LibClayNewModule :call CreateLibClayModule("<args>") +command! -nargs=1 -complete=customlist,ClayCompleteLibraryModule LibClayNewModuleDir :call CreateLibClayModuleDir("<args>") +command! -nargs=1 LibClayAlternate :call SelectLibClayAlternate(<args>) + +function! ClayModuleFileNames(path) + let names = [a:path . ".clay"] + let oses = ["unix", "windows", "linux", "macosx"] + let cpus = ["x86", "ppc", "arm"] + let bits = ["32", "64"] + for bit in bits + let names += [a:path . "." . bit . ".clay"] + endfor + for cpu in cpus + let names += [a:path . "." . cpu . ".clay"] + for bit in bits + let names += [a:path . "." . cpu . "." . bit . ".clay"] + endfor + endfor + for os in oses + let names += [a:path . "." . os . ".clay"] + for bit in bits + let names += [a:path . "." . os . "." . bit . ".clay"] + endfor + for cpu in cpus + let names += [a:path . "." . os . "." . cpu . ".clay"] + for bit in bits + let names += [a:path . "." . os . "." . cpu . "." . bit . ".clay"] + endfor + endfor + endfor + return names +endfunction + +function! FindClayModuleFile(path) + let basename = substitute(a:path, "^.*[/\\\\]", "", "") + let searchnames = ClayModuleFileNames(a:path) + let searchnames += ClayModuleFileNames(a:path . "/" . basename) + for name in searchnames + if getftype(name) != "" + return name + endif + endfor + return "" +endfunction + +function! GoToLibClayModule(module) + let modulefile = FindClayModuleFile(g:LibClay . "/" . substitute(a:module, "\\.", "/", "g")) + if modulefile == "" + echo "Library module" modulefile "not found" + else + exe "edit " fnameescape(modulefile) + endif +endfunction + +function! SelectLibClayAlternate(n) + echo "Setting g:LibClay to" get(g:LibClayAlternates, a:n, g:LibClay) + let g:LibClay = get(g:LibClayAlternates, a:n, g:LibClay) +endfunction + +function! CreateLibClayModule(module) + let modulename = g:LibClay . "/" . substitute(a:module, "\\.", "/", "g") . ".clay" + let modulepath = substitute(modulename, "[/\\\\][^/\\\\]*$", "", "") + exe "silent !mkdir -p " shellescape(modulepath) + exe "edit " fnameescape(modulename) +endfunction + +function! CreateLibClayModuleDir(module) + let modulepath = g:LibClay . "/" . substitute(a:module, "\\.", "/", "g") + let basename = substitute(a:module, "^.*\\.", "", "") + exe "silent !mkdir -p " shellescape(modulepath) + exe "edit " fnameescape(modulepath . "/" . basename . ".clay") +endfunction diff --git a/dotfiles/.vim/plugin/fugitive.vim b/dotfiles/.vim/plugin/fugitive.vim @@ -0,0 +1,1761 @@ +" fugitive.vim - A Git wrapper so awesome, it should be illegal +" Maintainer: Tim Pope <vimNOSPAM@tpope.org> +" Version: 1.1 +" GetLatestVimScripts: 2975 1 :AutoInstall: fugitive.vim + +if exists('g:loaded_fugitive') || &cp + finish +endif +let g:loaded_fugitive = 1 + +if !exists('g:fugitive_git_executable') + let g:fugitive_git_executable = 'git' +endif + +" Utility {{{1 + +function! s:function(name) abort + return function(substitute(a:name,'^s:',matchstr(expand('<sfile>'), '<SNR>\d\+_'),'')) +endfunction + +function! s:sub(str,pat,rep) abort + return substitute(a:str,'\v\C'.a:pat,a:rep,'') +endfunction + +function! s:gsub(str,pat,rep) abort + return substitute(a:str,'\v\C'.a:pat,a:rep,'g') +endfunction + +function! s:shellesc(arg) abort + if a:arg =~ '^[A-Za-z0-9_/.-]\+$' + return a:arg + elseif &shell =~# 'cmd' && a:arg !~# '"' + return '"'.a:arg.'"' + else + return shellescape(a:arg) + endif +endfunction + +function! s:fnameescape(file) abort + if exists('*fnameescape') + return fnameescape(a:file) + else + return escape(a:file," \t\n*?[{`$\\%#'\"|!<") + endif +endfunction + +function! s:throw(string) abort + let v:errmsg = 'fugitive: '.a:string + throw v:errmsg +endfunction + +function! s:warn(str) + echohl WarningMsg + echomsg a:str + echohl None + let v:warningmsg = a:str +endfunction + +function! s:shellslash(path) + if exists('+shellslash') && !&shellslash + return s:gsub(a:path,'\\','/') + else + return a:path + endif +endfunction + +function! s:add_methods(namespace, method_names) abort + for name in a:method_names + let s:{a:namespace}_prototype[name] = s:function('s:'.a:namespace.'_'.name) + endfor +endfunction + +let s:commands = [] +function! s:command(definition) abort + let s:commands += [a:definition] +endfunction + +function! s:define_commands() + for command in s:commands + exe 'command! -buffer '.command + endfor +endfunction + +function! s:compatibility_check() + if exists('b:git_dir') && exists('*GitBranchInfoCheckGitDir') && !exists('g:fugitive_did_compatibility_warning') + let g:fugitive_did_compatibility_warning = 1 + call s:warn("See http://github.com/tpope/vim-fugitive/issues#issue/1 for why you should remove git-branch-info.vim") + endif +endfunction + +augroup fugitive_utility + autocmd! + autocmd User Fugitive call s:define_commands() + autocmd VimEnter * call s:compatibility_check() +augroup END + +let s:abstract_prototype = {} + +" }}}1 +" Initialization {{{1 + +function! s:ExtractGitDir(path) abort + let path = s:shellslash(a:path) + if path =~? '^fugitive://.*//' + return matchstr(path,'fugitive://\zs.\{-\}\ze//') + endif + let fn = fnamemodify(path,':s?[\/]$??') + let ofn = "" + let nfn = fn + while fn != ofn + if isdirectory(fn . '/.git') + return s:sub(simplify(fnamemodify(fn . '/.git',':p')),'\W$','') + elseif fn =~ '\.git$' && filereadable(fn . '/HEAD') + return s:sub(simplify(fnamemodify(fn,':p')),'\W$','') + endif + let ofn = fn + let fn = fnamemodify(ofn,':h') + endwhile + return '' +endfunction + +function! s:Detect(path) + if exists('b:git_dir') && b:git_dir ==# '' + unlet b:git_dir + endif + if !exists('b:git_dir') + let dir = s:ExtractGitDir(a:path) + if dir != '' + let b:git_dir = dir + endif + endif + if exists('b:git_dir') + silent doautocmd User Fugitive + cnoremap <expr> <buffer> <C-R><C-G> fugitive#buffer().rev() + let buffer = fugitive#buffer() + if expand('%:p') =~# '//' + call buffer.setvar('&path',s:sub(buffer.getvar('&path'),'^\.%(,|$)','')) + endif + if b:git_dir !~# ',' && stridx(buffer.getvar('&tags'),b:git_dir.'/tags') == -1 + call buffer.setvar('&tags',buffer.getvar('&tags').','.b:git_dir.'/tags') + endif + endif +endfunction + +augroup fugitive + autocmd! + autocmd BufNewFile,BufReadPost * call s:Detect(expand('<amatch>:p')) + autocmd FileType netrw call s:Detect(expand('<afile>:p')) + autocmd VimEnter * if expand('<amatch>')==''|call s:Detect(getcwd())|endif + autocmd BufWinLeave * execute getwinvar(+winnr(), 'fugitive_restore') +augroup END + +" }}}1 +" Repository {{{1 + +let s:repo_prototype = {} +let s:repos = {} + +function! s:repo(...) abort + let dir = a:0 ? a:1 : (exists('b:git_dir') && b:git_dir !=# '' ? b:git_dir : s:ExtractGitDir(expand('%:p'))) + if dir !=# '' + if has_key(s:repos,dir) + let repo = get(s:repos,dir) + else + let repo = {'git_dir': dir} + let s:repos[dir] = repo + endif + return extend(extend(repo,s:repo_prototype,'keep'),s:abstract_prototype,'keep') + endif + call s:throw('not a git repository: '.expand('%:p')) +endfunction + +function! s:repo_dir(...) dict abort + return join([self.git_dir]+a:000,'/') +endfunction + +function! s:repo_tree(...) dict abort + if !self.bare() + let dir = fnamemodify(self.git_dir,':h') + return join([dir]+a:000,'/') + endif + call s:throw('no work tree') +endfunction + +function! s:repo_bare() dict abort + return self.dir() !~# '/\.git$' +endfunction + +function! s:repo_translate(spec) dict abort + if a:spec ==# '.' || a:spec ==# '/.' + return self.bare() ? self.dir() : self.tree() + elseif a:spec =~# '^/' + return fnamemodify(self.dir(),':h').a:spec + elseif a:spec =~# '^:[0-3]:' + return 'fugitive://'.self.dir().'//'.a:spec[1].'/'.a:spec[3:-1] + elseif a:spec ==# ':' + if $GIT_INDEX_FILE =~# '/[^/]*index[^/]*\.lock$' && fnamemodify($GIT_INDEX_FILE,':p')[0:strlen(s:repo().dir())] ==# s:repo().dir('') && filereadable($GIT_INDEX_FILE) + return fnamemodify($GIT_INDEX_FILE,':p') + else + return self.dir('index') + endif + elseif a:spec =~# '^:/' + let ref = self.rev_parse(matchstr(a:spec,'.[^:]*')) + return 'fugitive://'.self.dir().'//'.ref + elseif a:spec =~# '^:' + return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1] + elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(self.dir(a:spec)) + return self.dir(a:spec) + elseif filereadable(s:repo().dir('refs/'.a:spec)) + return self.dir('refs/'.a:spec) + elseif filereadable(s:repo().dir('refs/tags/'.a:spec)) + return self.dir('refs/tags/'.a:spec) + elseif filereadable(s:repo().dir('refs/heads/'.a:spec)) + return self.dir('refs/heads/'.a:spec) + elseif filereadable(s:repo().dir('refs/remotes/'.a:spec)) + return self.dir('refs/remotes/'.a:spec) + elseif filereadable(s:repo().dir('refs/remotes/'.a:spec.'/HEAD')) + return self.dir('refs/remotes/'.a:spec,'/HEAD') + else + try + let ref = self.rev_parse(matchstr(a:spec,'[^:]*')) + let path = s:sub(matchstr(a:spec,':.*'),'^:','/') + return 'fugitive://'.self.dir().'//'.ref.path + catch /^fugitive:/ + return self.tree(a:spec) + endtry + endif +endfunction + +call s:add_methods('repo',['dir','tree','bare','translate']) + +function! s:repo_git_command(...) dict abort + let git = g:fugitive_git_executable . ' --git-dir='.s:shellesc(self.git_dir) + return git.join(map(copy(a:000),'" ".s:shellesc(v:val)'),'') +endfunction + +function! s:repo_git_chomp(...) dict abort + return s:sub(system(call(self.git_command,a:000,self)),'\n$','') +endfunction + +function! s:repo_git_chomp_in_tree(...) dict abort + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd.'`=s:repo().tree()`' + return call(s:repo().git_chomp, a:000, s:repo()) + finally + execute cd.'`=dir`' + endtry +endfunction + +function! s:repo_rev_parse(rev) dict abort + let hash = self.git_chomp('rev-parse','--verify',a:rev) + if hash =~ '^\x\{40\}$' + return hash + endif + call s:throw('rev-parse '.a:rev.': '.hash) +endfunction + +call s:add_methods('repo',['git_command','git_chomp','git_chomp_in_tree','rev_parse']) + +function! s:repo_dirglob(base) dict abort + let base = s:sub(a:base,'^/','') + let matches = split(glob(self.tree(s:gsub(base,'/','*&').'*/')),"\n") + call map(matches,'v:val[ strlen(self.tree())+(a:base !~ "^/") : -1 ]') + return matches +endfunction + +function! s:repo_superglob(base) dict abort + if a:base =~# '^/' || a:base !~# ':' + let results = [] + if a:base !~# '^/' + let heads = ["HEAD","ORIG_HEAD","FETCH_HEAD","MERGE_HEAD"] + let heads += sort(split(s:repo().git_chomp("rev-parse","--symbolic","--branches","--tags","--remotes"),"\n")) + call filter(heads,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base') + let results += heads + endif + if !self.bare() + let base = s:sub(a:base,'^/','') + let matches = split(glob(self.tree(s:gsub(base,'/','*&').'*')),"\n") + call map(matches,'s:shellslash(v:val)') + call map(matches,'v:val !~ "/$" && isdirectory(v:val) ? v:val."/" : v:val') + call map(matches,'v:val[ strlen(self.tree())+(a:base !~ "^/") : -1 ]') + let results += matches + endif + return results + + elseif a:base =~# '^:' + let entries = split(self.git_chomp('ls-files','--stage'),"\n") + call map(entries,'s:sub(v:val,".*(\\d)\\t(.*)",":\\1:\\2")') + if a:base !~# '^:[0-3]\%(:\|$\)' + call filter(entries,'v:val[1] == "0"') + call map(entries,'v:val[2:-1]') + endif + call filter(entries,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base') + return entries + + else + let tree = matchstr(a:base,'.*[:/]') + let entries = split(self.git_chomp('ls-tree',tree),"\n") + call map(entries,'s:sub(v:val,"^04.*\\zs$","/")') + call map(entries,'tree.s:sub(v:val,".*\t","")') + return filter(entries,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base') + endif +endfunction + +call s:add_methods('repo',['dirglob','superglob']) + +function! s:repo_keywordprg() dict abort + let args = ' --git-dir='.escape(self.dir(),"\\\"' ").' show' + if has('gui_running') && !has('win32') + return g:fugitive_git_executable . ' --no-pager' . args + else + return g:fugitive_git_executable . args + endif +endfunction + +call s:add_methods('repo',['keywordprg']) + +" }}}1 +" Buffer {{{1 + +let s:buffer_prototype = {} + +function! s:buffer(...) abort + let buffer = {'#': bufnr(a:0 ? a:1 : '%')} + call extend(extend(buffer,s:buffer_prototype,'keep'),s:abstract_prototype,'keep') + if buffer.getvar('git_dir') !=# '' + return buffer + endif + call s:throw('not a git repository: '.expand('%:p')) +endfunction + +function! fugitive#buffer(...) abort + return s:buffer(a:0 ? a:1 : '%') +endfunction + +function! s:buffer_getvar(var) dict abort + return getbufvar(self['#'],a:var) +endfunction + +function! s:buffer_setvar(var,value) dict abort + return setbufvar(self['#'],a:var,a:value) +endfunction + +function! s:buffer_getline(lnum) dict abort + return getbufline(self['#'],a:lnum)[0] +endfunction + +function! s:buffer_repo() dict abort + return s:repo(self.getvar('git_dir')) +endfunction + +function! s:buffer_type(...) dict abort + if self.getvar('fugitive_type') != '' + let type = self.getvar('fugitive_type') + elseif fnamemodify(self.spec(),':p') =~# '.\git/refs/\|\.git/\w*HEAD$' + let type = 'head' + elseif self.getline(1) =~ '^tree \x\{40\}$' && self.getline(2) == '' + let type = 'tree' + elseif self.getline(1) =~ '^\d\{6\} \w\{4\} \x\{40\}\>\t' + let type = 'tree' + elseif self.getline(1) =~ '^\d\{6\} \x\{40\}\> \d\t' + let type = 'index' + elseif isdirectory(self.spec()) + let type = 'directory' + elseif self.spec() == '' + let type = 'null' + elseif filereadable(self.spec()) + let type = 'file' + else + let type = '' + endif + if a:0 + return !empty(filter(copy(a:000),'v:val ==# type')) + else + return type + endif +endfunction + +function! s:buffer_spec() dict abort + let bufname = bufname(self['#']) + return s:shellslash(bufname == '' ? '' : fnamemodify(bufname,':p')) +endfunction + +function! s:buffer_name() dict abort + return self.spec() +endfunction + +function! s:buffer_commit() dict abort + return matchstr(self.spec(),'^fugitive://.\{-\}//\zs\w*') +endfunction + +function! s:buffer_path(...) dict abort + let rev = matchstr(self.spec(),'^fugitive://.\{-\}//\zs.*') + if rev != '' + let rev = s:sub(rev,'\w*','') + else + let rev = self.spec()[strlen(self.repo().tree()) : -1] + endif + return s:sub(rev,'^/',a:0 ? a:1 : '') +endfunction + +function! s:buffer_rev() dict abort + let rev = matchstr(self.spec(),'^fugitive://.\{-\}//\zs.*') + if rev =~ '^\x/' + return ':'.rev[0].':'.rev[2:-1] + elseif rev =~ '.' + return s:sub(rev,'/',':') + elseif self.spec() =~ '\.git/index$' + return ':' + elseif self.spec() =~ '\.git/refs/\|\.git/.*HEAD$' + return self.spec()[strlen(self.repo().dir())+1 : -1] + else + return self.path() + endif +endfunction + +function! s:buffer_sha1() dict abort + if self.spec() =~ '^fugitive://' || self.spec() =~ '\.git/refs/\|\.git/.*HEAD$' + return self.repo().rev_parse(self.rev()) + else + return '' + endif +endfunction + +function! s:buffer_expand(rev) dict abort + if a:rev =~# '^:[0-3]$' + let file = a:rev.self.path(':') + elseif a:rev =~# '^-' + let file = 'HEAD^{}'.a:rev[1:-1].self.path(':') + elseif a:rev =~# '^@{' + let file = 'HEAD'.a:rev.self.path(':') + elseif a:rev =~# '^[~^]' + let commit = s:sub(self.commit(),'^\d=$','HEAD') + let file = commit.a:rev.self.path(':') + else + let file = a:rev + endif + return s:sub(file,'\%$',self.path()) +endfunction + +function! s:buffer_containing_commit() dict abort + if self.commit() =~# '^\d$' + return ':' + elseif self.commit() =~# '.' + return self.commit() + else + return 'HEAD' + endif +endfunction + +call s:add_methods('buffer',['getvar','setvar','getline','repo','type','spec','name','commit','path','rev','sha1','expand','containing_commit']) + +" }}}1 +" Git {{{1 + +call s:command("-bang -nargs=? -complete=customlist,s:GitComplete Git :execute s:Git(<bang>0,<q-args>)") + +function! s:ExecuteInTree(cmd) abort + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd.'`=s:repo().tree()`' + execute a:cmd + finally + execute cd.'`=dir`' + endtry +endfunction + +function! s:Git(bang,cmd) abort + let git = s:repo().git_command() + if has('gui_running') && !has('win32') + let git .= ' --no-pager' + endif + let cmd = matchstr(a:cmd,'\v\C.{-}%($|\\@<!%(\\\\)*\|)@=') + call s:ExecuteInTree('!'.git.' '.cmd) + call fugitive#reload_status() + return matchstr(a:cmd,'\v\C\\@<!%(\\\\)*\|\zs.*') +endfunction + +function! s:GitComplete(A,L,P) abort + if !exists('s:exec_path') + let s:exec_path = s:sub(system(g:fugitive_git_executable.' --exec-path'),'\n$','') + endif + let cmds = map(split(glob(s:exec_path.'/git-*'),"\n"),'s:sub(v:val[strlen(s:exec_path)+5 : -1],"\\.exe$","")') + if a:L =~ ' [[:alnum:]-]\+ ' + return s:repo().superglob(a:A) + elseif a:A == '' + return cmds + else + return filter(cmds,'v:val[0 : strlen(a:A)-1] ==# a:A') + endif +endfunction + +" }}}1 +" Gcd, Glcd {{{1 + +function! s:DirComplete(A,L,P) abort + let matches = s:repo().dirglob(a:A) + return matches +endfunction + +call s:command("-bar -bang -nargs=? -complete=customlist,s:DirComplete Gcd :cd<bang> `=s:repo().bare() ? s:repo().dir(<q-args>) : s:repo().tree(<q-args>)`") +call s:command("-bar -bang -nargs=? -complete=customlist,s:DirComplete Glcd :lcd<bang> `=s:repo().bare() ? s:repo().dir(<q-args>) : s:repo().tree(<q-args>)`") + +" }}}1 +" Gstatus {{{1 + +call s:command("-bar Gstatus :execute s:Status()") + +function! s:Status() abort + try + Gpedit : + wincmd P + nnoremap <buffer> <silent> q :<C-U>bdelete<CR> + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry + return '' +endfunction + +function! fugitive#reload_status() abort + let mytab = tabpagenr() + for tab in [mytab] + range(1,tabpagenr('$')) + for winnr in range(1,tabpagewinnr(tab,'$')) + if getbufvar(tabpagebuflist(tab)[winnr-1],'fugitive_type') ==# 'index' + execute 'tabnext '.tab + if winnr != winnr() + execute winnr.'wincmd w' + let restorewinnr = 1 + endif + try + if !&modified + call s:BufReadIndex() + endif + finally + if exists('restorewinnr') + wincmd p + endif + execute 'tabnext '.mytab + endtry + endif + endfor + endfor +endfunction + +function! s:StageDiff(bang) abort + let section = getline(search('^# .*:$','bnW')) + let line = getline('.') + let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.*') + if filename ==# '' && section == '# Changes to be committed:' + return 'Git diff --cached' + elseif filename ==# '' + return 'Git diff' + elseif line =~# '^#\trenamed:' && filename =~ ' -> ' + let [old, new] = split(filename,' -> ') + execute 'Gedit '.s:fnameescape(':0:'.new) + return 'Gdiff'.a:bang.' HEAD:'.s:fnameescape(old) + elseif section == '# Changes to be committed:' + execute 'Gedit '.s:fnameescape(':0:'.filename) + return 'Gdiff'.a:bang.' -' + else + execute 'Gedit '.s:fnameescape('/'.filename) + return 'Gdiff'.a:bang + endif +endfunction + +function! s:StageToggle(lnum1,lnum2) abort + try + let output = '' + for lnum in range(a:lnum1,a:lnum2) + let line = getline(lnum) + if getline('.') == '# Changes to be committed:' + return 'Gcommit' + endif + let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.*') + if filename ==# '' + continue + endif + if !exists('first_filename') + let first_filename = filename + endif + execute lnum + let section = getline(search('^# .*:$','bnW')) + if line =~# '^#\trenamed:' && filename =~ ' -> ' + let cmd = ['mv','--'] + reverse(split(filename,' -> ')) + let filename = cmd[-1] + elseif section =~? ' to be ' + let cmd = ['reset','-q','--',filename] + elseif line =~# '^#\tdeleted:' + let cmd = ['rm','--',filename] + else + let cmd = ['add','--',filename] + endif + let output .= call(s:repo().git_chomp_in_tree,cmd,s:repo())."\n" + endfor + if exists('first_filename') + let jump = first_filename + let f = matchstr(getline(a:lnum1-1),'^#\t\%([[:alpha:] ]\+: *\)\=\zs.*') + if f !=# '' | let jump = f | endif + let f = matchstr(getline(a:lnum2+1),'^#\t\%([[:alpha:] ]\+: *\)\=\zs.*') + if f !=# '' | let jump = f | endif + silent! edit! + 1 + redraw + call search('^#\t\%([[:alpha:] ]\+: *\)\=\V'.jump.'\$','W') + endif + echo s:sub(s:gsub(output,'\n+','\n'),'\n$','') + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry + return 'checktime' +endfunction + +function! s:StagePatch(lnum1,lnum2) abort + let add = [] + let reset = [] + + for lnum in range(a:lnum1,a:lnum2) + let line = getline(lnum) + if line == '# Changes to be committed:' + return 'Git reset --patch' + elseif line == '# Changed but not updated:' + return 'Git add --patch' + endif + let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.*') + if filename ==# '' + continue + endif + if !exists('first_filename') + let first_filename = filename + endif + execute lnum + let section = getline(search('^# .*:$','bnW')) + if line =~# '^#\trenamed:' && filename =~ ' -> ' + let reset += [split(filename,' -> ')[1]] + elseif section =~? ' to be ' + let reset += [filename] + elseif line !~# '^#\tdeleted:' + let add += [filename] + endif + endfor + try + if !empty(add) + execute "Git add --patch -- ".join(map(add,'s:shellesc(v:val)')) + endif + if !empty(reset) + execute "Git reset --patch -- ".join(map(add,'s:shellesc(v:val)')) + endif + if exists('first_filename') + silent! edit! + 1 + redraw + call search('^#\t\%([[:alpha:] ]\+: *\)\=\V'.first_filename.'\$','W') + endif + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry + return 'checktime' +endfunction + +" }}}1 +" Gcommit {{{1 + +call s:command("-nargs=? -complete=customlist,s:CommitComplete Gcommit :execute s:Commit(<q-args>)") + +function! s:Commit(args) abort + let old_type = s:buffer().type() + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + let msgfile = s:repo().dir('COMMIT_EDITMSG') + let outfile = tempname() + let errorfile = tempname() + try + execute cd.'`=s:repo().tree()`' + let command = '' + if &shell =~# 'cmd' + let old_editor = $GIT_EDITOR + let $GIT_EDITOR = 'false' + elseif &shell !~# 'csh' + let command = 'GIT_EDITOR=false ' + endif + let command .= s:repo().git_command('commit').' '.a:args + if &shell =~# 'csh' + silent execute '!setenv GIT_EDITOR false; ('.command.' > '.outfile.') >& '.errorfile + elseif a:args =~# '\%(^\| \)--interactive\>' + execute '!'.command.' 2> '.errorfile + else + silent execute '!'.command.' > '.outfile.' 2> '.errorfile + endif + if !v:shell_error + if filereadable(outfile) + for line in readfile(outfile) + echo line + endfor + endif + return '' + else + let error = get(readfile(errorfile),-2,'!') + if error =~# "'false'\\.$" + let args = a:args + let args = s:gsub(args,'%(%(^| )-- )@<!%(^| )@<=%(-[se]|--edit|--interactive)%($| )','') + let args = s:gsub(args,'%(%(^| )-- )@<!%(^| )@<=%(-F|--file|-m|--message)%(\s+|\=)%(''[^'']*''|"%(\\.|[^"])*"|\\.|\S)*','') + let args = s:gsub(args,'%(^| )@<=[%#]%(:\w)*','\=expand(submatch(0))') + let args = '-F '.s:shellesc(msgfile).' '.args + if args !~# '\%(^\| \)--cleanup\>' + let args = '--cleanup=strip '.args + endif + if bufname('%') == '' && line('$') == 1 && getline(1) == '' && !&mod + edit `=msgfile` + else + split `=msgfile` + endif + if old_type ==# 'index' + bdelete # + endif + let b:fugitive_commit_arguments = args + setlocal bufhidden=delete filetype=gitcommit + return '1' + elseif error ==# '!' + return s:Status() + else + call s:throw(error) + endif + endif + catch /^fugitive:/ + return 'echoerr v:errmsg' + finally + if exists('old_editor') + let $GIT_EDITOR = old_editor + endif + call delete(outfile) + call delete(errorfile) + execute cd.'`=dir`' + call fugitive#reload_status() + endtry +endfunction + +function! s:CommitComplete(A,L,P) abort + if a:A =~ '^-' || type(a:A) == type(0) " a:A is 0 on :Gcommit -<Tab> + let args = ['-C', '-F', '-a', '-c', '-e', '-i', '-m', '-n', '-o', '-q', '-s', '-t', '-u', '-v', '--all', '--allow-empty', '--amend', '--author=', '--cleanup=', '--dry-run', '--edit', '--file=', '--include', '--interactive', '--message=', '--no-verify', '--only', '--quiet', '--reedit-message=', '--reuse-message=', '--signoff', '--template=', '--untracked-files', '--verbose'] + return filter(args,'v:val[0 : strlen(a:A)-1] ==# a:A') + else + return s:repo().superglob(a:A) + endif +endfunction + +function! s:FinishCommit() + let args = getbufvar(+expand('<abuf>'),'fugitive_commit_arguments') + let g:args = args + if !empty(args) + call setbufvar(+expand('<abuf>'),'fugitive_commit_arguments','') + return s:Commit(args) + endif + return '' +endfunction + +augroup fugitive_commit + autocmd! + autocmd VimLeavePre,BufDelete *.git/COMMIT_EDITMSG execute s:sub(s:FinishCommit(), '^echoerr (.*)', 'echohl ErrorMsg|echo \1|echohl NONE') +augroup END + +" }}}1 +" Ggrep, Glog {{{1 + +if !exists('g:fugitive_summary_format') + let g:fugitive_summary_format = '%s' +endif + +call s:command("-bang -nargs=? -complete=customlist,s:EditComplete Ggrep :execute s:Grep(<bang>0,<q-args>)") +call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Glog :execute s:Log('grep<bang>',<f-args>)") + +function! s:Grep(bang,arg) abort + let grepprg = &grepprg + let grepformat = &grepformat + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd.'`=s:repo().tree()`' + let &grepprg = s:repo().git_command('--no-pager', 'grep', '-n') + let &grepformat = '%f:%l:%m' + exe 'grep! '.escape(matchstr(a:arg,'\v\C.{-}%($|[''" ]\@=\|)@='),'|') + let list = getqflist() + for entry in list + if bufname(entry.bufnr) =~ ':' + let entry.filename = s:repo().translate(bufname(entry.bufnr)) + unlet! entry.bufnr + elseif a:arg =~# '\%(^\| \)--cached\>' + let entry.filename = s:repo().translate(':0:'.bufname(entry.bufnr)) + unlet! entry.bufnr + endif + endfor + call setqflist(list,'r') + if !a:bang && !empty(list) + return 'cfirst'.matchstr(a:arg,'\v\C[''" ]\zs\|.*') + else + return matchstr(a:arg,'\v\C[''" ]\|\zs.*') + endif + finally + let &grepprg = grepprg + let &grepformat = grepformat + execute cd.'`=dir`' + endtry +endfunction + +function! s:Log(cmd,...) + let path = s:buffer().path('/') + if path =~# '^/\.git\%(/\|$\)' || index(a:000,'--') != -1 + let path = '' + endif + let cmd = ['--no-pager', 'log', '--no-color'] + let cmd += [escape('--pretty=format:fugitive://'.s:repo().dir().'//%H'.path.'::'.g:fugitive_summary_format,'%')] + if empty(filter(a:000[0 : index(a:000,'--')],'v:val !~# "^-"')) + if s:buffer().commit() =~# '\x\{40\}' + let cmd += [s:buffer().commit()] + elseif s:buffer().path() =~# '^\.git/refs/\|^\.git/.*HEAD$' + let cmd += [s:buffer().path()[5:-1]] + endif + end + let cmd += map(copy(a:000),'s:sub(v:val,"^\\%(%(:\\w)*)","\\=fnamemodify(s:buffer().path(),submatch(1))")') + if path =~# '/.' + let cmd += ['--',path[1:-1]] + endif + let grepformat = &grepformat + let grepprg = &grepprg + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd.'`=s:repo().tree()`' + let &grepprg = call(s:repo().git_command,cmd,s:repo()) + let &grepformat = '%f::%m' + exe a:cmd + finally + let &grepformat = grepformat + let &grepprg = grepprg + execute cd.'`=dir`' + endtry +endfunction + +" }}}1 +" Gedit, Gpedit, Gsplit, Gvsplit, Gtabedit, Gread {{{1 + +function! s:Edit(cmd,...) abort + if a:0 && a:1 == '' + return '' + elseif a:0 + let file = s:buffer().expand(a:1) + elseif s:buffer().commit() ==# '' && s:buffer().path('/') !~# '^/.git\>' + let file = s:buffer().path(':') + else + let file = s:buffer().path('/') + endif + try + let file = s:repo().translate(file) + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry + if a:cmd =~# 'read!$' || a:cmd ==# 'read' + if a:cmd =~# '!$' + call s:warn(':Gread! is deprecated. Use :Gread') + endif + return 'silent %delete|read '.s:fnameescape(file).'|silent 1delete_|diffupdate|'.line('.') + else + if &previewwindow && getbufvar('','fugitive_type') ==# 'index' + wincmd p + endif + return a:cmd.' '.s:fnameescape(file) + endif +endfunction + +function! s:EditComplete(A,L,P) abort + return s:repo().superglob(a:A) +endfunction + +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Ge :execute s:Edit('edit<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gedit :execute s:Edit('edit<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gpedit :execute s:Edit('pedit<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gsplit :execute s:Edit('split<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gvsplit :execute s:Edit('vsplit<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gtabedit :execute s:Edit('tabedit<bang>',<f-args>)") +call s:command("-bar -bang -nargs=? -count -complete=customlist,s:EditComplete Gread :execute s:Edit((!<count> && <line1> ? '' : <count>).'read<bang>',<f-args>)") + +" }}}1 +" Gwrite {{{1 + +call s:command("-bar -bang -nargs=? -complete=customlist,s:EditComplete Gwrite :execute s:Write(<bang>0,<f-args>)") + +function! s:Write(force,...) abort + if exists('b:fugitive_commit_arguments') + return 'write|bdelete' + elseif expand('%:t') == 'COMMIT_EDITMSG' && $GIT_INDEX_FILE != '' + return 'wq' + elseif s:buffer().type() == 'index' + return 'Gcommit' + endif + let mytab = tabpagenr() + let mybufnr = bufnr('') + let path = a:0 ? a:1 : s:buffer().path() + if path =~# '^:\d\>' + return 'write'.(a:force ? '! ' : ' ').s:fnameescape(s:repo().translate(s:buffer().expand(path))) + endif + let always_permitted = (s:buffer().path() ==# path && s:buffer().commit() =~# '^0\=$') + if !always_permitted && !a:force && s:repo().git_chomp_in_tree('diff','--name-status','HEAD','--',path) . s:repo().git_chomp_in_tree('ls-files','--others','--',path) !=# '' + let v:errmsg = 'fugitive: file has uncommitted changes (use ! to override)' + return 'echoerr v:errmsg' + endif + let file = s:repo().translate(path) + let treebufnr = 0 + for nr in range(1,bufnr('$')) + if fnamemodify(bufname(nr),':p') ==# file + let treebufnr = nr + endif + endfor + + if treebufnr > 0 && treebufnr != bufnr('') + let temp = tempname() + silent execute '%write '.temp + for tab in [mytab] + range(1,tabpagenr('$')) + for winnr in range(1,tabpagewinnr(tab,'$')) + if tabpagebuflist(tab)[winnr-1] == treebufnr + execute 'tabnext '.tab + if winnr != winnr() + execute winnr.'wincmd w' + let restorewinnr = 1 + endif + try + let lnum = line('.') + let last = line('$') + silent execute '$read '.temp + silent execute '1,'.last.'delete_' + silent write! + silent execute lnum + let did = 1 + finally + if exists('restorewinnr') + wincmd p + endif + execute 'tabnext '.mytab + endtry + endif + endfor + endfor + if !exists('did') + call writefile(readfile(temp,'b'),file,'b') + endif + else + execute 'write! '.s:fnameescape(s:repo().translate(path)) + endif + + if a:force + let error = s:repo().git_chomp_in_tree('add', '--force', file) + else + let error = s:repo().git_chomp_in_tree('add', file) + endif + if v:shell_error + let v:errmsg = 'fugitive: '.error + return 'echoerr v:errmsg' + endif + if s:buffer().path() ==# path && s:buffer().commit() =~# '^\d$' + set nomodified + endif + + let one = s:repo().translate(':1:'.path) + let two = s:repo().translate(':2:'.path) + let three = s:repo().translate(':3:'.path) + for nr in range(1,bufnr('$')) + if bufloaded(nr) && !getbufvar(nr,'&modified') && (bufname(nr) == one || bufname(nr) == two || bufname(nr) == three) + execute nr.'bdelete' + endif + endfor + + unlet! restorewinnr + let zero = s:repo().translate(':0:'.path) + for tab in range(1,tabpagenr('$')) + for winnr in range(1,tabpagewinnr(tab,'$')) + let bufnr = tabpagebuflist(tab)[winnr-1] + let bufname = bufname(bufnr) + if bufname ==# zero && bufnr != mybufnr + execute 'tabnext '.tab + if winnr != winnr() + execute winnr.'wincmd w' + let restorewinnr = 1 + endif + try + let lnum = line('.') + let last = line('$') + silent $read `=file` + silent execute '1,'.last.'delete_' + silent execute lnum + set nomodified + diffupdate + finally + if exists('restorewinnr') + wincmd p + endif + execute 'tabnext '.mytab + endtry + break + endif + endfor + endfor + call fugitive#reload_status() + return 'checktime' +endfunction + +" }}}1 +" Gdiff {{{1 + +call s:command("-bang -bar -nargs=? -complete=customlist,s:EditComplete Gdiff :execute s:Diff(<bang>0,<f-args>)") + +augroup fugitive_diff + autocmd! + autocmd BufWinLeave * if s:diff_window_count() == 2 && &diff && getbufvar(+expand('<abuf>'), 'git_dir') !=# '' | execute 'windo call s:diff_off()' | endif + autocmd BufWinEnter * if s:diff_window_count() == 1 && &diff && getbufvar(+expand('<abuf>'), 'git_dir') !=# '' | call s:diff_off() | endif +augroup END + +function! s:diff_window_count() + let c = 0 + for nr in range(1,winnr('$')) + let c += getwinvar(nr,'&diff') + endfor + return c +endfunction + +function! s:diff_off() + if &l:diff + diffoff + endif +endfunction + +function! s:buffer_compare_age(commit) dict abort + let scores = {':0': 1, ':1': 2, ':2': 3, ':': 4, ':3': 5} + let my_score = get(scores,':'.self.commit(),0) + let their_score = get(scores,':'.a:commit,0) + if my_score || their_score + return my_score < their_score ? -1 : my_score != their_score + elseif self.commit() ==# a:commit + return 0 + endif + let base = self.repo().git_chomp('merge-base',self.commit(),a:commit) + if base ==# self.commit() + return -1 + elseif base ==# a:commit + return 1 + endif + let my_time = +self.repo().git_chomp('log','--max-count=1','--pretty=format:%at',self.commit()) + let their_time = +self.repo().git_chomp('log','--max-count=1','--pretty=format:%at',a:commit) + return my_time < their_time ? -1 : my_time != their_time +endfunction + +call s:add_methods('buffer',['compare_age']) + +function! s:Diff(bang,...) abort + let split = a:bang ? 'split' : 'vsplit' + if exists(':DiffGitCached') + return 'DiffGitCached' + elseif (!a:0 || a:1 == ':') && s:buffer().commit() =~# '^[0-1]\=$' && s:repo().git_chomp_in_tree('ls-files', '--unmerged', '--', s:buffer().path()) !=# '' + execute 'leftabove '.split.' `=fugitive#buffer().repo().translate(s:buffer().expand('':2''))`' + diffthis + wincmd p + execute 'rightbelow '.split.' `=fugitive#buffer().repo().translate(s:buffer().expand('':3''))`' + diffthis + wincmd p + diffthis + return '' + elseif a:0 + if a:1 ==# '' + return '' + elseif a:1 ==# '/' + let file = s:buffer().path('/') + elseif a:1 ==# ':' + let file = s:buffer().path(':0:') + elseif a:1 =~# '^:/' + try + let file = s:repo().rev_parse(a:1).s:buffer().path(':') + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry + else + let file = s:buffer().expand(a:1) + endif + if file !~# ':' && file !~# '^/' && s:repo().git_chomp('cat-file','-t',file) =~# '^\%(tag\|commit\)$' + let file = file.s:buffer().path(':') + endif + else + let file = s:buffer().path(s:buffer().commit() == '' ? ':0:' : '/') + endif + try + let spec = s:repo().translate(file) + let commit = matchstr(spec,'\C[^:/]//\zs\x\+') + if s:buffer().compare_age(commit) < 0 + execute 'rightbelow '.split.' `=spec`' + else + execute 'leftabove '.split.' `=spec`' + endif + diffthis + wincmd p + diffthis + return '' + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +" }}}1 +" Gmove, Gremove {{{1 + +function! s:Move(force,destination) + if a:destination =~# '^/' + let destination = a:destination[1:-1] + else + let destination = fnamemodify(s:sub(a:destination,'[%#]%(:\w)*','\=expand(submatch(0))'),':p') + if destination[0:strlen(s:repo().tree())] ==# s:repo().tree('') + let destination = destination[strlen(s:repo().tree('')):-1] + endif + endif + let message = call(s:repo().git_chomp_in_tree,['mv']+(a:force ? ['-f'] : [])+['--', s:buffer().path(), destination], s:repo()) + if v:shell_error + let v:errmsg = 'fugitive: '.message + return 'echoerr v:errmsg' + endif + let destination = s:repo().tree(destination) + if isdirectory(destination) + let destination = fnamemodify(s:sub(destination,'/$','').'/'.expand('%:t'),':.') + endif + call fugitive#reload_status() + if s:buffer().commit() == '' + return 'saveas! '.s:fnameescape(destination) + else + return 'file '.s:fnameescape(s:repo().translate(':0:'.destination) + endif +endfunction + +function! s:MoveComplete(A,L,P) + if a:A =~ '^/' + return s:repo().superglob(a:A) + else + let matches = split(glob(a:A.'*'),"\n") + call map(matches,'v:val !~ "/$" && isdirectory(v:val) ? v:val."/" : v:val') + return matches + endif +endfunction + +function! s:Remove(force) + if s:buffer().commit() ==# '' + let cmd = ['rm'] + elseif s:buffer().commit() ==# '0' + let cmd = ['rm','--cached'] + else + let v:errmsg = 'fugitive: rm not supported here' + return 'echoerr v:errmsg' + endif + if a:force + let cmd += ['--force'] + endif + let message = call(s:repo().git_chomp_in_tree,cmd+['--',s:buffer().path()],s:repo()) + if v:shell_error + let v:errmsg = 'fugitive: '.s:sub(message,'error:.*\zs\n\(.*-f.*',' (add ! to force)') + return 'echoerr '.string(v:errmsg) + else + call fugitive#reload_status() + return 'bdelete'.(a:force ? '!' : '') + endif +endfunction + +augroup fugitive_remove + autocmd! + autocmd User Fugitive if s:buffer().commit() =~# '^0\=$' | + \ exe "command! -buffer -bar -bang -nargs=1 -complete=customlist,s:MoveComplete Gmove :execute s:Move(<bang>0,<q-args>)" | + \ exe "command! -buffer -bar -bang Gremove :execute s:Remove(<bang>0)" | + \ endif +augroup END + +" }}}1 +" Gblame {{{1 + +augroup fugitive_blame + autocmd! + autocmd BufReadPost *.fugitiveblame setfiletype fugitiveblame + autocmd FileType fugitiveblame setlocal nomodeline | if exists('b:git_dir') | let &l:keywordprg = s:repo().keywordprg() | endif + autocmd Syntax fugitiveblame call s:BlameSyntax() + autocmd User Fugitive if s:buffer().type('file', 'blob') | exe "command! -buffer -bar -bang -range=0 -nargs=* Gblame :execute s:Blame(<bang>0,<line1>,<line2>,<count>,[<f-args>])" | endif +augroup END + +function! s:Blame(bang,line1,line2,count,args) abort + try + if s:buffer().path() == '' + call s:throw('file or blob required') + endif + if filter(copy(a:args),'v:val !~# "^\\%(--root\|--show-name\\|-\\=\\%([ltwfs]\\|[MC]\\d*\\)\\+\\)$"') != [] + call s:throw('unsupported option') + endif + call map(a:args,'s:sub(v:val,"^\\ze[^-]","-")') + let git_dir = s:repo().dir() + let cmd = ['--no-pager', 'blame', '--show-number'] + a:args + if s:buffer().commit() =~# '\D\|..' + let cmd += [s:buffer().commit()] + else + let cmd += ['--contents', '-'] + endif + let basecmd = call(s:repo().git_command,cmd+['--',s:buffer().path()],s:repo()) + try + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + if !s:repo().bare() + let dir = getcwd() + execute cd.'`=s:repo().tree()`' + endif + if a:count + execute 'write !'.substitute(basecmd,' blame ',' blame -L '.a:line1.','.a:line2.' ','g') + else + let error = tempname() + let temp = error.'.fugitiveblame' + if &shell =~# 'csh' + silent! execute '%write !('.basecmd.' > '.temp.') >& '.error + else + silent! execute '%write !'.basecmd.' > '.temp.' 2> '.error + endif + if v:shell_error + call s:throw(join(readfile(error),"\n")) + endif + let bufnr = bufnr('') + let restore = 'call setwinvar(bufwinnr('.bufnr.'),"&scrollbind",0)' + if &l:wrap + let restore .= '|call setwinvar(bufwinnr('.bufnr.'),"&wrap",1)' + endif + if &l:foldenable + let restore .= '|call setwinvar(bufwinnr('.bufnr.'),"&foldenable",1)' + endif + let winnr = winnr() + windo set noscrollbind + exe winnr.'wincmd w' + setlocal scrollbind nowrap nofoldenable + let top = line('w0') + &scrolloff + let current = line('.') + exe 'leftabove vsplit '.temp + let b:git_dir = git_dir + let b:fugitive_type = 'blame' + let b:fugitive_blamed_bufnr = bufnr + let w:fugitive_restore = restore + let b:fugitive_blame_arguments = join(a:args,' ') + call s:Detect(expand('%:p')) + execute top + normal! zt + execute current + execute "vertical resize ".(match(getline('.'),'\s\+\d\+)')+1) + setlocal nomodified nomodifiable bufhidden=delete nonumber scrollbind nowrap foldcolumn=0 nofoldenable filetype=fugitiveblame + nnoremap <buffer> <silent> q :<C-U>bdelete<CR> + nnoremap <buffer> <silent> <CR> :<C-U>exe <SID>BlameJump('')<CR> + nnoremap <buffer> <silent> P :<C-U>exe <SID>BlameJump('^'.v:count1)<CR> + nnoremap <buffer> <silent> ~ :<C-U>exe <SID>BlameJump('~'.v:count1)<CR> + nnoremap <buffer> <silent> o :<C-U>exe <SID>Edit((&splitbelow ? "botright" : "topleft")." split", matchstr(getline('.'),'\x\+'))<CR> + nnoremap <buffer> <silent> O :<C-U>exe <SID>Edit("tabedit", matchstr(getline('.'),'\x\+'))<CR> + syncbind + endif + finally + if exists('l:dir') + execute cd.'`=dir`' + endif + endtry + return '' + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +function! s:BlameJump(suffix) abort + let commit = matchstr(getline('.'),'^\^\=\zs\x\+') + if commit =~# '^0\+$' + let commit = ':0' + endif + let lnum = matchstr(getline('.'),'\d\+\ze\s\+[([:digit:]]') + let path = matchstr(getline('.'),'^\^\=\zs\x\+\s\+\zs.\{-\}\ze\s*\d\+ ') + if path ==# '' + let path = s:buffer(b:fugitive_blamed_bufnr).path() + endif + let args = b:fugitive_blame_arguments + let offset = line('.') - line('w0') + let bufnr = bufnr('%') + let winnr = bufwinnr(b:fugitive_blamed_bufnr) + if winnr > 0 + exe winnr.'wincmd w' + endif + execute s:Edit('edit',commit.a:suffix.':'.path) + if winnr > 0 + exe bufnr.'bdelete' + endif + execute 'Gblame '.args + execute lnum + let delta = line('.') - line('w0') - offset + if delta > 0 + execute 'norm! 'delta."\<C-E>" + elseif delta < 0 + execute 'norm! '(-delta)."\<C-Y>" + endif + syncbind + return '' +endfunction + +function! s:BlameSyntax() abort + let b:current_syntax = 'fugitiveblame' + syn match FugitiveblameBoundary "^\^" + syn match FugitiveblameBlank "^\s\+\s\@=" nextgroup=FugitiveblameAnnotation,fugitiveblameOriginalFile,FugitiveblameOriginalLineNumber skipwhite + syn match FugitiveblameHash "\%(^\^\=\)\@<=\x\{7,40\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite + syn match FugitiveblameUncommitted "\%(^\^\=\)\@<=0\{7,40\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite + syn region FugitiveblameAnnotation matchgroup=FugitiveblameDelimiter start="(" end="\%( \d\+\)\@<=)" contained keepend oneline + syn match FugitiveblameTime "[0-9:/+-][0-9:/+ -]*[0-9:/+-]\%( \+\d\+)\)\@=" contained containedin=FugitiveblameAnnotation + syn match FugitiveblameLineNumber " \@<=\d\+)\@=" contained containedin=FugitiveblameAnnotation + syn match FugitiveblameOriginalFile " \%(\f\+\D\@<=\|\D\@=\f\+\)\%(\%(\s\+\d\+\)\=\s\%((\|\s*\d\+)\)\)\@=" contained nextgroup=FugitiveblameOriginalLineNumber,FugitiveblameAnnotation skipwhite + syn match FugitiveblameOriginalLineNumber " \@<=\d\+\%(\s(\)\@=" contained nextgroup=FugitiveblameAnnotation skipwhite + syn match FugitiveblameOriginalLineNumber " \@<=\d\+\%(\s\+\d\+)\)\@=" contained nextgroup=FugitiveblameShort skipwhite + syn match FugitiveblameShort "\d\+)" contained contains=FugitiveblameLineNumber + syn match FugitiveblameNotCommittedYet "(\@<=Not Committed Yet\>" contained containedin=FugitiveblameAnnotation + hi def link FugitiveblameBoundary Keyword + hi def link FugitiveblameHash Identifier + hi def link FugitiveblameUncommitted Function + hi def link FugitiveblameTime PreProc + hi def link FugitiveblameLineNumber Number + hi def link FugitiveblameOriginalFile String + hi def link FugitiveblameOriginalLineNumber Float + hi def link FugitiveblameShort FugitiveblameDelimiter + hi def link FugitiveblameDelimiter Delimiter + hi def link FugitiveblameNotCommittedYet Comment +endfunction + +" }}}1 +" File access {{{1 + +function! s:ReplaceCmd(cmd,...) abort + let fn = bufname('') + let tmp = tempname() + let aw = &autowrite + let prefix = '' + try + if a:0 && a:1 != '' + if &shell =~# 'cmd' + let old_index = $GIT_INDEX_FILE + let $GIT_INDEX_FILE = a:1 + elseif &shell =~# 'csh' + let prefix = 'setenv GIT_INDEX_FILE '.s:shellesc(a:1).'; ' + else + let prefix = 'GIT_INDEX_FILE='.s:shellesc(a:1).' ' + endif + endif + set noautowrite + silent exe '!'.escape(prefix.a:cmd,'%#').' > '.tmp + finally + let &autowrite = aw + if exists('old_index') + let $GIT_INDEX_FILE = old_index + endif + endtry + silent exe 'keepalt file '.tmp + silent edit! + silent exe 'keepalt file '.s:fnameescape(fn) + call delete(tmp) + silent exe 'doau BufReadPost '.s:fnameescape(fn) +endfunction + +function! s:BufReadIndex() + if !exists('b:fugitive_display_format') + let b:fugitive_display_format = filereadable(expand('%').'.lock') + endif + let b:fugitive_display_format = b:fugitive_display_format % 2 + let b:fugitive_type = 'index' + try + let b:git_dir = s:repo().dir() + setlocal noro ma + if fnamemodify($GIT_INDEX_FILE !=# '' ? $GIT_INDEX_FILE : b:git_dir . '/index', ':p') ==# expand('%:p') + let index = '' + else + let index = expand('%:p') + endif + if b:fugitive_display_format + call s:ReplaceCmd(s:repo().git_command('ls-files','--stage'),index) + set ft=git nospell + else + let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd ' : 'cd ' + let dir = getcwd() + try + execute cd.'`=s:repo().tree()`' + call s:ReplaceCmd(s:repo().git_command('status'),index) + finally + execute cd.'`=dir`' + endtry + set ft=gitcommit + endif + setlocal ro noma nomod nomodeline bufhidden=delete + nnoremap <buffer> <silent> a :<C-U>let b:fugitive_display_format += 1<Bar>exe <SID>BufReadIndex()<CR> + nnoremap <buffer> <silent> i :<C-U>let b:fugitive_display_format -= 1<Bar>exe <SID>BufReadIndex()<CR> + nnoremap <buffer> <silent> D :<C-U>execute <SID>StageDiff('')<CR> + nnoremap <buffer> <silent> dd :<C-U>execute <SID>StageDiff('')<CR> + nnoremap <buffer> <silent> dh :<C-U>execute <SID>StageDiff('!')<CR> + nnoremap <buffer> <silent> - :<C-U>execute <SID>StageToggle(line('.'),line('.')+v:count1-1)<CR> + xnoremap <buffer> <silent> - :<C-U>execute <SID>StageToggle(line("'<"),line("'>"))<CR> + nnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line('.'),line('.')+v:count1-1)<CR> + xnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line("'<"),line("'>"))<CR> + nnoremap <buffer> <silent> <C-N> :call search('^#\t.*','W')<Bar>.<CR> + nnoremap <buffer> <silent> <C-P> :call search('^#\t.*','Wbe')<Bar>.<CR> + call s:JumpInit() + nunmap <buffer> P + nunmap <buffer> ~ + nnoremap <buffer> <silent> C :<C-U>Gcommit<CR> + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +function! s:FileRead() + try + let repo = s:repo(s:ExtractGitDir(expand('<amatch>'))) + let path = s:sub(s:sub(matchstr(expand('<amatch>'),'fugitive://.\{-\}//\zs.*'),'/',':'),'^\d:',':&') + let hash = repo.rev_parse(path) + if path =~ '^:' + let type = 'blob' + else + let type = repo.git_chomp('cat-file','-t',hash) + endif + " TODO: use count, if possible + return "read !".escape(repo.git_command('cat-file',type,hash),'%#\') + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +function! s:BufReadIndexFile() + try + let b:fugitive_type = 'blob' + let b:git_dir = s:repo().dir() + call s:ReplaceCmd(s:repo().git_command('cat-file','blob',s:buffer().sha1())) + return '' + catch /^fugitive: rev-parse/ + silent exe 'doau BufNewFile '.s:fnameescape(bufname('')) + return '' + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +function! s:BufWriteIndexFile() + let tmp = tempname() + try + let path = matchstr(expand('<amatch>'),'//\d/\zs.*') + let stage = matchstr(expand('<amatch>'),'//\zs\d') + silent execute 'write !'.s:repo().git_command('hash-object','-w','--stdin').' > '.tmp + let sha1 = readfile(tmp)[0] + let old_mode = matchstr(s:repo().git_chomp('ls-files','--stage',path),'^\d\+') + if old_mode == '' + let old_mode = executable(s:repo().tree(path)) ? '100755' : '100644' + endif + let info = old_mode.' '.sha1.' '.stage."\t".path + call writefile([info],tmp) + if has('win32') + let error = system('type '.tmp.'|'.s:repo().git_command('update-index','--index-info')) + else + let error = system(s:repo().git_command('update-index','--index-info').' < '.tmp) + endif + if v:shell_error == 0 + setlocal nomodified + silent execute 'doautocmd BufWritePost '.s:fnameescape(expand('%:p')) + call fugitive#reload_status() + return '' + else + return 'echoerr '.string('fugitive: '.error) + endif + finally + call delete(tmp) + endtry +endfunction + +function! s:BufReadObject() + try + setlocal noro ma + let b:git_dir = s:repo().dir() + let hash = s:buffer().sha1() + if !exists("b:fugitive_type") + let b:fugitive_type = s:repo().git_chomp('cat-file','-t',hash) + endif + if b:fugitive_type !~# '^\%(tag\|commit\|tree\|blob\)$' + return "echoerr 'fugitive: unrecognized git type'" + endif + let firstline = getline('.') + if !exists('b:fugitive_display_format') && b:fugitive_type != 'blob' + let b:fugitive_display_format = +getbufvar('#','fugitive_display_format') + endif + + let pos = getpos('.') + silent %delete + setlocal endofline + + if b:fugitive_type == 'tree' + let b:fugitive_display_format = b:fugitive_display_format % 2 + if b:fugitive_display_format + call s:ReplaceCmd(s:repo().git_command('ls-tree',hash)) + else + call s:ReplaceCmd(s:repo().git_command('show',hash)) + endif + elseif b:fugitive_type == 'tag' + let b:fugitive_display_format = b:fugitive_display_format % 2 + if b:fugitive_display_format + call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash)) + else + call s:ReplaceCmd(s:repo().git_command('cat-file','-p',hash)) + endif + elseif b:fugitive_type == 'commit' + let b:fugitive_display_format = b:fugitive_display_format % 2 + if b:fugitive_display_format + call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash)) + else + call s:ReplaceCmd(s:repo().git_command('show','--pretty=format:tree %T%nparent %P%nauthor %an <%ae> %ad%ncommitter %cn <%ce> %cd%nencoding %e%n%n%s%n%n%b',hash)) + call search('^parent ') + if getline('.') ==# 'parent ' + silent delete_ + else + silent s/\%(^parent\)\@<! /\rparent /ge + endif + if search('^encoding \%(<unknown>\)\=$','W',line('.')+3) + silent delete_ + end + 1 + endif + elseif b:fugitive_type ==# 'blob' + call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash)) + endif + call setpos('.',pos) + setlocal ro noma nomod nomodeline + if b:fugitive_type !=# 'blob' + set filetype=git + nnoremap <buffer> <silent> a :<C-U>let b:fugitive_display_format += v:count1<Bar>exe <SID>BufReadObject()<CR> + nnoremap <buffer> <silent> i :<C-U>let b:fugitive_display_format -= v:count1<Bar>exe <SID>BufReadObject()<CR> + else + call s:JumpInit() + endif + + return '' + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +augroup fugitive_files + autocmd! + autocmd BufReadCmd *.git/index exe s:BufReadIndex() + autocmd BufReadCmd *.git/*index*.lock exe s:BufReadIndex() + autocmd FileReadCmd fugitive://**//[0-3]/** exe s:FileRead() + autocmd BufReadCmd fugitive://**//[0-3]/** exe s:BufReadIndexFile() + autocmd BufWriteCmd fugitive://**//[0-3]/** exe s:BufWriteIndexFile() + autocmd BufReadCmd fugitive://**//[0-9a-f][0-9a-f]* exe s:BufReadObject() + autocmd FileReadCmd fugitive://**//[0-9a-f][0-9a-f]* exe s:FileRead() + autocmd FileType git call s:JumpInit() +augroup END + +" }}}1 +" Go to file {{{1 + +function! s:JumpInit() abort + nnoremap <buffer> <silent> <CR> :<C-U>exe <SID>GF("edit")<CR> + if !&modifiable + nnoremap <buffer> <silent> o :<C-U>exe <SID>GF("split")<CR> + nnoremap <buffer> <silent> O :<C-U>exe <SID>GF("tabedit")<CR> + nnoremap <buffer> <silent> P :<C-U>exe <SID>Edit('edit',<SID>buffer().commit().'^'.v:count1.<SID>buffer().path(':'))<CR> + nnoremap <buffer> <silent> ~ :<C-U>exe <SID>Edit('edit',<SID>buffer().commit().'~'.v:count1.<SID>buffer().path(':'))<CR> + nnoremap <buffer> <silent> C :<C-U>exe <SID>Edit('edit',<SID>buffer().containing_commit())<CR> + nnoremap <buffer> <silent> cc :<C-U>exe <SID>Edit('edit',<SID>buffer().containing_commit())<CR> + nnoremap <buffer> <silent> co :<C-U>exe <SID>Edit('split',<SID>buffer().containing_commit())<CR> + nnoremap <buffer> <silent> cO :<C-U>exe <SID>Edit('tabedit',<SID>buffer().containing_commit())<CR> + nnoremap <buffer> <silent> cp :<C-U>exe <SID>Edit('pedit',<SID>buffer().containing_commit())<CR> + endif +endfunction + +function! s:GF(mode) abort + try + let buffer = s:buffer() + let myhash = buffer.sha1() + + if buffer.type('tree') + let showtree = (getline(1) =~# '^tree ' && getline(2) == "") + if showtree && line('.') == 1 + return "" + elseif showtree && line('.') > 2 + return s:Edit(a:mode,buffer.commit().':'.(buffer.path() == '' ? '' : buffer.path().'/').s:sub(getline('.'),'/$','')) + elseif getline('.') =~# '^\d\{6\} \l\{3,8\} \x\{40\}\t' + return s:Edit(a:mode,buffer.commit().':'.(buffer.path() == '' ? '' : buffer.path().'/').s:sub(matchstr(getline('.'),'\t\zs.*'),'/$','')) + endif + + elseif buffer.type('blob') + let ref = expand("<cfile>") + try + let sha1 = buffer.repo().rev_parse(ref) + catch /^fugitive:/ + endtry + if exists('sha1') + return s:Edit(a:mode,ref) + endif + + else + + " Index + if getline('.') =~# '^\d\{6\} \x\{40\} \d\t' + let ref = matchstr(getline('.'),'\x\{40\}') + let file = ':'.s:sub(matchstr(getline('.'),'\d\t.*'),'\t',':') + return s:Edit(a:mode,file) + + elseif getline('.') =~# '^#\trenamed:.* -> ' + let file = '/'.matchstr(getline('.'),' -> \zs.*') + return s:Edit(a:mode,file) + elseif getline('.') =~# '^#\t[[:alpha:] ]\+: *.' + let file = '/'.matchstr(getline('.'),': *\zs.*') + return s:Edit(a:mode,file) + elseif getline('.') =~# '^#\t.' + let file = '/'.matchstr(getline('.'),'#\t\zs.*') + return s:Edit(a:mode,file) + elseif getline('.') =~# ': needs merge$' + let file = '/'.matchstr(getline('.'),'.*\ze: needs merge$') + return s:Edit(a:mode,file).'|Gdiff' + + elseif getline('.') ==# '# Not currently on any branch.' + return s:Edit(a:mode,'HEAD') + elseif getline('.') =~# '^# On branch ' + let file = 'refs/heads/'.getline('.')[12:] + return s:Edit(a:mode,file) + elseif getline('.') =~# "^# Your branch .*'" + let file = matchstr(getline('.'),"'\\zs\\S\\+\\ze'") + return s:Edit(a:mode,file) + endif + + let showtree = (getline(1) =~# '^tree ' && getline(2) == "") + + if getline('.') =~# '^ref: ' + let ref = strpart(getline('.'),5) + + elseif getline('.') =~# '^parent \x\{40\}\>' + let ref = matchstr(getline('.'),'\x\{40\}') + let line = line('.') + let parent = 0 + while getline(line) =~# '^parent ' + let parent += 1 + let line -= 1 + endwhile + return s:Edit(a:mode,ref) + + elseif getline('.') =~ '^tree \x\{40\}$' + let ref = matchstr(getline('.'),'\x\{40\}') + if s:repo().rev_parse(myhash.':') == ref + let ref = myhash.':' + endif + return s:Edit(a:mode,ref) + + elseif getline('.') =~# '^object \x\{40\}$' && getline(line('.')+1) =~ '^type \%(commit\|tree\|blob\)$' + let ref = matchstr(getline('.'),'\x\{40\}') + let type = matchstr(getline(line('.')+1),'type \zs.*') + + elseif getline('.') =~# '^\l\{3,8\} '.myhash.'$' + return '' + + elseif getline('.') =~# '^\l\{3,8\} \x\{40\}\>' + let ref = matchstr(getline('.'),'\x\{40\}') + echoerr "warning: unknown context ".matchstr(getline('.'),'^\l*') + + elseif getline('.') =~# '^[+-]\{3\} [ab/]' + let ref = getline('.')[4:] + + elseif getline('.') =~# '^rename from ' + let ref = 'a/'.getline('.')[12:] + elseif getline('.') =~# '^rename to ' + let ref = 'b/'.getline('.')[10:] + + elseif getline('.') =~# '^diff --git \%(a/.*\|/dev/null\) \%(b/.*\|/dev/null\)' + let dref = matchstr(getline('.'),'\Cdiff --git \zs\%(a/.*\|/dev/null\)\ze \%(b/.*\|/dev/null\)') + let ref = matchstr(getline('.'),'\Cdiff --git \%(a/.*\|/dev/null\) \zs\%(b/.*\|/dev/null\)') + let dcmd = 'Gdiff' + + elseif getline('.') =~# '^index ' && getline(line('.')-1) =~# '^diff --git \%(a/.*\|/dev/null\) \%(b/.*\|/dev/null\)' + let line = getline(line('.')-1) + let dref = matchstr(line,'\Cdiff --git \zs\%(a/.*\|/dev/null\)\ze \%(b/.*\|/dev/null\)') + let ref = matchstr(line,'\Cdiff --git \%(a/.*\|/dev/null\) \zs\%(b/.*\|/dev/null\)') + let dcmd = 'Gdiff!' + + elseif line('$') == 1 && getline('.') =~ '^\x\{40\}$' + let ref = getline('.') + else + let ref = '' + endif + + if myhash ==# '' + let ref = s:sub(ref,'^a/','HEAD:') + let ref = s:sub(ref,'^b/',':0:') + if exists('dref') + let dref = s:sub(dref,'^a/','HEAD:') + endif + else + let ref = s:sub(ref,'^a/',myhash.'^:') + let ref = s:sub(ref,'^b/',myhash.':') + if exists('dref') + let dref = s:sub(dref,'^a/',myhash.'^:') + endif + endif + + if ref ==# '/dev/null' + " Empty blob + let ref = 'e69de29bb2d1d6434b8b29ae775ad8c2e48c5391' + endif + + if exists('dref') + return s:Edit(a:mode,ref) . '|'.dcmd.' '.s:fnameescape(dref) + elseif ref != "" + return s:Edit(a:mode,ref) + endif + + endif + return '' + catch /^fugitive:/ + return 'echoerr v:errmsg' + endtry +endfunction + +" }}}1 +" Statusline {{{1 + +function! s:repo_head_ref() dict abort + return readfile(s:repo().dir('HEAD'))[0] +endfunction + +call s:add_methods('repo',['head_ref']) + +function! fugitive#statusline(...) + if !exists('b:git_dir') + return '' + endif + let status = '' + if s:buffer().commit() != '' + let status .= ':' . s:buffer().commit()[0:7] + endif + let head = s:repo().head_ref() + if head =~# '^ref: ' + let status .= s:sub(head,'^ref: %(refs/%(heads/|remotes/|tags/)=)=','(').')' + elseif head =~# '^\x\{40\}$' + let status .= '('.head[0:7].')' + endif + if &statusline =~# '%[MRHWY]' && &statusline !~# '%[mrhwy]' + return ',GIT'.status + else + return '[Git'.status.']' + endif +endfunction + +function! s:repo_config(conf) dict abort + return matchstr(system(s:repo().git_command('config').' '.a:conf),"[^\r\n]*") +endfun + +function! s:repo_user() dict abort + let username = s:repo().config('user.name') + let useremail = s:repo().config('user.email') + return username.' <'.useremail.'>' +endfun + +call s:add_methods('repo',['config', 'user']) + +" }}}1 + +" vim:set ft=vim ts=8 sw=2 sts=2: diff --git a/dotfiles/.vim/plugin/lodgeit.vim b/dotfiles/.vim/plugin/lodgeit.vim @@ -0,0 +1,131 @@ +" lodgeit.vim: Vim plugin for paste.pocoo.org +" Maintainer: Armin Ronacher <armin.ronacher@active-4.com> +" Version: 0.2 + +" Usage: +" :Lodgeit create a paste from the current buffer of selection +" :e <url> download a paste. If you then use :Lodgeit you can +" reply to that paste. +" +" If you want to paste on ctrl + p just add this to your vimrc: +" map ^P :Lodgeit<CR> +" (where ^P is entered using ctrl + v, ctrl + p in vim) + +function! s:LodgeitInit() +python << EOF + +import vim +import re +from xmlrpclib import ServerProxy +srv = ServerProxy('http://paste.pocoo.org/xmlrpc/', allow_none=True) + +new_paste = srv.pastes.newPaste +get_paste = srv.pastes.getPaste + +language_mapping = { + 'python': 'python', + 'php': 'html+php', + 'smarty': 'smarty', + 'tex': 'tex', + 'rst': 'rst', + 'cs': 'csharp', + 'haskell': 'haskell', + 'xml': 'xml', + 'html': 'html', + 'xhtml': 'html', + 'htmldjango': 'html+django', + 'django': 'html+django', + 'htmljinja': 'html+django', + 'jinja': 'html+django', + 'lua': 'lua', + 'scheme': 'scheme', + 'mako': 'html+mako', + 'c': 'c', + 'cpp': 'cpp', + 'javascript': 'js', + 'jsp': 'jsp', + 'ruby': 'ruby', + 'bash': 'bash', + 'bat': 'bat', + 'd': 'd', + 'genshi': 'html+genshi' +} + +language_reverse_mapping = {} +for key, value in language_mapping.iteritems(): + language_reverse_mapping[value] = key + +def paste_id_from_url(url): + regex = re.compile(r'^http://paste.pocoo.org/show/([^/]+)/?$') + m = regex.match(url) + if m is not None: + return m.group(1) + +def make_utf8(code): + enc = vim.eval('&fenc') or vim.eval('&enc') + return code.decode(enc, 'ignore').encode('utf-8') + +EOF +endfunction + + +function! s:Lodgeit(line1,line2,count,...) +call s:LodgeitInit() +python << endpython + +# download paste +if vim.eval('a:0') == '1': + paste = paste_id = None + arg = vim.eval('a:1') + + if arg.startswith('#'): + paste_id = arg[1:].split()[0] + if paste_id is None: + paste_id = paste_id_from_url(vim.eval('a:1')) + if paste_id is not None: + paste = get_paste(paste_id) + + if paste: + vim.command('tabnew') + vim.command('file Lodgeit\ Paste\ \#%s' % paste_id) + vim.current.buffer[:] = paste['code'].splitlines() + vim.command('setlocal ft=' + language_reverse_mapping. + get(paste['language'], 'text')) + vim.command('setlocal nomodified') + vim.command('let b:lodgeit_paste_id="%s"' % paste_id) + else: + print 'Paste not Found' + +# new paste or reply +else: + rng_start = int(vim.eval('a:line1')) - 1 + rng_end = int(vim.eval('a:line2')) + if int(vim.eval('a:count')): + code = '\n'.join(vim.current.buffer[rng_start:rng_end]) + else: + code = '\n'.join(vim.current.buffer) + code = make_utf8(code) + + parent = None + update_buffer_info = False + if vim.eval('exists("b:lodgeit_paste_id")') == '1': + parent = int(vim.eval('b:lodgeit_paste_id')) + update_buffer_info = True + + lng_code = language_mapping.get(vim.eval('&ft'), 'text') + paste_id = new_paste(lng_code, code, parent) + url = 'http://paste.pocoo.org/show/%s' % paste_id + + print 'Pasted #%s to %s' % (paste_id, url) + vim.command(':call setreg(\'+\', %r)' % url) + + if update_buffer_info: + vim.command('file Lodgeit\ Paste\ \#%s' % paste_id) + vim.command('setlocal nomodified') + vim.command('let b:lodgeit_paste_id="%s"' % paste_id) + +endpython +endfunction + + +command! -range=0 -nargs=* Lodgeit :call s:Lodgeit(<line1>,<line2>,<count>,<f-args>) diff --git a/dotfiles/.vim/plugin/slime.vim b/dotfiles/.vim/plugin/slime.vim @@ -0,0 +1,32 @@ + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +function Send_to_Screen(text) + if !exists("g:screen_sessionname") || !exists("g:screen_windowname") + call Screen_Vars() + end + + echo system("screen -S " . g:screen_sessionname . " -p " . g:screen_windowname . " -X stuff '" . substitute(a:text, "'", "'\\\\''", 'g') . "'") +endfunction + +function Screen_Session_Names(A,L,P) + return system("screen -ls | awk '/Attached/ {print $1}'") +endfunction + +function Screen_Vars() + if !exists("g:screen_sessionname") || !exists("g:screen_windowname") + let g:screen_sessionname = "" + let g:screen_windowname = "0" + end + + let g:screen_sessionname = input("session name: ", "", "custom,Screen_Session_Names") + let g:screen_windowname = input("window name: ", g:screen_windowname) +endfunction + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +vmap <C-c><C-c> "ry :call Send_to_Screen(@r)<CR> +nmap <C-c><C-c> vip<C-c><C-c> + +nmap <C-c>v :call Screen_Vars()<CR> + diff --git a/dotfiles/.vim/plugin/surround.vim b/dotfiles/.vim/plugin/surround.vim @@ -0,0 +1,625 @@ +" surround.vim - Surroundings +" Author: Tim Pope <vimNOSPAM@tpope.org> +" Version: 1.90 +" GetLatestVimScripts: 1697 1 :AutoInstall: surround.vim +" +" See surround.txt for help. This can be accessed by doing +" +" :helptags ~/.vim/doc +" :help surround +" +" Licensed under the same terms as Vim itself. + +" ============================================================================ + +" Exit quickly when: +" - this plugin was already loaded or disabled +" - when 'compatible' is set +if (exists("g:loaded_surround") && g:loaded_surround) || &cp + finish +endif +let g:loaded_surround = 1 + +let s:cpo_save = &cpo +set cpo&vim + +" Input functions {{{1 + +function! s:getchar() + let c = getchar() + if c =~ '^\d\+$' + let c = nr2char(c) + endif + return c +endfunction + +function! s:inputtarget() + let c = s:getchar() + while c =~ '^\d\+$' + let c = c . s:getchar() + endwhile + if c == " " + let c = c . s:getchar() + endif + if c =~ "\<Esc>\|\<C-C>\|\0" + return "" + else + return c + endif +endfunction + +function! s:inputreplacement() + "echo '-- SURROUND --' + let c = s:getchar() + if c == " " + let c = c . s:getchar() + endif + if c =~ "\<Esc>" || c =~ "\<C-C>" + return "" + else + return c + endif +endfunction + +function! s:beep() + exe "norm! \<Esc>" + return "" +endfunction + +function! s:redraw() + redraw + return "" +endfunction + +" }}}1 + +" Wrapping functions {{{1 + +function! s:extractbefore(str) + if a:str =~ '\r' + return matchstr(a:str,'.*\ze\r') + else + return matchstr(a:str,'.*\ze\n') + endif +endfunction + +function! s:extractafter(str) + if a:str =~ '\r' + return matchstr(a:str,'\r\zs.*') + else + return matchstr(a:str,'\n\zs.*') + endif +endfunction + +function! s:repeat(str,count) + let cnt = a:count + let str = "" + while cnt > 0 + let str = str . a:str + let cnt = cnt - 1 + endwhile + return str +endfunction + +function! s:fixindent(str,spc) + let str = substitute(a:str,'\t',s:repeat(' ',&sw),'g') + let spc = substitute(a:spc,'\t',s:repeat(' ',&sw),'g') + let str = substitute(str,'\(\n\|\%^\).\@=','\1'.spc,'g') + if ! &et + let str = substitute(str,'\s\{'.&ts.'\}',"\t",'g') + endif + return str +endfunction + +function! s:process(string) + let i = 0 + while i < 7 + let i = i + 1 + let repl_{i} = '' + let m = matchstr(a:string,nr2char(i).'.\{-\}\ze'.nr2char(i)) + if m != '' + let m = substitute(strpart(m,1),'\r.*','','') + let repl_{i} = input(substitute(m,':\s*$','','').': ') + endif + endwhile + let s = "" + let i = 0 + while i < strlen(a:string) + let char = strpart(a:string,i,1) + if char2nr(char) < 8 + let next = stridx(a:string,char,i+1) + if next == -1 + let s = s . char + else + let insertion = repl_{char2nr(char)} + let subs = strpart(a:string,i+1,next-i-1) + let subs = matchstr(subs,'\r.*') + while subs =~ '^\r.*\r' + let sub = matchstr(subs,"^\r\\zs[^\r]*\r[^\r]*") + let subs = strpart(subs,strlen(sub)+1) + let r = stridx(sub,"\r") + let insertion = substitute(insertion,strpart(sub,0,r),strpart(sub,r+1),'') + endwhile + let s = s . insertion + let i = next + endif + else + let s = s . char + endif + let i = i + 1 + endwhile + return s +endfunction + +function! s:wrap(string,char,type,...) + let keeper = a:string + let newchar = a:char + let type = a:type + let linemode = type ==# 'V' ? 1 : 0 + let special = a:0 ? a:1 : 0 + let before = "" + let after = "" + if type ==# "V" + let initspaces = matchstr(keeper,'\%^\s*') + else + let initspaces = matchstr(getline('.'),'\%^\s*') + endif + " Duplicate b's are just placeholders (removed) + let pairs = "b()B{}r[]a<>" + let extraspace = "" + if newchar =~ '^ ' + let newchar = strpart(newchar,1) + let extraspace = ' ' + endif + let idx = stridx(pairs,newchar) + if newchar == ' ' + let before = '' + let after = '' + elseif exists("b:surround_".char2nr(newchar)) + let all = s:process(b:surround_{char2nr(newchar)}) + let before = s:extractbefore(all) + let after = s:extractafter(all) + elseif exists("g:surround_".char2nr(newchar)) + let all = s:process(g:surround_{char2nr(newchar)}) + let before = s:extractbefore(all) + let after = s:extractafter(all) + elseif newchar ==# "p" + let before = "\n" + let after = "\n\n" + elseif newchar =~# "[tT\<C-T><,]" + let dounmapp = 0 + let dounmapb = 0 + if !maparg(">","c") + let dounmapb= 1 + " Hide from AsNeeded + exe "cn"."oremap > <CR>" + endif + let default = "" + if newchar ==# "T" + if !exists("s:lastdel") + let s:lastdel = "" + endif + let default = matchstr(s:lastdel,'<\zs.\{-\}\ze>') + endif + let tag = input("<",default) + echo "<".substitute(tag,'>*$','>','') + if dounmapb + silent! cunmap > + endif + if tag != "" + let tag = substitute(tag,'>*$','','') + let before = '<'.tag.'>' + if tag =~ '/$' + let after = '' + else + let after = '</'.substitute(tag,' .*','','').'>' + endif + if newchar == "\<C-T>" || newchar == "," + if type ==# "v" || type ==# "V" + let before = before . "\n\t" + endif + if type ==# "v" + let after = "\n". after + endif + endif + endif + elseif newchar ==# 'l' || newchar == '\' + " LaTeX + let env = input('\begin{') + let env = '{' . env + let env = env . s:closematch(env) + echo '\begin'.env + if env != "" + let before = '\begin'.env + let after = '\end'.matchstr(env,'[^}]*').'}' + endif + "if type ==# 'v' || type ==# 'V' + "let before = before ."\n\t" + "endif + "if type ==# 'v' + "let after = "\n".initspaces.after + "endif + elseif newchar ==# 'f' || newchar ==# 'F' + let fnc = input('function: ') + if fnc != "" + let before = substitute(fnc,'($','','').'(' + let after = ')' + if newchar ==# 'F' + let before = before . ' ' + let after = ' ' . after + endif + endif + elseif idx >= 0 + let spc = (idx % 3) == 1 ? " " : "" + let idx = idx / 3 * 3 + let before = strpart(pairs,idx+1,1) . spc + let after = spc . strpart(pairs,idx+2,1) + elseif newchar == "\<C-[>" || newchar == "\<C-]>" + let before = "{\n\t" + let after = "\n}" + elseif newchar !~ '\a' + let before = newchar + let after = newchar + else + let before = '' + let after = '' + endif + "let before = substitute(before,'\n','\n'.initspaces,'g') + let after = substitute(after ,'\n','\n'.initspaces,'g') + "let after = substitute(after,"\n\\s*\<C-U>\\s*",'\n','g') + if type ==# 'V' || (special && type ==# "v") + let before = substitute(before,' \+$','','') + let after = substitute(after ,'^ \+','','') + if after !~ '^\n' + let after = initspaces.after + endif + if keeper !~ '\n$' && after !~ '^\n' + let keeper = keeper . "\n" + elseif keeper =~ '\n$' && after =~ '^\n' + let after = strpart(after,1) + endif + if before !~ '\n\s*$' + let before = before . "\n" + if special + let before = before . "\t" + endif + endif + endif + if type ==# 'V' + let before = initspaces.before + endif + if before =~ '\n\s*\%$' + if type ==# 'v' + let keeper = initspaces.keeper + endif + let padding = matchstr(before,'\n\zs\s\+\%$') + let before = substitute(before,'\n\s\+\%$','\n','') + let keeper = s:fixindent(keeper,padding) + endif + if type ==# 'V' + let keeper = before.keeper.after + elseif type =~ "^\<C-V>" + " Really we should be iterating over the buffer + let repl = substitute(before,'[\\~]','\\&','g').'\1'.substitute(after,'[\\~]','\\&','g') + let repl = substitute(repl,'\n',' ','g') + let keeper = substitute(keeper."\n",'\(.\{-\}\)\(\n\)',repl.'\n','g') + let keeper = substitute(keeper,'\n\%$','','') + else + let keeper = before.extraspace.keeper.extraspace.after + endif + return keeper +endfunction + +function! s:wrapreg(reg,char,...) + let orig = getreg(a:reg) + let type = substitute(getregtype(a:reg),'\d\+$','','') + let special = a:0 ? a:1 : 0 + let new = s:wrap(orig,a:char,type,special) + call setreg(a:reg,new,type) +endfunction +" }}}1 + +function! s:insert(...) " {{{1 + " Optional argument causes the result to appear on 3 lines, not 1 + "call inputsave() + let linemode = a:0 ? a:1 : 0 + let char = s:inputreplacement() + while char == "\<CR>" || char == "\<C-S>" + " TODO: use total count for additional blank lines + let linemode = linemode + 1 + let char = s:inputreplacement() + endwhile + "call inputrestore() + if char == "" + return "" + endif + "call inputsave() + let cb_save = &clipboard + set clipboard-=unnamed + let reg_save = @@ + call setreg('"',"\r",'v') + call s:wrapreg('"',char,linemode) + " If line mode is used and the surrounding consists solely of a suffix, + " remove the initial newline. This fits a use case of mine but is a + " little inconsistent. Is there anyone that would prefer the simpler + " behavior of just inserting the newline? + if linemode && match(getreg('"'),'^\n\s*\zs.*') == 0 + call setreg('"',matchstr(getreg('"'),'^\n\s*\zs.*'),getregtype('"')) + endif + " This can be used to append a placeholder to the end + if exists("g:surround_insert_tail") + call setreg('"',g:surround_insert_tail,"a".getregtype('"')) + endif + "if linemode + "call setreg('"',substitute(getreg('"'),'^\s\+','',''),'c') + "endif + if col('.') >= col('$') + norm! ""p + else + norm! ""P + endif + if linemode + call s:reindent() + endif + norm! `] + call search('\r','bW') + let @@ = reg_save + let &clipboard = cb_save + return "\<Del>" +endfunction " }}}1 + +function! s:reindent() " {{{1 + if exists("b:surround_indent") ? b:surround_indent : (exists("g:surround_indent") && g:surround_indent) + silent norm! '[='] + endif +endfunction " }}}1 + +function! s:dosurround(...) " {{{1 + let scount = v:count1 + let char = (a:0 ? a:1 : s:inputtarget()) + let spc = "" + if char =~ '^\d\+' + let scount = scount * matchstr(char,'^\d\+') + let char = substitute(char,'^\d\+','','') + endif + if char =~ '^ ' + let char = strpart(char,1) + let spc = 1 + endif + if char == 'a' + let char = '>' + endif + if char == 'r' + let char = ']' + endif + let newchar = "" + if a:0 > 1 + let newchar = a:2 + if newchar == "\<Esc>" || newchar == "\<C-C>" || newchar == "" + return s:beep() + endif + endif + let cb_save = &clipboard + set clipboard-=unnamed + let append = "" + let original = getreg('"') + let otype = getregtype('"') + call setreg('"',"") + let strcount = (scount == 1 ? "" : scount) + if char == '/' + exe 'norm! '.strcount.'[/d'.strcount.']/' + else + exe 'norm! d'.strcount.'i'.char + endif + let keeper = getreg('"') + let okeeper = keeper " for reindent below + if keeper == "" + call setreg('"',original,otype) + let &clipboard = cb_save + return "" + endif + let oldline = getline('.') + let oldlnum = line('.') + if char ==# "p" + call setreg('"','','V') + elseif char ==# "s" || char ==# "w" || char ==# "W" + " Do nothing + call setreg('"','') + elseif char =~ "[\"'`]" + exe "norm! i \<Esc>d2i".char + call setreg('"',substitute(getreg('"'),' ','','')) + elseif char == '/' + norm! "_x + call setreg('"','/**/',"c") + let keeper = substitute(substitute(keeper,'^/\*\s\=','',''),'\s\=\*$','','') + else + " One character backwards + call search('.','bW') + exe "norm! da".char + endif + let removed = getreg('"') + let rem2 = substitute(removed,'\n.*','','') + let oldhead = strpart(oldline,0,strlen(oldline)-strlen(rem2)) + let oldtail = strpart(oldline, strlen(oldline)-strlen(rem2)) + let regtype = getregtype('"') + if char =~# '[\[({<T]' || spc + let keeper = substitute(keeper,'^\s\+','','') + let keeper = substitute(keeper,'\s\+$','','') + endif + if col("']") == col("$") && col('.') + 1 == col('$') + if oldhead =~# '^\s*$' && a:0 < 2 + let keeper = substitute(keeper,'\%^\n'.oldhead.'\(\s*.\{-\}\)\n\s*\%$','\1','') + endif + let pcmd = "p" + else + let pcmd = "P" + endif + if line('.') < oldlnum && regtype ==# "V" + let pcmd = "p" + endif + call setreg('"',keeper,regtype) + if newchar != "" + call s:wrapreg('"',newchar) + endif + silent exe 'norm! ""'.pcmd.'`[' + if removed =~ '\n' || okeeper =~ '\n' || getreg('"') =~ '\n' + call s:reindent() + endif + if getline('.') =~ '^\s\+$' && keeper =~ '^\s*\n' + silent norm! cc + endif + call setreg('"',removed,regtype) + let s:lastdel = removed + let &clipboard = cb_save + if newchar == "" + silent! call repeat#set("\<Plug>Dsurround".char,scount) + else + silent! call repeat#set("\<Plug>Csurround".char.newchar,scount) + endif +endfunction " }}}1 + +function! s:changesurround() " {{{1 + let a = s:inputtarget() + if a == "" + return s:beep() + endif + let b = s:inputreplacement() + if b == "" + return s:beep() + endif + call s:dosurround(a,b) +endfunction " }}}1 + +function! s:opfunc(type,...) " {{{1 + let char = s:inputreplacement() + if char == "" + return s:beep() + endif + let reg = '"' + let sel_save = &selection + let &selection = "inclusive" + let cb_save = &clipboard + set clipboard-=unnamed + let reg_save = getreg(reg) + let reg_type = getregtype(reg) + "call setreg(reg,"\n","c") + let type = a:type + if a:type == "char" + silent exe 'norm! v`[o`]"'.reg.'y' + let type = 'v' + elseif a:type == "line" + silent exe 'norm! `[V`]"'.reg.'y' + let type = 'V' + elseif a:type ==# "v" || a:type ==# "V" || a:type ==# "\<C-V>" + let ve = &virtualedit + if !(a:0 && a:1) + set virtualedit= + endif + silent exe 'norm! gv"'.reg.'y' + let &virtualedit = ve + elseif a:type =~ '^\d\+$' + let type = 'v' + silent exe 'norm! ^v'.a:type.'$h"'.reg.'y' + if mode() ==# 'v' + norm! v + return s:beep() + endif + else + let &selection = sel_save + let &clipboard = cb_save + return s:beep() + endif + let keeper = getreg(reg) + if type ==# "v" && a:type !=# "v" + let append = matchstr(keeper,'\_s\@<!\s*$') + let keeper = substitute(keeper,'\_s\@<!\s*$','','') + endif + call setreg(reg,keeper,type) + call s:wrapreg(reg,char,a:0 && a:1) + if type ==# "v" && a:type !=# "v" && append != "" + call setreg(reg,append,"ac") + endif + silent exe 'norm! gv'.(reg == '"' ? '' : '"' . reg).'p`[' + if type ==# 'V' || (getreg(reg) =~ '\n' && type ==# 'v') + call s:reindent() + endif + call setreg(reg,reg_save,reg_type) + let &selection = sel_save + let &clipboard = cb_save + if a:type =~ '^\d\+$' + silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char,a:type) + endif +endfunction + +function! s:opfunc2(arg) + call s:opfunc(a:arg,1) +endfunction " }}}1 + +function! s:closematch(str) " {{{1 + " Close an open (, {, [, or < on the command line. + let tail = matchstr(a:str,'.[^\[\](){}<>]*$') + if tail =~ '^\[.\+' + return "]" + elseif tail =~ '^(.\+' + return ")" + elseif tail =~ '^{.\+' + return "}" + elseif tail =~ '^<.+' + return ">" + else + return "" + endif +endfunction " }}}1 + +nnoremap <silent> <Plug>Dsurround :<C-U>call <SID>dosurround(<SID>inputtarget())<CR> +nnoremap <silent> <Plug>Csurround :<C-U>call <SID>changesurround()<CR> +nnoremap <silent> <Plug>Yssurround :<C-U>call <SID>opfunc(v:count1)<CR> +nnoremap <silent> <Plug>YSsurround :<C-U>call <SID>opfunc2(v:count1)<CR> +" <C-U> discards the numerical argument but there's not much we can do with it +nnoremap <silent> <Plug>Ysurround :<C-U>set opfunc=<SID>opfunc<CR>g@ +nnoremap <silent> <Plug>YSurround :<C-U>set opfunc=<SID>opfunc2<CR>g@ +vnoremap <silent> <Plug>Vsurround :<C-U>call <SID>opfunc(visualmode())<CR> +vnoremap <silent> <Plug>VSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR> +vnoremap <silent> <Plug>VgSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1)<CR> +inoremap <silent> <Plug>Isurround <C-R>=<SID>insert()<CR> +inoremap <silent> <Plug>ISurround <C-R>=<SID>insert(1)<CR> + +if !exists("g:surround_no_mappings") || ! g:surround_no_mappings + nmap ds <Plug>Dsurround + nmap cs <Plug>Csurround + nmap ys <Plug>Ysurround + nmap yS <Plug>YSurround + nmap yss <Plug>Yssurround + nmap ySs <Plug>YSsurround + nmap ySS <Plug>YSsurround + if !hasmapto("<Plug>Vsurround","v") && !hasmapto("<Plug>VSurround","v") + if exists(":xmap") + xmap s <Plug>Vsurround + else + vmap s <Plug>Vsurround + endif + endif + if !hasmapto("<Plug>VSurround","v") + if exists(":xmap") + xmap S <Plug>VSurround + else + vmap S <Plug>VSurround + endif + endif + if exists(":xmap") + xmap gS <Plug>VgSurround + else + vmap gS <Plug>VgSurround + endif + if !hasmapto("<Plug>Isurround","i") && "" == mapcheck("<C-S>","i") + imap <C-S> <Plug>Isurround + endif + imap <C-G>s <Plug>Isurround + imap <C-G>S <Plug>ISurround + "Implemented internally instead + "imap <C-S><C-S> <Plug>ISurround +endif + +let &cpo = s:cpo_save + +" vim:set ft=vim sw=2 sts=2 et: diff --git a/dotfiles/.vim/plugin/vimballPlugin.vim b/dotfiles/.vim/plugin/vimballPlugin.vim @@ -0,0 +1,36 @@ +" vimballPlugin : construct a file containing both paths and files +" Author: Charles E. Campbell, Jr. +" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. +" The VIM LICENSE applies to Vimball.vim, and Vimball.txt +" (see |copyright|) except use "Vimball" instead of "Vim". +" No warranty, express or implied. +" *** *** Use At-Your-Own-Risk! *** *** +" +" (Rom 2:1 WEB) Therefore you are without excuse, O man, whoever you are who +" judge. For in that which you judge another, you condemn yourself. For +" you who judge practice the same things. +" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim + +" --------------------------------------------------------------------- +" Load Once: {{{1 +if &cp || exists("g:loaded_vimballPlugin") + finish +endif +let g:loaded_vimballPlugin = "v30" +let s:keepcpo = &cpo +set cpo&vim + +" ------------------------------------------------------------------------------ +" Public Interface: {{{1 +com! -ra -complete=file -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<line2>,<bang>0,<f-args>) +com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>) +com! -na=0 VimballList call vimball#Vimball(0) +com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings() +au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))|call vimball#Vimball(1) +au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ff=unix|endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)") + +" ===================================================================== +" Restoration And Modelines: {{{1 +" vim: fdm=marker +let &cpo= s:keepcpo +unlet s:keepcpo diff --git a/dotfiles/.vim/supertab.vba b/dotfiles/.vim/supertab.vba @@ -0,0 +1,825 @@ +" Vimball Archiver by Charles E. Campbell, Jr., Ph.D. +UseVimball +finish +doc/supertab.txt [[[1 +308 +*supertab.txt* + +Authors: + Original: Gergely Kontra <kgergely@mcl.hu> + Current: Eric Van Dewoestine <ervandew@gmail.com> (as of version 0.4) + +Contributors: + Christophe-Marie Duquesne <chm.duquesne@gmail.com> (documentation) + +Please direct all correspondence to Eric. + +This plugin is licensed under the terms of the BSD License. Please see +supertab.vim for the license in its entirety. + +============================================================================== +Supertab *supertab* + +1. Introduction |supertab-intro| +2. Supertab Usage |supertab-usage| +3. Supertab Options |supertab-options| + Default completion type |supertab-defaultcompletion| + Secondary default completion type |supertab-contextdefault| + Completion contexts |supertab-completioncontexts| + Context text |supertab-contexttext| + Context Discover |supertab-contextdiscover| + Example |supertab-contextexample| + Completion Duration |supertab-duration| + Midword completion |supertab-midword| + Changing default mapping |supertab-forwardbackward| + Inserting true tabs |supertab-mappingtabliteral| + Preselecting the first entry |supertab-longesthighlight| + +============================================================================== +1. Introduction *supertab-intro* + +Supertab is a plugin which allows you to perform all your insert completion +(|ins-completion|) using the tab key. + +Supertab requires Vim version 7.0 or above. + +============================================================================== +2. Supertab usage *supertab-usage* + +Using Supertab is as easy as hitting <Tab> or <S-Tab> (shift+tab) while in +insert mode, with at least one non whitespace character before the cursor, to +start the completion and then <Tab> or <S-Tab> again to cycle forwards or +backwards through the available completions. + +Example ('|' denotes the cursor location): + +bar +baz +b|<Tab> Hitting <Tab> here will start the completion, allowing you to + then cycle through the suggested words ('bar' and 'baz'). + +============================================================================== +3. Supertab Options *supertab-options* + +Supertab is configured via several global variables that you can set in your +|vimrc| file according to your needs. Below is a comprehensive list of +the variables available. + +g:SuperTabDefaultCompletionType |supertab-defaultcompletion| + The default completion type to use. If you program in languages that support + omni or user completions, it is highly recommended setting this to + 'context'. + + For help about built in completion types in vim, see |i_CTRL-X_index|. + +g:SuperTabContextDefaultCompletionType |supertab-contextdefault| + The default completion type to use when 'context' is the global default, but + context completion has determined that neither omni, user, or file + completion should be used in the current context. + +g:SuperTabCompletionContexts |supertab-completioncontexts| + Used to configure a list of function names which are used when the global + default type is 'context'. These functions will be consulted in order to + determine which completion type to use. Advanced users can plug in their own + functions here to customize their 'context' completion. + +g:SuperTabRetainCompletionDuration |supertab-duration| + This setting determines how long a non-default completion type should be + retained as the temporary default. By default supertab will retain the + alternate completion type until you leave insert mode. + +g:SuperTabMidWordCompletion |supertab-midword| + This can be used to turn off completion if you are in the middle of a word + (word characters immediately preceding and following the cursor). + +g:SuperTabMappingForward |supertab-forwardbackward| +g:SuperTabMappingBackward |supertab-forwardbackward| + If using the tab key for completion isn't for you, then you can use these to + set an alternate key to be used for your insert completion needs. + +g:SuperTabMappingTabLiteral |supertab-mappingtabliteral| + For those rare cases where supertab would normal want to start insert + completion, but you just want to insert a tab, this setting is used to + define the key combination to use to do just that. By default Ctrl-Tab is + used. + +g:SuperTabLongestHighlight |supertab-longesthighlight| + When enabled and you have the completion popup enable and 'longest' in your + completeopt, supertab will auto highlight the first selection in the popup. + + +Default Completion Type *supertab-defaultcompletion* + *g:SuperTabDefaultCompletionType* + +g:SuperTabDefaultCompletionType (default value: "<c-p>") + +Used to set the default completion type. There is no need to escape this +value as that will be done for you when the type is set. + + Example: setting the default completion to 'user' completion: + + let g:SuperTabDefaultCompletionType = "<c-x><c-u>" + +Note: a special value of 'context' is supported which will result in +super tab attempting to use the text preceding the cursor to decide which +type of completion to attempt. Currently super tab can recognize method +calls or attribute references via '.', '::' or '->', and file path +references containing '/'. + + let g:SuperTabDefaultCompletionType = "context" + + /usr/l<tab> # will use filename completion + myvar.t<tab> # will use user completion if completefunc set, + # or omni completion if omnifunc set. + myvar-><tab> # same as above + +When using context completion, super tab will fall back to a secondary default +completion type set by |g:SuperTabContextDefaultCompletionType|. + +Note: once the buffer has been initialized, changing the value of this setting +will not change the default complete type used. If you want to change the +default completion type for the current buffer after it has been set, perhaps +in an ftplugin, you'll need to call SuperTabSetDefaultCompletionType like so, +supplying the completion type you wish to switch to: + + call SuperTabSetDefaultCompletionType("<c-x><c-u>") + + +Secondary default completion type *supertab-contextdefault* + *g:SuperTabContextDefaultCompletionType* + +g:SuperTabContextDefaultCompletionType (default value: "<c-p>") + +Sets the default completion type used when g:SuperTabDefaultCompletionType is +set to 'context' and no completion type is returned by any of the configured +contexts. + + +Completion contexts *supertab-completioncontexts* + *g:SuperTabCompletionContexts* + +g:SuperTabCompletionContexts (default value: ['s:ContextText']) + +Sets the list of contexts used for context completion. This value should +be a list of function names which provide the context implementation. + +When supertab starts the default completion, each of these contexts will be +consulted, in the order they were supplied, to determine the completion type +to use. If a context returns a completion type, that type will be used, +otherwise the next context in the list will be consulted. If after executing +all the context functions, no completion type has been determined, then the +value of g:SuperTabContextDefaultCompletionType will be used. + +Built in completion contexts: + + s:ContextText *supertab-contexttext* + + The text context will examine the text near the cursor to decide which type + of completion to attempt. Currently the text context can recognize method + calls or attribute references via '.', '::' or '->', and file path + references containing '/'. + + /usr/l<tab> # will use filename completion + myvar.t<tab> # will use user completion if completefunc set, or + # omni completion if omnifunc set. + myvar-><tab> # same as above + + Supported configuration attributes: + + g:SuperTabContextTextFileTypeExclusions + List of file types for which the text context will be skipped. + + g:SuperTabContextTextOmniPrecedence + List of omni completion option names in the order of precedence that they + should be used if available. By default, user completion will be given + precedence over omni completion, but you can use this variable to give + omni completion higher precedence by placing it first in the list. + + s:ContextDiscover *supertab-contextdiscover* + + This context will use the 'g:SuperTabContextDiscoverDiscovery' variable to + determine the completion type to use. It will evaluate each value, in the + order they were defined, until a variable evaluates to a non-zero or + non-empty value, then the associated completion type is used. + + Supported configuration properties: + + g:SuperTabContextDiscoverDiscovery + List of variable:completionType mappings. + + Example context configuration: *supertab-contextexample* + + let g:SuperTabCompletionContexts = ['s:ContextText', 's:ContextDiscover'] + let g:SuperTabContextTextOmniPrecedence = ['&omnifunc', '&completefunc'] + let g:SuperTabContextDiscoverDiscovery = + \ ["&completefunc:<c-x><c-u>", "&omnifunc:<c-x><c-o>"] + + In addition to the default completion contexts, you can plug in your own + implementation by creating a globally accessible function that returns + the completion type to use (eg. "\<c-x>\<c-u>"). + + function MyTagContext() + if filereadable(expand('%:p:h') . '/tags') + return "\<c-x>\<c-]>" + endif + " no return will result in the evaluation of the next + " configured context + endfunction + let g:SuperTabCompletionContexts = + \ ['MyTagContext', 's:ContextText', 's:ContextDiscover'] + + Note: supertab also supports the b:SuperTabCompletionContexts variable + allowing you to set the list of contexts separately for the current buffer, + like from an ftplugin for example. + + +Completion Duration *supertab-duration* + *g:SuperTabRetainCompletionDuration* + +g:SuperTabRetainCompletionDuration (default value: 'insert') + +Determines if, and for how long, the current completion type is retained. +The possible values include: +'completion' - The current completion type is only retained for the + current completion. Once you have chosen a completion + result or exited the completion mode, the default + completion type is restored. +'insert' - The current completion type is saved until you exit insert + mode (via ESC). Once you exit insert mode the default + completion type is restored. (supertab default) +'session' - The current completion type is saved for the duration of + your vim session or until you enter a different completion + mode. + + +Midword completion *supertab-midword* + *g:SuperTabMidWordCompletion* + +g:SuperTabMidWordCompletion (default value: 1) + +Sets whether or not mid word completion is enabled. When enabled, <tab> will +kick off completion when ever a non whitespace character is to the left of the +cursor. When disabled, completion will only occur if the char to the left is +non whitespace char and the char to the right is not a keyword character (you +are at the end of the word). + + +Changing the default mapping *supertab-forwardbackward* + *g:SuperTabMappingForward* + *g:SuperTabMappingBackward* + +g:SuperTabMappingForward (default value: '<tab>') +g:SuperTabMappingBackward (default value: '<s-tab>') + +These two variables allow you to set the keys used to kick off the current +completion. By default this is <tab> and <s-tab>. To change to something +like <c-space> and <s-c-space>, you can add the following to your |vimrc|. + + let g:SuperTabMappingForward = '<c-space>' + let g:SuperTabMappingBackward = '<s-c-space>' + +Note: if the above does not have the desired effect (which may happen in +console version of vim), you can try the following mappings. Although the +backwards mapping still doesn't seem to work in the console for me, your +milage may vary. + + let g:SuperTabMappingForward = '<nul>' + let g:SuperTabMappingBackward = '<s-nul>' + + +Inserting true tabs *supertab-mappingtabliteral* + *g:SuperTabMappingTabLiteral* + +g:SuperTabMappingTabLiteral (default value: '<c-tab>') + +Sets the key mapping used to insert a literal tab where supertab would +otherwise attempt to kick off insert completion. The default is '<c-tab>' +(ctrl-tab) which unfortunately might not work at the console. So if you are +using a console vim and want this functionality, you may have to change it to +something that is supported. Alternatively, you can escape the <tab> with +<c-v> (see |i_CTRL-V| for more infos). + + +Preselecting the first entry *supertab-longesthighlight* + *g:SuperTabLongestHighlight* + +g:SuperTabLongestHighlight (default value: 0) + +Sets whether or not to pre-highlight the first match when completeopt has the +popup menu enabled and the 'longest' option as well. When enabled, <tab> will +kick off completion and pre-select the first entry in the popup menu, allowing +you to simply hit <enter> to use it. + +vim:tw=78:ts=8:ft=help:norl: +plugin/supertab.vim [[[1 +510 +" Author: +" Original: Gergely Kontra <kgergely@mcl.hu> +" Current: Eric Van Dewoestine <ervandew@gmail.com> (as of version 0.4) +" Please direct all correspondence to Eric. +" Version: 1.0 +" GetLatestVimScripts: 1643 1 :AutoInstall: supertab.vim +" +" Description: {{{ +" Use your tab key to do all your completion in insert mode! +" You can cycle forward and backward with the <Tab> and <S-Tab> keys +" Note: you must press <Tab> once to be able to cycle back +" +" http://www.vim.org/scripts/script.php?script_id=1643 +" }}} +" +" License: {{{ +" Software License Agreement (BSD License) +" +" Copyright (c) 2002 - 2009 +" All rights reserved. +" +" Redistribution and use of this software in source and binary forms, with +" or without modification, are permitted provided that the following +" conditions are met: +" +" * Redistributions of source code must retain the above +" copyright notice, this list of conditions and the +" following disclaimer. +" +" * Redistributions in binary form must reproduce the above +" copyright notice, this list of conditions and the +" following disclaimer in the documentation and/or other +" materials provided with the distribution. +" +" * Neither the name of Gergely Kontra or Eric Van Dewoestine nor the names +" of its contributors may be used to endorse or promote products derived +" from this software without specific prior written permission of Gergely +" Kontra or Eric Van Dewoestine. +" +" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +" IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +" THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +" PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +" NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +" SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +" }}} +" +" Testing Info: {{{ +" Running vim + supertab with the absolute bar minimum settings: +" $ vim -u NONE -U NONE -c "set nocp | runtime plugin/supertab.vim" +" }}} + +if v:version < 700 + finish +endif + +if exists('complType') " Integration with other completion functions. + finish +endif + +let s:save_cpo=&cpo +set cpo&vim + +" Global Variables {{{ + + if !exists("g:SuperTabDefaultCompletionType") + let g:SuperTabDefaultCompletionType = "<c-p>" + endif + + if !exists("g:SuperTabContextDefaultCompletionType") + let g:SuperTabContextDefaultCompletionType = "<c-p>" + endif + + if !exists("g:SuperTabCompletionContexts") + let g:SuperTabCompletionContexts = ['s:ContextText'] + endif + + if !exists("g:SuperTabRetainCompletionDuration") + let g:SuperTabRetainCompletionDuration = 'insert' + endif + + if !exists("g:SuperTabMidWordCompletion") + let g:SuperTabMidWordCompletion = 1 + endif + + if !exists("g:SuperTabMappingForward") + let g:SuperTabMappingForward = '<tab>' + endif + if !exists("g:SuperTabMappingBackward") + let g:SuperTabMappingBackward = '<s-tab>' + endif + + if !exists("g:SuperTabMappingTabLiteral") + let g:SuperTabMappingTabLiteral = '<c-tab>' + endif + + if !exists("g:SuperTabLongestHighlight") + let g:SuperTabLongestHighlight = 0 + endif + +" }}} + +" Script Variables {{{ + + " construct the help text. + let s:tabHelp = + \ "Hit <CR> or CTRL-] on the completion type you wish to switch to.\n" . + \ "Use :help ins-completion for more information.\n" . + \ "\n" . + \ "|<c-n>| - Keywords in 'complete' searching down.\n" . + \ "|<c-p>| - Keywords in 'complete' searching up (SuperTab default).\n" . + \ "|<c-x><c-l>| - Whole lines.\n" . + \ "|<c-x><c-n>| - Keywords in current file.\n" . + \ "|<c-x><c-k>| - Keywords in 'dictionary'.\n" . + \ "|<c-x><c-t>| - Keywords in 'thesaurus', thesaurus-style.\n" . + \ "|<c-x><c-i>| - Keywords in the current and included files.\n" . + \ "|<c-x><c-]>| - Tags.\n" . + \ "|<c-x><c-f>| - File names.\n" . + \ "|<c-x><c-d>| - Definitions or macros.\n" . + \ "|<c-x><c-v>| - Vim command-line.\n" . + \ "|<c-x><c-u>| - User defined completion.\n" . + \ "|<c-x><c-o>| - Omni completion.\n" . + \ "|<c-x>s| - Spelling suggestions." + + " set the available completion types and modes. + let s:types = + \ "\<c-e>\<c-y>\<c-l>\<c-n>\<c-k>\<c-t>\<c-i>\<c-]>" . + \ "\<c-f>\<c-d>\<c-v>\<c-n>\<c-p>\<c-u>\<c-o>\<c-n>\<c-p>s" + let s:modes = '/^E/^Y/^L/^N/^K/^T/^I/^]/^F/^D/^V/^P/^U/^O/s' + let s:types = s:types . "np" + let s:modes = s:modes . '/n/p' + +" }}} + +" SuperTabSetDefaultCompletionType(type) {{{ +" Globally available function that users can use to set the default +" completion type for the current buffer, like in an ftplugin. +function! SuperTabSetDefaultCompletionType(type) + " init hack for <c-x><c-v> workaround. + let b:complCommandLine = 0 + + let b:SuperTabDefaultCompletionType = a:type + + " set the current completion type to the default + call SuperTabSetCompletionType(b:SuperTabDefaultCompletionType) +endfunction " }}} + +" SuperTabSetCompletionType(type) {{{ +" Globally available function that users can use to create mappings to quickly +" switch completion modes. Useful when a user wants to restore the default or +" switch to another mode without having to kick off a completion of that type +" or use SuperTabHelp. Note, this function only changes the current +" completion type, not the default, meaning that the default will still be +" restored once the configured retension duration has been met (see +" g:SuperTabRetainCompletionDuration). To change the default for the current +" buffer, use SuperTabDefaultCompletionType(type) instead. Example mapping to +" restore SuperTab default: +" nmap <F6> :call SetSuperTabCompletionType("<c-p>")<cr> +function! SuperTabSetCompletionType(type) + exec "let b:complType = \"" . escape(a:type, '<') . "\"" +endfunction " }}} + +" SuperTabAlternateCompletion(type) {{{ +" Function which can be mapped to a key to kick off an alternate completion +" other than the default. For instance, if you have 'context' as the default +" and want to map ctrl+space to issue keyword completion. +" Note: due to the way vim expands ctrl characters in mappings, you cannot +" create the alternate mapping like so: +" imap <c-space> <c-r>=SuperTabAlternateCompletion("<c-p>")<cr> +" instead, you have to use \<lt> to prevent vim from expanding the key +" when creating the mapping. +" gvim: +" imap <c-space> <c-r>=SuperTabAlternateCompletion("\<lt>c-p>")<cr> +" console: +" imap <nul> <c-r>=SuperTabAlternateCompletion("\<lt>c-p>")<cr> +function! SuperTabAlternateCompletion(type) + call SuperTabSetCompletionType(a:type) + " end any current completion before attempting to start the new one. + " use feedkeys to prevent possible remapping of <c-e> from causing issues. + "call feedkeys("\<c-e>", 'n') + " ^ since we can't detect completion mode vs regular insert mode, we force + " vim into keyword completion mode and end that mode to prevent the regular + " insert behavior of <c-e> from occurring. + call feedkeys("\<c-x>\<c-p>\<c-e>", 'n') + call feedkeys(b:complType) + return '' +endfunction " }}} + +" s:Init {{{ +" Global initilization when supertab is loaded. +function! s:Init() + augroup supertab_init + autocmd! + autocmd BufEnter * call <SID>InitBuffer() + augroup END + + " ensure InitBuffer gets called for the first buffer, after the ftplugins + " have been called. + augroup supertab_init_first + autocmd! + autocmd FileType <buffer> call <SID>InitBuffer() + augroup END + + " Setup mechanism to restore orignial completion type upon leaving insert + " mode if configured to do so + if g:SuperTabRetainCompletionDuration == 'insert' + augroup supertab_retain + autocmd! + autocmd InsertLeave * call s:SetDefaultCompletionType() + augroup END + endif +endfunction " }}} + +" s:InitBuffer {{{ +" Per buffer initilization. +function! s:InitBuffer() + if exists("b:complType") + return + endif + + " init hack for <c-x><c-v> workaround. + let b:complCommandLine = 0 + + let b:SuperTabDefaultCompletionType = g:SuperTabDefaultCompletionType + + " set the current completion type to the default + call SuperTabSetCompletionType(b:SuperTabDefaultCompletionType) +endfunction " }}} + +" s:ManualCompletionEnter() {{{ +" Handles manual entrance into completion mode. +function! s:ManualCompletionEnter() + if &smd + echo '' | echohl ModeMsg | echo '-- ^X++ mode (' . s:modes . ')' | echohl None + endif + let complType = nr2char(getchar()) + if stridx(s:types, complType) != -1 + if stridx("\<c-e>\<c-y>", complType) != -1 " no memory, just scroll... + return "\<c-x>" . complType + elseif stridx('np', complType) != -1 + let complType = nr2char(char2nr(complType) - 96) + else + let complType = "\<c-x>" . complType + endif + + if index(['insert', 'session'], g:SuperTabRetainCompletionDuration) != -1 + let b:complType = complType + endif + + " Hack to workaround bug when invoking command line completion via <c-r>= + if complType == "\<c-x>\<c-v>" + return s:CommandLineCompletion() + endif + + return complType + endif + + echohl "Unknown mode" + return complType +endfunction " }}} + +" s:SetCompletionType() {{{ +" Sets the completion type based on what the user has chosen from the help +" buffer. +function! s:SetCompletionType() + let chosen = substitute(getline('.'), '.*|\(.*\)|.*', '\1', '') + if chosen != getline('.') + let winnr = b:winnr + close + exec winnr . 'winc w' + call SuperTabSetCompletionType(chosen) + endif +endfunction " }}} + +" s:SetDefaultCompletionType() {{{ +function! s:SetDefaultCompletionType() + if exists('b:SuperTabDefaultCompletionType') && + \ (!exists('b:complCommandLine') || !b:complCommandLine) + call SuperTabSetCompletionType(b:SuperTabDefaultCompletionType) + endif +endfunction " }}} + +" s:SuperTab(command) {{{ +" Used to perform proper cycle navigation as the user requests the next or +" previous entry in a completion list, and determines whether or not to simply +" retain the normal usage of <tab> based on the cursor position. +function! s:SuperTab(command) + if s:WillComplete() + " rare case where no autocmds have fired for this buffer to initialize the + " supertab vars. + call s:InitBuffer() + + let key = '' + " highlight first result if longest enabled + if g:SuperTabLongestHighlight && !pumvisible() && &completeopt =~ 'longest' + let key = (b:complType == "\<c-p>") ? "\<c-p>" : "\<c-n>" + endif + + " exception: if in <c-p> mode, then <c-n> should move up the list, and + " <c-p> down the list. + if a:command == 'p' && + \ (b:complType == "\<c-p>" || + \ (b:complType == 'context' && + \ tolower(g:SuperTabContextDefaultCompletionType) == '<c-p>')) + return "\<c-n>" + elseif a:command == 'p' && + \ (b:complType == "\<c-n>" || + \ (b:complType == 'context' && + \ tolower(g:SuperTabContextDefaultCompletionType) == '<c-n>')) + return "\<c-p>" + endif + + " handle 'context' completion. + if b:complType == 'context' + let complType = s:ContextCompletion() + if complType == '' + exec "let complType = \"" . + \ escape(g:SuperTabContextDefaultCompletionType, '<') . "\"" + endif + return complType . key + endif + + " Hack to workaround bug when invoking command line completion via <c-r>= + if b:complType == "\<c-x>\<c-v>" + return s:CommandLineCompletion() + endif + return b:complType . key + endif + + return "\<tab>" +endfunction " }}} + +" s:SuperTabHelp() {{{ +" Opens a help window where the user can choose a completion type to enter. +function! s:SuperTabHelp() + let winnr = winnr() + if bufwinnr("SuperTabHelp") == -1 + botright split SuperTabHelp + + setlocal noswapfile + setlocal buftype=nowrite + setlocal bufhidden=delete + + let saved = @" + let @" = s:tabHelp + silent put + call cursor(1, 1) + silent 1,delete + call cursor(4, 1) + let @" = saved + exec "resize " . line('$') + + syntax match Special "|.\{-}|" + + setlocal readonly + setlocal nomodifiable + + nmap <silent> <buffer> <cr> :call <SID>SetCompletionType()<cr> + nmap <silent> <buffer> <c-]> :call <SID>SetCompletionType()<cr> + else + exec bufwinnr("SuperTabHelp") . "winc w" + endif + let b:winnr = winnr +endfunction " }}} + +" s:WillComplete() {{{ +" Determines if completion should be kicked off at the current location. +function! s:WillComplete() + let line = getline('.') + let cnum = col('.') + + " Start of line. + let prev_char = strpart(line, cnum - 2, 1) + if prev_char =~ '^\s*$' + return 0 + endif + + " Within a word, but user does not have mid word completion enabled. + let next_char = strpart(line, cnum - 1, 1) + if !g:SuperTabMidWordCompletion && next_char =~ '\k' + return 0 + endif + + " In keyword completion mode and no preceding word characters. + "if (b:complType == "\<c-n>" || b:complType == "\<c-p>") && prev_char !~ '\k' + " return 0 + "endif + + return 1 +endfunction " }}} + +" s:CommandLineCompletion() {{{ +" Hack needed to account for apparent bug in vim command line mode completion +" when invoked via <c-r>= +function! s:CommandLineCompletion() + " This hack will trigger InsertLeave which will then invoke + " s:SetDefaultCompletionType. To prevent default completion from being + " restored prematurely, set an internal flag for s:SetDefaultCompletionType + " to check for. + let b:complCommandLine = 1 + return "\<c-\>\<c-o>:call feedkeys('\<c-x>\<c-v>\<c-v>', 'n') | " . + \ "let b:complCommandLine = 0\<cr>" +endfunction " }}} + +" s:ContextCompletion() {{{ +function! s:ContextCompletion() + let contexts = exists('b:SuperTabCompletionContexts') ? + \ b:SuperTabCompletionContexts : g:SuperTabCompletionContexts + + for context in contexts + try + let Context = function(context) + let complType = Context() + unlet Context + if type(complType) == 1 && complType != '' + return complType + endif + catch /E700/ + echohl Error + echom 'supertab: no context function "' . context . '" found.' + echohl None + endtry + endfor + return '' +endfunction " }}} + +" s:ContextDiscover() {{{ +function! s:ContextDiscover() + let discovery = exists('g:SuperTabContextDiscoverDiscovery') ? + \ g:SuperTabContextDiscoverDiscovery : [] + + " loop through discovery list to find the default + if !empty(discovery) + for pair in discovery + let var = substitute(pair, '\(.*\):.*', '\1', '') + let type = substitute(pair, '.*:\(.*\)', '\1', '') + exec 'let value = ' . var + if value !~ '^\s*$' && value != '0' + exec "let complType = \"" . escape(type, '<') . "\"" + return complType + endif + endfor + endif +endfunction " }}} + +" s:ContextText() {{{ +function! s:ContextText() + let exclusions = exists('g:SuperTabContextTextFileTypeExclusions') ? + \ g:SuperTabContextTextFileTypeExclusions : [] + + if index(exclusions, &ft) == -1 + let curline = getline('.') + let cnum = col('.') + let synname = synIDattr(synID(line('.'), cnum - 1, 1), 'name') + if curline =~ '.*/\w*\%' . cnum . 'c' || + \ ((has('win32') || has('win64')) && curline =~ '.*\\\w*\%' . cnum . 'c') + return "\<c-x>\<c-f>" + + elseif curline =~ '.*\(\w\|[\])]\)\(\.\|::\|->\)\w*\%' . cnum . 'c' && + \ synname !~ '\(String\|Comment\)' + let omniPrecedence = exists('g:SuperTabContextTextOmniPrecedence') ? + \ g:SuperTabContextTextOmniPrecedence : ['&completefunc', '&omnifunc'] + + for omniFunc in omniPrecedence + if omniFunc !~ '^&' + let omniFunc = '&' . omniFunc + endif + if getbufvar(bufnr('%'), omniFunc) != '' + return omniFunc == '&omnifunc' ? "\<c-x>\<c-o>" : "\<c-x>\<c-u>" + endif + endfor + endif + endif +endfunction " }}} + +" Key Mappings {{{ + " map a regular tab to ctrl-tab (note: doesn't work in console vim) + exec 'inoremap ' . g:SuperTabMappingTabLiteral . ' <tab>' + + imap <c-x> <c-r>=<SID>ManualCompletionEnter()<cr> + + " From the doc |insert.txt| improved + exec 'imap ' . g:SuperTabMappingForward . ' <c-n>' + exec 'imap ' . g:SuperTabMappingBackward . ' <c-p>' + + " After hitting <Tab>, hitting it once more will go to next match + " (because in XIM mode <c-n> and <c-p> mappings are ignored) + " and wont start a brand new completion + " The side effect, that in the beginning of line <c-n> and <c-p> inserts a + " <Tab>, but I hope it may not be a problem... + inoremap <c-n> <c-r>=<SID>SuperTab('n')<cr> + inoremap <c-p> <c-r>=<SID>SuperTab('p')<cr> +" }}} + +" Command Mappings {{{ + if !exists(":SuperTabHelp") + command SuperTabHelp :call <SID>SuperTabHelp() + endif +" }}} + +call s:Init() + +let &cpo = s:save_cpo + +" vim:ft=vim:fdm=marker diff --git a/dotfiles/.vim/syntax/alex.vim b/dotfiles/.vim/syntax/alex.vim @@ -0,0 +1,82 @@ +" Vim syntax file +" Language: Alex config language +" Maintainer: Nickolay Kudasov <false.developer@gmail.com> +" Last Change: March 16, 2010 +" +" Version: 0.2 +" Changes: $ and @ are now part of identifier +" so auto complete works well +" haskell directives are now regocnized +" hightlighting fixmes +" hightlighting todos and fixmes in haskell comments + +if exists("b:current_syntax") + finish +endif + +" macro definitions start with $ for sets and @ for regexps +" so we add this symbols to isident to make autocompletion work properly +set isident+=$ +set isident+=@ + +" Haskell code in alex file +syn match haskell_comment /--.*$/ contained contains=alex_todo,alex_fixme +syn match haskell_char /'[^\\]'\|'\\.'/ contained + +syn region haskell_string start=/"/ skip=/\\"/ end=/"/ contained +syn region haskell_block_comment start=/{-/ end=/-}/ fold contained contains=haskell_block_comment,alex_todo,alex_fixme +syn region haskell_directive start=/{-#/ end=/#-}/ contained +syn region haskell_code start=/{/ skip=/'\\\?}'/ end=/}/ fold contains=haskell_comment,haskell_block_comment,haskell_string,haskell_char,haskell_code,haskell_directive + +" Comments in alex file +syn match alex_comment /--.*$/ contains=alex_todo,alex_fixme +syn match alex_todo /[tT][oO][dD][oO]/ contained +syn match alex_fixme /[fF][iI][xX][mM][eE]/ contained + +" String representing ordered set of characters for regexp matching +syn region alex_string start=/"/ skip=/\\"/ end=/"/ + +" Sets of characters +syn match alex_char /\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)/ +syn match alex_anychar /\./ +syn match alex_range /\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)\(-\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)\)\?/ +syn match alex_set /$[a-zA-Z_][a-zA-Z_\d]*/ +syn match alex_setcompl /\~\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)/he=s+1,me=s+1 +syn match alex_setcompl /\~\./ +syn match alex_setcompl /\~\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)\(-\(\\x[\da-fA-F]\+\|\\o[0-7]\+\|\\\?\d\+\|\\.\|[a-zA-Z_]\)\)\?/he=s+1,me=s+1 +syn match alex_setcompl /\~$[a-zA-Z_][a-zA-Z_\d]*/he=s+1,me=s+1 +syn match alex_setspec /[\^.$]/ contained +syn region alex_sets start="\[" skip="\\]" end="]" contains=alex_char,alex_anychar,alex_range,alex_set,alex_setcompl,alex_sets,alex_setspec + +" Regular expressions +syn match alex_regexp /@[a-zA-Z_][a-zA-Z_\d]*/ +syn match alex_rexpspec /[*+?]/ +syn match alex_repeat /{\d\+\(\,\d*\)\?}/ + +" Keywords +syn keyword alex_keywords wrapper tokens + +hi def link haskell_comment Comment +hi def link haskell_block_comment Comment +hi def link haskell_directive Special +hi def link haskell_char Character +hi def link haskell_string String + +hi def link alex_comment Comment +hi def link alex_todo Todo +hi def link alex_fixme Todo +hi def link alex_string String +hi def link alex_char Character +hi def link alex_range Character +hi def link alex_anychar Special +hi def link alex_setcompl Special +hi def link alex_setspec Special +hi def link alex_rexpspec Special +hi def link alex_repeat Special +hi def link alex_set Identifier +hi def link alex_regexp Function +hi def link alex_keywords Keyword + +" Syntax configuration name +let b:current_syntax = "alex" + diff --git a/dotfiles/.vim/syntax/clay.vim b/dotfiles/.vim/syntax/clay.vim @@ -0,0 +1,61 @@ +" Vim syntax file +" Language: clay +" Maintainer: Joe Groff <joe@duriansoftware.com> +" Last Change: 2011 Nov 21 + +" Quit when a custom syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Include ! and ? in keyword characters +setlocal iskeyword=33,48-57,63,65-90,95,97-122 + +syn keyword clayKeyword public private import record variant instance define overload external alias inline enum var if else goto return while switch break continue for try catch throw onerror finally + +syn keyword clayLabelKeyword case default +syn keyword clayOperatorKeyword and or not static forward ref as in rvalue + +syn keyword clayType Bool Int8 Int16 Int32 Int64 Int128 UInt8 UInt16 UInt32 UInt64 UInt128 Float32 Float64 Float80 Float128 Pointer CodePointer RefCodePointer CCodePointer StdCallCodePointer FastCallCodePointer RawPointer OpaquePointer Array Tuple Void Byte UByte Char Short UShort Int UInt Long ULong Float Double RawPointer SizeT PtrInt UPtrInt StringConstant Vec Union Static + +syn keyword clayBoolean true false + +syn keyword clayDebug observeTo observe observeCallTo observeCall + +syn region clayString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region clayIdentifier start=+#"+ skip=+\\\\\|\\"+ end=+"+ +syn region clayTripleString start=+"""+ skip=+\\\\\|\\"+ end=+""""\@!+ +syn region clayTripleIdentifier start=+#"""+ skip=+\\\\\|\\"+ end=+""""\@!+ + +syn region clayComment start="/\*" end="\*/" +syn region clayComment start="//" end="$" + +syn match clayDecimal /\.\@<![+\-]\?\<\([0-9][0-9_]*\)\([.][0-9_]*\)\?\([eE][+\-]\?[0-9][0-9_]*\)\?\(i\|i8\|u8\|i16\|u16\|i32\|u32\|i64\|i128\|u64\|u128\|f32\|f64\|f80\|f128\|u\|f\|fj\|j\|j32\|j64\|j80\|j128\)\?\w\@!/ +syn match clayHex /\.\@<![+\-]\?\<0x[0-9A-Fa-f][0-9A-Fa-f_]*\(\([.][0-9A-Fa-f_]*\)\?[pP][+\-]\?[0-9][0-9_]*\)\?\(i\|i8\|u8\|i16\|u16\|i32\|u32\|i64\|u64\|f32\|f64\|f80\|f128\|u\|f\|fj\|j\|j32\|j64\|j80\|j128\)\?\>/ +syn match claySimpleIdentifier /#[A-Za-z_?][A-Za-z0-9_?]*\>/ +syn match clayChar /'\([^'\\]\|\\\(["'trnf0$\\]\|x[0-9a-fA-F]\{2}\)\)'/ +syn match clayGotoLabel /^\s*[A-Za-z_?][A-Za-z0-9_?]*\(:\s*$\)\@=/ + +syn match clayMultiValue /\.\.\.\?/ +syn match clayLambda /=>\|->/ + +hi def link clayKeyword Statement +hi def link clayType Type +hi def link clayBoolean Boolean +hi def link clayComment Comment +hi def link clayTripleString String +hi def link clayString String +hi def link clayChar Character +hi def link clayDecimal Number +hi def link clayHex Number +hi def link claySimpleIdentifier Constant +hi def link clayIdentifier Constant +hi def link clayTripleIdentifier Constant +hi def link clayOperatorKeyword Operator +hi def link clayLabelKeyword Label +hi def link clayGotoLabel Label +hi def link clayMultiValue Special +hi def link clayLambda Special +hi def link clayDebug Todo + +let b:current_syntax = "clay" diff --git a/dotfiles/.vim/syntax/clojure.vim b/dotfiles/.vim/syntax/clojure.vim @@ -0,0 +1,266 @@ +" Vim syntax file +" Language: Clojure +" Maintainer: Toralf Wittner <toralf.wittner@gmail.com> +" modified by Meikel Brandmeyer <mb@kotka.de> +" URL: http://kotka.de/projects/clojure/vimclojure.html + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Highlight superfluous closing parens, brackets and braces. +syn match clojureError "]\|}\|)" + +if (exists("g:clj_highlight_builtins") && g:clj_highlight_builtins != 0) + \ || (exists("g:clj_want_gorilla") && g:clj_want_gorilla != 0) + " Special case for Windows. + call vimclojure#InitBuffer() + + let s:builtins_map = { + \ "Constant": "nil", + \ "Boolean": "true false", + \ "Cond": "if if-not if-let when when-not when-let " + \ . "when-first cond condp", + \ "Exception": "try catch finally throw", + \ "Repeat": "recur map mapcat reduce filter for doseq dorun " + \ . "doall dotimes", + \ "Special": ". def do fn if let new quote var loop", + \ "Variable": "*warn-on-reflection* this " + \ . "*agent* *ns* *in* *out* *err* *command-line-args* " + \ . "*print-meta* *print-readably* *print-length* " + \ . "*allow-unresolved-args* *compile-files* " + \ . "*compile-path* *file* *flush-on-newline* " + \ . "*macro-meta* *math-context* *print-dup* " + \ . "*print-level* *use-context-classloader* " + \ . "*source-path* *clojure-version* *read-eval*" + \ . "*1 *2 *3 *e", + \ "Define": "def- defn defn- defmacro defmulti defmethod " + \ . "defstruct defonce declare definline ", + \ "Macro": "and or -> assert with-out-str with-in-str with-open " + \ . "locking destructure ns dosync binding delay " + \ . "lazy-cons lazy-cat time assert doc with-precision " + \ . "with-local-vars .. doto memfn proxy amap areduce " + \ . "refer-clojure future lazy-seq letfn", + \ "Func": "= not= not nil? false? true? complement identical? " + \ . "string? symbol? map? seq? vector? keyword? var? " + \ . "special-symbol? apply partial comp constantly " + \ . "identity comparator fn? re-matcher re-find re-matches " + \ . "re-groups re-seq re-pattern str pr prn print " + \ . "println pr-str prn-str print-str println-str newline " + \ . "macroexpand macroexpand-1 monitor-enter monitor-exit " + \ . "eval find-doc file-seq flush hash load load-file " + \ . "print-doc read read-line scan slurp subs sync test " + \ . "format printf loaded-libs use require load-reader " + \ . "load-string + - * / < <= == >= > dec inc min max neg? " + \ . "pos? quot rem zero? rand rand-int decimal? even? odd? " + \ . "float? integer? number? ratio? rational? " + \ . "bit-and bit-or bit-xor bit-not bit-shift-left " + \ . "bit-shift-right symbol keyword gensym count conj seq " + \ . "first rest ffirst fnext nfirst nnext second every? " + \ . "not-every? some not-any? concat reverse cycle " + \ . "interleave interpose split-at split-with take " + \ . "take-nth take-while drop drop-while repeat replicate " + \ . "iterate range into distinct sort sort-by zipmap " + \ . "line-seq butlast last nth nthnext next " + \ . "repeatedly tree-seq enumeration-seq iterator-seq " + \ . "coll? associative? empty? list? reversible? " + \ . "sequential? sorted? list list* cons peek pop vec " + \ . "vector peek pop rseq subvec array-map hash-map " + \ . "sorted-map sorted-map-by assoc assoc-in dissoc get " + \ . "get-in contains? find select-keys update-in key val " + \ . "keys vals merge merge-with max-key min-key " + \ . "create-struct struct-map struct accessor " + \ . "remove-method meta with-meta in-ns refer create-ns " + \ . "find-ns all-ns remove-ns import ns-name ns-map " + \ . "ns-interns ns-publics ns-imports ns-refers ns-resolve " + \ . "resolve ns-unmap name namespace require use " + \ . "set! find-var var-get var-set ref deref " + \ . "ensure alter ref-set commute agent send send-off " + \ . "agent-errors clear-agent-errors await await-for " + \ . "instance? bean alength aget aset aset-boolean " + \ . "aset-byte aset-char aset-double aset-float " + \ . "aset-int aset-long aset-short make-array " + \ . "to-array to-array-2d into-array int long float " + \ . "double char boolean short byte parse add-classpath " + \ . "cast class get-proxy-class proxy-mappings " + \ . "update-proxy hash-set sorted-set set disj set? " + \ . "aclone add-watch alias alter-var-root " + \ . "ancestors await1 bases bigdec bigint bit-and-not " + \ . "bit-clear bit-flip bit-set bit-test counted?" + \ . "char-escape-string char-name-string class? " + \ . "compare compile construct-proxy delay? " + \ . "derive descendants distinct? double-array " + \ . "doubles drop-last empty float-array floats " + \ . "force gen-class get-validator int-array ints " + \ . "isa? long-array longs make-hierarchy method-sig " + \ . "not-empty ns-aliases ns-unalias num partition " + \ . "parents pmap prefer-method primitives-classnames " + \ . "print-ctor print-dup print-method print-simple " + \ . "print-special-doc proxy-call-with-super " + \ . "proxy-super rationalize read-string remove " + \ . "remove-watch replace resultset-seq rsubseq " + \ . "seque set-validator! shutdown-agents subseq " + \ . "special-form-anchor syntax-symbol-anchor supers " + \ . "unchecked-add unchecked-dec unchecked-divide " + \ . "unchecked-inc unchecked-multiply unchecked-negate " + \ . "unchecked-subtract underive xml-seq trampoline " + \ . "atom compare-and-set! ifn? gen-interface " + \ . "intern init-proxy io! memoize proxy-name swap! " + \ . "release-pending-sends the-ns unquote while " + \ . "unchecked-remainder add-watcher alter-meta! " + \ . "future-call methods mod pcalls prefers pvalues " + \ . "print-namespace-doc remove-watcher reset! " + \ . "reset-meta! type vary-meta unquote-splicing " + \ . "sequence clojure-version counted? stream?" + \ } + + for category in keys(s:builtins_map) + let words = split(s:builtins_map[category], " ") + let words = map(copy(words), '"clojure.core/" . v:val') + words + let s:builtins_map[category] = words + endfor + + call vimclojure#ColorNamespace(s:builtins_map) +endif + +if exists("b:vimclojure_namespace") + let s:result = vimclojure#ExecuteNailWithInput("DynamicHighlighting", + \ b:vimclojure_namespace) + execute "let s:highlights = " . s:result + call vimclojure#ColorNamespace(s:highlights) + unlet s:result s:highlights +endif + +syn cluster clojureAtomCluster contains=clojureError,clojureFunc,clojureMacro,clojureCond,clojureDefine,clojureRepeat,clojureException,clojureConstant,clojureVariable,clojureSpecial,clojureKeyword,clojureString,clojureCharacter,clojureNumber,clojureRational,clojureFloat,clojureBoolean,clojureQuote,clojureUnquote,clojureDispatch,clojurePattern +syn cluster clojureTopCluster contains=@clojureAtomCluster,clojureComment,clojureSexp,clojureAnonFn,clojureVector,clojureMap,clojureSet + +syn keyword clojureTodo contained FIXME XXX +syn match clojureComment contains=clojureTodo ";.*$" + +syn match clojureKeyword "\c:\{1,2}[a-z?!\-_+*./=<>][a-z0-9?!\-_+*\./=<>]*" + +syn region clojureString start=/L\="/ skip=/\\\\\|\\"/ end=/"/ + +syn match clojureCharacter "\\." +syn match clojureCharacter "\\[0-7]\{3\}" +syn match clojureCharacter "\\u[0-9]\{4\}" +syn match clojureCharacter "\\space" +syn match clojureCharacter "\\tab" +syn match clojureCharacter "\\newline" +syn match clojureCharacter "\\return" +syn match clojureCharacter "\\backspace" +syn match clojureCharacter "\\formfeed" + +let radixChars = "0123456789abcdefghijklmnopqrstuvwxyz" +for radix in range(2, 36) + execute 'syn match clojureNumber "\c\<-\?' . radix . 'r[' + \ . strpart(radixChars, 0, radix) + \ . ']\+\>"' +endfor + +syn match clojureNumber "\<-\?[0-9]\+M\?\>" +syn match clojureRational "\<-\?[0-9]\+/[0-9]\+\>" +syn match clojureFloat "\<-\?[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" + +syn match clojureQuote "\('\|`\)" +syn match clojureUnquote "\(\~@\|\~\)" +syn match clojureDispatch "\(#^\|#'\)" + +syn match clojureAnonArg contained "%\(\d\|&\)\?" +syn match clojureVarArg contained "&" + +if exists("g:clj_paren_rainbow") && g:clj_paren_rainbow != 0 + syn region clojureSexpLevel0 matchgroup=clojureParen0 start="(" matchgroup=clojureParen0 end=")" contains=@clojureTopCluster,clojureSexpLevel1 + syn region clojureSexpLevel1 matchgroup=clojureParen1 start="(" matchgroup=clojureParen1 end=")" contained contains=@clojureTopCluster,clojureSexpLevel2 + syn region clojureSexpLevel2 matchgroup=clojureParen2 start="(" matchgroup=clojureParen2 end=")" contained contains=@clojureTopCluster,clojureSexpLevel3 + syn region clojureSexpLevel3 matchgroup=clojureParen3 start="(" matchgroup=clojureParen3 end=")" contained contains=@clojureTopCluster,clojureSexpLevel4 + syn region clojureSexpLevel4 matchgroup=clojureParen4 start="(" matchgroup=clojureParen4 end=")" contained contains=@clojureTopCluster,clojureSexpLevel5 + syn region clojureSexpLevel5 matchgroup=clojureParen5 start="(" matchgroup=clojureParen5 end=")" contained contains=@clojureTopCluster,clojureSexpLevel6 + syn region clojureSexpLevel6 matchgroup=clojureParen6 start="(" matchgroup=clojureParen6 end=")" contained contains=@clojureTopCluster,clojureSexpLevel7 + syn region clojureSexpLevel7 matchgroup=clojureParen7 start="(" matchgroup=clojureParen7 end=")" contained contains=@clojureTopCluster,clojureSexpLevel8 + syn region clojureSexpLevel8 matchgroup=clojureParen8 start="(" matchgroup=clojureParen8 end=")" contained contains=@clojureTopCluster,clojureSexpLevel9 + syn region clojureSexpLevel9 matchgroup=clojureParen9 start="(" matchgroup=clojureParen9 end=")" contained contains=@clojureTopCluster,clojureSexpLevel0 +else + syn region clojureSexp matchgroup=clojureParen0 start="(" matchgroup=clojureParen0 end=")" contains=@clojureTopCluster +endif + +syn region clojureAnonFn matchgroup=clojureParen0 start="#(" matchgroup=clojureParen0 end=")" contains=@clojureTopCluster,clojureAnonArg,clojureSexpLevel0 +syn region clojureVector matchgroup=clojureParen0 start="\[" matchgroup=clojureParen0 end="\]" contains=@clojureTopCluster,clojureVarArg,clojureSexpLevel0 +syn region clojureMap matchgroup=clojureParen0 start="{" matchgroup=clojureParen0 end="}" contains=@clojureTopCluster,clojureSexpLevel0 +syn region clojureSet matchgroup=clojureParen0 start="#{" matchgroup=clojureParen0 end="}" contains=@clojureTopCluster,clojureSexpLevel0 +syn region clojurePattern start=/#"/ end=/"/ skip=/\\"/ + +syn region clojureCommentSexp start="(" end=")" transparent contained contains=clojureCommentSexp +syn region clojureComment matchgroup=clojureParen0 start="(comment"rs=s+1 matchgroup=clojureParen0 end=")" contains=clojureCommentSexp +syn region clojureComment start="#!" end="\n" +syn match clojureComment "#_" + +syn sync match matchPlace grouphere NONE "^[^ \t]" + +if version >= 600 + command -nargs=+ HiLink highlight default link <args> +else + command -nargs=+ HiLink highlight link <args> +endif + +HiLink clojureConstant Constant +HiLink clojureBoolean Boolean +HiLink clojureCharacter Character +HiLink clojureKeyword Operator +HiLink clojureNumber Number +HiLink clojureRational Number +HiLink clojureFloat Float +HiLink clojureString String +HiLink clojurePattern Constant + +HiLink clojureVariable Identifier +HiLink clojureCond Conditional +HiLink clojureDefine Define +HiLink clojureException Exception +HiLink clojureFunc Function +HiLink clojureMacro Macro +HiLink clojureRepeat Repeat + +HiLink clojureQuote Special +HiLink clojureUnquote Special +HiLink clojureDispatch Special +HiLink clojureAnonArg Special +HiLink clojureVarArg Special +HiLink clojureSpecial Special + +HiLink clojureComment Comment +HiLink clojureTodo Todo + +HiLink clojureError Error + +HiLink clojureParen0 Delimiter + +if exists("g:clj_paren_rainbow") && g:clj_paren_rainbow != 0 + if &background == "dark" + highlight default clojureParen1 ctermfg=yellow guifg=orange1 + highlight default clojureParen2 ctermfg=green guifg=yellow1 + highlight default clojureParen3 ctermfg=cyan guifg=greenyellow + highlight default clojureParen4 ctermfg=magenta guifg=green1 + highlight default clojureParen5 ctermfg=red guifg=springgreen1 + highlight default clojureParen6 ctermfg=yellow guifg=cyan1 + highlight default clojureParen7 ctermfg=green guifg=slateblue1 + highlight default clojureParen8 ctermfg=cyan guifg=magenta1 + highlight default clojureParen9 ctermfg=magenta guifg=purple1 + else + highlight default clojureParen1 ctermfg=darkyellow guifg=orangered3 + highlight default clojureParen2 ctermfg=darkgreen guifg=orange2 + highlight default clojureParen3 ctermfg=blue guifg=yellow3 + highlight default clojureParen4 ctermfg=darkmagenta guifg=olivedrab4 + highlight default clojureParen5 ctermfg=red guifg=green4 + highlight default clojureParen6 ctermfg=darkyellow guifg=paleturquoise3 + highlight default clojureParen7 ctermfg=darkgreen guifg=deepskyblue4 + highlight default clojureParen8 ctermfg=blue guifg=darkslateblue + highlight default clojureParen9 ctermfg=darkmagenta guifg=darkviolet + endif +endif + +delcommand HiLink + +let b:current_syntax = "clojure" diff --git a/dotfiles/.vim/syntax/galaxy.vim b/dotfiles/.vim/syntax/galaxy.vim @@ -0,0 +1,2325 @@ +" SC2 Galaxy Language Syntax File +" Language: Galaxy +" Maintainer: Bill 'jb55' Casarin <jb@jb55.com> +" Last Change: March 3, 2010 + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Basics {{{ +syn keyword galStatement goto break return continue asm +syn keyword galLabel case default +syn keyword galConditional if else switch +syn keyword galRepeat while for do + +syn keyword galType int char void float double +syn keyword galType fixed byte bool string text +syn keyword galBoolean true false + +syn keyword galStorageClass static const + +" }}} + +" Struct {{{ +syn keyword galStructure abilcmd actor actorscope animtarget bank +syn keyword galStructure camerainfo color doodad handle marker +syn keyword galStructure order playergroup point region revealer +syn keyword galStructure sound soundlink timer transmissionsource +syn keyword galStructure trigger unit unitfilter unitgroup unitref +syn keyword galStructure aifilter wave waveinfo wavetarget +" }}} + +" Built-in Functions {{{ + +if !exists("b:galaxy_no_builtins") + syn keyword galFunction ACos + syn keyword galFunction AIAddBully + syn keyword galFunction AIAddDetectionDanger + syn keyword galFunction AIAddHealer + syn keyword galFunction AIAddStringInt + syn keyword galFunction AIAddToExtraScoutGroup + syn keyword galFunction AIAllyEnemyRatio + syn keyword galFunction AIAnyAllyAttacking + syn keyword galFunction AIAnyAllyNeedsDefending + syn keyword galFunction AIAnyWorkersFleeingNearby + syn keyword galFunction AIAttackWaveAddEscortType + syn keyword galFunction AIAttackWaveAddEscortUnit + syn keyword galFunction AIAttackWaveAddUnits + syn keyword galFunction AIAttackWaveAddWaypoint + syn keyword galFunction AIAttackWaveCancel + syn keyword galFunction AIAttackWaveClearWaypoints + syn keyword galFunction AIAttackWaveSend + syn keyword galFunction AIAttackWaveSetGatherEarlyNoReplace + syn keyword galFunction AIAttackWaveSetGatherPoint + syn keyword galFunction AIAttackWaveSetKeepAlive + syn keyword galFunction AIAttackWaveSetTargetEscort + syn keyword galFunction AIAttackWaveSetTargetEscortNL + syn keyword galFunction AIAttackWaveSetTargetGatherD + syn keyword galFunction AIAttackWaveSetTargetGatherO + syn keyword galFunction AIAttackWaveSetTargetMelee + syn keyword galFunction AIAttackWaveSetTargetMeleeDefend + syn keyword galFunction AIAttackWaveSetTargetMeleeDrop + syn keyword galFunction AIAttackWaveSetTargetMeleeHarass + syn keyword galFunction AIAttackWaveSetTargetMerge + syn keyword galFunction AIAttackWaveSetTargetPatrol + syn keyword galFunction AIAttackWaveSetTargetPlayer + syn keyword galFunction AIAttackWaveSetTargetPoint + syn keyword galFunction AIAttackWaveSetTargetRegion + syn keyword galFunction AIAttackWaveSetTargetUnit + syn keyword galFunction AIAttackWaveSetTargetUnitGroup + syn keyword galFunction AIAttackWaveSetTargetUnitPoint + syn keyword galFunction AIAttackWaveUseGroup + syn keyword galFunction AIAttackWaveUseUnit + syn keyword galFunction AIBaseThink + syn keyword galFunction AIBestAllyAttackPoint + syn keyword galFunction AIBestAllyDefendPoint + syn keyword galFunction AIBestTargetPoint + syn keyword galFunction AIBuild + syn keyword galFunction AICast + syn keyword galFunction AICastCooldown + syn keyword galFunction AICastFlee + syn keyword galFunction AIChooseSubState + syn keyword galFunction AIClearAllBullies + syn keyword galFunction AIClearBuildQueue + syn keyword galFunction AIClearCampaignScout + syn keyword galFunction AIClearCloakedAttacker + syn keyword galFunction AIClearLimitTech + syn keyword galFunction AIClearResearchQueue + syn keyword galFunction AIClearStock + syn keyword galFunction AIClearTrainQueue + syn keyword galFunction AICloakEvaluate + syn keyword galFunction AICombatDiffFlagCatSortBuildingsPrio + syn keyword galFunction AICombatDiffFlagCatSpecialHighPrio + syn keyword galFunction AICombatDiffFlagCatSplashHighPrio + syn keyword galFunction AICombatDiffFlagCatTimedLowPrio + syn keyword galFunction AICombatDiffFlagCatWorkersNormalPrio + syn keyword galFunction AICombatDiffFlagTieBreakBonusDamage + syn keyword galFunction AICombatDiffFlagTieBreakDetector + syn keyword galFunction AICombatDiffFlagTieBreakHealers + syn keyword galFunction AICombatDiffFlagTieBreakInjured + syn keyword galFunction AICombatDiffFlagTieBreakLowHP + syn keyword galFunction AICombatDiffFlagTieBreakRange + syn keyword galFunction AIControlForceToMove + syn keyword galFunction AIControlForceUnburrow + syn keyword galFunction AIControlWantsToBurrow + syn keyword galFunction AIControlWantsToMove + syn keyword galFunction AIControlWantsToUnburrow + syn keyword galFunction AICounterUnitSetup + syn keyword galFunction AICounterUnitsAnyTech + syn keyword galFunction AICounterUnitsSameTech + syn keyword galFunction AIDeclareTown + syn keyword galFunction AIDefaultCombatPriority + syn keyword galFunction AIDefaultEconomy + syn keyword galFunction AIDefaultExpansion + syn keyword galFunction AIDefaultGetFirstMissingReq + syn keyword galFunction AIDefaultGetFirstUnfinishedReq + syn keyword galFunction AIDefaultGetFullMakeTime + syn keyword galFunction AIDefaultGetMaker + syn keyword galFunction AIDefaultGetObjectType + syn keyword galFunction AIDefaultSuspectDetectionDanger + syn keyword galFunction AIDefenseThreat + syn keyword galFunction AIDisableAllScouting + syn keyword galFunction AIEnableStock + syn keyword galFunction AIEvalAllAllied + syn keyword galFunction AIEvalLargestEnemy + syn keyword galFunction AIEvalRatio + syn keyword galFunction AIEvalSetCustomIndex + syn keyword galFunction AIEvalTacticalData + syn keyword galFunction AIExpand + syn keyword galFunction AIFilter + syn keyword galFunction AIFilterCasters + syn keyword galFunction AIFilterGathering + syn keyword galFunction AIFilterPathable + syn keyword galFunction AIFilterProduction + syn keyword galFunction AIFindDropAttackTarget + syn keyword galFunction AIFindUnits + syn keyword galFunction AIGetAirStartLocs + syn keyword galFunction AIGetAirTownLocs + syn keyword galFunction AIGetAllEscorts + syn keyword galFunction AIGetAllEscortsGroup + syn keyword galFunction AIGetBaseName + syn keyword galFunction AIGetBestCreepSpot + syn keyword galFunction AIGetBestTarget + syn keyword galFunction AIGetBestUserAllyHelpLocation + syn keyword galFunction AIGetBuildAtName + syn keyword galFunction AIGetBuildingCountInTown + syn keyword galFunction AIGetBuildingGroup + syn keyword galFunction AIGetBullyType + syn keyword galFunction AIGetCloakedAttacker + syn keyword galFunction AIGetClosestTown + syn keyword galFunction AIGetClosestUnit + syn keyword galFunction AIGetCurPeonCount + syn keyword galFunction AIGetDifficulty + syn keyword galFunction AIGetFilterGroup + syn keyword galFunction AIGetFlag + syn keyword galFunction AIGetGasAmountLeft + syn keyword galFunction AIGetGatherDefLocation + syn keyword galFunction AIGetGatherLocation + syn keyword galFunction AIGetGroundStartLocs + syn keyword galFunction AIGetGroundTownLocs + syn keyword galFunction AIGetHomePosition + syn keyword galFunction AIGetMainTown + syn keyword galFunction AIGetMaxPeonCount + syn keyword galFunction AIGetMinPeonCount + syn keyword galFunction AIGetMineralAmountLeft + syn keyword galFunction AIGetMineralNumSpots + syn keyword galFunction AIGetNextDropTimeCheck + syn keyword galFunction AIGetNextScoutLoc + syn keyword galFunction AIGetNextUnusedTownSlot + syn keyword galFunction AIGetNumAllies + syn keyword galFunction AIGetNumEnemies + syn keyword galFunction AIGetNumMobileTransports + syn keyword galFunction AIGetObstruction + syn keyword galFunction AIGetPlayerGroup + syn keyword galFunction AIGetRallyPoint + syn keyword galFunction AIGetRawGasNumSpots + syn keyword galFunction AIGetTime + syn keyword galFunction AIGetTotalStartLocs + syn keyword galFunction AIGetTotalTownLocs + syn keyword galFunction AIGetTownEstablishedTime + syn keyword galFunction AIGetTownLocation + syn keyword galFunction AIGetTownState + syn keyword galFunction AIGetTownThreats + syn keyword galFunction AIGetUnitsInWavesWithTarget + syn keyword galFunction AIGetUserInt + syn keyword galFunction AIGetUserString + syn keyword galFunction AIGivingUp + syn keyword galFunction AIGlobalSuicide + syn keyword galFunction AIGoodGame + syn keyword galFunction AIGrabUnit + syn keyword galFunction AIHarvest + syn keyword galFunction AIHarvestBonus + syn keyword galFunction AIHarvestRate + syn keyword galFunction AIHasHumanAlly + syn keyword galFunction AIHasNearbyOpenExpansion + syn keyword galFunction AIHasRes + syn keyword galFunction AIHasStock + syn keyword galFunction AIHasStockFromTown + syn keyword galFunction AIImportantTech + syn keyword galFunction AIInitCampaignHarvest + syn keyword galFunction AIInitCampaignTowns + syn keyword galFunction AIIsCampaign + syn keyword galFunction AIIsFollowingUnit + syn keyword galFunction AIIsIgnoredByWave + syn keyword galFunction AIIsNotUsableInWaves + syn keyword galFunction AIIsScriptControlled + syn keyword galFunction AIIsSuicideUnit + syn keyword galFunction AIIsTownFull + syn keyword galFunction AIIsTownHarvestRunning + syn keyword galFunction AIKnownUnitCount + syn keyword galFunction AILastAttack + syn keyword galFunction AILastAttackRatio + syn keyword galFunction AILastAttackStartEval + syn keyword galFunction AILastAttacker + syn keyword galFunction AILastDropGoal + syn keyword galFunction AILastDropLocation + syn keyword galFunction AILastWaveEvalStaticRatio + syn keyword galFunction AILimitStockLarva + syn keyword galFunction AILimitTech + syn keyword galFunction AIMakeAlways + syn keyword galFunction AIMakeOnce + syn keyword galFunction AINearbyPlaneTest + syn keyword galFunction AINearbyUnits + syn keyword galFunction AINearestTownBullyRebuild + syn keyword galFunction AINearestTownLimitWaveGather + syn keyword galFunction AINewChooseSubState + syn keyword galFunction AINewTechStock + syn keyword galFunction AIOfferNewScout + syn keyword galFunction AIPathingCostMap + syn keyword galFunction AIPathingCostUnit + syn keyword galFunction AIPlacementNearbyFindTest + syn keyword galFunction AIRandomSpawnPoint + syn keyword galFunction AIRandomVal + syn keyword galFunction AIRemoveGroupFromAnyWaves + syn keyword galFunction AIRemoveGroupFromAnyWavesAndSetHome + syn keyword galFunction AIRemoveStockFromTown + syn keyword galFunction AIRemoveUnitFromAnyWaves + syn keyword galFunction AIRemoveUnitFromAnyWavesAndSetHome + syn keyword galFunction AIReqAddSpecialMaker + syn keyword galFunction AIReqCountAsBuiltObject + syn keyword galFunction AIResearch + syn keyword galFunction AIResetBullyRebuildCountsInRegion + syn keyword galFunction AIResetCounterUnits + syn keyword galFunction AIResetUserData + syn keyword galFunction AISameCommand + syn keyword galFunction AISawCloakedUnit + syn keyword galFunction AIScout + syn keyword galFunction AISelfDefenseThreatEval + syn keyword galFunction AISetAPM + syn keyword galFunction AISetAllStates + syn keyword galFunction AISetBullyAttackWavePercent + syn keyword galFunction AISetCooldown + syn keyword galFunction AISetCreepBuilding + syn keyword galFunction AISetDifficulty + syn keyword galFunction AISetFilterAlliance + syn keyword galFunction AISetFilterBehaviorCount + syn keyword galFunction AISetFilterBits + syn keyword galFunction AISetFilterCanAttackAlly + syn keyword galFunction AISetFilterCanAttackEnemy + syn keyword galFunction AISetFilterEnergy + syn keyword galFunction AISetFilterLife + syn keyword galFunction AISetFilterLifeLost + syn keyword galFunction AISetFilterLifeMod + syn keyword galFunction AISetFilterLifePerMarker + syn keyword galFunction AISetFilterLifePercent + syn keyword galFunction AISetFilterLifeSortReference + syn keyword galFunction AISetFilterMarker + syn keyword galFunction AISetFilterPlane + syn keyword galFunction AISetFilterRange + syn keyword galFunction AISetFilterSelf + syn keyword galFunction AISetFilterShields + syn keyword galFunction AISetFlag + syn keyword galFunction AISetGasPeonCountOverride + syn keyword galFunction AISetGeneralRebuildCount + syn keyword galFunction AISetGroupNotUsableInWaves + syn keyword galFunction AISetGroupScriptControlled + syn keyword galFunction AISetGroupSuicide + syn keyword galFunction AISetIgnoredByWave + syn keyword galFunction AISetMainTown + syn keyword galFunction AISetMaxBestAttackersLimit + syn keyword galFunction AISetMinimumBullyCount + syn keyword galFunction AISetNextDropTimeCheck + syn keyword galFunction AISetNukeCloak + syn keyword galFunction AISetNukeCloakAbilLink + syn keyword galFunction AISetNukeCloakCost + syn keyword galFunction AISetNukeCloakRegenRate + syn keyword galFunction AISetNukeDamage + syn keyword galFunction AISetNukeGhost + syn keyword galFunction AISetNukeNukeAbilLink + syn keyword galFunction AISetNukeNukeCastTime + syn keyword galFunction AISetNukeNukeEffect + syn keyword galFunction AISetNukeRadiusClose + syn keyword galFunction AISetNukeRadiusFar + syn keyword galFunction AISetNukeRadiusMedium + syn keyword galFunction AISetNumScouts + syn keyword galFunction AISetPowerBuilding + syn keyword galFunction AISetScoutTimes + syn keyword galFunction AISetSpecificRebuildCount + syn keyword galFunction AISetSpecificState + syn keyword galFunction AISetStock + syn keyword galFunction AISetStockEx + syn keyword galFunction AISetStockExpand + syn keyword galFunction AISetStockExtra + syn keyword galFunction AISetStockFarms + syn keyword galFunction AISetStockOpt + syn keyword galFunction AISetStockPeons + syn keyword galFunction AISetStockTechNext + syn keyword galFunction AISetStockTown + syn keyword galFunction AISetStockUnitNext + syn keyword galFunction AISetSubStateChance + syn keyword galFunction AISetTacticalAttackTargetPoint + syn keyword galFunction AISetTacticalAttackTargetUnit + syn keyword galFunction AISetUnitNotUsableInWaves + syn keyword galFunction AISetUnitScriptControlled + syn keyword galFunction AISetUnitSuicide + syn keyword galFunction AISetUserInt + syn keyword galFunction AISetUserString + syn keyword galFunction AISetWantsMultipleTransport + syn keyword galFunction AISetWantsToUpgrade + syn keyword galFunction AIShouldHelpUserAlly + syn keyword galFunction AIStart + syn keyword galFunction AIState + syn keyword galFunction AITactCooldownAllow + syn keyword galFunction AITechCount + syn keyword galFunction AITechCountFixupEither + syn keyword galFunction AITechCountFixupInOrder + syn keyword galFunction AITechCountFixupSingle + syn keyword galFunction AITechFlag + syn keyword galFunction AITechStockAdd + syn keyword galFunction AITimeIsPaused + syn keyword galFunction AITimePause + syn keyword galFunction AIToggleBulliesInRegion + syn keyword galFunction AITrain + syn keyword galFunction AITransportIgnore + syn keyword galFunction AITransportSetPanic + syn keyword galFunction AITransportSetReturn + syn keyword galFunction AIUnitAreaEvalRatio + syn keyword galFunction AIUnitGetWave + syn keyword galFunction AIUnitGroupGetValidOrder + syn keyword galFunction AIUnitGroupStrength + syn keyword galFunction AIUnitIsInCombat + syn keyword galFunction AIUpdateMainTown + syn keyword galFunction AIWantsMultipleTransport + syn keyword galFunction AIWaveAddUnit + syn keyword galFunction AIWaveAddUnitPriority + syn keyword galFunction AIWaveCreate + syn keyword galFunction AIWaveDelete + syn keyword galFunction AIWaveDetectorCount + syn keyword galFunction AIWaveEval + syn keyword galFunction AIWaveEvalRatio + syn keyword galFunction AIWaveGet + syn keyword galFunction AIWaveGetTarget + syn keyword galFunction AIWaveGetTimeInCombat + syn keyword galFunction AIWaveGetTimeSinceCombat + syn keyword galFunction AIWaveGetTimeSinceOrdered + syn keyword galFunction AIWaveGetTimeSinceRetreat + syn keyword galFunction AIWaveGetUnits + syn keyword galFunction AIWaveGetUserData + syn keyword galFunction AIWaveGoal + syn keyword galFunction AIWaveHarassRetreat + syn keyword galFunction AIWaveInfo + syn keyword galFunction AIWaveInfoAdd + syn keyword galFunction AIWaveInfoAttack + syn keyword galFunction AIWaveInfoCreate + syn keyword galFunction AIWaveInfoScout + syn keyword galFunction AIWaveInfoSuicide + syn keyword galFunction AIWaveIsInCombat + syn keyword galFunction AIWaveMerge + syn keyword galFunction AIWaveMergeMelee + syn keyword galFunction AIWaveRemoveUnit + syn keyword galFunction AIWaveSet + syn keyword galFunction AIWaveSetType + syn keyword galFunction AIWaveSetUserData + syn keyword galFunction AIWaveState + syn keyword galFunction AIWaveTargetAddWaypoint + syn keyword galFunction AIWaveTargetClearWaypoints + syn keyword galFunction AIWaveTargetEscort + syn keyword galFunction AIWaveTargetEscortNL + syn keyword galFunction AIWaveTargetGatherD + syn keyword galFunction AIWaveTargetGatherDPoint + syn keyword galFunction AIWaveTargetGatherO + syn keyword galFunction AIWaveTargetGatherOPoint + syn keyword galFunction AIWaveTargetGetUnit + syn keyword galFunction AIWaveTargetGetUnitGroup + syn keyword galFunction AIWaveTargetMelee + syn keyword galFunction AIWaveTargetMeleeDefend + syn keyword galFunction AIWaveTargetMeleeDrop + syn keyword galFunction AIWaveTargetMeleeHarass + syn keyword galFunction AIWaveTargetMerge + syn keyword galFunction AIWaveTargetPatrol + syn keyword galFunction AIWaveTargetPlayer + syn keyword galFunction AIWaveTargetPoint + syn keyword galFunction AIWaveTargetRegion + syn keyword galFunction AIWaveTargetUnit + syn keyword galFunction AIWaveTargetUnitGroup + syn keyword galFunction AIWaveTargetUnitPoint + syn keyword galFunction AIWaveToString + syn keyword galFunction AIWaveToText + syn keyword galFunction AIWaveType + syn keyword galFunction AIWaveUnitCount + syn keyword galFunction ASin + syn keyword galFunction ATan + syn keyword galFunction ATan2 + syn keyword galFunction AbilityClass + syn keyword galFunction AbilityCommand + syn keyword galFunction AbilityCommandGetAbility + syn keyword galFunction AbilityCommandGetAction + syn keyword galFunction AbilityCommandGetCommand + syn keyword galFunction AbsF + syn keyword galFunction AbsI + syn keyword galFunction AchievementAward + syn keyword galFunction AchievementErase + syn keyword galFunction AchievementPanelSetVisible + syn keyword galFunction AchievementTermQuantitySet + syn keyword galFunction AchievementsDisable + syn keyword galFunction ActorCreate + syn keyword galFunction ActorFrom + syn keyword galFunction ActorFromActor + syn keyword galFunction ActorFromDoodad + syn keyword galFunction ActorFromPortrait + syn keyword galFunction ActorFromScope + syn keyword galFunction ActorGetText + syn keyword galFunction ActorLookAtStart + syn keyword galFunction ActorLookAtStop + syn keyword galFunction ActorLookAtTypeStart + syn keyword galFunction ActorLookAtTypeStop + syn keyword galFunction ActorRefGet + syn keyword galFunction ActorRefSet + syn keyword galFunction ActorRegionCreate + syn keyword galFunction ActorRegionSend + syn keyword galFunction ActorScopeCreate + syn keyword galFunction ActorScopeFrom + syn keyword galFunction ActorScopeFromActor + syn keyword galFunction ActorScopeFromPortrait + syn keyword galFunction ActorScopeFromUnit + syn keyword galFunction ActorScopeGetText + syn keyword galFunction ActorScopeKill + syn keyword galFunction ActorScopeOrphan + syn keyword galFunction ActorScopeRefGet + syn keyword galFunction ActorScopeRefSet + syn keyword galFunction ActorScopeSend + syn keyword galFunction ActorSend + syn keyword galFunction ActorSendTo + syn keyword galFunction ActorTextureGroupApplyGlobal + syn keyword galFunction ActorTextureGroupRemoveGlobal + syn keyword galFunction ActorWorldParticleFXDestroy + syn keyword galFunction AngleBetweenPoints + syn keyword galFunction BankDeleteCampaignBanks + syn keyword galFunction BankExists + syn keyword galFunction BankKeyCount + syn keyword galFunction BankKeyExists + syn keyword galFunction BankKeyName + syn keyword galFunction BankKeyRemove + syn keyword galFunction BankLastCreated + syn keyword galFunction BankLastRestoredUnit + syn keyword galFunction BankLoad + syn keyword galFunction BankName + syn keyword galFunction BankPlayer + syn keyword galFunction BankRemove + syn keyword galFunction BankSave + syn keyword galFunction BankSectionCount + syn keyword galFunction BankSectionExists + syn keyword galFunction BankSectionName + syn keyword galFunction BankSectionRemove + syn keyword galFunction BankValueGetAsFixed + syn keyword galFunction BankValueGetAsFlag + syn keyword galFunction BankValueGetAsInt + syn keyword galFunction BankValueGetAsPoint + syn keyword galFunction BankValueGetAsString + syn keyword galFunction BankValueGetAsText + syn keyword galFunction BankValueGetAsUnit + syn keyword galFunction BankValueIsType + syn keyword galFunction BankValueSetFromFixed + syn keyword galFunction BankValueSetFromFlag + syn keyword galFunction BankValueSetFromInt + syn keyword galFunction BankValueSetFromPoint + syn keyword galFunction BankValueSetFromString + syn keyword galFunction BankValueSetFromText + syn keyword galFunction BankValueSetFromUnit + syn keyword galFunction BattleReportAddAchievement + syn keyword galFunction BattleReportCreate + syn keyword galFunction BattleReportDestroy + syn keyword galFunction BattleReportLastCreated + syn keyword galFunction BattleReportPanelGetSelectedBattleReport + syn keyword galFunction BattleReportPanelSetSelectedBattleReport + syn keyword galFunction BattleReportSetAchievementTitle + syn keyword galFunction BattleReportSetBestTimeText + syn keyword galFunction BattleReportSetBonusText + syn keyword galFunction BattleReportSetBonusTitle + syn keyword galFunction BattleReportSetButtonImage + syn keyword galFunction BattleReportSetButtonText + syn keyword galFunction BattleReportSetDifficultyLevelBestTimeText + syn keyword galFunction BattleReportSetDifficultyLevelCompleted + syn keyword galFunction BattleReportSetMissionImage + syn keyword galFunction BattleReportSetMissionText + syn keyword galFunction BattleReportSetObjectiveText + syn keyword galFunction BattleReportSetObjectiveTitle + syn keyword galFunction BattleReportSetPriority + syn keyword galFunction BattleReportSetResearchText + syn keyword galFunction BattleReportSetResearchTitle + syn keyword galFunction BattleReportSetSceneImage + syn keyword galFunction BattleReportSetSceneText + syn keyword galFunction BattleReportSetState + syn keyword galFunction BattleReportSetWorldText + syn keyword galFunction BoardCreate + syn keyword galFunction BoardDestroy + syn keyword galFunction BoardItemSetAlignment + syn keyword galFunction BoardItemSetBackgroundColor + syn keyword galFunction BoardItemSetFontSize + syn keyword galFunction BoardItemSetIcon + syn keyword galFunction BoardItemSetProgressColor + syn keyword galFunction BoardItemSetProgressRange + syn keyword galFunction BoardItemSetProgressShow + syn keyword galFunction BoardItemSetProgressValue + syn keyword galFunction BoardItemSetSortValue + syn keyword galFunction BoardItemSetText + syn keyword galFunction BoardItemSetTextColor + syn keyword galFunction BoardLastCreated + syn keyword galFunction BoardMinimizeEnable + syn keyword galFunction BoardMinimizeSetColor + syn keyword galFunction BoardMinimizeSetState + syn keyword galFunction BoardMinimizeShow + syn keyword galFunction BoardPlayerAdd + syn keyword galFunction BoardPlayerRemove + syn keyword galFunction BoardRowSetGroup + syn keyword galFunction BoardSetColumnCount + syn keyword galFunction BoardSetColumnWidth + syn keyword galFunction BoardSetGroupCount + syn keyword galFunction BoardSetName + syn keyword galFunction BoardSetPlayerColumn + syn keyword galFunction BoardSetRowCount + syn keyword galFunction BoardSetState + syn keyword galFunction BoardShowAll + syn keyword galFunction BoardSort + syn keyword galFunction BoardTitleSetAlignment + syn keyword galFunction BoardTitleSetClickable + syn keyword galFunction BoardTitleSetColor + syn keyword galFunction BoardTitleSetIcon + syn keyword galFunction BoardTitleSetText + syn keyword galFunction BoardTitleShow + syn keyword galFunction BoolToInt + syn keyword galFunction CameraApplyInfo + syn keyword galFunction CameraClearChannel + syn keyword galFunction CameraClearChannelOnPortrait + syn keyword galFunction CameraFollowUnitGroup + syn keyword galFunction CameraForceMouseRelative + syn keyword galFunction CameraGetPitch + syn keyword galFunction CameraGetTarget + syn keyword galFunction CameraGetYaw + syn keyword galFunction CameraInfoDefault + syn keyword galFunction CameraInfoFromId + syn keyword galFunction CameraInfoGetTarget + syn keyword galFunction CameraInfoGetValue + syn keyword galFunction CameraInfoSetTarget + syn keyword galFunction CameraInfoSetValue + syn keyword galFunction CameraLockInput + syn keyword galFunction CameraLookAt + syn keyword galFunction CameraLookAtActor + syn keyword galFunction CameraLookAtUnit + syn keyword galFunction CameraPan + syn keyword galFunction CameraRestore + syn keyword galFunction CameraSave + syn keyword galFunction CameraSetBounds + syn keyword galFunction CameraSetChannel + syn keyword galFunction CameraSetChannelOnPortrait + syn keyword galFunction CameraSetMouseRotates + syn keyword galFunction CameraSetMouseRotationSpeed + syn keyword galFunction CameraSetValue + syn keyword galFunction CameraSetVerticalFieldOfView + syn keyword galFunction CameraShakeStart + syn keyword galFunction CameraShakeStop + syn keyword galFunction CameraUseHeightDisplacement + syn keyword galFunction CameraUseHeightSmoothing + syn keyword galFunction CameraUseModel + syn keyword galFunction CampaignInitAI + syn keyword galFunction CampaignMode + syn keyword galFunction CampaignProgressSetCampaignFinished + syn keyword galFunction CampaignProgressSetImageFilePath + syn keyword galFunction CampaignProgressSetText + syn keyword galFunction CampaignProgressSetTutorialFinished + syn keyword galFunction CatalogEntryClass + syn keyword galFunction CatalogEntryCount + syn keyword galFunction CatalogEntryGet + syn keyword galFunction CatalogEntryIsValid + syn keyword galFunction CatalogEntryParent + syn keyword galFunction CatalogEntryScope + syn keyword galFunction CatalogFieldCount + syn keyword galFunction CatalogFieldGet + syn keyword galFunction CatalogFieldIsArray + syn keyword galFunction CatalogFieldIsScope + syn keyword galFunction CatalogFieldType + syn keyword galFunction CatalogFieldValueCount + syn keyword galFunction CatalogFieldValueGet + syn keyword galFunction CatalogFieldValueSet + syn keyword galFunction CharacterSheetPanelSetDescriptionText + syn keyword galFunction CharacterSheetPanelSetNameText + syn keyword galFunction CharacterSheetPanelSetPortraitModelLink + syn keyword galFunction CinematicDataRun + syn keyword galFunction CinematicDataStop + syn keyword galFunction CinematicFade + syn keyword galFunction CinematicMode + syn keyword galFunction CinematicOverlay + syn keyword galFunction CliffLevel + syn keyword galFunction Color + syn keyword galFunction Color255FromFixed + syn keyword galFunction ColorFromIndex + syn keyword galFunction ColorGetComponent + syn keyword galFunction ColorWithAlpha + syn keyword galFunction ConsoleCommand + syn keyword galFunction ConversationCreate + syn keyword galFunction ConversationDataActiveCamera + syn keyword galFunction ConversationDataActiveSound + syn keyword galFunction ConversationDataCanRun + syn keyword galFunction ConversationDataChoiceCount + syn keyword galFunction ConversationDataChoiceGetPicked + syn keyword galFunction ConversationDataChoiceGetPickedCount + syn keyword galFunction ConversationDataChoiceGetState + syn keyword galFunction ConversationDataChoiceId + syn keyword galFunction ConversationDataChoiceSetPicked + syn keyword galFunction ConversationDataChoiceSetPickedCount + syn keyword galFunction ConversationDataChoiceSetState + syn keyword galFunction ConversationDataLineCount + syn keyword galFunction ConversationDataLineGetPickedCount + syn keyword galFunction ConversationDataLineId + syn keyword galFunction ConversationDataLineSetPickedCount + syn keyword galFunction ConversationDataLoadNodeState + syn keyword galFunction ConversationDataLoadStateValues + syn keyword galFunction ConversationDataPreloadLines + syn keyword galFunction ConversationDataRegisterCamera + syn keyword galFunction ConversationDataRegisterPortrait + syn keyword galFunction ConversationDataRegisterUnit + syn keyword galFunction ConversationDataResetNodeState + syn keyword galFunction ConversationDataResetStateValues + syn keyword galFunction ConversationDataRun + syn keyword galFunction ConversationDataSaveNodeState + syn keyword galFunction ConversationDataSaveStateValues + syn keyword galFunction ConversationDataStateAbilCmd + syn keyword galFunction ConversationDataStateAttachPoint + syn keyword galFunction ConversationDataStateFixedValue + syn keyword galFunction ConversationDataStateGetValue + syn keyword galFunction ConversationDataStateImageEdge + syn keyword galFunction ConversationDataStateImagePath + syn keyword galFunction ConversationDataStateIndex + syn keyword galFunction ConversationDataStateIndexCount + syn keyword galFunction ConversationDataStateModel + syn keyword galFunction ConversationDataStateMoviePath + syn keyword galFunction ConversationDataStateName + syn keyword galFunction ConversationDataStateSetValue + syn keyword galFunction ConversationDataStateText + syn keyword galFunction ConversationDataStateUpgrade + syn keyword galFunction ConversationDataStop + syn keyword galFunction ConversationDestroy + syn keyword galFunction ConversationDestroyAll + syn keyword galFunction ConversationLastCreated + syn keyword galFunction ConversationReplyCreate + syn keyword galFunction ConversationReplyDestroy + syn keyword galFunction ConversationReplyDestroyAll + syn keyword galFunction ConversationReplyGetIndex + syn keyword galFunction ConversationReplyGetState + syn keyword galFunction ConversationReplyGetText + syn keyword galFunction ConversationReplyLastCreated + syn keyword galFunction ConversationReplySetState + syn keyword galFunction ConversationReplySetText + syn keyword galFunction ConversationShow + syn keyword galFunction ConversationVisible + syn keyword galFunction Cos + syn keyword galFunction CreepAdjacent + syn keyword galFunction CreepIsPresent + syn keyword galFunction CreepModify + syn keyword galFunction CreepSetSpeed + syn keyword galFunction DataTableClear + syn keyword galFunction DataTableGetAIFilter + syn keyword galFunction DataTableGetAbilCmd + syn keyword galFunction DataTableGetActor + syn keyword galFunction DataTableGetActorScope + syn keyword galFunction DataTableGetBank + syn keyword galFunction DataTableGetBool + syn keyword galFunction DataTableGetByte + syn keyword galFunction DataTableGetCameraInfo + syn keyword galFunction DataTableGetCinematic + syn keyword galFunction DataTableGetColor + syn keyword galFunction DataTableGetControl + syn keyword galFunction DataTableGetConversation + syn keyword galFunction DataTableGetDialog + syn keyword galFunction DataTableGetDoodad + syn keyword galFunction DataTableGetFixed + syn keyword galFunction DataTableGetInt + syn keyword galFunction DataTableGetMarker + syn keyword galFunction DataTableGetObjective + syn keyword galFunction DataTableGetOrder + syn keyword galFunction DataTableGetPing + syn keyword galFunction DataTableGetPlanet + syn keyword galFunction DataTableGetPlayerGroup + syn keyword galFunction DataTableGetPoint + syn keyword galFunction DataTableGetPortrait + syn keyword galFunction DataTableGetRegion + syn keyword galFunction DataTableGetReply + syn keyword galFunction DataTableGetRevealer + syn keyword galFunction DataTableGetRoom + syn keyword galFunction DataTableGetSound + syn keyword galFunction DataTableGetSoundLink + syn keyword galFunction DataTableGetString + syn keyword galFunction DataTableGetText + syn keyword galFunction DataTableGetTimer + syn keyword galFunction DataTableGetTransmission + syn keyword galFunction DataTableGetTransmissionSource + syn keyword galFunction DataTableGetTrigger + syn keyword galFunction DataTableGetUnit + syn keyword galFunction DataTableGetUnitFilter + syn keyword galFunction DataTableGetUnitGroup + syn keyword galFunction DataTableGetUnitRef + syn keyword galFunction DataTableGetWave + syn keyword galFunction DataTableGetWaveInfo + syn keyword galFunction DataTableGetWaveTarget + syn keyword galFunction DataTableSetAIFilter + syn keyword galFunction DataTableSetAbilCmd + syn keyword galFunction DataTableSetActor + syn keyword galFunction DataTableSetActorScope + syn keyword galFunction DataTableSetBank + syn keyword galFunction DataTableSetBool + syn keyword galFunction DataTableSetByte + syn keyword galFunction DataTableSetCameraInfo + syn keyword galFunction DataTableSetCinematic + syn keyword galFunction DataTableSetColor + syn keyword galFunction DataTableSetControl + syn keyword galFunction DataTableSetConversation + syn keyword galFunction DataTableSetDialog + syn keyword galFunction DataTableSetDoodad + syn keyword galFunction DataTableSetFixed + syn keyword galFunction DataTableSetInt + syn keyword galFunction DataTableSetMarker + syn keyword galFunction DataTableSetObjective + syn keyword galFunction DataTableSetOrder + syn keyword galFunction DataTableSetPing + syn keyword galFunction DataTableSetPlanet + syn keyword galFunction DataTableSetPlayerGroup + syn keyword galFunction DataTableSetPoint + syn keyword galFunction DataTableSetPortrait + syn keyword galFunction DataTableSetRegion + syn keyword galFunction DataTableSetReply + syn keyword galFunction DataTableSetRevealer + syn keyword galFunction DataTableSetRoom + syn keyword galFunction DataTableSetSound + syn keyword galFunction DataTableSetSoundLink + syn keyword galFunction DataTableSetString + syn keyword galFunction DataTableSetText + syn keyword galFunction DataTableSetTimer + syn keyword galFunction DataTableSetTransmission + syn keyword galFunction DataTableSetTransmissionSource + syn keyword galFunction DataTableSetTrigger + syn keyword galFunction DataTableSetUnit + syn keyword galFunction DataTableSetUnitFilter + syn keyword galFunction DataTableSetUnitGroup + syn keyword galFunction DataTableSetUnitRef + syn keyword galFunction DataTableSetWave + syn keyword galFunction DataTableSetWaveInfo + syn keyword galFunction DataTableSetWaveTarget + syn keyword galFunction DataTableValueCount + syn keyword galFunction DataTableValueExists + syn keyword galFunction DataTableValueName + syn keyword galFunction DataTableValueRemove + syn keyword galFunction DataTableValueType + syn keyword galFunction DebugDump + syn keyword galFunction DebugFixed + syn keyword galFunction DebugInt + syn keyword galFunction DebugPoint + syn keyword galFunction DebugString + syn keyword galFunction DebugUnit + syn keyword galFunction DialogClearSubtitlePositionOverride + syn keyword galFunction DialogControlAddItem + syn keyword galFunction DialogControlCreate + syn keyword galFunction DialogControlCreateFromTemplate + syn keyword galFunction DialogControlDestroy + syn keyword galFunction DialogControlDestroyAll + syn keyword galFunction DialogControlFadeTransparency + syn keyword galFunction DialogControlGetAnchor + syn keyword galFunction DialogControlGetHeight + syn keyword galFunction DialogControlGetItemCount + syn keyword galFunction DialogControlGetOffsetX + syn keyword galFunction DialogControlGetOffsetY + syn keyword galFunction DialogControlGetPropertyAsBool + syn keyword galFunction DialogControlGetPropertyAsColor + syn keyword galFunction DialogControlGetPropertyAsControl + syn keyword galFunction DialogControlGetPropertyAsFixed + syn keyword galFunction DialogControlGetPropertyAsInt + syn keyword galFunction DialogControlGetPropertyAsString + syn keyword galFunction DialogControlGetPropertyAsText + syn keyword galFunction DialogControlGetRelativeAnchor + syn keyword galFunction DialogControlGetRelativeControl + syn keyword galFunction DialogControlGetSelectedItem + syn keyword galFunction DialogControlGetType + syn keyword galFunction DialogControlGetWidth + syn keyword galFunction DialogControlInvokeAsString + syn keyword galFunction DialogControlInvokeAsText + syn keyword galFunction DialogControlIsEnabled + syn keyword galFunction DialogControlIsFullDialog + syn keyword galFunction DialogControlIsVisible + syn keyword galFunction DialogControlLastCreated + syn keyword galFunction DialogControlRemoveAllItems + syn keyword galFunction DialogControlRemoveItem + syn keyword galFunction DialogControlSelectItem + syn keyword galFunction DialogControlSetEnabled + syn keyword galFunction DialogControlSetFullDialog + syn keyword galFunction DialogControlSetPosition + syn keyword galFunction DialogControlSetPositionRelative + syn keyword galFunction DialogControlSetPropertyAsBool + syn keyword galFunction DialogControlSetPropertyAsColor + syn keyword galFunction DialogControlSetPropertyAsControl + syn keyword galFunction DialogControlSetPropertyAsFixed + syn keyword galFunction DialogControlSetPropertyAsInt + syn keyword galFunction DialogControlSetPropertyAsString + syn keyword galFunction DialogControlSetPropertyAsText + syn keyword galFunction DialogControlSetSize + syn keyword galFunction DialogControlSetVisible + syn keyword galFunction DialogCreate + syn keyword galFunction DialogDestroy + syn keyword galFunction DialogDestroyAll + syn keyword galFunction DialogGetAnchor + syn keyword galFunction DialogGetChannel + syn keyword galFunction DialogGetHeight + syn keyword galFunction DialogGetImage + syn keyword galFunction DialogGetOffsetX + syn keyword galFunction DialogGetOffsetY + syn keyword galFunction DialogGetRelativeAnchor + syn keyword galFunction DialogGetRelativeDialog + syn keyword galFunction DialogGetTitle + syn keyword galFunction DialogGetTransparency + syn keyword galFunction DialogGetWidth + syn keyword galFunction DialogIsFullscreen + syn keyword galFunction DialogIsImageVisible + syn keyword galFunction DialogIsModal + syn keyword galFunction DialogIsOffscreen + syn keyword galFunction DialogIsVisible + syn keyword galFunction DialogLastCreated + syn keyword galFunction DialogSetChannel + syn keyword galFunction DialogSetFullscreen + syn keyword galFunction DialogSetImage + syn keyword galFunction DialogSetImageVisible + syn keyword galFunction DialogSetOffscreen + syn keyword galFunction DialogSetPosition + syn keyword galFunction DialogSetPositionRelative + syn keyword galFunction DialogSetSize + syn keyword galFunction DialogSetSubtitlePositionOverride + syn keyword galFunction DialogSetTitle + syn keyword galFunction DialogSetTransparency + syn keyword galFunction DialogSetVisible + syn keyword galFunction DifficultyAPM + syn keyword galFunction DifficultyEnabled + syn keyword galFunction DifficultyName + syn keyword galFunction DifficultyNameCampaign + syn keyword galFunction DistanceBetweenPoints + syn keyword galFunction DoodadFromId + syn keyword galFunction EngineReset + syn keyword galFunction EnvironmentShow + syn keyword galFunction EventBattleReportPanelDifficultySelected + syn keyword galFunction EventBattleReportPanelMissionSelected + syn keyword galFunction EventBattleReportPanelSceneSelected + syn keyword galFunction EventButtonPressed + syn keyword galFunction EventCameraMoveReason + syn keyword galFunction EventChatMessage + syn keyword galFunction EventConversation + syn keyword galFunction EventConversationReply + syn keyword galFunction EventConversationState + syn keyword galFunction EventCustomDialogResult + syn keyword galFunction EventDialogControl + syn keyword galFunction EventDialogControlEventType + syn keyword galFunction EventGameMenuItemSelected + syn keyword galFunction EventKeyAlt + syn keyword galFunction EventKeyControl + syn keyword galFunction EventKeyPressed + syn keyword galFunction EventKeyShift + syn keyword galFunction EventMouseClickedButton + syn keyword galFunction EventMouseClickedPosXUI + syn keyword galFunction EventMouseClickedPosXWorld + syn keyword galFunction EventMouseClickedPosYUI + syn keyword galFunction EventMouseClickedPosYWorld + syn keyword galFunction EventMouseClickedPosZWorld + syn keyword galFunction EventPlanetPanelDifficultySelected + syn keyword galFunction EventPlanetPanelMissionSelected + syn keyword galFunction EventPlayer + syn keyword galFunction EventPlayerProperty + syn keyword galFunction EventPurchaseMade + syn keyword galFunction EventRoomPanelButtonPressed + syn keyword galFunction EventTimer + syn keyword galFunction EventUnit + syn keyword galFunction EventUnitAbility + syn keyword galFunction EventUnitAbilityStage + syn keyword galFunction EventUnitAttributePoints + syn keyword galFunction EventUnitBehavior + syn keyword galFunction EventUnitCargo + syn keyword galFunction EventUnitCreatedAbil + syn keyword galFunction EventUnitCreatedBehavior + syn keyword galFunction EventUnitCreatedUnit + syn keyword galFunction EventUnitDamageAmount + syn keyword galFunction EventUnitDamageDeathCheck + syn keyword galFunction EventUnitDamageEffect + syn keyword galFunction EventUnitDamageSourcePlayer + syn keyword galFunction EventUnitDamageSourcePoint + syn keyword galFunction EventUnitDamageSourceUnit + syn keyword galFunction EventUnitOrder + syn keyword galFunction EventUnitPowerupUnit + syn keyword galFunction EventUnitProgressObjectType + syn keyword galFunction EventUnitProgressUnit + syn keyword galFunction EventUnitRegion + syn keyword galFunction EventUnitTarget + syn keyword galFunction EventUnitTargetPoint + syn keyword galFunction EventUnitTargetUnit + syn keyword galFunction EventUnitXPDelta + syn keyword galFunction EventVictoryPanelDifficultySelected + syn keyword galFunction FixedToInt + syn keyword galFunction FixedToString + syn keyword galFunction FixedToText + syn keyword galFunction FogSetColor + syn keyword galFunction FogSetDensity + syn keyword galFunction FogSetEnabled + syn keyword galFunction FogSetFallOff + syn keyword galFunction FogSetStartHeight + syn keyword galFunction FormatDuration + syn keyword galFunction FormatNumber + syn keyword galFunction GameAddChargeRegen + syn keyword galFunction GameAddChargeUsed + syn keyword galFunction GameAddCooldown + syn keyword galFunction GameAttributeGameValue + syn keyword galFunction GameAttributePlayerValue + syn keyword galFunction GameDestroyEffects + syn keyword galFunction GameGetAbsoluteTimeRemaining + syn keyword galFunction GameGetAbsoluteTimeRemainingPaused + syn keyword galFunction GameGetChargeRegen + syn keyword galFunction GameGetChargeUsed + syn keyword galFunction GameGetCooldown + syn keyword galFunction GameGetSpeed + syn keyword galFunction GameGetSpeedValue + syn keyword galFunction GameGetSpeedValueMinimum + syn keyword galFunction GameIsDebugOptionSet + syn keyword galFunction GameIsSeedLocked + syn keyword galFunction GameIsSpeedLocked + syn keyword galFunction GameIsTestMap + syn keyword galFunction GameIsTransitionMap + syn keyword galFunction GameMapDescription + syn keyword galFunction GameMapName + syn keyword galFunction GameOver + syn keyword galFunction GamePauseAllCharges + syn keyword galFunction GamePauseAllCooldowns + syn keyword galFunction GameSaveCreate + syn keyword galFunction GameSetAbsoluteTimeRemaining + syn keyword galFunction GameSetAbsoluteTimeRemainingPaused + syn keyword galFunction GameSetBackground + syn keyword galFunction GameSetLighting + syn keyword galFunction GameSetNextMap + syn keyword galFunction GameSetSeedLocked + syn keyword galFunction GameSetSpeedLocked + syn keyword galFunction GameSetSpeedValue + syn keyword galFunction GameSetSpeedValueMinimum + syn keyword galFunction GameSetToDLighting + syn keyword galFunction GameSetTransitionMap + syn keyword galFunction GameTerrainSet + syn keyword galFunction GameTimeOfDayGet + syn keyword galFunction GameTimeOfDayGetLength + syn keyword galFunction GameTimeOfDayIsPaused + syn keyword galFunction GameTimeOfDayPause + syn keyword galFunction GameTimeOfDaySet + syn keyword galFunction GameTimeOfDaySetLength + syn keyword galFunction GameWaitForResourcesToComplete + syn keyword galFunction HelpPanelAddHint + syn keyword galFunction HelpPanelAddTip + syn keyword galFunction HelpPanelAddTutorial + syn keyword galFunction HelpPanelDisplayPage + syn keyword galFunction HelpPanelEnableTechGlossaryButton + syn keyword galFunction HelpPanelEnableTechTreeButton + syn keyword galFunction HelpPanelShowTechTreeRace + syn keyword galFunction IntLoopBegin + syn keyword galFunction IntLoopCurrent + syn keyword galFunction IntLoopDone + syn keyword galFunction IntLoopEnd + syn keyword galFunction IntLoopStep + syn keyword galFunction IntToFixed + syn keyword galFunction IntToString + syn keyword galFunction IntToText + syn keyword galFunction MakeMsgAnimBracketResume + syn keyword galFunction MakeMsgAnimBracketStart + syn keyword galFunction MakeMsgAnimBracketStop + syn keyword galFunction MakeMsgAnimGroupApply + syn keyword galFunction MakeMsgAnimGroupRemove + syn keyword galFunction MakeMsgAnimPlay + syn keyword galFunction MakeMsgRefCreate + syn keyword galFunction MakeMsgRefSetFromRequest + syn keyword galFunction MakeMsgRefTableDump + syn keyword galFunction MakeMsgSetPhysicsState + syn keyword galFunction MakeMsgTextureSelectByMatch + syn keyword galFunction MakeMsgTextureSelectBySlot + syn keyword galFunction MakeMsgTextureVideoPlay + syn keyword galFunction MakeMsgTextureVideoSetFrame + syn keyword galFunction MakeMsgTextureVideoSetPaused + syn keyword galFunction MakeMsgTextureVideoSetTime + syn keyword galFunction MakeMsgTextureVideoStop + syn keyword galFunction MakeMsgTransition + syn keyword galFunction Marker + syn keyword galFunction MarkerCastingPlayer + syn keyword galFunction MarkerCastingUnit + syn keyword galFunction MarkerGetCastingPlayer + syn keyword galFunction MarkerGetCastingUnit + syn keyword galFunction MarkerGetMatchFlag + syn keyword galFunction MarkerGetMismatchFlag + syn keyword galFunction MarkerSetCastingPlayer + syn keyword galFunction MarkerSetCastingUnit + syn keyword galFunction MarkerSetMatchFlag + syn keyword galFunction MarkerSetMismatchFlag + syn keyword galFunction MaxF + syn keyword galFunction MaxI + syn keyword galFunction MeleeGetOption + syn keyword galFunction MeleeInitAI + syn keyword galFunction MeleeInitOptions + syn keyword galFunction MeleeInitResources + syn keyword galFunction MeleeInitResourcesForPlayer + syn keyword galFunction MeleeInitUnits + syn keyword galFunction MeleeInitUnitsForPlayer + syn keyword galFunction MeleeSetOption + syn keyword galFunction MercenaryCreate + syn keyword galFunction MercenaryDestroy + syn keyword galFunction MercenaryGetSelected + syn keyword galFunction MercenaryIsRecentlyPurchased + syn keyword galFunction MercenaryLastCreated + syn keyword galFunction MercenaryPurchase + syn keyword galFunction MercenarySetAvailabilityText + syn keyword galFunction MercenarySetCost + syn keyword galFunction MercenarySetCostText + syn keyword galFunction MercenarySetDescriptionText + syn keyword galFunction MercenarySetImageFilePath + syn keyword galFunction MercenarySetModelLink + syn keyword galFunction MercenarySetPlayerGroup + syn keyword galFunction MercenarySetRecentlyPurchased + syn keyword galFunction MercenarySetScenePath + syn keyword galFunction MercenarySetSelected + syn keyword galFunction MercenarySetSpecialText + syn keyword galFunction MercenarySetState + syn keyword galFunction MercenarySetTitleText + syn keyword galFunction MercenarySetTooltipText + syn keyword galFunction MercenarySetUnitText + syn keyword galFunction MinF + syn keyword galFunction MinI + syn keyword galFunction MinimapPing + syn keyword galFunction ModF + syn keyword galFunction ModI + syn keyword galFunction ModelAnimationLoad + syn keyword galFunction ModelAnimationUnload + syn keyword galFunction MovieAddSubTitle + syn keyword galFunction MovieAddSubTitleText + syn keyword galFunction MovieAddTriggerFunction + syn keyword galFunction MoviePlayAfterGame + syn keyword galFunction MovieStartRecording + syn keyword galFunction MovieStopRecording + syn keyword galFunction ObjectiveCreate + syn keyword galFunction ObjectiveCreate3 + syn keyword galFunction ObjectiveDestroy + syn keyword galFunction ObjectiveDestroyAll + syn keyword galFunction ObjectiveGetDescription + syn keyword galFunction ObjectiveGetName + syn keyword galFunction ObjectiveGetPlayerGroup + syn keyword galFunction ObjectiveGetPrimary + syn keyword galFunction ObjectiveGetState + syn keyword galFunction ObjectiveLastCreated + syn keyword galFunction ObjectiveSetDescription + syn keyword galFunction ObjectiveSetName + syn keyword galFunction ObjectiveSetPlayerGroup + syn keyword galFunction ObjectiveSetPrimary + syn keyword galFunction ObjectiveSetState + syn keyword galFunction ObjectiveShow + syn keyword galFunction ObjectiveVisible + syn keyword galFunction Order + syn keyword galFunction OrderGetAbilityCommand + syn keyword galFunction OrderGetFlag + syn keyword galFunction OrderGetPlayer + syn keyword galFunction OrderGetTargetItem + syn keyword galFunction OrderGetTargetPoint + syn keyword galFunction OrderGetTargetPosition + syn keyword galFunction OrderGetTargetType + syn keyword galFunction OrderGetTargetUnit + syn keyword galFunction OrderSetAbilityCommand + syn keyword galFunction OrderSetAutoCast + syn keyword galFunction OrderSetFlag + syn keyword galFunction OrderSetPlayer + syn keyword galFunction OrderSetTargetItem + syn keyword galFunction OrderSetTargetPassenger + syn keyword galFunction OrderSetTargetPlacement + syn keyword galFunction OrderSetTargetPoint + syn keyword galFunction OrderSetTargetUnit + syn keyword galFunction OrderTargetingItem + syn keyword galFunction OrderTargetingPoint + syn keyword galFunction OrderTargetingRelativePoint + syn keyword galFunction OrderTargetingUnit + syn keyword galFunction OrderTargetingUnitGroup + syn keyword galFunction PathingModify + syn keyword galFunction PathingReset + syn keyword galFunction PathingUpdate + syn keyword galFunction PerfTestGetFPS + syn keyword galFunction PerfTestStart + syn keyword galFunction PerfTestStop + syn keyword galFunction PingCreate + syn keyword galFunction PingDestroy + syn keyword galFunction PingDestroyAll + syn keyword galFunction PingGetColor + syn keyword galFunction PingGetDuration + syn keyword galFunction PingGetPlayerGroup + syn keyword galFunction PingGetPosition + syn keyword galFunction PingGetRotation + syn keyword galFunction PingGetScale + syn keyword galFunction PingGetTooltip + syn keyword galFunction PingGetUnit + syn keyword galFunction PingIsVisible + syn keyword galFunction PingLastCreated + syn keyword galFunction PingSetColor + syn keyword galFunction PingSetDuration + syn keyword galFunction PingSetModel + syn keyword galFunction PingSetPlayerGroup + syn keyword galFunction PingSetPosition + syn keyword galFunction PingSetRotation + syn keyword galFunction PingSetScale + syn keyword galFunction PingSetTooltip + syn keyword galFunction PingSetUnit + syn keyword galFunction PingSetVisible + syn keyword galFunction PlanetClearSelected + syn keyword galFunction PlanetCreate + syn keyword galFunction PlanetDestroy + syn keyword galFunction PlanetDestroyAll + syn keyword galFunction PlanetGetSelected + syn keyword galFunction PlanetLastCreated + syn keyword galFunction PlanetPanelGetContactButtonState + syn keyword galFunction PlanetPanelSetBackButtonEnabled + syn keyword galFunction PlanetPanelSetBackgroundImage + syn keyword galFunction PlanetPanelSetContactButtonState + syn keyword galFunction PlanetSetBackgroundModelLink + syn keyword galFunction PlanetSetBonusText + syn keyword galFunction PlanetSetBonusTitle + syn keyword galFunction PlanetSetContactModelLink + syn keyword galFunction PlanetSetContactName + syn keyword galFunction PlanetSetContactTitle + syn keyword galFunction PlanetSetContactTooltipText + syn keyword galFunction PlanetSetDescriptionText + syn keyword galFunction PlanetSetMissionName + syn keyword galFunction PlanetSetMissionTitle + syn keyword galFunction PlanetSetPlanetModelLink + syn keyword galFunction PlanetSetPlanetName + syn keyword galFunction PlanetSetPlanetText + syn keyword galFunction PlanetSetPlayerGroup + syn keyword galFunction PlanetSetPrimaryObjectiveText + syn keyword galFunction PlanetSetPrimaryObjectiveTitle + syn keyword galFunction PlanetSetResearchText + syn keyword galFunction PlanetSetResearchTitle + syn keyword galFunction PlanetSetRewardText + syn keyword galFunction PlanetSetRewardTitle + syn keyword galFunction PlanetSetSecondaryObjectiveText + syn keyword galFunction PlanetSetSecondaryObjectiveTitle + syn keyword galFunction PlanetSetSelected + syn keyword galFunction PlanetSetState + syn keyword galFunction PlanetSetTechnologyIconFilePath + syn keyword galFunction PlanetSetTechnologyName + syn keyword galFunction PlanetSetTechnologyText + syn keyword galFunction PlanetSetTechnologyTitle + syn keyword galFunction PlanetSetTechnologyTooltipText + syn keyword galFunction PlanetSetTechnologyUnitLink + syn keyword galFunction PlanetSetTooltipText + syn keyword galFunction PlayerAddChargeRegen + syn keyword galFunction PlayerAddChargeUsed + syn keyword galFunction PlayerAddCooldown + syn keyword galFunction PlayerBeaconAlert + syn keyword galFunction PlayerBeaconClearTarget + syn keyword galFunction PlayerBeaconGetTargetPoint + syn keyword galFunction PlayerBeaconGetTargetUnit + syn keyword galFunction PlayerBeaconIsAutoCast + syn keyword galFunction PlayerBeaconIsFromUser + syn keyword galFunction PlayerBeaconIsSet + syn keyword galFunction PlayerBeaconSetAutoCast + syn keyword galFunction PlayerBeaconSetTargetPoint + syn keyword galFunction PlayerBeaconSetTargetUnit + syn keyword galFunction PlayerColorName + syn keyword galFunction PlayerCreateEffectPoint + syn keyword galFunction PlayerCreateEffectUnit + syn keyword galFunction PlayerDifficulty + syn keyword galFunction PlayerGetAlliance + syn keyword galFunction PlayerGetChargeRegen + syn keyword galFunction PlayerGetChargeUsed + syn keyword galFunction PlayerGetColorIndex + syn keyword galFunction PlayerGetCooldown + syn keyword galFunction PlayerGetPropertyFixed + syn keyword galFunction PlayerGetPropertyInt + syn keyword galFunction PlayerGetState + syn keyword galFunction PlayerGroupActive + syn keyword galFunction PlayerGroupAdd + syn keyword galFunction PlayerGroupAll + syn keyword galFunction PlayerGroupAlliance + syn keyword galFunction PlayerGroupClear + syn keyword galFunction PlayerGroupCopy + syn keyword galFunction PlayerGroupCount + syn keyword galFunction PlayerGroupEmpty + syn keyword galFunction PlayerGroupHasPlayer + syn keyword galFunction PlayerGroupLoopBegin + syn keyword galFunction PlayerGroupLoopCurrent + syn keyword galFunction PlayerGroupLoopDone + syn keyword galFunction PlayerGroupLoopEnd + syn keyword galFunction PlayerGroupLoopStep + syn keyword galFunction PlayerGroupPlayer + syn keyword galFunction PlayerGroupRemove + syn keyword galFunction PlayerGroupSingle + syn keyword galFunction PlayerModifyPropertyFixed + syn keyword galFunction PlayerModifyPropertyInt + syn keyword galFunction PlayerName + syn keyword galFunction PlayerPauseAllCharges + syn keyword galFunction PlayerPauseAllCooldowns + syn keyword galFunction PlayerRace + syn keyword galFunction PlayerScoreValueEnable + syn keyword galFunction PlayerScoreValueGetAsFixed + syn keyword galFunction PlayerScoreValueGetAsInt + syn keyword galFunction PlayerScoreValueSetFromFixed + syn keyword galFunction PlayerScoreValueSetFromInt + syn keyword galFunction PlayerSetAlliance + syn keyword galFunction PlayerSetColorIndex + syn keyword galFunction PlayerSetDifficulty + syn keyword galFunction PlayerSetState + syn keyword galFunction PlayerStartLocation + syn keyword galFunction PlayerStatus + syn keyword galFunction PlayerType + syn keyword galFunction PlayerValidateEffectPoint + syn keyword galFunction PlayerValidateEffectUnit + syn keyword galFunction Point + syn keyword galFunction PointFromId + syn keyword galFunction PointGetFacing + syn keyword galFunction PointGetHeight + syn keyword galFunction PointGetX + syn keyword galFunction PointGetY + syn keyword galFunction PointPathingCliffLevel + syn keyword galFunction PointPathingCost + syn keyword galFunction PointPathingIsConnected + syn keyword galFunction PointPathingPassable + syn keyword galFunction PointReflect + syn keyword galFunction PointSet + syn keyword galFunction PointSetFacing + syn keyword galFunction PointSetHeight + syn keyword galFunction PointWithOffset + syn keyword galFunction PointWithOffsetPolar + syn keyword galFunction PointsInRange + syn keyword galFunction PortraitCreate + syn keyword galFunction PortraitDestroy + syn keyword galFunction PortraitDestroyAll + syn keyword galFunction PortraitForceTransition + syn keyword galFunction PortraitGetGame + syn keyword galFunction PortraitGetPlanetPanel + syn keyword galFunction PortraitLastCreated + syn keyword galFunction PortraitSetAnim + syn keyword galFunction PortraitSetBackgroundVisible + syn keyword galFunction PortraitSetBorderTexture + syn keyword galFunction PortraitSetBorderVisible + syn keyword galFunction PortraitSetCamera + syn keyword galFunction PortraitSetChannel + syn keyword galFunction PortraitSetChannelPortrait + syn keyword galFunction PortraitSetFullscreen + syn keyword galFunction PortraitSetLight + syn keyword galFunction PortraitSetModel + syn keyword galFunction PortraitSetMuted + syn keyword galFunction PortraitSetOffscreen + syn keyword galFunction PortraitSetPaused + syn keyword galFunction PortraitSetPosition + syn keyword galFunction PortraitSetRenderType + syn keyword galFunction PortraitSetSize + syn keyword galFunction PortraitSetTintColor + syn keyword galFunction PortraitSetTransitionModel + syn keyword galFunction PortraitSetVisible + syn keyword galFunction PortraitUseTransition + syn keyword galFunction PortraitVisible + syn keyword galFunction PortraitWaitForLoad + syn keyword galFunction Pow + syn keyword galFunction PowerIsProvidedBy + syn keyword galFunction PowerLevel + syn keyword galFunction PreloadAsset + syn keyword galFunction PreloadImage + syn keyword galFunction PreloadModel + syn keyword galFunction PreloadMovie + syn keyword galFunction PreloadObject + syn keyword galFunction PreloadScene + syn keyword galFunction PreloadScript + syn keyword galFunction PreloadSound + syn keyword galFunction PurchaseCategoryCreate + syn keyword galFunction PurchaseCategoryDestroy + syn keyword galFunction PurchaseCategoryDestroyAll + syn keyword galFunction PurchaseCategoryLastCreated + syn keyword galFunction PurchaseCategorySetNameText + syn keyword galFunction PurchaseCategorySetPlayerGroup + syn keyword galFunction PurchaseCategorySetSlot + syn keyword galFunction PurchaseCategorySetState + syn keyword galFunction PurchaseGetSelectedPurchaseCategory + syn keyword galFunction PurchaseGetSelectedPurchaseItem + syn keyword galFunction PurchaseGroupCreate + syn keyword galFunction PurchaseGroupDestroy + syn keyword galFunction PurchaseGroupDestroyAll + syn keyword galFunction PurchaseGroupLastCreated + syn keyword galFunction PurchaseGroupSetIconFilePath + syn keyword galFunction PurchaseGroupSetNameText + syn keyword galFunction PurchaseGroupSetPlayerGroup + syn keyword galFunction PurchaseGroupSetSlot + syn keyword galFunction PurchaseGroupSetState + syn keyword galFunction PurchaseGroupSetTooltipText + syn keyword galFunction PurchaseGroupSetUnitLink + syn keyword galFunction PurchaseItemCreate + syn keyword galFunction PurchaseItemDestroy + syn keyword galFunction PurchaseItemDestroyAll + syn keyword galFunction PurchaseItemIsRecentlyPurchased + syn keyword galFunction PurchaseItemLastCreated + syn keyword galFunction PurchaseItemPurchase + syn keyword galFunction PurchaseItemSetCost + syn keyword galFunction PurchaseItemSetDescriptionText + syn keyword galFunction PurchaseItemSetIconFilePath + syn keyword galFunction PurchaseItemSetMovieFilePath + syn keyword galFunction PurchaseItemSetNameText + syn keyword galFunction PurchaseItemSetPlayerGroup + syn keyword galFunction PurchaseItemSetRecentlyPurchased + syn keyword galFunction PurchaseItemSetSlot + syn keyword galFunction PurchaseItemSetState + syn keyword galFunction PurchaseItemSetTooltipText + syn keyword galFunction PurchaseSetSelectedPurchaseCategory + syn keyword galFunction PurchaseSetSelectedPurchaseItem + syn keyword galFunction RandomFixed + syn keyword galFunction RandomInt + syn keyword galFunction RegionAddCircle + syn keyword galFunction RegionAddRect + syn keyword galFunction RegionAddRegion + syn keyword galFunction RegionAttachToUnit + syn keyword galFunction RegionCircle + syn keyword galFunction RegionContainsPoint + syn keyword galFunction RegionEmpty + syn keyword galFunction RegionEntireMap + syn keyword galFunction RegionFromId + syn keyword galFunction RegionGetAttachUnit + syn keyword galFunction RegionGetBoundsMax + syn keyword galFunction RegionGetBoundsMin + syn keyword galFunction RegionGetCenter + syn keyword galFunction RegionGetOffset + syn keyword galFunction RegionPlayableMap + syn keyword galFunction RegionPlayableMapSet + syn keyword galFunction RegionRandomPoint + syn keyword galFunction RegionRect + syn keyword galFunction RegionSetCenter + syn keyword galFunction RegionSetOffset + syn keyword galFunction ResearchCategoryCreate + syn keyword galFunction ResearchCategoryDestroy + syn keyword galFunction ResearchCategoryDestroyAll + syn keyword galFunction ResearchCategoryLastCreated + syn keyword galFunction ResearchCategorySetCurrentLevel + syn keyword galFunction ResearchCategorySetLastLevel + syn keyword galFunction ResearchCategorySetNameText + syn keyword galFunction ResearchCategorySetPlayerGroup + syn keyword galFunction ResearchCategorySetSlot + syn keyword galFunction ResearchItemCreate + syn keyword galFunction ResearchItemDestroy + syn keyword galFunction ResearchItemDestroyAll + syn keyword galFunction ResearchItemGetSelected + syn keyword galFunction ResearchItemIsRecentlyPurchased + syn keyword galFunction ResearchItemLastCreated + syn keyword galFunction ResearchItemPurchase + syn keyword galFunction ResearchItemSetConfirmationText + syn keyword galFunction ResearchItemSetDescriptionText + syn keyword galFunction ResearchItemSetIconFilePath + syn keyword galFunction ResearchItemSetMovieFilePath + syn keyword galFunction ResearchItemSetNameText + syn keyword galFunction ResearchItemSetPlayerGroup + syn keyword galFunction ResearchItemSetRecentlyPurchased + syn keyword galFunction ResearchItemSetSelected + syn keyword galFunction ResearchItemSetSlot + syn keyword galFunction ResearchItemSetState + syn keyword galFunction ResearchItemSetTooltipText + syn keyword galFunction ResearchTierCreate + syn keyword galFunction ResearchTierDestroy + syn keyword galFunction ResearchTierDestroyAll + syn keyword galFunction ResearchTierLastCreated + syn keyword galFunction ResearchTierSetMaxPurchasesAllowed + syn keyword galFunction ResearchTierSetPlayerGroup + syn keyword galFunction ResearchTierSetRequiredLevel + syn keyword galFunction ResearchTierSetSlot + syn keyword galFunction RestartGame + syn keyword galFunction RoomPanelAddButton + syn keyword galFunction RoomPanelLastAdded + syn keyword galFunction RoomPanelRemoveAllButtons + syn keyword galFunction RoomPanelRemoveButton + syn keyword galFunction RoomPanelSetButtonEnabled + syn keyword galFunction RoomPanelSetButtonPressedIcon + syn keyword galFunction RoomPanelSetPositionUnit + syn keyword galFunction RoomPanelShowRoomButton + syn keyword galFunction SelectMainShadowLight + syn keyword galFunction SetNextMissionDifficulty + syn keyword galFunction Sin + syn keyword galFunction SoundAttachUnit + syn keyword galFunction SoundChannelMute + syn keyword galFunction SoundChannelPause + syn keyword galFunction SoundChannelSetVolume + syn keyword galFunction SoundChannelStop + syn keyword galFunction SoundLastPlayed + syn keyword galFunction SoundLengthQuery + syn keyword galFunction SoundLengthQueryWait + syn keyword galFunction SoundLengthSync + syn keyword galFunction SoundLink + syn keyword galFunction SoundLinkAsset + syn keyword galFunction SoundLinkId + syn keyword galFunction SoundPlay + syn keyword galFunction SoundPlayAtPoint + syn keyword galFunction SoundPlayOnUnit + syn keyword galFunction SoundPlayScene + syn keyword galFunction SoundPlaySceneFile + syn keyword galFunction SoundSetFactors + syn keyword galFunction SoundSetOffset + syn keyword galFunction SoundSetPosition + syn keyword galFunction SoundSetReverb + syn keyword galFunction SoundSetVolume + syn keyword galFunction SoundStop + syn keyword galFunction SoundStopAllModelSounds + syn keyword galFunction SoundStopAllTriggerSounds + syn keyword galFunction SoundSubtitleText + syn keyword galFunction SoundWait + syn keyword galFunction SoundtrackDefault + syn keyword galFunction SoundtrackPause + syn keyword galFunction SoundtrackPlay + syn keyword galFunction SoundtrackSetContinuous + syn keyword galFunction SoundtrackSetDelay + syn keyword galFunction SoundtrackSetShuffle + syn keyword galFunction SoundtrackStop + syn keyword galFunction SoundtrackWait + syn keyword galFunction SquareRoot + syn keyword galFunction StoryMode + syn keyword galFunction StorySetChange + syn keyword galFunction StringCase + syn keyword galFunction StringContains + syn keyword galFunction StringEqual + syn keyword galFunction StringExternal + syn keyword galFunction StringFind + syn keyword galFunction StringLength + syn keyword galFunction StringReplace + syn keyword galFunction StringReplaceWord + syn keyword galFunction StringSub + syn keyword galFunction StringToFixed + syn keyword galFunction StringToInt + syn keyword galFunction StringToText + syn keyword galFunction StringWord + syn keyword galFunction Tan + syn keyword galFunction TechTreeAbilityAllow + syn keyword galFunction TechTreeAbilityCount + syn keyword galFunction TechTreeAbilityIsAllowed + syn keyword galFunction TechTreeBehaviorAllow + syn keyword galFunction TechTreeBehaviorCount + syn keyword galFunction TechTreeBehaviorIsAllowed + syn keyword galFunction TechTreeBehaviorProducedAbilCmd + syn keyword galFunction TechTreeBehaviorProducedAbilCmdCount + syn keyword galFunction TechTreeRequirementsEnable + syn keyword galFunction TechTreeRequirementsEnabled + syn keyword galFunction TechTreeRestrictionsEnable + syn keyword galFunction TechTreeRestrictionsEnabled + syn keyword galFunction TechTreeUnitAliasCount + syn keyword galFunction TechTreeUnitAllow + syn keyword galFunction TechTreeUnitCount + syn keyword galFunction TechTreeUnitCountEx + syn keyword galFunction TechTreeUnitHelp + syn keyword galFunction TechTreeUnitHelpDefault + syn keyword galFunction TechTreeUnitIsAllowed + syn keyword galFunction TechTreeUnitProducedAbilCmd + syn keyword galFunction TechTreeUnitProducedAbilCmdCount + syn keyword galFunction TechTreeUnitProducesUnit + syn keyword galFunction TechTreeUnitProducesUnitCount + syn keyword galFunction TechTreeUnitProducesUpgrade + syn keyword galFunction TechTreeUnitProducesUpgradeCount + syn keyword galFunction TechTreeUpgradeAddLevel + syn keyword galFunction TechTreeUpgradeAllow + syn keyword galFunction TechTreeUpgradeCount + syn keyword galFunction TechTreeUpgradeIsAllowed + syn keyword galFunction TechTreeUpgradeProducedAbilCmd + syn keyword galFunction TechTreeUpgradeProducedAbilCmdCount + syn keyword galFunction TerrainShowRegion + syn keyword galFunction TextCase + syn keyword galFunction TextReplaceWord + syn keyword galFunction TextTagAttachToUnit + syn keyword galFunction TextTagAttachToUnitPoint + syn keyword galFunction TextTagCreate + syn keyword galFunction TextTagDestroy + syn keyword galFunction TextTagFogofWar + syn keyword galFunction TextTagLastCreated + syn keyword galFunction TextTagPause + syn keyword galFunction TextTagSetAlignment + syn keyword galFunction TextTagSetBackgroundBorderSize + syn keyword galFunction TextTagSetBackgroundImage + syn keyword galFunction TextTagSetBackgroundOffset + syn keyword galFunction TextTagSetColor + syn keyword galFunction TextTagSetEdgeImage + syn keyword galFunction TextTagSetFadedTransparency + syn keyword galFunction TextTagSetFontSize + syn keyword galFunction TextTagSetMaxSize + syn keyword galFunction TextTagSetPosition + syn keyword galFunction TextTagSetText + syn keyword galFunction TextTagSetTextAlignment + syn keyword galFunction TextTagSetTextShadow + syn keyword galFunction TextTagSetTime + syn keyword galFunction TextTagSetVelocity + syn keyword galFunction TextTagShow + syn keyword galFunction TextTagShowBackground + syn keyword galFunction TextTagVisible + syn keyword galFunction TextTimeFormat + syn keyword galFunction TextWithColor + syn keyword galFunction TextureGetSlotComponent + syn keyword galFunction TextureGetSlotName + syn keyword galFunction TimerCreate + syn keyword galFunction TimerGetDuration + syn keyword galFunction TimerGetElapsed + syn keyword galFunction TimerGetRemaining + syn keyword galFunction TimerIsPaused + syn keyword galFunction TimerLastStarted + syn keyword galFunction TimerPause + syn keyword galFunction TimerRestart + syn keyword galFunction TimerStart + syn keyword galFunction TimerWindowCreate + syn keyword galFunction TimerWindowDestroy + syn keyword galFunction TimerWindowLastCreated + syn keyword galFunction TimerWindowSetColor + syn keyword galFunction TimerWindowSetFormat + syn keyword galFunction TimerWindowSetGapWidth + syn keyword galFunction TimerWindowSetStyle + syn keyword galFunction TimerWindowSetTimer + syn keyword galFunction TimerWindowSetTitle + syn keyword galFunction TimerWindowShow + syn keyword galFunction TimerWindowVisible + syn keyword galFunction TipAlertPanelClear + syn keyword galFunction TransmissionClear + syn keyword galFunction TransmissionClearAll + syn keyword galFunction TransmissionLastSent + syn keyword galFunction TransmissionSend + syn keyword galFunction TransmissionSource + syn keyword galFunction TransmissionSourceFromModel + syn keyword galFunction TransmissionSourceFromMovie + syn keyword galFunction TransmissionSourceFromUnit + syn keyword galFunction TransmissionSourceFromUnitType + syn keyword galFunction TransmissionWait + syn keyword galFunction TriggerAddEventAbortMission + syn keyword galFunction TriggerAddEventBattleReportPanelExit + syn keyword galFunction TriggerAddEventBattleReportPanelPlayMission + syn keyword galFunction TriggerAddEventBattleReportPanelPlayScene + syn keyword galFunction TriggerAddEventBattleReportPanelSelectionChanged + syn keyword galFunction TriggerAddEventButtonPressed + syn keyword galFunction TriggerAddEventCameraMove + syn keyword galFunction TriggerAddEventChatMessage + syn keyword galFunction TriggerAddEventConversationReplySelected + syn keyword galFunction TriggerAddEventConversationStateChanged + syn keyword galFunction TriggerAddEventCustomDialogDismissed + syn keyword galFunction TriggerAddEventDialogControl + syn keyword galFunction TriggerAddEventGameCreditsFinished + syn keyword galFunction TriggerAddEventGameMenuItemSelected + syn keyword galFunction TriggerAddEventKeyPressed + syn keyword galFunction TriggerAddEventMapInit + syn keyword galFunction TriggerAddEventMercenaryPanelExit + syn keyword galFunction TriggerAddEventMercenaryPanelPurchase + syn keyword galFunction TriggerAddEventMercenaryPanelSelectionChanged + syn keyword galFunction TriggerAddEventMouseClicked + syn keyword galFunction TriggerAddEventMovieFinished + syn keyword galFunction TriggerAddEventMovieFunction + syn keyword galFunction TriggerAddEventMovieStarted + syn keyword galFunction TriggerAddEventPlanetMissionLaunched + syn keyword galFunction TriggerAddEventPlanetMissionSelected + syn keyword galFunction TriggerAddEventPlanetPanelBirthComplete + syn keyword galFunction TriggerAddEventPlanetPanelCanceled + syn keyword galFunction TriggerAddEventPlanetPanelDeathComplete + syn keyword galFunction TriggerAddEventPlanetPanelReplayPressed + syn keyword galFunction TriggerAddEventPlayerAIWave + syn keyword galFunction TriggerAddEventPlayerAllianceChange + syn keyword galFunction TriggerAddEventPlayerLeft + syn keyword galFunction TriggerAddEventPlayerPropChange + syn keyword galFunction TriggerAddEventPurchaseExit + syn keyword galFunction TriggerAddEventPurchaseMade + syn keyword galFunction TriggerAddEventResearchPanelExit + syn keyword galFunction TriggerAddEventResearchPanelPurchase + syn keyword galFunction TriggerAddEventResearchPanelSelectionChanged + syn keyword galFunction TriggerAddEventRoomPanelCanceled + syn keyword galFunction TriggerAddEventRoomPanelMouseRollOut + syn keyword galFunction TriggerAddEventRoomPanelMouseRollOver + syn keyword galFunction TriggerAddEventRoomPanelPressedButton + syn keyword galFunction TriggerAddEventSaveGame + syn keyword galFunction TriggerAddEventSelectedPurchaseCategoryChanged + syn keyword galFunction TriggerAddEventSelectedPurchaseItemChanged + syn keyword galFunction TriggerAddEventTimeElapsed + syn keyword galFunction TriggerAddEventTimePeriodic + syn keyword galFunction TriggerAddEventTimer + syn keyword galFunction TriggerAddEventUnitAbility + syn keyword galFunction TriggerAddEventUnitAcquiredTarget + syn keyword galFunction TriggerAddEventUnitArmMagazineProgress + syn keyword galFunction TriggerAddEventUnitAttacked + syn keyword galFunction TriggerAddEventUnitAttributeChange + syn keyword galFunction TriggerAddEventUnitBecomesIdle + syn keyword galFunction TriggerAddEventUnitCargo + syn keyword galFunction TriggerAddEventUnitClick + syn keyword galFunction TriggerAddEventUnitConstructProgress + syn keyword galFunction TriggerAddEventUnitCreated + syn keyword galFunction TriggerAddEventUnitDamaged + syn keyword galFunction TriggerAddEventUnitDied + syn keyword galFunction TriggerAddEventUnitGainExperience + syn keyword galFunction TriggerAddEventUnitGainLevel + syn keyword galFunction TriggerAddEventUnitHighlight + syn keyword galFunction TriggerAddEventUnitOrder + syn keyword galFunction TriggerAddEventUnitPowerup + syn keyword galFunction TriggerAddEventUnitProperty + syn keyword galFunction TriggerAddEventUnitRange + syn keyword galFunction TriggerAddEventUnitRangePoint + syn keyword galFunction TriggerAddEventUnitRegion + syn keyword galFunction TriggerAddEventUnitRemoved + syn keyword galFunction TriggerAddEventUnitResearchProgress + syn keyword galFunction TriggerAddEventUnitRevive + syn keyword galFunction TriggerAddEventUnitSelected + syn keyword galFunction TriggerAddEventUnitSpecializeProgress + syn keyword galFunction TriggerAddEventUnitStartedAttack + syn keyword galFunction TriggerAddEventUnitTrainProgress + syn keyword galFunction TriggerAddEventVictoryPanelExit + syn keyword galFunction TriggerAddEventVictoryPanelPlayMissionAgain + syn keyword galFunction TriggerCreate + syn keyword galFunction TriggerDebugOutput + syn keyword galFunction TriggerDebugSetTypeColor + syn keyword galFunction TriggerDebugSetTypeFile + syn keyword galFunction TriggerDebugSetTypeName + syn keyword galFunction TriggerDebugWindowOpen + syn keyword galFunction TriggerDestroy + syn keyword galFunction TriggerEnable + syn keyword galFunction TriggerEvaluate + syn keyword galFunction TriggerExecute + syn keyword galFunction TriggerGetCurrent + syn keyword galFunction TriggerGetEvalCount + syn keyword galFunction TriggerGetExecCount + syn keyword galFunction TriggerIsEnabled + syn keyword galFunction TriggerQueueClear + syn keyword galFunction TriggerQueueEnter + syn keyword galFunction TriggerQueueExit + syn keyword galFunction TriggerQueueIsEmpty + syn keyword galFunction TriggerQueuePause + syn keyword galFunction TriggerResetCounts + syn keyword galFunction TriggerSkippableBegin + syn keyword galFunction TriggerSkippableEnd + syn keyword galFunction TriggerStop + syn keyword galFunction TriggerWaitForTrigger + syn keyword galFunction UIAlert + syn keyword galFunction UIAlertClear + syn keyword galFunction UIAlertPoint + syn keyword galFunction UIAlertUnit + syn keyword galFunction UIClearCustomMenuItemList + syn keyword galFunction UIClearMessages + syn keyword galFunction UICustomMenuItemVisible + syn keyword galFunction UIDisplayMessage + syn keyword galFunction UIFrameVisible + syn keyword galFunction UIGameMenuItemVisible + syn keyword galFunction UIHideCinematicText + syn keyword galFunction UIHideTextCrawl + syn keyword galFunction UISetButtonHighlighted + syn keyword galFunction UISetChallengeCompleted + syn keyword galFunction UISetChallengeHighScore + syn keyword galFunction UISetChallengeMode + syn keyword galFunction UISetChallengeScoreText + syn keyword galFunction UISetCommandAllowed + syn keyword galFunction UISetCommandDisallowedMessage + syn keyword galFunction UISetCursorAutoHide + syn keyword galFunction UISetCursorVisible + syn keyword galFunction UISetCustomMenuItemText + syn keyword galFunction UISetCustomMenuItemVisible + syn keyword galFunction UISetFrameVisible + syn keyword galFunction UISetGameMenuItemText + syn keyword galFunction UISetGameMenuItemVisible + syn keyword galFunction UISetMiniMapBackGroundColor + syn keyword galFunction UISetMode + syn keyword galFunction UISetNextLoadingScreen + syn keyword galFunction UISetNextLoadingScreenImageScale + syn keyword galFunction UISetNextLoadingScreenTextPosition + syn keyword galFunction UISetResourceTradeCountdownTime + syn keyword galFunction UISetRestartLoadingScreen + syn keyword galFunction UISetWorldVisible + syn keyword galFunction UIShowCinematicText + syn keyword galFunction UIShowCustomDialog + syn keyword galFunction UIShowCustomMenu + syn keyword galFunction UIShowTextCrawl + syn keyword galFunction UIUnitColorStyleClearOverride + syn keyword galFunction UIUnitColorStyleOverride + syn keyword galFunction UnitAbilityAddChargeRegen + syn keyword galFunction UnitAbilityAddChargeUsed + syn keyword galFunction UnitAbilityAddCooldown + syn keyword galFunction UnitAbilityChangeLevel + syn keyword galFunction UnitAbilityChargeInfo + syn keyword galFunction UnitAbilityCheck + syn keyword galFunction UnitAbilityCount + syn keyword galFunction UnitAbilityEnable + syn keyword galFunction UnitAbilityExists + syn keyword galFunction UnitAbilityGet + syn keyword galFunction UnitAbilityGetChargeRegen + syn keyword galFunction UnitAbilityGetChargeUsed + syn keyword galFunction UnitAbilityGetCooldown + syn keyword galFunction UnitAbilityGetLevel + syn keyword galFunction UnitAbilityMaxLevel + syn keyword galFunction UnitAbilityReset + syn keyword galFunction UnitAbilityShow + syn keyword galFunction UnitAbilitySpend + syn keyword galFunction UnitAddChargeRegen + syn keyword galFunction UnitAddChargeUsed + syn keyword galFunction UnitAddCooldown + syn keyword galFunction UnitAgent + syn keyword galFunction UnitBehaviorAdd + syn keyword galFunction UnitBehaviorAddChargeRegen + syn keyword galFunction UnitBehaviorAddChargeUsed + syn keyword galFunction UnitBehaviorAddCooldown + syn keyword galFunction UnitBehaviorAddPlayer + syn keyword galFunction UnitBehaviorCount + syn keyword galFunction UnitBehaviorCountAll + syn keyword galFunction UnitBehaviorDuration + syn keyword galFunction UnitBehaviorEnabled + syn keyword galFunction UnitBehaviorGet + syn keyword galFunction UnitBehaviorGetChargeRegen + syn keyword galFunction UnitBehaviorGetChargeUsed + syn keyword galFunction UnitBehaviorGetCooldown + syn keyword galFunction UnitBehaviorHasFlag + syn keyword galFunction UnitBehaviorRemove + syn keyword galFunction UnitBehaviorRemoveCategory + syn keyword galFunction UnitBehaviorRemovePlayer + syn keyword galFunction UnitBehaviorSetDuration + syn keyword galFunction UnitBehaviorTransfer + syn keyword galFunction UnitCargo + syn keyword galFunction UnitCargoCreate + syn keyword galFunction UnitCargoGroup + syn keyword galFunction UnitCargoLastCreated + syn keyword galFunction UnitCargoLastCreatedGroup + syn keyword galFunction UnitCargoValue + syn keyword galFunction UnitCheckAbilCmdState + syn keyword galFunction UnitCheckProgressState + syn keyword galFunction UnitClearInfoText + syn keyword galFunction UnitClearSelection + syn keyword galFunction UnitControlGroupAddUnit + syn keyword galFunction UnitControlGroupAddUnits + syn keyword galFunction UnitControlGroupClear + syn keyword galFunction UnitControlGroupRemoveUnit + syn keyword galFunction UnitControlGroupRemoveUnits + syn keyword galFunction UnitCreate + syn keyword galFunction UnitCreateEffectPoint + syn keyword galFunction UnitCreateEffectUnit + syn keyword galFunction UnitFilter + syn keyword galFunction UnitFilterGetState + syn keyword galFunction UnitFilterMatch + syn keyword galFunction UnitFilterSetState + syn keyword galFunction UnitFilterStr + syn keyword galFunction UnitFlashSelection + syn keyword galFunction UnitForceStatusBar + syn keyword galFunction UnitFromId + syn keyword galFunction UnitGetAIOption + syn keyword galFunction UnitGetAttachmentPoint + syn keyword galFunction UnitGetChargeRegen + syn keyword galFunction UnitGetChargeUsed + syn keyword galFunction UnitGetCooldown + syn keyword galFunction UnitGetCustomValue + syn keyword galFunction UnitGetFacing + syn keyword galFunction UnitGetHeight + syn keyword galFunction UnitGetOwner + syn keyword galFunction UnitGetPosition + syn keyword galFunction UnitGetProgressComplete + syn keyword galFunction UnitGetPropertyFixed + syn keyword galFunction UnitGetPropertyInt + syn keyword galFunction UnitGetType + syn keyword galFunction UnitGroup + syn keyword galFunction UnitGroupAdd + syn keyword galFunction UnitGroupAlliance + syn keyword galFunction UnitGroupClear + syn keyword galFunction UnitGroupCopy + syn keyword galFunction UnitGroupCount + syn keyword galFunction UnitGroupEmpty + syn keyword galFunction UnitGroupFilter + syn keyword galFunction UnitGroupFilterAlliance + syn keyword galFunction UnitGroupFilterPlane + syn keyword galFunction UnitGroupFilterPlayer + syn keyword galFunction UnitGroupFilterRegion + syn keyword galFunction UnitGroupFilterThreat + syn keyword galFunction UnitGroupFromId + syn keyword galFunction UnitGroupHasUnit + syn keyword galFunction UnitGroupIdle + syn keyword galFunction UnitGroupIssueOrder + syn keyword galFunction UnitGroupLoopBegin + syn keyword galFunction UnitGroupLoopCurrent + syn keyword galFunction UnitGroupLoopDone + syn keyword galFunction UnitGroupLoopEnd + syn keyword galFunction UnitGroupLoopStep + syn keyword galFunction UnitGroupNearestUnit + syn keyword galFunction UnitGroupRandomUnit + syn keyword galFunction UnitGroupRemove + syn keyword galFunction UnitGroupSelect + syn keyword galFunction UnitGroupSelected + syn keyword galFunction UnitGroupTestPlane + syn keyword galFunction UnitGroupUnit + syn keyword galFunction UnitGroupWaitUntilIdle + syn keyword galFunction UnitHasBehavior + syn keyword galFunction UnitInventoryCount + syn keyword galFunction UnitInventoryCreate + syn keyword galFunction UnitInventoryGroup + syn keyword galFunction UnitInventoryItem + syn keyword galFunction UnitInventoryLastCreated + syn keyword galFunction UnitIsAlive + syn keyword galFunction UnitIsHarvesting + syn keyword galFunction UnitIsSelected + syn keyword galFunction UnitIsValid + syn keyword galFunction UnitIssueOrder + syn keyword galFunction UnitKill + syn keyword galFunction UnitLastCreated + syn keyword galFunction UnitLastCreatedGroup + syn keyword galFunction UnitLevel + syn keyword galFunction UnitLoadModel + syn keyword galFunction UnitMagazineArm + syn keyword galFunction UnitMagazineCount + syn keyword galFunction UnitMarker + syn keyword galFunction UnitMarkerAdd + syn keyword galFunction UnitMarkerCount + syn keyword galFunction UnitMarkerRemove + syn keyword galFunction UnitMoverExists + syn keyword galFunction UnitOrder + syn keyword galFunction UnitOrderCount + syn keyword galFunction UnitOrderHasAbil + syn keyword galFunction UnitOrderIsValid + syn keyword galFunction UnitPauseAll + syn keyword galFunction UnitQueueGetProperty + syn keyword galFunction UnitQueueItemCount + syn keyword galFunction UnitQueueItemGet + syn keyword galFunction UnitQueueItemTime + syn keyword galFunction UnitQueueItemTypeCheck + syn keyword galFunction UnitRallyPoint + syn keyword galFunction UnitRallyPointCount + syn keyword galFunction UnitRallyPointTargetCount + syn keyword galFunction UnitRallyPointTargetPoint + syn keyword galFunction UnitRallyPointTargetUnit + syn keyword galFunction UnitRefFromUnit + syn keyword galFunction UnitRefFromVariable + syn keyword galFunction UnitRefToUnit + syn keyword galFunction UnitRemove + syn keyword galFunction UnitResetSpeed + syn keyword galFunction UnitResetTeamColorIndex + syn keyword galFunction UnitRevive + syn keyword galFunction UnitSelect + syn keyword galFunction UnitSetAIOption + syn keyword galFunction UnitSetCursor + syn keyword galFunction UnitSetCustomValue + syn keyword galFunction UnitSetFacing + syn keyword galFunction UnitSetHeight + syn keyword galFunction UnitSetInfoText + syn keyword galFunction UnitSetOwner + syn keyword galFunction UnitSetPosition + syn keyword galFunction UnitSetProgressComplete + syn keyword galFunction UnitSetProgressStage + syn keyword galFunction UnitSetPropertyFixed + syn keyword galFunction UnitSetPropertyInt + syn keyword galFunction UnitSetScale + syn keyword galFunction UnitSetState + syn keyword galFunction UnitSetTeamColorIndex + syn keyword galFunction UnitStatsStart + syn keyword galFunction UnitStatsStop + syn keyword galFunction UnitTechTreeBehaviorCount + syn keyword galFunction UnitTechTreeUnitCount + syn keyword galFunction UnitTechTreeUpgradeCount + syn keyword galFunction UnitTestPlane + syn keyword galFunction UnitTestState + syn keyword galFunction UnitTransport + syn keyword galFunction UnitTypeAnimationLoad + syn keyword galFunction UnitTypeAnimationUnload + syn keyword galFunction UnitTypeFromString + syn keyword galFunction UnitTypeGetCost + syn keyword galFunction UnitTypeGetName + syn keyword galFunction UnitTypeGetProperty + syn keyword galFunction UnitTypeIsAffectedByUpgrade + syn keyword galFunction UnitTypeTestAttribute + syn keyword galFunction UnitTypeTestFlag + syn keyword galFunction UnitUnloadModel + syn keyword galFunction UnitValidateEffectPoint + syn keyword galFunction UnitValidateEffectUnit + syn keyword galFunction UnitWaitUntilIdle + syn keyword galFunction UnitWeaponAdd + syn keyword galFunction UnitWeaponCheck + syn keyword galFunction UnitWeaponCount + syn keyword galFunction UnitWeaponGet + syn keyword galFunction UnitWeaponIsEnabled + syn keyword galFunction UnitWeaponPeriod + syn keyword galFunction UnitWeaponRemove + syn keyword galFunction UnitWeaponsPlaneTest + syn keyword galFunction UnitXPGainEnable + syn keyword galFunction UnitXPTotal + syn keyword galFunction VictoryPanelAddAchievement + syn keyword galFunction VictoryPanelAddCustomStatisticLine + syn keyword galFunction VictoryPanelAddTrackedStatistic + syn keyword galFunction VictoryPanelClearCustomStatisticTable + syn keyword galFunction VictoryPanelSetAchievementsTitle + syn keyword galFunction VictoryPanelSetCustomStatisticText + syn keyword galFunction VictoryPanelSetCustomStatisticValue + syn keyword galFunction VictoryPanelSetMissionText + syn keyword galFunction VictoryPanelSetMissionTimeText + syn keyword galFunction VictoryPanelSetMissionTimeTitle + syn keyword galFunction VictoryPanelSetMissionTitle + syn keyword galFunction VictoryPanelSetPlanetModelLink + syn keyword galFunction VictoryPanelSetRewardCredits + syn keyword galFunction VictoryPanelSetRewardText + syn keyword galFunction VictoryPanelSetRewardTitle + syn keyword galFunction VictoryPanelSetStatisticsTitle + syn keyword galFunction VisEnable + syn keyword galFunction VisExploreArea + syn keyword galFunction VisIsEnabled + syn keyword galFunction VisRevealArea + syn keyword galFunction VisRevealerCreate + syn keyword galFunction VisRevealerDestroy + syn keyword galFunction VisRevealerEnable + syn keyword galFunction VisRevealerLastCreated + syn keyword galFunction VisRevealerUpdate + syn keyword galFunction Wait + syn keyword galFunction WaterSetState + syn keyword galFunction WaveLastCreated + syn keyword galFunction WorldHeight +endif + +" }}} + +" Constants {{{ + +" Units {{{ +syn keyword galConstant c_NU_HighYieldMinerals +syn keyword galConstant c_NU_VespeneGeyser +syn keyword galConstant c_PU_Archon +syn keyword galConstant c_PU_Carrier +syn keyword galConstant c_PU_Colossus +syn keyword galConstant c_PU_DarkTemplar +syn keyword galConstant c_PU_Disruptor +syn keyword galConstant c_PU_HighTemplar +syn keyword galConstant c_PU_Immortal +syn keyword galConstant c_PU_Mothership +syn keyword galConstant c_PU_Observer +syn keyword galConstant c_PU_Phoenix +syn keyword galConstant c_PU_Probe +syn keyword galConstant c_PU_Stalker +syn keyword galConstant c_PU_VoidRay +syn keyword galConstant c_PU_WarpPrism +syn keyword galConstant c_PU_WarpPrismPhasing +syn keyword galConstant c_PU_Zealot +syn keyword galConstant c_TU_AutoTurret +syn keyword galConstant c_TU_Banshee +syn keyword galConstant c_TU_Battlecruiser +syn keyword galConstant c_TU_BattlecruiserClass +syn keyword galConstant c_TU_BattlecruiserDefensive +syn keyword galConstant c_TU_BattlecruiserMissile +syn keyword galConstant c_TU_BattlecruiserYamato +syn keyword galConstant c_TU_D8Charge +syn keyword galConstant c_TU_Ghost +syn keyword galConstant c_TU_Hellion +syn keyword galConstant c_TU_Marauder +syn keyword galConstant c_TU_Marine +syn keyword galConstant c_TU_Medivac +syn keyword galConstant c_TU_Raven +syn keyword galConstant c_TU_Reaper +syn keyword galConstant c_TU_SCV +syn keyword galConstant c_TU_SiegeTank +syn keyword galConstant c_TU_SiegeTankSieged +syn keyword galConstant c_TU_SiegeTank_Alias +syn keyword galConstant c_TU_Thor +syn keyword galConstant c_TU_Viking +syn keyword galConstant c_TU_VikingAir +syn keyword galConstant c_TU_VikingGnd +syn keyword galConstant c_TU_Viking_Alias +syn keyword galConstant c_ZU_Baneling +syn keyword galConstant c_ZU_BanelingEgg +syn keyword galConstant c_ZU_BroodLord +syn keyword galConstant c_ZU_Broodling +syn keyword galConstant c_ZU_Changeling +syn keyword galConstant c_ZU_ChangelingMarine +syn keyword galConstant c_ZU_ChangelingMarineShield +syn keyword galConstant c_ZU_ChangelingZealot +syn keyword galConstant c_ZU_ChangelingZergling +syn keyword galConstant c_ZU_ChangelingZerglingWings +syn keyword galConstant c_ZU_Cocoon +syn keyword galConstant c_ZU_Corruptor +syn keyword galConstant c_ZU_CreepTumor +syn keyword galConstant c_ZU_Drone +syn keyword galConstant c_ZU_Hydralisk +syn keyword galConstant c_ZU_InfestedTerran +syn keyword galConstant c_ZU_InfestedTerranEgg +syn keyword galConstant c_ZU_Infestor +syn keyword galConstant c_ZU_Larva +syn keyword galConstant c_ZU_Lurker +syn keyword galConstant c_ZU_LurkerEgg +syn keyword galConstant c_ZU_Mantaling +syn keyword galConstant c_ZU_Mutalisk +syn keyword galConstant c_ZU_Overlord +syn keyword galConstant c_ZU_OverlordCocoon +syn keyword galConstant c_ZU_Overlord_Alias +syn keyword galConstant c_ZU_Overseer +syn keyword galConstant c_ZU_Queen +syn keyword galConstant c_ZU_Roach +syn keyword galConstant c_ZU_Ultralisk +syn keyword galConstant c_ZU_Zergling +" }}} + +" Building Type {{{ +syn keyword galConstant c_PB_Assimilator +syn keyword galConstant c_PB_CyberneticsCore +syn keyword galConstant c_PB_DarkShrine +syn keyword galConstant c_PB_Obelisk +syn keyword galConstant c_PB_FleetBeacon +syn keyword galConstant c_PB_Forge +syn keyword galConstant c_PB_Gateway +syn keyword galConstant c_PB_Nexus +syn keyword galConstant c_PB_PhotonCannon +syn keyword galConstant c_PB_Pylon +syn keyword galConstant c_PB_RoboticsBay +syn keyword galConstant c_PB_RoboticsFacility +syn keyword galConstant c_PB_Stargate +syn keyword galConstant c_PB_WarpGate +syn keyword galConstant c_PB_TemplarArchives +syn keyword galConstant c_PB_TwilightCouncil +syn keyword galConstant c_TB_Armory +syn keyword galConstant c_TB_Barracks +syn keyword galConstant c_TB_BarracksReactor +syn keyword galConstant c_TB_BarracksTechLab +syn keyword galConstant c_TB_Bunker +syn keyword galConstant c_TB_CommandCenter +syn keyword galConstant c_TB_CommandCenter_Alias +syn keyword galConstant c_TB_EngineeringBay +syn keyword galConstant c_TB_Factory +syn keyword galConstant c_TB_FactoryReactor +syn keyword galConstant c_TB_FactoryTechLab +syn keyword galConstant c_TB_FusionCore +syn keyword galConstant c_TB_GenericTechLab +syn keyword galConstant c_TB_GhostAcademy +syn keyword galConstant c_TB_MercCompound +syn keyword galConstant c_TB_MissileTurret +syn keyword galConstant c_TB_NuclearReactor +syn keyword galConstant c_TB_OrbitalCommand +syn keyword galConstant c_TB_PlanetaryFortress +syn keyword galConstant c_TB_Refinery +syn keyword galConstant c_TB_SensorTower +syn keyword galConstant c_TB_Starport +syn keyword galConstant c_TB_StarportReactor +syn keyword galConstant c_TB_StarportTechLab +syn keyword galConstant c_TB_SupplyDepot +syn keyword galConstant c_TB_SupplyDepot_Alias +syn keyword galConstant c_ZB_BanelingNest +syn keyword galConstant c_ZB_CreepTumor +syn keyword galConstant c_ZB_EvolutionChamber +syn keyword galConstant c_ZB_Extractor +syn keyword galConstant c_ZB_GreaterSpire +syn keyword galConstant c_ZB_Hatchery +syn keyword galConstant c_ZB_Hatchery_Alias +syn keyword galConstant c_ZB_Hive +syn keyword galConstant c_ZB_HydraliskDen +syn keyword galConstant c_ZB_HydraliskDen_Alias +syn keyword galConstant c_ZB_InfestationPit +syn keyword galConstant c_ZB_Lair +syn keyword galConstant c_ZB_Lair_Alias +syn keyword galConstant c_ZB_LurkerDen +syn keyword galConstant c_ZB_NydusNetwork +syn keyword galConstant c_ZB_NydusWorm +syn keyword galConstant c_ZB_RoachWarren +syn keyword galConstant c_ZB_SpawningPool +syn keyword galConstant c_ZB_SpineCrawler +syn keyword galConstant c_ZB_SpineCrawlerUp +syn keyword galConstant c_ZB_Spire +syn keyword galConstant c_ZB_Spire_Alias +syn keyword galConstant c_ZB_SporeCrawler +syn keyword galConstant c_ZB_SporeCrawlerUp +syn keyword galConstant c_ZB_UltraliskCavern +" }}} + +" Research Type {{{ +syn keyword galConstant c_PR_AirArmor1 +syn keyword galConstant c_PR_AirArmor2 +syn keyword galConstant c_PR_AirArmor3 +syn keyword galConstant c_PR_AirWeapons1 +syn keyword galConstant c_PR_AirWeapons2 +syn keyword galConstant c_PR_AirWeapons3 +syn keyword galConstant c_PR_ColossusRange +syn keyword galConstant c_PR_GroundArmor1 +syn keyword galConstant c_PR_GroundArmor2 +syn keyword galConstant c_PR_GroundArmor3 +syn keyword galConstant c_PR_GroundWeapons1 +syn keyword galConstant c_PR_GroundWeapons2 +syn keyword galConstant c_PR_GroundWeapons3 +syn keyword galConstant c_PR_HighTemplarEnergy +syn keyword galConstant c_PR_HighTemplarPsiStorm +syn keyword galConstant c_PR_DisruptorHallucination +syn keyword galConstant c_PR_ObserverSpeed +syn keyword galConstant c_PR_Shields1 +syn keyword galConstant c_PR_Shields2 +syn keyword galConstant c_PR_Shields3 +syn keyword galConstant c_PR_StalkerBlink +syn keyword galConstant c_PR_WarpGateResearch +syn keyword galConstant c_PR_WarpPrismSpeed +syn keyword galConstant c_PR_ZealotCharge +syn keyword galConstant c_TR_BansheeCloak +syn keyword galConstant c_TR_BattlecruiserEnergy +syn keyword galConstant c_TR_BuildingArmor +syn keyword galConstant c_TR_BunkerSpace +syn keyword galConstant c_TR_GhostCloak +syn keyword galConstant c_TR_GhostEnergy +syn keyword galConstant c_TR_HellionDamage +syn keyword galConstant c_TR_InfantryArmor1 +syn keyword galConstant c_TR_InfantryArmor2 +syn keyword galConstant c_TR_InfantryArmor3 +syn keyword galConstant c_TR_InfantryWeapons1 +syn keyword galConstant c_TR_InfantryWeapons2 +syn keyword galConstant c_TR_InfantryWeapons3 +syn keyword galConstant c_TR_MarineShield +syn keyword galConstant c_TR_MarineStimPack +syn keyword galConstant c_TR_MedivacEnergy +syn keyword galConstant c_TR_MissileTurretRange +syn keyword galConstant c_TR_RavenEnergy +syn keyword galConstant c_TR_RavenMissiles +syn keyword galConstant c_TR_ReaperSpeed +syn keyword galConstant c_TR_ShipPlating1 +syn keyword galConstant c_TR_ShipPlating2 +syn keyword galConstant c_TR_ShipPlating3 +syn keyword galConstant c_TR_ShipWeapons1 +syn keyword galConstant c_TR_ShipWeapons2 +syn keyword galConstant c_TR_ShipWeapons3 +syn keyword galConstant c_TR_SiegeTankSiege +syn keyword galConstant c_TR_VehiclePlating1 +syn keyword galConstant c_TR_VehiclePlating2 +syn keyword galConstant c_TR_VehiclePlating3 +syn keyword galConstant c_TR_VehicleWeapons1 +syn keyword galConstant c_TR_VehicleWeapons2 +syn keyword galConstant c_TR_VehicleWeapons3 +syn keyword galConstant c_ZR_Burrow +syn keyword galConstant c_ZR_BanelingSpeed +syn keyword galConstant c_ZR_CorruptorAttack +syn keyword galConstant c_ZR_FlyerAttacks1 +syn keyword galConstant c_ZR_FlyerAttacks2 +syn keyword galConstant c_ZR_FlyerAttacks3 +syn keyword galConstant c_ZR_FlyerCarapace1 +syn keyword galConstant c_ZR_FlyerCarapace2 +syn keyword galConstant c_ZR_FlyerCarapace3 +syn keyword galConstant c_ZR_GroundCarapace1 +syn keyword galConstant c_ZR_GroundCarapace2 +syn keyword galConstant c_ZR_GroundCarapace3 +syn keyword galConstant c_ZR_HydraliskSpeed +syn keyword galConstant c_ZR_InfestorEnergy +syn keyword galConstant c_ZR_InfestorSpell +syn keyword galConstant c_ZR_MeleeAttacks1 +syn keyword galConstant c_ZR_MeleeAttacks2 +syn keyword galConstant c_ZR_MeleeAttacks3 +syn keyword galConstant c_ZR_MissileAttacks1 +syn keyword galConstant c_ZR_MissileAttacks2 +syn keyword galConstant c_ZR_MissileAttacks3 +syn keyword galConstant c_ZR_OverseerSpeed +syn keyword galConstant c_ZR_OverlordTransport +syn keyword galConstant c_ZR_QueenDamagePlague +syn keyword galConstant c_ZR_RoachRegen +syn keyword galConstant c_ZR_RoachSpeed +syn keyword galConstant c_ZR_ZerglingHaste +syn keyword galConstant c_ZR_ZerglingSpeed +" }}} + +" Unit Flag {{{ +syn keyword galConstant c_unitFlagBounce +syn keyword galConstant c_unitFlagTurnable +syn keyword galConstant c_unitFlagMovable +syn keyword galConstant c_unitFlagWorker +syn keyword galConstant c_unitFlagCreateVisible +syn keyword galConstant c_unitFlagUnclickable +syn keyword galConstant c_unitFlagUncommandable +syn keyword galConstant c_unitFlagUnhighlightable +syn keyword galConstant c_unitFlagUntooltipable +syn keyword galConstant c_unitFlagUnselectable +syn keyword galConstant c_unitFlagUntargetable +syn keyword galConstant c_unitFlagUncursorable +syn keyword galConstant c_unitFlagHero +syn keyword galConstant c_unitFlagIndividualSubgroups +syn keyword galConstant c_unitFlagNoDraw +syn keyword galConstant c_unitFlagPreventReveal +syn keyword galConstant c_unitFlagPreventDefeat +syn keyword galConstant c_unitFlagPreventDestroy +syn keyword galConstant c_unitFlagDefeatReveal +syn keyword galConstant c_unitFlagUncloakable +syn keyword galConstant c_unitFlagMissile +syn keyword galConstant c_unitFlagUndetectable +syn keyword galConstant c_unitFlagUnradarable +syn keyword galConstant c_unitFlagUseLineOfSight +syn keyword galConstant c_unitFlagPressForwardDisabled +syn keyword galConstant c_unitFlagKillCredit +syn keyword galConstant c_unitFlagTownAlert +syn keyword galConstant c_unitFlagInvulnerable +syn keyword galConstant c_unitFlagDestructible +syn keyword galConstant c_unitFlagCloaked +syn keyword galConstant c_unitFlagBuried +syn keyword galConstant c_unitFlagNoScore +syn keyword galConstant c_unitFlagIgnoreTerrainZInit +syn keyword galConstant c_unitFlagTurnBeforeMove +syn keyword galConstant c_unitFlagAlwaysThreatens +syn keyword galConstant c_unitFlagNoDeathEvent +syn keyword galConstant c_unitFlagNoPortraitTalk +syn keyword galConstant c_unitFlagTownCamera +syn keyword galConstant c_unitFlagAIThreatGround +syn keyword galConstant c_unitFlagAIThreatAir +syn keyword galConstant c_unitFlagAILifetime +syn keyword galConstant c_unitFlagAISiege +syn keyword galConstant c_unitFlagAIDefense +syn keyword galConstant c_unitFlagAICaster +syn keyword galConstant c_unitFlagAISupport +syn keyword galConstant c_unitFlagShowResources +syn keyword galConstant c_unitFlagArmorDisabledWhileConstructing +syn keyword galConstant c_unitFlagPawnable +" }}} + +" Color {{{ +syn keyword galConstant ColorGray0 +syn keyword galConstant ColorGray1 +syn keyword galConstant ColorGray2 +syn keyword galConstant ColorGray3 +syn keyword galConstant ColorGray4 +syn keyword galConstant ColorGray5 +syn keyword galConstant ColorGray6 +syn keyword galConstant ColorGray7 +syn keyword galConstant ColorGray8 +syn keyword galConstant ColorRed +syn keyword galConstant ColorBlue +syn keyword galConstant ColorGreen +syn keyword galConstant ColorWhite +syn keyword galConstant ColorBlack +syn keyword galConstant ColorGlueLabel +syn keyword galConstant ColorGlueValue +syn keyword galConstant ColorGlueHeading +syn keyword galConstant ColorAutocastInfo +syn keyword galConstant ColorAttackInfo +syn keyword galConstant ColorDetectorInfo +syn keyword galConstant ColorProtosLabel +syn keyword galConstant ColorTerranLabel +syn keyword galConstant ColorZergLabel +syn keyword galConstant ObjectiveCategory +syn keyword galConstant ObjectiveNew +syn keyword galConstant ObjectiveActive +syn keyword galConstant ObjectiveCompleted +syn keyword galConstant ObjectiveFailed +syn keyword galConstant ColorLoadingPercentage +syn keyword galConstant ColorChallengeValue +syn keyword galConstant ColorProtossHighlightLabel +syn keyword galConstant ColorTerranHighlightLabel +syn keyword galConstant ColorZergHighlightLabel +syn keyword galConstant ColorStandardVerticalTabButton +syn keyword galConstant ColorProtossStandardVerticalTabButton +syn keyword galConstant ColorTerranStandardVerticalTabButton +syn keyword galConstant ColorZergStandardVerticalTabButton +syn keyword galConstant ColorStandardVerticalTabButtonHotkey +syn keyword galConstant ColorProtossStandardVerticalTabButtonHotkey +syn keyword galConstant ColorTerranStandardVerticalTabButtonHotkey +syn keyword galConstant ColorZergStandardVerticalTabButtonHotkey +syn keyword galConstant ColorStandardButton +syn keyword galConstant ColorStandardButtonHotkey +syn keyword galConstant ColorStandardButtonHighlight +" }}} + +" }}} + +" Other Syntax {{{ + +syn match galInclude display "^\s*include\s*" contains=galIncluded + +syn cluster galParenGroup contains=galParenError,galIncluded,galSpecial,galNumber +if exists("c_no_curly_error") + syn region galParen transparent start='(' end=')' contains=ALLBUT,@galParenGroup,@Spell + syn match galParenError display ")" + syn match galErrInParen display contained "^[{}]\|^<%\|^%>" +elseif exists("c_no_bracket_error") + syn region galParen transparent start='(' end=')' contains=ALLBUT,@galParenGroup,@Spell + syn match galParenError display ")" + syn match galErrInParen display contained "[{}]\|<%\|%>" +else + syn region galParen transparent start='(' end=')' contains=ALLBUT,@galParenGroup,galErrInBracket,@Spell + syn match galParenError display "[\])]" + syn match galErrInParen display contained "[\]{}]\|<%\|%>" + syn region galBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@galParenGroup,galErrInParen,@Spell + syn match galErrInBracket display contained "[);{}]\|<%\|%>" +endif + +syn case ignore +syn match galNumbers display transparent "\<\d\|\.\d" contains=galNumber +syn match galNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +syn match galNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +syn case match + +syn match galSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" +syn match galCharacter "L\='[^\\]'" +syn match galCharacter "L'[^']*'" contains=galSpecial +syn match galSpecialError "L\='\\[^'\"?\\abefnrtv]'" +syn match galSpecialCharacter "L\='\\['\"?\\abefnrtv]'" +syn match galSpecialCharacter display "L\='\\\o\{1,3}'" +syn match galSpecialCharacter display "'\\x\x\{1,2}'" +syn match galSpecialCharacter display "L'\\x\x\+'" + +syn region galString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=galSpecial,@Spell +syntax region galComment start="//" skip="\\$" end="$" keepend contains=@galCommentGroup,galComment2String,galCharacter,galNumbersCom,galSpaceError,@Spell + +"when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match cSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match cSpaceError display " \+\t"me=e-1 + endif +endif + +" }}} + +" Highlight Defines {{{ + +hi def link galStatement Statement +hi def link galSpecial SpecialChar +hi def link galSpecialCharacter galSpecial +hi def link galLabel Label +hi def link galType Type +hi def link galConstant Constant +hi def link galRepeat Repeat +hi def link galComment Comment +hi def link galNumber Number +hi def link galConditional Conditional +hi def link galStructure Structure +hi def link galStorageClass StorageClass +hi def link galInclude Include +hi def link galIncluded galString +hi def link galError Error +hi def link galString String +hi def link galBoolean Boolean +hi def link galFunction Function + +" }}} + +let b:current_syntax = "galaxy" + diff --git a/dotfiles/.vim/syntax/gitcommit.vim b/dotfiles/.vim/syntax/gitcommit.vim @@ -0,0 +1,18 @@ +syn region gitLine start=/^#/ end=/$/ +syn region gitCommit start=/^# Changes to be committed:$/ end=/^#$/ contains=gitHead,gitCommitFile +syn region gitHead contained start=/^# (.*)/ end=/^#$/ +syn region gitChanged start=/^# Changed but not updated:/ end=/^#$/ contains=gitHead,gitChangedFile +syn region gitUntracked start=/^# Untracked files:/ end=/^#$/ contains=gitHead,gitUntrackedFile + +syn match gitCommitFile contained /^#\t.*/hs=s+2 +syn match gitChangedFile contained /^#\t.*/hs=s+2 +syn match gitUntrackedFile contained /^#\t.*/hs=s+2 + +hi def link gitLine Comment +hi def link gitCommit Comment +hi def link gitChanged Comment +hi def link gitHead Comment +hi def link gitUntracked Comment +hi def link gitCommitFile Type +hi def link gitChangedFile Constant +hi def link gitUntrackedFile Constant diff --git a/dotfiles/.vim/syntax/glsl.vim b/dotfiles/.vim/syntax/glsl.vim @@ -0,0 +1,265 @@ +" Vim syntax file the OpenGL Shading Language +" Language: GLSL +" Author: Nathan Cournia <nathan@cournia.com> +" Date: June 30, 2004 +" File Types: .frag .vert .glsl .fp .vp +" Version: 1.10.00 +" Notes: Adapted from c.vim - Bram Moolenaar <bram.vim.org> +" Adapted from cg.vim - Kevin Bjorke <kbjorke@nvidia.com> + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" a bunch of useful keywords +syn keyword glslConditional if else +syn keyword glslStatement break return continue discard +syn keyword glslRepeat while for do +syn keyword glslTodo contained TODO FIXME XXX + +" glslCommentGroup allows adding matches for special things in comments +syn cluster glslCommentGroup contains=glslTodo + +"catch errors caused by wrong parenthesis and brackets +syn cluster glslParenGroup contains=glslParenError,glslIncluded,glslSpecial,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslUserCont,glslUserLabel,glslBitField,glslCommentSkip,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom +if exists("c_no_bracket_error") + syn region glslParen transparent start='(' end=')' contains=ALLBUT,@glslParenGroup,glslCppParen,glslCppString + " glslCppParen: same as glslParen but ends at end-of-line; used in glslDefine + syn region glslCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@glslParenGroup,glslParen,glslString + syn match glslParenError display ")" + syn match glslErrInParen display contained "[{}]" +else + syn region glslParen transparent start='(' end=')' contains=ALLBUT,@glslParenGroup,glslCppParen,glslErrInBracket,glslCppBracket,glslCppString + " glslCppParen: same as glslParen but ends at end-of-line; used in glslDefine + syn region glslCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@glslParenGroup,glslErrInBracket,glslParen,glslBracket,glslString + syn match glslParenError display "[\])]" + syn match glslErrInParen display contained "[\]{}]" + syn region glslBracket transparent start='\[' end=']' contains=ALLBUT,@glslParenGroup,glslErrInParen,glslCppParen,glslCppBracket,glslCppString + " glslCppBracket: same as glslParen but ends at end-of-line; used in glslDefine + syn region glslCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@glslParenGroup,glslErrInParen,glslParen,glslBracket,glslString + syn match glslErrInBracket display contained "[);{}]" +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match glslNumbers display transparent "\<\d\|\.\d" contains=glslNumber,glslFloat,glslOctalError,glslOctal +" Same, but without octal error (for comments) +syn match glslNumbersCom display contained transparent "\<\d\|\.\d" contains=glslNumber,glslFloat,glslOctal +syn match glslNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match glslNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match glslOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=glslOctalZero +syn match glslOctalZero display contained "\<0" +syn match glslFloat display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match glslFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match glslFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match glslFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn match glslOctalError display contained "0\o*[89]\d*" +syn case match + +if exists("c_comment_strings") + " A comment can contain glslString, glslCharacter and glslNumber. + " But a "*/" inside a glslString in a glslComment DOES end the comment! So we + " need to use a special type of glslString: glslCommentString, which also ends on + " "*/", and sees a "*" at the start of the line as glslomment again. + " Unfortunately this doesn't very well work for // type of comments :-( + syntax match glslCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region glslCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=glslSpecial,glslCommentSkip + syntax region glslComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=glslSpecial + syntax region glslCommentL start="//" skip="\\$" end="$" keepend contains=@glslCommentGroup,glslComment2String,glslCharacter,glslNumbersCom,glslSpaceError + syntax region glslComment matchgroup=glslCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@glslCommentGroup,glslCommentStartError,glslCommentString,glslCharacter,glslNumbersCom,glslSpaceError +else + syn region glslCommentL start="//" skip="\\$" end="$" keepend contains=@glslCommentGroup,glslSpaceError + syn region glslComment matchgroup=glslCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@glslCommentGroup,glslCommentStartError,glslSpaceError +endif +" keep a // comment separately, it terminates a preproc. conditional +syntax match glslCommentError display "\*/" +syntax match glslCommentStartError display "/\*"me=e-1 contained + +syn keyword glslType void +syn keyword glslType bool bvec2 bvec3 bvec4 +syn keyword glslType int ivec2 ivec3 ivec4 +syn keyword glslType float vec2 vec3 vec4 +syn keyword glslType mat2 mat3 mat4 +syn keyword glslType sampler1D sampler2D sampler3D samplerCUBE sampler1DShadow sampler2DShadow + +syn keyword glslStructure struct + +syn keyword glslStorageClass const attribute varying uniform +syn keyword glslStorageClass in out inout + +syn keyword glslConstant __LINE__ __FILE__ __VERSION__ + +syn keyword glslConstant true false + +syn region glslPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=glslComment,glslCppString,glslCharacter,glslCppParen,glslParenError,glslNumbers,glslCommentError,glslSpaceError +syn match glslPreCondit display "^\s*#\s*\(else\|endif\)\>" +syn region glslCppOut start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=glslCppOut2 +syn region glslCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=glslSpaceError,glslCppSkip +syn region glslCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=glslSpaceError,glslCppSkip +"syn match glslLineSkip "\\$" +syn cluster glslPreProglslGroup contains=glslPreCondit,glslIncluded,glslInclude,glslDefine,glslErrInParen,glslErrInBracket,glslUserLabel,glslSpecial,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom,glslString,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslParen,glslBracket,glslMulti +syn region glslDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@glslPreProglslGroup +syn region glslPreProc start="^\s*#\s*\(pragma\>\|line\>\|error\>\|version\>\|extension\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@glslPreProglslGroup + +" Highlight User Labels +syn cluster glslMultiGroup contains=glslIncluded,glslSpecial,glslCommentSkip,glslCommentString,glslComment2String,@glslCommentGroup,glslCommentStartError,glslUserCont,glslUserLabel,glslBitField,glslOctalZero,glslCppOut,glslCppOut2,glslCppSkip,glslFormat,glslNumber,glslFloat,glslOctal,glslOctalError,glslNumbersCom,glslCppParen,glslCppBracket,glslCppString +syn region glslMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@glslMultiGroup +" Avoid matching foo::bar() in C++ by requiring that the next char is not ':' +syn cluster glslLabelGroup contains=glslUserLabel +syn match glslUserCont display "^\s*\I\i*\s*:$" contains=@glslLabelGroup +syn match glslUserCont display ";\s*\I\i*\s*:$" contains=@glslLabelGroup +syn match glslUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@glslLabelGroup +syn match glslUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@glslLabelGroup + +syn match glslUserLabel display "\I\i*" contained + +" Avoid recognizing most bitfields as labels +syn match glslBitField display "^\s*\I\i*\s*:\s*[1-9]"me=e-1 +syn match glslBitField display ";\s*\I\i*\s*:\s*[1-9]"me=e-1 + +syn keyword glslState gl_Position gl_PointSize gl_ClipVertex +syn keyword glslState gl_FragCoord gl_FrontFacing gl_FragColor gl_FragData gl_FragDepth + +" vertex attributes +syn keyword glslState gl_Color gl_SecondaryColor gl_Normal gl_Vertex gl_FogCoord +syn match glslState display "gl_MultiTexCoord\d\+" + +" varying variables +syn keyword glslState gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord + +" uniforms +syn keyword glslUniform gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_NormalMatrix gl_TextureMatrix +syn keyword glslUniform gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial +syn keyword glslUniform gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct +syn keyword glslUniform gl_FrontLightProduct gl_BackLightProduct glTextureEnvColor +syn keyword glslUniform gl_TextureEnvColor gl_Fog +syn match glslUniform display "gl_EyePlane[STRQ]" +syn match glslUniform display "gl_ObjectPlane[STRQ]" +syn keyword glslUniform gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse +syn keyword glslUniform gl_TextureMatrixInverse gl_ModelViewMatrixTranspose gl_ProjectionMatrixTranspose +syn keyword glslUniform gl_ModelViewProjectionMatrixTranspose gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose +syn keyword glslUniform gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose + +" uniform types +syn keyword glslType gl_DepthRangeParameters gl_PointParameters gl_MaterialParameters +syn keyword glslType gl_LightSourceParameters gl_LightModelParameters gl_LightModelProducts +syn keyword glslType gl_LightProducts gl_FogParameters + +" constants +syn keyword glslConstant gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs +syn keyword glslConstant gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits +syn keyword glslConstant gl_MaxCombinedTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents +syn keyword glslConstant gl_MaxDrawBuffers + +" swizzling +syn match glslSwizzle /\.[xyzw]\{1,4\}\>/ +syn match glslSwizzle /\.[rgba]\{1,4\}\>/ +syn match glslSwizzle /\.[stpq]\{1,4\}\>/ + +" built in functions +syn keyword glslFunc radians degrees sin cos tan asin acos atan pow exp2 log2 sqrt inversesqrt +syn keyword glslFunc abs sign floor ceil fract mod min max clamp mix step smoothstep +syn keyword glslFunc length distance dot cross normalize ftransform faceforward reflect +syn keyword glslFunc matrixcompmult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not +syn keyword glslFunc texture1D texture1DProj texture1DLod texture1DProjLod +syn keyword glslFunc texture2D texture2DProj texture2DLod texture2DProjLod +syn keyword glslFunc texture3D texture3DProj texture3DLod texture3DProjLod +syn keyword glslFunc textureCube textureCubeLod +syn keyword glslFunc shadow1D shadow1DProj shadow1DLod shadow1DProjLod +syn keyword glslFunc shadow2D shadow2DProj shadow2DLod shadow2DProjLod +syn keyword glslFunc dFdx dFdy fwidth noise1 noise2 noise3 noise4 +syn keyword glslFunc refract exp log + +" highlight unsupported keywords +syn keyword glslUnsupported asm +syn keyword glslUnsupported class union enum typedef template this packed +syn keyword glslUnsupported goto switch default +syn keyword glslUnsupported inline noinline volatile public static extern external interface +syn keyword glslUnsupported long short double half fixed unsigned +syn keyword glslUnsupported input output +syn keyword glslUnsupported hvec2 hvec3 hvec4 dvec2 dvec3 dvec4 fvec2 fvec3 fvec4 +syn keyword glslUnsupported sampler2DRect sampler3DRect sampler2DRectShadow +syn keyword glslUnsupported sizeof cast +syn keyword glslUnsupported namespace using + +"wtf? +"let b:c_minlines = 50 " #if 0 constructs can be long +"exec "syn sync ccomment glslComment minlines=" . b:c_minlines + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_glsl_syn_inits") + if version < 508 + let did_glsl_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink glslFormat glslSpecial + HiLink glslCppString glslString + HiLink glslCommentL glslComment + HiLink glslCommentStart glslComment + HiLink glslLabel Label + HiLink glslUserLabel Label + HiLink glslConditional Conditional + HiLink glslRepeat Repeat + HiLink glslCharacter Character + HiLink glslSpecialCharacter glslSpecial + HiLink glslNumber Number + HiLink glslOctal Number + HiLink glslOctalZero PreProc " link this to Error if you want + HiLink glslFloat Float + HiLink glslOctalError glslError + HiLink glslParenError glslError + HiLink glslErrInParen glslError + HiLink glslErrInBracket glslError + HiLink glslCommentError glslError + HiLink glslCommentStartError glslError + HiLink glslSpaceError glslError + HiLink glslSpecialError glslError + HiLink glslOperator Operator + HiLink glslStructure Structure + HiLink glslStorageClass StorageClass + HiLink glslInclude Include + HiLink glslPreProc PreProc + HiLink glslDefine Macro + HiLink glslIncluded glslString + HiLink glslError Error + HiLink glslStatement Statement + HiLink glslPreCondit PreCondit + HiLink glslType Type + HiLink glslConstant Constant + HiLink glslCommentString glslString + HiLink glslComment2String glslString + HiLink glslCommentSkip glslComment + HiLink glslString String + HiLink glslComment Comment + HiLink glslSpecial SpecialChar + HiLink glslSwizzle SpecialChar + HiLink glslTodo Todo + HiLink glslCppSkip glslCppOut + HiLink glslCppOut2 glslCppOut + HiLink glslCppOut Comment + HiLink glslUniform glslType + HiLink glslState glslType + HiLink glslFunc glslStatement + HiLink glslUnsupported glslError + + delcommand HiLink +endif + +let b:current_syntax = "glsl" + +" vim: ts=8 diff --git a/dotfiles/.vim/syntax/go.vim b/dotfiles/.vim/syntax/go.vim @@ -0,0 +1,190 @@ +" Copyright 2009 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. +" +" go.vim: Vim syntax file for Go. +" +" Options: +" There are some options for customizing the highlighting; the recommended +" settings are the default values, but you can write: +" let OPTION_NAME = 0 +" in your ~/.vimrc file to disable particular options. You can also write: +" let OPTION_NAME = 1 +" to enable particular options. At present, all options default to on. +" +" - go_highlight_array_whitespace_error +" Highlights white space after "[]". +" - go_highlight_chan_whitespace_error +" Highlights white space around the communications operator that don't follow +" the standard style. +" - go_highlight_extra_types +" Highlights commonly used library types (os.Error, etc.). +" - go_highlight_space_tab_error +" Highlights instances of tabs following spaces. +" - go_highlight_trailing_whitespace_error +" Highlights trailing white space. + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("go_highlight_array_whitespace_error") + let go_highlight_array_whitespace_error = 1 +endif +if !exists("go_highlight_chan_whitespace_error") + let go_highlight_chan_whitespace_error = 1 +endif +if !exists("go_highlight_extra_types") + let go_highlight_extra_types = 1 +endif +if !exists("go_highlight_space_tab_error") + let go_highlight_space_tab_error = 1 +endif +if !exists("go_highlight_trailing_whitespace_error") + let go_highlight_trailing_whitespace_error = 1 +endif + +syn case match + +syn keyword goDirective package import +syn keyword goDeclaration var const type +syn keyword goDeclType struct interface + +hi def link goDirective Statement +hi def link goDeclaration Keyword +hi def link goDeclType Keyword + +" Keywords within functions +syn keyword goStatement defer go goto return break continue fallthrough +syn keyword goConditional if else switch select +syn keyword goLabel case default +syn keyword goRepeat for range + +hi def link goStatement Statement +hi def link goConditional Conditional +hi def link goLabel Label +hi def link goRepeat Repeat + +" Predefined types +syn keyword goType chan map bool string +syn keyword goSignedInts int int8 int16 int32 int64 +syn keyword goUnsignedInts byte uint uint8 uint16 uint32 uint64 uintptr +syn keyword goFloats float float32 float64 + +hi def link goType Type +hi def link goSignedInts Type +hi def link goUnsignedInts Type +hi def link goFloats Type + +" Treat func specially: it's a declaration at the start of a line, but a type +" elsewhere. Order matters here. +syn match goType /\<func\>/ +syn match goDeclaration /^func\>/ + +" Predefined functions and values +syn keyword goBuiltins cap close closed convert len make new panic panicln print println +syn keyword goConstants iota true false nil + +hi def link goBuiltins Keyword +hi def link goConstants Keyword + +" Comments; their contents +syn keyword goTodo contained TODO FIXME XXX BUG +syn cluster goCommentGroup contains=goTodo +syn region goComment start="/\*" end="\*/" contains=@goCommentGroup +syn region goComment start="//" end="$" contains=@goCommentGroup + +hi def link goComment Comment +hi def link goTodo Todo + +" Go escapes +syn match goEscapeOctal display contained "\\[0-7]\{3}" +syn match goEscapeC display contained +\\[abfnrtv\\'"]+ +syn match goEscapeX display contained "\\x\x\{2}" +syn match goEscapeU display contained "\\u\x\{4}" +syn match goEscapeBigU display contained "\\U\x\{8}" +syn match goEscapeError display contained +\\[^0-7xuUabfnrtv\\'"]+ + +hi def link goEscapeOctal goSpecialString +hi def link goEscapeC goSpecialString +hi def link goEscapeX goSpecialString +hi def link goEscapeU goSpecialString +hi def link goEscapeBigU goSpecialString +hi def link goSpecialString Special +hi def link goEscapeError Error + +" Strings and their contents +syn cluster goStringGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError +syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup +syn region goRawString start=+`+ end=+`+ + +hi def link goString String +hi def link goRawString String + +" Characters; their contents +syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU +syn region goCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup + +hi def link goCharacter Character + +" Regions +syn region goBlock start="{" end="}" transparent fold +syn region goParen start='(' end=')' transparent + +" Integers +syn match goDecimalInt "\<\d\+\>" +syn match goHexadecimalInt "\<0x\x\+\>" +syn match goOctalInt "\<0\o\+\>" +syn match goOctalError "\<0\o*[89]\d*\>" + +hi def link goDecimalInt Integer +hi def link goHexadecimalInt Integer +hi def link goOctalInt Integer +hi def link Integer Number + +" Floating point +syn match goFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>" +syn match goFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>" +syn match goFloat "\<\d\+[Ee][-+]\d\+" + +hi def link goFloat Float + +" Spaces after "[]" +if go_highlight_array_whitespace_error != 0 + syn match goSpaceError display "\(\[\]\)\@<=\s\+" +endif + +" Spacing errors around the 'chan' keyword +if go_highlight_chan_whitespace_error != 0 + " receive-only annotation on chan type + syn match goSpaceError display "\(<-\)\@<=\s\+\(chan\>\)\@=" + " send-only annotation on chan type + syn match goSpaceError display "\(\<chan\)\@<=\s\+\(<-\)\@=" + " value-ignoring receives in a few contexts + syn match goSpaceError display "\(\(^\|[={(,;]\)\s*<-\)\@<=\s\+" +endif + +" Extra types commonly seen +if go_highlight_extra_types != 0 + syn match goExtraType /\<bytes\.\(Buffer\)\>/ + syn match goExtraType /\<io\.\(Reader\|Writer\|ReadWriter\|ReadWriteCloser\)\>/ + syn match goExtraType /\<\(os\.Error\)\>/ + syn match goExtraType /\<reflect\.\w*\(Type\|Value\)\>/ + syn match goExtraType /\<unsafe\.Pointer\>/ +endif + +" Space-tab error +if go_highlight_space_tab_error != 0 + syn match goSpaceError display " \+\t"me=e-1 +endif + +" Trailing white space error +if go_highlight_trailing_whitespace_error != 0 + syn match goSpaceError display excludenl "\s\+$" +endif + +hi def link goExtraType Type +hi def link goSpaceError Error + +let b:current_syntax = "go" diff --git a/dotfiles/.vim/syntax/happy.vim b/dotfiles/.vim/syntax/happy.vim @@ -0,0 +1,81 @@ +" Vim syntax file +" Language: Happy file language +" Maintainer: Nickolay Kudasov +" Last Change: 18 March, 2010 +" +" Version: 0.2 +" Changes: ' is now part of non-terminals +" highlighting todos and fixmes in haskell comments +" highlighting haskell directives + +if exists("b:current_syntax") + finish +endif + +" Keywords (e.g. %name) start with %, so we add it to keyword characters +set iskeyword+=% + +" ' is allowed in non-terminals +set isident+=' + +" Haskell code in happy file +syn match haskell_comment /--.*$/ contained contains=happy_todo,happy_fixme +syn match haskell_char /'[^\\]'\|'\\.'/ contained + +syn region haskell_string start=/"/ skip=/\\"/ end=/"/ contained +syn region haskell_block_comment start=/{-/ end=/-}/ fold contained contains=haskell_block_comment,happy_todo,happy_fixme +syn region haskell_directive start=/{-#/ end=/#-}/ contained +syn region haskell_code start=/{/ skip=/'\\\?}'/ end=/}/ fold contains=haskell_comment,haskell_block_comment,haskell_string,haskell_char,haskell_code,haskell_directive + +" Comments in happy file +syn match happy_comment /--.*$/ contains=happy_todo,happy_fixme +syn region happy_block_comment start=/{-/ end=/-}/ fold contains=happy_block_comment,happy_todo,happy_fixme +syn match happy_todo /[tT][oO][dD][oO]/ contained +syn match happy_fixme /[fF][iI][xX][mM][eE]/ contained + +" Module header directives +syn keyword happy_directives %tokentype %partial +syn keyword happy_directives %monad %lexer +syn keyword happy_directives %expect %error +syn keyword happy_directives %attributetype %attribute + +" %name directive +syn match parser_name /[a-zA-Z_][a-zA-Z_\d]*/ contained +syn region happy_names matchgroup=happy_directives start=/%name/ end=/%/me=e-1,he=e-1 contains=happy_name,parser_name,happy_comment + +" %token and association directives +syn match token_name /[a-zA-Z_][a-zA-Z_\d]*/ contained +syn region token_name start=/"/ skip=/\\"/ end=/"/ contained +syn region token_name start=/'/ skip=/\\'/ end=/'/ contained + +syn region happy_tokens matchgroup=happy_directives start=/%token/ end=/%/me=e-1,he=e-1 contains=token_name,haskell_code,happy_comment +syn region happy_assoc matchgroup=happy_directives start=/%left/ end=/%/me=e-1,he=e-1 contains=token_name,haskell_code,happy_comment +syn region happy_assoc matchgroup=happy_directives start=/%right/ end=/%/me=e-1,he=e-1 contains=token_name,haskell_code,happy_comment +syn region happy_assoc matchgroup=happy_directives start=/%nonassoc/ end=/%/me=e-1,he=e-1 contains=token_name,haskell_code,happy_comment + +syn match happy_separator /%%/ + +" Happy grammar +syn match non_terminal /[a-zA-Z_][a-zA-Z_\d\']*/ +syn region terminal start=/"/ skip=/\\"/ end=/"/ +syn region terminal start=/'/ skip=/\\'/ end=/'/ + +hi def link haskell_comment Comment +hi def link haskell_block_comment Comment +hi def link haskell_directive Special +hi def link haskell_char Character +hi def link haskell_string String + +hi def link happy_comment Comment +hi def link happy_block_comment Comment +hi def link happy_todo Todo +hi def link happy_fixme Todo +hi def link parser_name Function +hi def link token_name Identifier +hi def link happy_directives Keyword +hi def link happy_separator Special +hi def link non_terminal Identifier +hi def link terminal String + +" Syntax configuration name +let b:current_syntax = "happy" diff --git a/dotfiles/.vim/syntax/haskell.vim b/dotfiles/.vim/syntax/haskell.vim @@ -0,0 +1,355 @@ +" Vim syntax file +" +" Modification of vims Haskell syntax file: +" - match types using regular expression +" - highlight toplevel functions +" - use "syntax keyword" instead of "syntax match" where appropriate +" - functions and types in import and module declarations are matched +" - removed hs_highlight_more_types (just not needed anymore) +" - enable spell checking in comments and strings only +" - FFI highlighting +" - QuasiQuotation +" - top level Template Haskell slices +" - PackageImport +" +" TODO: find out which vim versions are still supported +" +" From Original file: +" =================== +" +" Language: Haskell +" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org> +" Last Change: 2010 Feb 21 +" Original Author: John Williams <jrw@pobox.com> +" +" Thanks to Ryan Crumley for suggestions and John Meacham for +" pointing out bugs. Also thanks to Ian Lynagh and Donald Bruce Stewart +" for providing the inspiration for the inclusion of the handling +" of C preprocessor directives, and for pointing out a bug in the +" end-of-line comment handling. +" +" Options-assign a value to these variables to turn the option on: +" +" hs_highlight_delimiters - Highlight delimiter characters--users +" with a light-colored background will +" probably want to turn this on. +" hs_highlight_boolean - Treat True and False as keywords. +" hs_highlight_types - Treat names of primitive types as keywords. +" hs_highlight_debug - Highlight names of debugging functions. +" hs_allow_hash_operator - Don't highlight seemingly incorrect C +" preprocessor directives but assume them to be +" operators +" +" + +if version < 600 + syn clear +elseif exists("b:current_syntax") + finish +endif + +"syntax sync fromstart "mmhhhh.... is this really ok to do so? +syntax sync linebreaks=15 minlines=50 maxlines=500 + +syn match hsSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)" +syn match hsSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)" +syn match hsSpecialCharError contained "\\&\|'''\+" +sy region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar,@Spell +sy match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError +sy match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError + +" (Qualified) identifiers (no default highlighting) +syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>" +syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>" + +" Infix operators--most punctuation characters and any (qualified) identifier +" enclosed in `backquotes`. An operator starting with : is a constructor, +" others are variables (e.g. functions). +syn match hsVarSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[-!#$%&\*\+/<=>\?@\\^|~.][-!#$%&\*\+/<=>\?@\\^|~:.]*" +syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./<=>\?@\\^|~:]*" +syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`" +syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`" + +" Toplevel Template Haskell support +"sy match hsTHTopLevel "^[a-z]\(\(.\&[^=]\)\|\(\n[^a-zA-Z0-9]\)\)*" +sy match hsTHIDTopLevel "^[a-z]\S*" +sy match hsTHTopLevel "^\$(\?" nextgroup=hsTHTopLevelName +sy match hsTHTopLevelName "[a-z]\S*" contained + +" Reserved symbols--cannot be overloaded. +syn match hsDelimiter "(\|)\|\[\|\]\|,\|;\|_\|{\|}" + +sy region hsInnerParen start="(" end=")" contained contains=hsInnerParen,hsConSym,hsType,hsVarSym +sy region hs_InfixOpFunctionName start="^(" end=")\s*[^:`]\(\W\&\S\&[^'\"`()[\]{}@]\)\+"re=s + \ contained keepend contains=hsInnerParen,hs_HlInfixOp + +sy match hs_hlFunctionName "[a-z_]\(\S\&[^,\(\)\[\]]\)*" contained +sy match hs_FunctionName "^[a-z_]\(\S\&[^,\(\)\[\]]\)*" contained contains=hs_hlFunctionName +sy match hs_HighliteInfixFunctionName "`[a-z_][^`]*`" contained +sy match hs_InfixFunctionName "^\S[^=]*`[a-z_][^`]*`"me=e-1 contained contains=hs_HighliteInfixFunctionName,hsType,hsConSym,hsVarSym,hsString,hsCharacter +sy match hs_HlInfixOp "\(\W\&\S\&[^`(){}'[\]]\)\+" contained contains=hsString +sy match hs_InfixOpFunctionName "^\(\(\w\|[[\]{}]\)\+\|\(\".*\"\)\|\('.*'\)\)\s*[^:]=*\(\W\&\S\&[^='\"`()[\]{}@]\)\+" + \ contained contains=hs_HlInfixOp,hsCharacter + +sy match hs_OpFunctionName "(\(\W\&[^(),\"]\)\+)" contained +"sy region hs_Function start="^["'a-z_([{]" end="=\(\s\|\n\|\w\|[([]\)" keepend extend +sy region hs_Function start="^["'a-zA-Z_([{]\(\(.\&[^=]\)\|\(\n\s\)\)*=" end="\(\s\|\n\|\w\|[([]\)" + \ contains=hs_OpFunctionName,hs_InfixOpFunctionName,hs_InfixFunctionName,hs_FunctionName,hsType,hsConSym,hsVarSym,hsString,hsCharacter + +sy match hs_DeclareFunction "^[a-z_(]\S*\(\s\|\n\)*::" contains=hs_FunctionName,hs_OpFunctionName + +" hi hs_InfixOpFunctionName guibg=bg +" hi hs_Function guibg=green +" hi hs_InfixFunctionName guibg=red +" hi hs_DeclareFunction guibg=red + +sy keyword hsStructure data family class where instance default deriving +sy keyword hsTypedef type newtype + +sy keyword hsInfix infix infixl infixr +sy keyword hsStatement do case of let in +sy keyword hsConditional if then else + +"if exists("hs_highlight_types") + " Primitive types from the standard prelude and libraries. + sy match hsType "\<[A-Z]\(\S\&[^,.]\)*\>" + sy match hsType "()" +"endif + +" Not real keywords, but close. +if exists("hs_highlight_boolean") + " Boolean constants from the standard prelude. + syn keyword hsBoolean True False +endif + +syn region hsPackageString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained +sy match hsModuleName excludenl "\([A-Z]\w*\.\?\)*" contained + +sy match hsImport "\<import\>\s\+\(qualified\s\+\)\?\(\<\(\w\|\.\)*\>\)" + \ contains=hsModuleName,hsImportLabel + \ nextgroup=hsImportParams,hsImportIllegal skipwhite +sy keyword hsImportLabel import qualified contained + +sy match hsImportIllegal "\w\+" contained + +sy keyword hsAsLabel as contained +sy keyword hsHidingLabel hiding contained + +sy match hsImportParams "as\s\+\(\w\+\)" contained + \ contains=hsModuleName,hsAsLabel + \ nextgroup=hsImportParams,hsImportIllegal skipwhite +sy match hsImportParams "hiding" contained + \ contains=hsHidingLabel + \ nextgroup=hsImportParams,hsImportIllegal skipwhite +sy region hsImportParams start="(" end=")" contained + \ contains=hsBlockComment,hsLineComment, hsType,hsDelimTypeExport,hs_hlFunctionName,hs_OpFunctionName + \ nextgroup=hsImportIllegal skipwhite + +" hi hsImport guibg=red +"hi hsImportParams guibg=bg +"hi hsImportIllegal guibg=bg +"hi hsModuleName guibg=bg + +"sy match hsImport "\<import\>\(.\|[^(]\)*\((.*)\)\?" +" \ contains=hsPackageString,hsImportLabel,hsImportMod,hsModuleName,hsImportList +"sy keyword hsImportLabel import contained +"sy keyword hsImportMod as qualified hiding contained +"sy region hsImportListInner start="(" end=")" contained keepend extend contains=hs_OpFunctionName +"sy region hsImportList matchgroup=hsImportListParens start="("rs=s+1 end=")"re=e-1 +" \ contained +" \ keepend extend +" \ contains=hsType,hsLineComment,hsBlockComment,hs_hlFunctionName,hsImportListInner + + + +" new module highlighting +syn region hsDelimTypeExport start="\<[A-Z]\(\S\&[^,.]\)*\>(" end=")" contained + \ contains=hsType + +sy keyword hsExportModuleLabel module contained +sy match hsExportModule "\<module\>\(\s\|\t\|\n\)*\([A-Z]\w*\.\?\)*" contained contains=hsExportModuleLabel,hsModuleName + +sy keyword hsModuleStartLabel module contained +sy keyword hsModuleWhereLabel where contained + +syn match hsModuleStart "^module\(\s\|\n\)*\(\<\(\w\|\.\)*\>\)\(\s\|\n\)*" + \ contains=hsModuleStartLabel,hsModuleName + \ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel + +syn region hsModuleCommentA start="{-" end="-}" + \ contains=hsModuleCommentA,hsCommentTodo,@Spell contained + \ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel skipwhite skipnl + +syn match hsModuleCommentA "--.*\n" + \ contains=hsCommentTodo,@Spell contained + \ nextgroup=hsModuleCommentA,hsModuleExports,hsModuleWhereLabel skipwhite skipnl + +syn region hsModuleExports start="(" end=")" contained + \ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl + \ contains=hsBlockComment,hsLineComment,hsType,hsDelimTypeExport,hs_hlFunctionName,hs_OpFunctionName,hsExportModule + +syn match hsModuleCommentB "--.*\n" + \ contains=hsCommentTodo,@Spell contained + \ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl + +syn region hsModuleCommentB start="{-" end="-}" + \ contains=hsModuleCommentB,hsCommentTodo,@Spell contained + \ nextgroup=hsModuleCommentB,hsModuleWhereLabel skipwhite skipnl +" end module highlighting + +" FFI support +sy keyword hsFFIForeign foreign contained +"sy keyword hsFFIImportExport import export contained +sy keyword hsFFIImportExport export contained +sy keyword hsFFICallConvention ccall stdcall contained +sy keyword hsFFISafety safe unsafe contained +sy region hsFFIString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=hsSpecialChar +sy match hsFFI excludenl "\<foreign\>\(.\&[^\"]\)*\"\(.\)*\"\(\s\|\n\)*\(.\)*::" + \ keepend + \ contains=hsFFIForeign,hsFFIImportExport,hsFFICallConvention,hsFFISafety,hsFFIString,hs_OpFunctionName,hs_hlFunctionName + + +sy match hsNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" +sy match hsFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" + +" Comments +sy keyword hsCommentTodo TODO FIXME XXX TBD contained +sy match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=hsCommentTodo,@Spell +sy region hsBlockComment start="{-" end="-}" contains=hsBlockComment,hsCommentTodo,@Spell +sy region hsPragma start="{-#" end="#-}" + +" QuasiQuotation +sy region hsQQ start="\[\$" end="|\]"me=e-2 keepend contains=hsQQVarID,hsQQContent nextgroup=hsQQEnd +sy region hsQQNew start="\[\(.\&[^|]\&\S\)*|" end="|\]"me=e-2 keepend contains=hsQQVarIDNew,hsQQContent nextgroup=hsQQEnd +sy match hsQQContent ".*" contained +sy match hsQQEnd "|\]" contained +sy match hsQQVarID "\[\$\(.\&[^|]\)*|" contained +sy match hsQQVarIDNew "\[\(.\&[^|]\)*|" contained + +if exists("hs_highlight_debug") + " Debugging functions from the standard prelude. + syn keyword hsDebug undefined error trace +endif + + +" C Preprocessor directives. Shamelessly ripped from c.vim and trimmed +" First, see whether to flag directive-like lines or not +if (!exists("hs_allow_hash_operator")) + syn match cError display "^\s*\(%:\|#\).*$" +endif +" Accept %: for # (C99) +syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCommentError +syn match cPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>" +syn region cCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2 +syn region cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cCppSkip +syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cCppSkip +syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match cIncluded display contained "<[^>]*>" +syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded +syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cCppOut,cCppOut2,cCppSkip,cCommentStartError +syn region cDefine matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" +syn region cPreProc matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend + +syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=cCommentStartError,cSpaceError contained +syntax match cCommentError display "\*/" contained +syntax match cCommentStartError display "/\*"me=e-1 contained +syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained + + +if version >= 508 || !exists("did_hs_syntax_inits") + if version < 508 + let did_hs_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink hs_hlFunctionName Function + HiLink hs_HighliteInfixFunctionName Function + HiLink hs_HlInfixOp Function + HiLink hs_OpFunctionName Function + HiLink hsTypedef Statement + HiLink hsVarSym hsOperator + HiLink hsConSym hsOperator + if exists("hs_highlight_delimiters") + " Some people find this highlighting distracting. + HiLink hsDelimiter Delimiter + endif + + HiLink hsModuleStartLabel Structure + HiLink hsExportModuleLabel Keyword + HiLink hsModuleWhereLabel Structure + HiLink hsModuleName Normal + + HiLink hsImportIllegal Error + HiLink hsAsLabel hsImportLabel + HiLink hsHidingLabel hsImportLabel + HiLink hsImportLabel Include + HiLink hsImportMod Include + HiLink hsPackageString hsString + + HiLink hsOperator Operator + + HiLink hsInfix Keyword + HiLink hsStructure Statement + HiLink hsStatement Statement + HiLink hsConditional Conditional + + HiLink hsSpecialCharError Error + HiLink hsSpecialChar SpecialChar + HiLink hsString String + HiLink hsFFIString String + HiLink hsCharacter Character + HiLink hsNumber Number + HiLink hsFloat Float + + HiLink hsLiterateComment hsComment + HiLink hsBlockComment hsComment + HiLink hsLineComment hsComment + HiLink hsModuleCommentA hsComment + HiLink hsModuleCommentB hsComment + HiLink hsComment Comment + HiLink hsCommentTodo Todo + HiLink hsPragma SpecialComment + HiLink hsBoolean Boolean + + if exists("hs_highlight_types") + HiLink hsDelimTypeExport hsType + HiLink hsType Type + endif + + HiLink hsDebug Debug + + HiLink cCppString hsString + HiLink cCommentStart hsComment + HiLink cCommentError hsError + HiLink cCommentStartError hsError + HiLink cInclude Include + HiLink cPreProc PreProc + HiLink cDefine Macro + HiLink cIncluded hsString + HiLink cError Error + HiLink cPreCondit PreCondit + HiLink cComment Comment + HiLink cCppSkip cCppOut + HiLink cCppOut2 cCppOut + HiLink cCppOut Comment + + HiLink hsFFIForeign Keyword + HiLink hsFFIImportExport Structure + HiLink hsFFICallConvention Keyword + HiLink hsFFISafety Keyword + + HiLink hsTHIDTopLevel Macro + HiLink hsTHTopLevelName Macro + + HiLink hsQQVarID Keyword + HiLink hsQQVarIDNew Keyword + HiLink hsQQEnd Keyword + HiLink hsQQContent String + + delcommand HiLink +endif + +let b:current_syntax = "haskell" + diff --git a/dotfiles/.vim/syntax/haxe.vim b/dotfiles/.vim/syntax/haxe.vim @@ -0,0 +1,268 @@ +" Vim syntax file +" Language: haxe + +" Please check :help haxe.vim for comments on some of the options available. + +"set errorformat=%f\:%l\:\ characters\ %c-%*[^\ ]\ %m,%f\:%l\:\ %m +set errorformat=%f\:%l\:\ characters\ %c-%*[^\ ]\ %m,%f\:%l\:\ %m + +" Quit when a syntax file was already loaded +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish + endif + " we define it here so that included files can test for it + let main_syntax='haxe' +endif + +" don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HaxeHiLink hi link <args> +else + command! -nargs=+ HaxeHiLink hi def link <args> +endif + +" some characters that cannot be in a haxe program (outside a string) +syn match haxeError "[\\@`]" +syn match haxeError "<<<\|=>\|<>\|||=\|&&=\|\*\/" + +" use separate name so that it can be deleted in haxecc.vim +syn match haxeError2 "#\|=<" +HaxeHiLink haxeError2 haxeError + + +" keyword definitions +syn keyword haxeExternal import extern package +syn keyword haxeConditional if else switch +syn keyword haxeRepeat while for do in +syn keyword haxeBoolean true false +syn keyword haxeConstant null +syn keyword haxeTypedef this super +syn keyword haxeOperator new cast +syn keyword haxeType Void Bool Int Float Dynamic +syn keyword haxeStatement return +syn keyword haxeStorageClass var final typedef enum +syn keyword haxeFunction function +" syn keyword haxeStatic +syn keyword haxeExceptions throw try catch finally untyped +syn keyword haxeAssert assert +syn keyword haxeMethodDecl synchronized throws +syn keyword haxeClassDecl extends implements interface +syn match haxeOperator "\.\.\." +" to differentiate the keyword class from MyClass.class we use a match here +syn match haxeTypedef "\.\s*\<class\>"ms=s+1 +syn match haxeClassDecl "^class\>" +syn match haxeClassDecl "[^.]\s*\<class\>"ms=s+1 +syn keyword haxeBranch break continue nextgroup=haxeUserLabelRef skipwhite +syn match haxeUserLabelRef "\k\+" contained +syn keyword haxeScopeDecl static public protected private abstract override + +" haxe.lang.* +syn match haxeLangClass "\<System\>" +syn keyword haxeLangClass Array BasicType Class Date DateTools EReg Hash IntHash IntIter Iterator Lambda List Math Md5 Reflect Std String StringBuf StringTools Xml XmlType +HaxeHiLink haxeLangObject haxeConstant +syn cluster haxeTop add=haxeLangObject,haxeLangClass +syn cluster haxeClasses add=haxeLangClass + +if filereadable(expand("<sfile>:p:h")."/haxeid.vim") + source <sfile>:p:h/haxeid.vim +endif + +if exists("haxe_space_errors") + if !exists("haxe_no_trail_space_error") + syn match haxeSpaceError "\s\+$" + endif + if !exists("haxe_no_tab_space_error") + syn match haxeSpaceError " \+\t"me=e-1 + endif +endif + +syn region haxeLabelRegion transparent matchgroup=haxeLabel start="\<case\>" matchgroup=NONE end=":" contains=haxeNumber,haxeCharacter +syn match haxeUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=haxeLabel +syn keyword haxeLabel default + +" The following cluster contains all haxe groups except the contained ones +syn cluster haxeTop add=haxeExternal,haxeError,haxeError,haxeBranch,haxeLabelRegion,haxeLabel,haxeConditional,haxeRepeat,haxeBoolean,haxeConstant,haxeTypedef,haxeOperator,haxeType,haxeType,haxeStatement,haxeStorageClass,haxeAssert,haxeExceptions,haxeMethodDecl,haxeClassDecl,haxeClassDecl,haxeClassDecl,haxeScopeDecl,haxeError,haxeError2,haxeUserLabel,haxeLangObject + + +" Comments +syn keyword haxeTodo contained TODO FIXME XXX +if exists("haxe_comment_strings") + syn region haxeCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=haxeSpecial,haxeCommentStar,haxeSpecialChar,@Spell + syn region haxeComment2String contained start=+"+ end=+$\|"+ contains=haxeSpecial,haxeSpecialChar,@Spell + syn match haxeCommentCharacter contained "'\\[^']\{1,6\}'" contains=haxeSpecialChar + syn match haxeCommentCharacter contained "'\\''" contains=haxeSpecialChar + syn match haxeCommentCharacter contained "'[^\\]'" + syn cluster haxeCommentSpecial add=haxeCommentString,haxeCommentCharacter,haxeNumber + syn cluster haxeCommentSpecial2 add=haxeComment2String,haxeCommentCharacter,haxeNumber +endif +syn region haxeComment start="/\*" end="\*/" contains=@haxeCommentSpecial,haxeTodo,@Spell +syn match haxeCommentStar contained "^\s*\*[^/]"me=e-1 +syn match haxeCommentStar contained "^\s*\*$" +syn match haxeLineComment "//.*" contains=@haxeCommentSpecial2,haxeTodo,@Spell +HaxeHiLink haxeCommentString haxeString +HaxeHiLink haxeComment2String haxeString +HaxeHiLink haxeCommentCharacter haxeCharacter + +syn cluster haxeTop add=haxeComment,haxeLineComment + +if exists("haxe_haxedoc") || main_syntax == 'jsp' + syntax case ignore + " syntax coloring for haxedoc comments (HTML) + " syntax include @haxeHtml <sfile>:p:h/html.vim + " unlet b:current_syntax + syn region haxeDocComment start="/\*\*" end="\*/" keepend contains=haxeCommentTitle,@haxeHtml,haxeDocTags,haxeTodo,@Spell + syn region haxeCommentTitle contained matchgroup=haxeDocComment start="/\*\*" matchgroup=haxeCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@haxeHtml,haxeCommentStar,haxeTodo,@Spell,haxeDocTags + + syn region haxeDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" + syn match haxeDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=haxeDocParam + syn match haxeDocParam contained "\s\S\+" + syn match haxeDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>" + syntax case match +endif + +" match the special comment /**/ +syn match haxeComment "/\*\*/" + +" Strings and constants +syn match haxeSpecialError contained "\\." +syn match haxeSpecialCharError contained "[^']" +syn match haxeSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" +syn match haxeEregEscape contained "\(\\\\\|\\/\)" +syn region haxeEreg start=+\~\/+ end=+\/[gims]*+ contains=haxeEregEscape + +syn region haxeString start=+"+ end=+"+ contains=haxeSpecialChar,haxeSpecialError,@Spell +syn region haxeSingleString start=+'+ end=+'+ +" next line disabled, it can cause a crash for a long line +"syn match haxeStringError +"\([^"\\]\|\\.\)*$+ +syn match haxeCharacter "'[^']*'" contains=haxeSpecialChar,haxeSpecialCharError +syn match haxeCharacter "'\\''" contains=haxeSpecialChar +syn match haxeCharacter "'[^\\]'" +syn match haxeNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" +"syn match haxeNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" +syn match haxeNumber "\(\<\d\+\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" +syn match haxeNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" +syn match haxeNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" + + +syn region haxeCondIf start="#if \+!\?" end="\W" skip="([A-Za-z0-9_ |&!]\+)" +syn region haxeCondElse start="#else \+!\?" end="\W" skip="([A-Za-z0-9_ |&!]\+)" +syn match haxeCondEnd "#end" +syn match haxeCondError "#else *$" + +" unicode characters +syn match haxeSpecial "\\u\d\{4\}" + +syn cluster haxeTop add=haxeString,haxeCharacter,haxeNumber,haxeSpecial,haxeStringError + +if exists("haxe_highlight_functions") + if haxe_highlight_functions == "indent" + syn match haxeFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=haxeType,haxeStorageClass,@haxeClasses + syn region haxeFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=haxeType,haxeStorageClass,@haxeClasses + syn match haxeFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=haxeType,haxeStorageClass,@haxeClasses + syn region haxeFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=haxeType,haxeStorageClass,@haxeClasses + else + " This line catches method declarations at any indentation>0, but it assumes + " two things: + " 1. class names are always capitalized (ie: Button) + " 2. method names are never capitalized (except constructors, of course) + syn region haxeFuncDef start=+\s\+\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=haxeType,haxeStorageClass,haxeComment,haxeLineComment,@haxeClasses + endif + syn match haxeBraces "[{}]" + syn cluster haxeTop add=haxeFuncDef,haxeBraces +endif + +if exists("haxe_mark_braces_in_parens_as_errors") + syn match haxeInParen contained "[{}]" + HaxeHiLink haxeInParen haxeError + syn cluster haxeTop add=haxeInParen +endif + +" catch errors caused by wrong parenthesis +syn region haxeParenT transparent matchgroup=haxeParen start="(" end=")" contains=@haxeTop,haxeParenT1 +syn region haxeParenT1 transparent matchgroup=haxeParen1 start="(" end=")" contains=@haxeTop,haxeParenT2 contained +syn region haxeParenT2 transparent matchgroup=haxeParen2 start="(" end=")" contains=@haxeTop,haxeParenT contained +syn match haxeParenError ")" +HaxeHiLink haxeParenError haxeError + +if !exists("haxe_minlines") + let haxe_minlines = 10 +endif +exec "syn sync ccomment haxeComment minlines=" . haxe_minlines + +" The default highlighting. +if version >= 508 || !exists("did_haxe_syn_inits") + if version < 508 + let did_haxe_syn_inits = 1 + endif + HaxeHiLink haxeFuncDef Function + HaxeHiLink haxeBraces Function + HaxeHiLink haxeBranch Conditional + HaxeHiLink haxeUserLabelRef haxeUserLabel + HaxeHiLink haxeLabel Label + HaxeHiLink haxeUserLabel Label + HaxeHiLink haxeConditional Conditional + HaxeHiLink haxeRepeat Repeat + HaxeHiLink haxeExceptions Exception + HaxeHiLink haxeAssert Statement + HaxeHiLink haxeStatic MoreMsg + HaxeHiLink haxeStorageClass StorageClass + HaxeHiLink haxeMethodDecl haxeStorageClass + HaxeHiLink haxeClassDecl StorageClass + HaxeHiLink haxeScopeDecl StorageClass + HaxeHiLink haxeBoolean Boolean + HaxeHiLink haxeSpecial Special + HaxeHiLink haxeSpecialError Error + HaxeHiLink haxeSpecialCharError Error + HaxeHiLink haxeString String + HaxeHiLink haxeSingleString String + HaxeHiLink haxeEreg Special + HaxeHiLink haxeEregEscape Special + HaxeHiLink haxeCharacter Character + HaxeHiLink haxeSpecialChar SpecialChar + HaxeHiLink haxeNumber Number + HaxeHiLink haxeError Error + HaxeHiLink haxeStringError Error + HaxeHiLink haxeStatement Statement + HaxeHiLink haxeOperator Operator + HaxeHiLink haxeComment Comment + HaxeHiLink haxeDocComment Comment + HaxeHiLink haxeLineComment Comment + HaxeHiLink haxeConstant Constant + HaxeHiLink haxeTypedef Typedef + HaxeHiLink haxeTodo Todo + HaxeHiLink haxeLangClass Special + HaxeHiLink haxeFunction Function + + HaxeHiLink haxeCommentTitle SpecialComment + HaxeHiLink haxeDocTags Special + HaxeHiLink haxeDocParam Function + HaxeHiLink haxeCommentStar haxeComment + + HaxeHiLink haxeType Type + HaxeHiLink haxeExternal Include + + HaxeHiLink htmlComment Special + HaxeHiLink htmlCommentPart Special + HaxeHiLink haxeSpaceError Error + + HaxeHiLink haxeCondIf Macro + HaxeHiLink haxeCondElse Macro + HaxeHiLink haxeCondEnd Macro + HaxeHiLink haxeCondError Error +endif + +delcommand HaxeHiLink + +let b:current_syntax = "haxe" + +if main_syntax == 'haxe' + unlet main_syntax +endif + +let b:spell_options="contained" + +" vim: ts=8 + diff --git a/dotfiles/.vim/syntax/jade.vim b/dotfiles/.vim/syntax/jade.vim @@ -0,0 +1,65 @@ +" Vim syntax file +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope +" Filenames: *.jade + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'jade' +endif + +runtime! syntax/html.vim +unlet! b:current_syntax + +syn case match + +syn cluster jadeTop contains=jadeBegin,jadeComment +syn match jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassChar,jadeIdChar,jadePlainChar +syn match jadeTag "\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent +syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeClassChar,jadePlainChar +syn match jadeComment ' *\/\/.*$' +syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" skip=+\%(\\\\\)*\\'+ end=")" contained contains=htmlArg,jadeAttributeString,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent +syn match jadeClassChar "\." contained nextgroup=jadeClass +syn match jadeIdChar "#{\@!" contained nextgroup=jadeId +syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent +syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent +syn region jadeDocType start="^\s*!!!" end="$" + +syn match jadePlainChar "\\" contained +syn region jadeInterpolation matchgroup=jadeInterpolationDelimiter start="#{" end="}" contains=@htmlJavaScript +syn match jadeInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)" + +syn region jadeAttributeString start=+\%(=\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=jadeInterpolation +syn region jadeAttributeString start=+\%(:\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=jadeInterpolation +syn region jadeAttributeString start=+\%(=\s*\)\@<="+ skip=+\%(\\\\\)*\\'+ end=+"+ contains=jadeInterpolation +syn region jadeAttributeString start=+\%(:\s*\)\@<="+ skip=+\%(\\\\\)*\\'+ end=+"+ contains=jadeInterpolation + +syn region jadeJavascriptFilter matchgroup=jadeFilter start="^\z(\s*\):javascript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlJavaScript +syn region jadeMarkdownFilter matchgroup=jadeFilter start="^\z(\s*\):markdown\s*$" end="^\%(\z1 \| *$\)\@!" + +syn region jadeJavascriptBlock start="^\z(\s*\)script" nextgroup=@jadeComponent,jadeError end="^\%(\z1 \| *$\)\@!" contains=@jadeTop,@htmlJavascript keepend +syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1 \| *$\)\@!" contains=@jadeTop,@htmlCss keepend + +syn match jadeError "\$" contained + +hi def link jadeTag Special +hi def link jadeAttributeString String +hi def link jadeAttributesDelimiter Identifier +hi def link jadeIdChar Special +hi def link jadeClassChar Special +hi def link jadeId Identifier +hi def link jadeClass Type +hi def link jadeInterpolationDelimiter Delimiter +hi def link jadeFilter PreProc +hi def link jadeDocType PreProc +hi def link jadeComment Comment + +let b:current_syntax = "jade" + +if main_syntax == "jade" + unlet main_syntax +endif diff --git a/dotfiles/.vim/syntax/json.vim b/dotfiles/.vim/syntax/json.vim @@ -0,0 +1,77 @@ +" Vim syntax file +" Language: JSON +" Maintainer: Jeroen Ruigrok van der Werven <asmodai@in-nomine.org> +" Last Change: 2009-06-16 +" Version: 0.4 +" {{{1 + +" Syntax setup {{{2 +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded + +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish + endif + let main_syntax = 'json' +endif + +" Syntax: Strings {{{2 +syn region jsonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=jsonEscape +" Syntax: JSON does not allow strings with single quotes, unlike JavaScript. +syn region jsonStringSQ start=+'+ skip=+\\\\\|\\"+ end=+'+ + +" Syntax: Escape sequences {{{3 +syn match jsonEscape "\\["\\/bfnrt]" contained +syn match jsonEscape "\\u\x\{4}" contained + +" Syntax: Strings should always be enclosed with quotes. +syn match jsonNoQuotes "\<\a\+\>" + +" Syntax: Numbers {{{2 +syn match jsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" + +" Syntax: An integer part of 0 followed by other digits is not allowed. +syn match jsonNumError "-\=\<0\d\.\d*\>" + +" Syntax: Boolean {{{2 +syn keyword jsonBoolean true false + +" Syntax: Null {{{2 +syn keyword jsonNull null + +" Syntax: Braces {{{2 +syn match jsonBraces "[{}\[\]]" + +" Define the default highlighting. {{{1 +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_json_syn_inits") + if version < 508 + let did_json_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink jsonString String + HiLink jsonEscape Special + HiLink jsonNumber Number + HiLink jsonBraces Operator + HiLink jsonNull Function + HiLink jsonBoolean Boolean + + HiLink jsonNumError Error + HiLink jsonStringSQ Error + HiLink jsonNoQuotes Error + delcommand HiLink +endif + +let b:current_syntax = "json" +if main_syntax == 'json' + unlet main_syntax +endif + +" Vim settings {{{2 +" vim: ts=8 fdm=marker diff --git a/dotfiles/.vim/syntax/less.vim b/dotfiles/.vim/syntax/less.vim @@ -0,0 +1,305 @@ +" Vim syntax file +" Language: LESS Cascading Style Sheets +" Maintainer: Leaf Corcoran <leafot@gmail.com> +" Modifier: Bryan J Swift <bryan@bryanjswift.com> +" URL: http://leafo.net/lessphp/vim/less.vim +" URL: http://gist.github.com/161047 +" Last Change: 2009 August 4 +" LESS by Leaf Corcoran +" CSS2 by Nikolai Weibull +" Full CSS2, HTML4 support by Yeti + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish +endif + let main_syntax = 'less' +endif + +syn case ignore + + + +syn keyword cssTagName abbr acronym address applet area a b base +syn keyword cssTagName basefont bdo big blockquote body br button +syn keyword cssTagName caption center cite code col colgroup dd del +syn keyword cssTagName dfn dir div dl dt em fieldset font form frame +syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i +syn keyword cssTagName iframe img input ins isindex kbd label legend li +syn keyword cssTagName link map menu meta noframes noscript ol optgroup +syn keyword cssTagName option p param pre q s samp script select small +syn keyword cssTagName span strike strong style sub sup tbody td +syn keyword cssTagName textarea tfoot th thead title tr tt ul u var +syn match cssTagName "\<table\>" +syn match cssTagName "\*" + +syn match cssTagName "@page\>" nextgroup=cssDefinition + +syn match cssSelectorOp "[+>.]" +syn match cssSelectorOp2 "[~|]\?=" contained +syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ + +try +syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*" +catch /^.*/ +syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" +endtry + +syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl +syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl +syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl +syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier + +syn match cssValueInteger "[-+]\=\d\+" +syn match cssValueNumber "[-+]\=\d\+\(\.\d*\)\=" +syn match cssValueLength "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\)" + +syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" +syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" +syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" + +syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl +syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr +syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>" +syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline +syn keyword cssFontDescriptorAttr contained all +syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend +syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+" +syn match cssUnicodeRange contained "U+\x\+-\x\+" + +syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow +" FIXME: These are actually case-insentivie too, but (a) specs recommend using +" mixed-case (b) it's hard to highlight the word `Background' correctly in +" all situations +syn case match +syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background +syn case ignore +syn match cssColor contained "\<transparent\>" +syn match cssColor contained "\<white\>" +syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" +syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" +"syn match cssColor contained "\<rgb\s*(\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*)" +syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\)\s*(" end=")" oneline keepend + +syn match cssImportant contained "!\s*important\>" + +syn keyword cssCommonAttr contained auto none inherit +syn keyword cssCommonAttr contained top bottom +syn keyword cssCommonAttr contained medium normal + +syn match cssFontProp contained "\<font\>\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\>\)\=" +syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>" +syn match cssFontAttr contained "\<small\>\(-\(caps\|caption\)\>\)\=" +syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>" +syn match cssFontAttr contained "\<message-box\>" +syn match cssFontAttr contained "\<status-bar\>" +syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>" +syn keyword cssFontAttr contained cursive fantasy monospace italic oblique +syn keyword cssFontAttr contained bold bolder lighter larger smaller +syn keyword cssFontAttr contained icon menu +syn match cssFontAttr contained "\<caption\>" +syn keyword cssFontAttr contained large smaller larger +syn keyword cssFontAttr contained narrower wider + +syn keyword cssColorProp contained color +syn match cssColorProp contained "\<background\(-\(color\|image\|attachment\|position\)\)\=" +syn keyword cssColorAttr contained center scroll fixed +syn match cssColorAttr contained "\<repeat\(-[xy]\)\=\>" +syn match cssColorAttr contained "\<no-repeat\>" + +syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" +syn match cssTextAttr contained "\<line-through\>" +syn match cssTextAttr contained "\<text-indent\>" +syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" +syn keyword cssTextAttr contained underline overline blink sub super middle +syn keyword cssTextAttr contained capitalize uppercase lowercase center justify baseline sub super + +syn match cssBoxProp contained "\<\(margin\|padding\|border\)\(-\(top\|right\|bottom\|left\)\)\=\>" +syn match cssBoxProp contained "\<border-\(\(\(top\|right\|bottom\|left\)-\)\=\(width\|color\|style\)\)\=\>" +syn match cssBoxProp contained "\<\(width\|z-index\)\>" +syn match cssBoxProp contained "\<\(min\|max\)-\(width\|height\)\>" +syn keyword cssBoxProp contained width height float clear overflow clip visibility +syn keyword cssBoxAttr contained thin thick both +syn keyword cssBoxAttr contained dotted dashed solid double groove ridge inset outset +syn keyword cssBoxAttr contained hidden visible scroll collapse + +syn keyword cssGeneratedContentProp contained content quotes +syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" +syn match cssGeneratedContentProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>" +syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" +syn match cssAuralAttr contained "\<lower\>" +syn match cssGeneratedContentAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" +syn match cssGeneratedContentAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" +syn match cssGeneratedContentAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" +syn keyword cssGeneratedContentAttr contained disc circle square hebrew armenian georgian +syn keyword cssGeneratedContentAttr contained inside outside + +syn match cssPagingProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" +syn keyword cssPagingProp contained size marks inside orphans widows +syn keyword cssPagingAttr contained landscape portrait crop cross always avoid + +syn keyword cssUIProp contained cursor +syn match cssUIProp contained "\<outline\(-\(width\|style\|color\)\)\=\>" +syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>" +syn keyword cssUIAttr contained default crosshair pointer move wait help +syn keyword cssUIAttr contained thin thick +syn keyword cssUIAttr contained dotted dashed solid double groove ridge inset outset +syn keyword cssUIAttr contained invert + +syn match cssRenderAttr contained "\<marker\>" +syn match cssRenderProp contained "\<\(display\|marker-offset\|unicode-bidi\|white-space\|list-item\|run-in\|inline-table\)\>" +syn keyword cssRenderProp contained position top bottom direction +syn match cssRenderProp contained "\<\(left\|right\)\>" +syn keyword cssRenderAttr contained block inline compact +syn match cssRenderAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" +syn keyword cssRenderAttr contained static relative absolute fixed +syn keyword cssRenderAttr contained ltr rtl embed bidi-override pre nowrap +syn match cssRenderAttr contained "\<bidi-override\>" + +syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" +syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>" +syn keyword cssAuralProp contained volume during azimuth elevation stress richness +syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" +syn keyword cssAuralAttr contained silent +syn match cssAuralAttr contained "\<spell-out\>" +syn keyword cssAuralAttr contained non mix +syn match cssAuralAttr contained "\<\(left\|right\)-side\>" +syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" +syn keyword cssAuralAttr contained leftwards rightwards behind +syn keyword cssAuralAttr contained below level above higher +syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>" +syn keyword cssAuralAttr contained faster slower +syn keyword cssAuralAttr contained male female child code digits continuous + +syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\|speak-header\)\>" +syn keyword cssTableAttr contained fixed collapse separate show hide once always + + + +syn match lessComment "//.*$" contains=@Spell +syn match lessVariable "@[A-Za-z_-][A-Za-z0-9_-]*" contained +syn region lessVariableDefinition start="^@" end=";" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction + +" captures both the definition and the call +syn region lessFunction matchgroup=lessFuncDef start="@[A-Za-z_-][A-Za-z0-9_-]*(" end=")" contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction + + + + + +" FIXME: This allows cssMediaBlock before the semicolon, which is wrong. +syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType +syn match cssBraces contained "[{}]" +syn match cssError contained "{@<>" +syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssDefinition,cssClassName,cssTagName,cssIdentifier,lessComment,lessVariable,lessFunction +" syn match cssBraceError "}" + +syn match cssPseudoClass ":\S*" contains=cssPseudoClassId,cssUnicodeEscape +syn keyword cssPseudoClassId contained link visited active hover focus before after left right +syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>" +syn region cssPseudoClassLang matchgroup=cssPseudoClassId start=":lang(" end=")" oneline + +syn region cssComment start="/\*" end="\*/" contains=@Spell + +syn match cssUnicodeEscape "\\\x\{1,6}\s\?" +syn match cssSpecialCharQQ +\\"+ contained +syn match cssSpecialCharQ +\\'+ contained +syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ +syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ +syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" + + + + +if main_syntax == "css" + syn sync minlines=10 +endif + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_less_syn_inits") + if version < 508 + let did_less_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink lessComment Comment + HiLink lessVariable Special + HiLink lessFuncDef Function + HiLink cssComment Comment + HiLink cssTagName Statement + HiLink cssSelectorOp Special + HiLink cssSelectorOp2 Special + HiLink cssFontProp StorageClass + HiLink cssColorProp storageClass + HiLink cssTextProp StorageClass + HiLink cssBoxProp StorageClass + HiLink cssRenderProp StorageClass + HiLink cssAuralProp StorageClass + HiLink cssRenderProp StorageClass + HiLink cssGeneratedContentProp StorageClass + HiLink cssPagingProp StorageClass + HiLink cssTableProp StorageClass + HiLink cssUIProp StorageClass + HiLink cssFontAttr Type + HiLink cssColorAttr Type + HiLink cssTextAttr Type + HiLink cssBoxAttr Type + HiLink cssRenderAttr Type + HiLink cssAuralAttr Type + HiLink cssGeneratedContentAttr Type + HiLink cssPagingAttr Type + HiLink cssTableAttr Type + HiLink cssUIAttr Type + HiLink cssCommonAttr Type + HiLink cssPseudoClassId PreProc + HiLink cssPseudoClassLang Constant + HiLink cssValueLength Number + HiLink cssValueInteger Number + HiLink cssValueNumber Number + HiLink cssValueAngle Number + HiLink cssValueTime Number + HiLink cssValueFrequency Number + HiLink cssFunction Constant + HiLink cssURL String + HiLink cssFunctionName Function + HiLink cssColor Constant + HiLink cssIdentifier Function + HiLink cssInclude Include + HiLink cssImportant Special + HiLink cssBraces SpecialChar + HiLink cssBraceError Error + HiLink cssError Error + HiLink cssInclude Include + HiLink cssUnicodeEscape Special + HiLink cssStringQQ String + HiLink cssStringQ String + HiLink cssMedia Special + HiLink cssMediaType Special + HiLink cssMediaComma Normal + HiLink cssFontDescriptor Special + HiLink cssFontDescriptorFunction Constant + HiLink cssFontDescriptorProp StorageClass + HiLink cssFontDescriptorAttr Type + HiLink cssUnicodeRange Constant + HiLink cssClassName Function + delcommand HiLink +endif + +let b:current_syntax = "less" + +if main_syntax == 'less' + unlet main_syntax +endif + + +" vim: ts=8 + diff --git a/dotfiles/.vim/syntax/llvm.vim b/dotfiles/.vim/syntax/llvm.vim @@ -0,0 +1,110 @@ +" Vim syntax file +" Language: llvm +" Maintainer: The LLVM team, http://llvm.org/ +" Version: $Revision$ + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match + +" Types. +" Types also include struct, array, vector, etc. but these don't +" benefit as much from having dedicated highlighting rules. +syn keyword llvmType void float double +syn keyword llvmType x86_fp80 fp128 ppc_fp128 +syn keyword llvmType type label opaque +syn match llvmType /\<i\d\+\>/ + +" Instructions. +" The true and false tokens can be used for comparison opcodes, but it's +" much more common for these tokens to be used for boolean constants. +syn keyword llvmStatement add fadd sub fsub mul fmul +syn keyword llvmStatement sdiv udiv fdiv srem urem frem +syn keyword llvmStatement and or xor +syn keyword llvmStatement icmp fcmp +syn keyword llvmStatement eq ne ugt uge ult ule sgt sge slt sle +syn keyword llvmStatement oeq ogt oge olt ole one ord ueq ugt uge +syn keyword llvmStatement ult ule une uno +syn keyword llvmStatement nuw nsw exact inbounds +syn keyword llvmStatement phi call select shl lshr ashr va_arg +syn keyword llvmStatement trunc zext sext +syn keyword llvmStatement fptrunc fpext fptoui fptosi uitofp sitofp +syn keyword llvmStatement ptrtoint inttoptr bitcast +syn keyword llvmStatement ret br indirectbr switch invoke unwind unreachable +syn keyword llvmStatement malloc alloca free load store getelementptr +syn keyword llvmStatement extractelement insertelement shufflevector +syn keyword llvmStatement extractvalue insertvalue + +" Keywords. +syn keyword llvmKeyword define declare global constant +syn keyword llvmKeyword internal external private +syn keyword llvmKeyword linkonce linkonce_odr weak weak_odr appending +syn keyword llvmKeyword common extern_weak +syn keyword llvmKeyword thread_local dllimport dllexport +syn keyword llvmKeyword hidden protected default +syn keyword llvmKeyword except deplibs +syn keyword llvmKeyword volatile fastcc coldcc cc ccc +syn keyword llvmKeyword x86_stdcallcc x86_fastcallcc +syn keyword llvmKeyword ptx_kernel ptx_device +syn keyword llvmKeyword signext zeroext inreg sret nounwind noreturn +syn keyword llvmKeyword nocapture byval nest readnone readonly noalias uwtable +syn keyword llvmKeyword inlinehint noinline alwaysinline optsize ssp sspreq +syn keyword llvmKeyword noredzone noimplicitfloat naked alignstack +syn keyword llvmKeyword module asm align tail to +syn keyword llvmKeyword addrspace section alias sideeffect c gc +syn keyword llvmKeyword target datalayout triple +syn keyword llvmKeyword blockaddress + +" Obsolete keywords. +syn keyword llvmError getresult begin end + +" Misc syntax. +syn match llvmNoName /[%@]\d\+\>/ +syn match llvmNumber /-\?\<\d\+\>/ +syn match llvmFloat /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/ +syn match llvmFloat /\<0x\x\+\>/ +syn keyword llvmBoolean true false +syn keyword llvmConstant zeroinitializer undef null +syn match llvmComment /;.*$/ +syn region llvmString start=/"/ skip=/\\"/ end=/"/ +syn match llvmLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/ +syn match llvmIdentifier /[%@][-a-zA-Z$._][-a-zA-Z$._0-9]*/ + +" Syntax-highlight dejagnu test commands. +syn match llvmSpecialComment /;\s*RUN:.*$/ +syn match llvmSpecialComment /;\s*PR\d*\s*$/ +syn match llvmSpecialComment /;\s*END\.\s*$/ +syn match llvmSpecialComment /;\s*XFAIL:.*$/ +syn match llvmSpecialComment /;\s*XTARGET:.*$/ + +if version >= 508 || !exists("did_c_syn_inits") + if version < 508 + let did_c_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink llvmType Type + HiLink llvmStatement Statement + HiLink llvmNumber Number + HiLink llvmComment Comment + HiLink llvmString String + HiLink llvmLabel Label + HiLink llvmKeyword Keyword + HiLink llvmBoolean Boolean + HiLink llvmFloat Float + HiLink llvmNoName Identifier + HiLink llvmConstant Constant + HiLink llvmSpecialComment SpecialComment + HiLink llvmError Error + HiLink llvmIdentifier Identifier + + delcommand HiLink +endif + +let b:current_syntax = "llvm" diff --git a/dotfiles/.vim/syntax/mkd.vim b/dotfiles/.vim/syntax/mkd.vim @@ -0,0 +1,102 @@ +" Vim syntax file +" Language: Markdown +" Maintainer: Ben Williams <benw@plasticboy.com> +" URL: http://plasticboy.com/markdown-vim-mode/ +" Version: 9 +" Last Change: 2009 May 18 +" Remark: Uses HTML syntax file +" Remark: I don't do anything with angle brackets (<>) because that would too easily +" easily conflict with HTML syntax +" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes) + + +" Read the HTML syntax to start with +if version < 600 + so <sfile>:p:h/html.vim +else + runtime! syntax/html.vim + unlet b:current_syntax +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HtmlHiLink hi link <args> +else + command! -nargs=+ HtmlHiLink hi def link <args> +endif + +syn spell toplevel +syn case ignore +syn sync linebreaks=1 + +"additions to HTML groups +syn region htmlBold start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\*\@!/ end=/\\\@<!\*\@<!\*\*\*\@!\($\|\A\)\@=/ contains=@Spell,htmlItalic +syn region htmlItalic start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\@!/ end=/\\\@<!\*\@<!\*\*\@!\($\|\A\)\@=/ contains=htmlBold,@Spell + +" [link](URL) | [link][id] | [link][] +syn region mkdLink matchgroup=mkdDelimiter start="\!\?\[" end="\]\ze\s*[[(]" contains=@Spell nextgroup=mkdURL,mkdID skipwhite oneline +syn region mkdID matchgroup=mkdDelimiter start="\[" end="\]" contained +syn region mkdURL matchgroup=mkdDelimiter start="(" end=")" contained + +" Link definitions: [id]: URL (Optional Title) +" TODO handle automatic links without colliding with htmlTag (<URL>) +syn region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained + +"define Markdown groups +syn match mkdLineContinue ".$" contained +syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*$/ +syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-$/ +syn match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_$/ +syn match mkdRule /^\s*-\{3,}$/ +syn match mkdRule /^\s*\*\{3,5}$/ +syn match mkdListItem "^\s*[-*+]\s\+" +syn match mkdListItem "^\s*\d\+\.\s\+" +syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ +syn match mkdLineBreak / \+$/ +syn region mkdCode start=/\\\@<!`/ end=/\\\@<!`/ +syn region mkdCode start=/\s*``[^`]*/ end=/[^`]*``\s*/ +syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell +syn region mkdCode start="<pre[^>]*>" end="</pre>" +syn region mkdCode start="<code[^>]*>" end="</code>" + +"HTML headings +syn region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell +syn region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell +syn region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell +syn region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell +syn region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell +syn region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell +syn match htmlH1 /^.\+\n=\+$/ contains=@Spell +syn match htmlH2 /^.\+\n-\+$/ contains=@Spell + +"highlighting for Markdown groups +HtmlHiLink mkdString String +HtmlHiLink mkdCode String +HtmlHiLink mkdBlockquote Comment +HtmlHiLink mkdLineContinue Comment +HtmlHiLink mkdListItem Identifier +HtmlHiLink mkdRule Identifier +HtmlHiLink mkdLineBreak Todo +HtmlHiLink mkdLink htmlLink +HtmlHiLink mkdURL htmlString +HtmlHiLink mkdID Identifier +HtmlHiLink mkdLinkDef mkdID +HtmlHiLink mkdLinkDefTarget mkdURL +HtmlHiLink mkdLinkTitle htmlString + +HtmlHiLink mkdDelimiter Delimiter + +let b:current_syntax = "mkd" + +delcommand HtmlHiLink +" vim: ts=8 diff --git a/dotfiles/.vim/syntax/nginx.vim b/dotfiles/.vim/syntax/nginx.vim @@ -0,0 +1,152 @@ +" Vim syntax file +" Language: Nginx configuration (nginx.conf) +" Maintainer: Evan Miller +" Last Change: 2007 May 02 +" Notes: This is a bit patchy. + +if exists("b:current_syntax") + finish +end + +setlocal iskeyword+=. +setlocal iskeyword+=/ +setlocal iskeyword+=: + +" basics +syn match ngxStringVariable "\$\w\w*" contained +syn region ngxString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=ngxStringVariable oneline +syn region ngxString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=ngxStringVariable oneline + +" Main +syn keyword ngxDirective daemon debug_points error_log lock_file master_process pid ssl_engine timer_resolution user group worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending working_directory +syn keyword ngxDirectiveImportant include +syn keyword ngxBlockDirective http events contained +syn keyword ngxBlockDirective server contained + +"Events +syn keyword ngxDirective accept_mutex accept_mutex_delay debug_connection devpoll_changes devpoll_events epoll_events kqueue_changes kqueue_events multi_accept rtsig_signo rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold use worker_connections + +" HTTP core +syn keyword ngxDirective alias client_body_in_file_only client_body_buffer_size client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size default_type keepalive_timeout large_client_header_buffers limit_rate msie_padding msie_refresh optimize_server_names port_in_redirect recursive_error_pages satisfy_any send_timeout sendfile server_names_hash_max_size server_names_hash_bucket_size tcp_nodelay tcp_nopush internal +syn keyword ngxDirective output_buffers postpone_output send_lowat connections +syn keyword ngxDirectiveImportant root server server_name listen +syn keyword ngxDirectiveError error_page +syn keyword ngxBlockDirective location limit_except types contained + +" Access +syn keyword ngxDirective allow deny + +" Auth +syn keyword ngxDirective auth_basic auth_basic_user_file + +" Auto-index +syn keyword ngxDirective autoindex +syn keyword ngxDirective autoindex_exact_size +syn keyword ngxDirective autoindex_localtime + +" DAV +syn keyword ngxDirective dav_access dav_methods create_full_put_path + +" FastCGI +syn keyword ngxDirective fastcgi_index fastcgi_hide_header fastcgi_intercept_errors fastcgi_param fastcgi_pass_header fastcgi_redirect_errors +syn keyword ngxDirectiveImportant fastcgi_pass + +" gzip +syn keyword ngxDirective gzip gzip_buffers gzip_comp_level gzip_min_length gzip_http_version gzip_proxied gzip_types + +" header +syn keyword ngxDirective add_header +syn keyword ngxDirective expires + +" auto-index +syn keyword ngxDirective index + +" log +syn keyword ngxDirective access_log log_format + +" proxy +syn keyword ngxDirective proxy_buffer_size proxy_buffering proxy_buffers proxy_connect_timeout proxy_hide_header proxy_intercept_errors proxy_method proxy_next_upstream proxy_pass_header proxy_read_timeout proxy_redirect_errors proxy_send_timeout proxy_set_header proxy_temp_path proxy_temp_file_write_size proxy_busy_buffers_size proxy_send_lowat +syn keyword ngxDirectiveImportant proxy_pass proxy_redirect + +" rewrite +syn keyword ngxDirectiveControl break return set uninitialized_variable_warn rewrite +syn keyword ngxDirective uninitialized_variable_warn +syn keyword ngxBlockDirective if contained + +" SSL +syn keyword ngxDirective ssl ssl_certificate ssl_certificate_key ssl_client_certificate ssl_ciphers ssl_prefer_server_ciphers ssl_protocols ssl_verify_client ssl_verify_depth ssl_session_cache ssl_session_timeout + +" Upstream +syn keyword ngxDirective ip_hash server +syn keyword ngxBlockDirective upstream contained + +" Addition +syn keyword ngxDirectiveImportant add_before_body add_after_body + +" Charset +syn keyword ngxDirective charset charset_map override_charset source_charset + +" empty gif +syn keyword ngxDirective empty_gif + +" geo +syn keyword ngxBlockDirective geo + +" map +syn keyword ngxBlockDirective map +syn keyword ngxDirective map_hash_max_size map_hash_bucket_size + +" realip +syn keyword ngxDirective set_real_ip_from real_ip_header + +" referer +syn keyword ngxDirective valid_referers + +" ssi +syn keyword ngxDirective ssi + +" user id +syn keyword ngxDirective userid userid_domain userid_expires userid_name userid_p3p userid_path userid_service + +" sub filter +syn keyword ngxDirective sub_filter sub_filter_once sub_filter_types + +" perl +syn keyword ngxDirective perl_modules perl_require perl_set + +" limit zone +syn keyword ngxDirective limit_zone limit_conn + +" memcache +syn keyword ngxDirective memcached_connect_timeout memcached_send_timeout memcached_read_timeout memcached_buffer_size memcached_next_upstream +syn keyword ngxDirectiveImportant memcached_pass + +" stub +syn keyword ngxDirective stub_status + +" flv +syn keyword ngxDirective flv + +" browser +syn keyword ngxDirective ancient_browser ancient_browser_value modern_browser modern_browser_value + +syn region ngxStartBlock start=+^+ end=+{+ contains=ngxBlockDirective,ngxContextVariable oneline + +syn match ngxContextVariable "\$\w\w*" contained +syn match ngxComment " *#.*$" +syn match ngxVariable "\$\w\w*" + +hi link ngxBlockDirective Statement +hi link ngxStartBlock Normal + +hi link ngxStringVariable Special +hi link ngxDirectiveControl Special +hi link ngxComment Comment +hi link ngxString String +hi link ngxDirective Identifier +hi link ngxDirectiveImportant Type +hi link ngxVariable Identifier +hi link ngxContextVariable Identifier +hi link ngxDirectiveError Constant + +let b:current_syntax = "nginx" diff --git a/dotfiles/.vim/syntax/nix.vim b/dotfiles/.vim/syntax/nix.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: nix +" Maintainer: Marc Weber <marco-oweber@gmx.de> +" Modify and commit if you feel that way +" Last Change: 2007 Dec + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword nixKeyword let throw inherit import true false null with +syn keyword nixConditional if else then +syn keyword nixBrace ( ) { } = +syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists + \ __readFile __toXML __toFile __filterSource __attrNames __getAttr __hasAttr __isAttrs __listToAttrs __isList + \ __head __tail __add __sub __lessThan __substring __stringLength + +syn match nixAttr "\w\+\ze\s*=" +syn match nixFuncArg "\zs\w\+\ze\s*:" +syn region nixStringParam start=+\${+ end=+}+ +syn region nixMultiLineComment start=+/\*+ skip=+\\"+ end=+\*/+ +syn match nixEndOfLineComment "#.*$" +syn region nixStringIndented start=+''+ skip=+'''\|''${\|"+ end=+''+ contains=nixStringParam +syn region nixString start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam + +hi def link nixKeyword Keyword +hi def link nixConditional Conditional +hi def link nixBrace Special +hi def link nixString String +hi def link nixStringIndented String +hi def link nixBuiltin Special +hi def link nixStringParam Macro +hi def link nixMultiLineComment Comment +hi def link nixEndOfLineComment Comment +hi def link nixAttr Identifier +hi def link nixFuncArg Identifier diff --git a/dotfiles/.vim/syntax/pdc.vim b/dotfiles/.vim/syntax/pdc.vim @@ -0,0 +1,330 @@ +" Vim syntax file +" Language: Pandoc (superset of Markdown) +" Maintainer: Jeremy Schultz <taozhyn@gmail.com> +" URL: +" Version: 2 +" Changes: 2008-11-04 +" - Fixed an issue with Block elements (header) not being highlighted when +" placed on the first or second line of the file +" - Fixed multi line HTML comment block +" - Fixed lowercase list items +" - Fixed list items gobbling to many empty lines +" - Added highlight support to identify newline (2 spaces) +" - Fixed HTML highlight, ignore if the first character in the +" angle brackets is not a letter +" - Fixed Emphasis highlighting when it contained multiple +" spaces +" Remark: Uses HTML and TeX syntax file + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn spell toplevel +syn case ignore +syn sync linebreaks=1 + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Set embedded HTML highlighting +syn include @HTML syntax/html.vim +syn match pdcHTML /<\a[^>]\+>/ contains=@HTML + +" Support HTML multi line comments +syn region pdcHTMLComment start=/<!--/ end=/-->/ + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Set embedded LaTex (pandox extension) highlighting +" Unset current_syntax so the 2nd include will work +unlet b:current_syntax +syn include @LATEX syntax/tex.vim + +" Single Tex command +syn match pdcLatex /\\\w\+{[^}]\+}/ contains=@LATEX + +" Tex Block (begin-end) +syn region pdcLatex start=/\\begin{[^}]\+}\ze/ end=/\ze\\end{[^}]\+}/ contains=@LATEX + +" Math Tex +syn match pdcLatex /$[^$]\+\$/ contains=@LATEX + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Block Elements +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Needed by other elements +syn match pdcBlankLine /\(^\s*\n\|\%^\)/ nextgroup=pdcHeader,pdcCodeBlock,pdcListItem,pdcListItem1,pdcHRule,pdcTableHeader,pdcTableMultiStart,pdcBlockquote transparent + + +""""""""""""""""""""""""""""""""""""""" +" Title Block: +syn match pandocTitleBlock /\%^\(%.*\n\)\{1,3}$/ + + +""""""""""""""""""""""""""""""""""""""" +" Headers: + +" Underlined, using == or -- +syn match pdcHeader /^.\+\n[=-]\+$/ contains=@Spell nextgroup=pdcHeader contained skipnl + +" Atx-style, Hash marks +syn region pdcHeader start="^\s*#\{1,6}[^#]*" end="\($\|#\+\)" contains=@Spell contained nextgroup=pdcHeader skipnl + + +""""""""""""""""""""""""""""""""""""""" +" Blockquotes: + +syn match pdcBlockquote /\s*>.*$/ nextgroup=pdcBlockquote,pdcBlockquote2 contained skipnl +syn match pdcBlockquote2 /[^>].*/ nextgroup=pdcBlockquote2 skipnl contained + + +""""""""""""""""""""""""""""""""""""""" +" Code Blocks: + +" Indent with at least 4 space or 1 tab +" This rule must appear for pdcListItem, or highlighting gets messed up +syn match pdcCodeBlock /\(\s\{4,}\|\t\{1,}\).*\n/ contained nextgroup=pdcCodeBlock + +" HTML code blocks, pre and code +syn match pdcCodeStartPre /<pre>/ nextgroup=pdcCodeHTMLPre skipnl transparent +syn match pdcCodeHTMLPre /.*/ contained nextgroup=pdcCodeHTMLPre,pdcCodeEndPre skipnl +syn match pdcCodeEndPre /\s*<\/pre>/ contained transparent + +" HTML code blocks, code +syn match pdcCodeStartCode /<code>/ nextgroup=pdcCodeHTMLCode skipnl transparent +syn match pdcCodeHTMLCode /.*/ contained nextgroup=pdcCodeHTMLCode,pdcCodeEndCode skipnl +syn match pdcCodeEndCode /\s*<\/code>/ contained transparent + + +""""""""""""""""""""""""""""""""""""""" +" Lists: + +" These first two rules need to be first or the highlighting will be +" incorrect + +" Continue a list on the next line +syn match pdcListCont /\s*[^-+*].*\n/ contained nextgroup=pdcListCont,pdcListItem,pdcListSkipNL transparent + +" Skip empty lines +syn match pdcListSkipNL /\s*\n/ contained nextgroup=pdcListItem,pdcListSkipNL + +" Unorder list +syn match pdcListItem /\s*[-*+]\s\+/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + +" Order list, numeric +syn match pdcListItem /\s*(\?\(\d\+\|#\)[\.)]\s\+/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + +" Order list, roman numerals (does not guarantee correct roman numerals) +syn match pdcListItem /\s*(\?[ivxlcdm]\+[\.)]\s\+/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + +" Order list, lowercase letters +syn match pdcListItem /\s*(\?\l[\.)]\s\+/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + +" Order list, uppercase letters, does not include '.' +syn match pdcListItem /\s*(\?\u[\)]\s\+/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + +" Order list, uppercase letters, special case using '.' and two or more spaces +syn match pdcListItem /\s*\u\.\([ ]\{2,}\|\t\+\)/ contained nextgroup=pdcListSkipNL,pdcListCont skipnl + + +""""""""""""""""""""""""""""""""""""""" +" Horizontal Rules: + +" 3 or more * on a line +syn match pdcHRule /\s\{0,3}\(-\s*\)\{3,}\n/ contained nextgroup=pdcHRule + +" 3 or more - on a line +syn match pdcHRule /\s\{0,3}\(\*\s*\)\{3,}\n/ contained nextgroup=pdcHRule + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Span Elements +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +""""""""""""""""""""""""""""""""""""""" +" Links: + +" Link Text +syn match pdcLinkText /\[\zs[^\]]*\ze\]/ contains=@Spell + +" Link ID +syn match pdcLinkID /\][ ]\{0,1}\[\zs[^\]]*\ze\]/ + +" Skip [ so we do not highlight it +syn match pdcSkip /^[ ]\{0,3}\[/ nextgroup=pdcLinkID + +" Link ID - definition +syn match pdcLinkID /[^\]]*\ze\]:/ nextgroup=pdcSkip skipwhite contained + +" Skip ]: so we do not highlight it +syn match pdcSkip /\]:/ contained nextgroup=pdcLinkURL skipwhite + +" Link URL +syn region pdcLinkURL start=/\](\zs/ end=/)/me=e-1 + +" Link URL on ID definition line +syn match pdcLinkURL /\s\+.*\s\+\ze[("']/ nextgroup=pdcLinkTitle skipwhite contained +syn match pdcLinkURL /\s*.*\s*[^)"']\s*$/ contained +syn match pdcLinkURL /\s*.*\s*[^)"']\s*\n\s*\ze[("']/ contained nextgroup=pdcLinkTitle skipwhite + +" Link URL for inline <> links +syn match pdcLinkURL /<http[^>]*>/ +syn match pdcLinkURL /<[^>]*@[^>]*.[^>]*>/ + +" Link Title +syn match pdcLinkTitle /\s*[("'].*[)"']/ contained contains=@Spell + + +""""""""""""""""""""""""""""""""""""""" +" Emphasis: + +" Using underscores +syn match pdcEmphasis / \(_\|__\)\([^_ ]\|[^_]\( [^_]\)\+\)\+\1/ contains=@Spell + +" Using Asterisks +syn match pdcEmphasis / \(\*\|\*\*\)\([^\* ]\|[^\*]\( [^\*]\)\+\)\+\1/ contains=@Spell + + +""""""""""""""""""""""""""""""""""""""" +" Inline Code: + +" Using single back ticks +syn region pdcCode start=/`/ end=/`\|^\s*$/ + +" Using double back ticks +syn region pdcCode start=/``[^`]*/ end=/``\|^\s*$/ + + +""""""""""""""""""""""""""""""""""""""" +" Images: +" Handled by link syntax + + +""""""""""""""""""""""""""""""""""""""" +" Misc: + +" Pandoc escapes all characters after a backslash +syn match NONE /\\\W/ + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Span Elements +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +""""""""""""""""""""""""""""""""""""""" +" Subscripts: +syn match pdcSubscript /\~\([^\~\\ ]\|\(\\ \)\)\+\~/ contains=@Spell + +""""""""""""""""""""""""""""""""""""""" +" Superscript: +syn match pdcSuperscript /\^\([^\^\\ ]\|\(\\ \)\)\+\^/ contains=@Spell + +""""""""""""""""""""""""""""""""""""""" +" Strikeout: +syn match pdcStrikeout /\~\~[^\~ ]\([^\~]\|\~ \)*\~\~/ contains=@Spell + + +""""""""""""""""""""""""""""""""""""""" +" Definitions: +syn match pdcDefinitions /:\(\t\|[ ]\{3,}\)/ nextgroup=pdcListItem,pdcCodeBlock,pdcBlockquote,pdcHRule + +""""""""""""""""""""""""""""""""""""""" +" Footnote: +syn match pdcFootnoteID /\[\^[^\]]\+\]/ nextgroup=pdcFootnoteDef + +" This does not work correctly +syn region pdcFootnoteDef start=/:/ end=/^\n\+\(\(\t\+\|[ ]\{4,}\)\S\)\@!/ contained contains=pdcFootnoteDef + +" Inline footnotes +syn region pdcFootnoteDef matchgroup=pdcFootnoteID start=/\^\[/ matchgroup=pdcFootnoteID end=/\]/ + + +""""""""""""""""""""""""""""""""""""""" +" Tables: +" +" Regular Table +syn match pdcTableHeader /\s*\w\+\(\s\+\w\+\)\+\s*\n\s*-\+\(\s\+-\+\)\+\s*\n/ contained nextgroup=pdcTableBody +syn match pdcTableBody /\s*\w\+\(\s\+\w\+\)\+\s*\n/ contained nextgroup=pdcTableBody,pdcTableCaption skipnl +syn match pdcTableCaption /\n\+\s*Table.*\n/ contained nextgroup=pdcTableCaptionCont +syn match pdcTableCaptionCont /\s*\S.\+\n/ contained nextgroup=pdcTableCaptionCont + +" Multi-line Table +syn match pdcTableMultiStart /^\s\{0,3}-\+\s*\n\ze\(\s*\w\+\(\s\+\w\+\)\+\s*\n\)\+\s*-\+\(\s\+-\+\)\+\s*\n/ contained nextgroup=pdcTableMultiHeader +syn match pdcTableMultiEnd /^\s\{0,3}-\+/ contained nextgroup=pdcTableMultiCaption skipnl +syn match pdcTableMultiHeader /\(\s*\w\+\(\s\+\w\+\)\+\s*\n\)\+\s*-\+\(\s\+-\+\)\+\s*\n/ contained nextgroup=pdcTableMultiBody +syn match pdcTableMultiBody /^\(\s\{3,}[^-]\|[^-\s]\).*$/ contained nextgroup=pdcTableMultiBody,pdcTableMultiSkipNL,pdcTableMultiEnd skipnl +syn match pdcTableMultiSkipNL /^\s*\n/ contained nextgroup=pdcTableMultiBody,pdcTableMultiEnd skipnl +syn match pdcTableMultiCaption /\n*\s*Table.*\n/ contained nextgroup=pdcTableCaptionCont + + + +""""""""""""""""""""""""""""""""""""""" +" Delimited Code Block: (added in 1.0) +syn region pdcCodeBlock matchgroup=pdcCodeStart start=/^\z(\~\{3,}\) \( {[^}]\+}\)\?/ matchgroup=pdcCodeEnd end=/^\z1\~*/ + + +""""""""""""""""""""""""""""""""""""""" +" Newline, 2 spaces at the end of line means newline +syn match pdcNewLine / $/ + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Highlight groups +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +hi link pdcHeader Title +hi link pdcBlockquote Comment +hi link pdcBlockquote2 Comment + +hi link pdcHTMLComment Comment + +hi link pdcHRule Underlined +"hi link pdcHRule Special + +hi link pdcListItem Operator +hi link pdcDefinitions Operator + +hi link pdcEmphasis Special +hi link pdcSubscript Special +hi link pdcSuperscript Special +hi link pdcStrikeout Special + +hi link pdcLinkText Underlined +hi link pdcLinkID Identifier +hi link pdcLinkURL Type +hi link pdcLinkTitle Comment + +hi link pdcFootnoteID Identifier +hi link pdcFootnoteDef Comment +hi link pandocFootnoteCont Error + +hi link pdcCodeBlock String +hi link pdcCodeHTMLPre String +hi link pdcCodeHTMLCode String +hi link pdcCode String +hi link pdcCodeStart Comment +hi link pdcCodeEnd Comment + +hi link pandocTitleBlock Comment + +hi link pdcTableMultiStart Comment +hi link pdcTableMultiEnd Comment +hi link pdcTableHeader Define +hi link pdcTableMultiHeader Define +hi link pdcTableBody Identifier +hi link pdcTableMultiBody Identifier +hi link pdcTableCaption Label +hi link pdcTableMultiCaption Label +hi link pdcTableCaptionCont Label + +hi link pdcNewLine Error + + +" For testing +hi link pdctest Error + + +let b:current_syntax = "pandoc" + diff --git a/dotfiles/.vim/syntax/snippet.vim b/dotfiles/.vim/syntax/snippet.vim @@ -0,0 +1,19 @@ +" Syntax highlighting for snippet files (used for snipMate.vim) +" Hopefully this should make snippets a bit nicer to write! +syn match snipComment '^#.*' +syn match placeHolder '\${\d\+\(:.\{-}\)\=}' contains=snipCommand +syn match tabStop '\$\d\+' +syn match snipCommand '`.\{-}`' +syn match snippet '^snippet.*' transparent contains=multiSnipText,snipKeyword +syn match multiSnipText '\S\+ \zs.*' contained +syn match snipKeyword '^snippet'me=s+8 contained +syn match snipError "^[^#s\t].*$" + +hi link snipComment Comment +hi link multiSnipText String +hi link snipKeyword Keyword +hi link snipComment Comment +hi link placeHolder Special +hi link tabStop Special +hi link snipCommand String +hi link snipError Error diff --git a/dotfiles/.vim/syntax/swig.vim b/dotfiles/.vim/syntax/swig.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: SWIG +" Maintainer: Roman Stanchak (rstanchak@yahoo.com) +" Last Change: 2006 July 25 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Read the C++ syntax to start with +if version < 600 + so <sfile>:p:h/cpp.vim +else + runtime! syntax/cpp.vim + unlet b:current_syntax +endif + +" SWIG extentions +syn keyword swigDirective %typemap %define %apply %fragment %include %enddef %extend %newobject %name +syn keyword swigDirective %rename %ignore %keyword %typemap %define %apply %fragment %include +syn keyword swigDirective %enddef %extend %newobject %name %rename %ignore %template %module %constant +syn match swigDirective "%\({\|}\)" +syn match swigUserDef "%[-_a-zA-Z0-9]\+" + +" Default highlighting +if version >= 508 || !exists("did_swig_syntax_inits") + if version < 508 + let did_cpp_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink swigDirective Exception + HiLink swigUserDef PreProc + delcommand HiLink +endif + +let b:current_syntax = "swig" + +" vim: ts=8 diff --git a/dotfiles/.vim/syntax/tablegen.vim b/dotfiles/.vim/syntax/tablegen.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: TableGen +" Maintainer: The LLVM team, http://llvm.org/ +" Version: $Revision$ + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" May be changed if you have a really slow machine +syntax sync minlines=100 + +syn case match + +syn keyword tgKeyword def let in code dag field include defm foreach +syn keyword tgType class int string list bit bits multiclass + +syn match tgNumber /\<\d\+\>/ +syn match tgNumber /\<\d\+\.\d*\>/ +syn match tgNumber /\<0b[01]\+\>/ +syn match tgNumber /\<0x[0-9a-fA-F]\+\>/ +syn region tgString start=/"/ skip=/\\"/ end=/"/ oneline + +syn region tgCode start=/\[{/ end=/}\]/ + +syn keyword tgTodo contained TODO FIXME +syn match tgComment /\/\/.*$/ contains=tgTodo +" Handle correctly imbricated comment +syn region tgComment2 matchgroup=tgComment2 start=+/\*+ end=+\*/+ contains=tgTodo,tgComment2 + +if version >= 508 || !exists("did_c_syn_inits") + if version < 508 + let did_c_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink tgKeyword Statement + HiLink tgType Type + HiLink tgNumber Number + HiLink tgComment Comment + HiLink tgComment2 Comment + HiLink tgString String + " May find a better Hilight group... + HiLink tgCode Special + HiLink tgTodo Todo + + delcommand HiLink +endif + +let b:current_syntax = "tablegen" diff --git a/dotfiles/.vim/syntax/thrift.vim b/dotfiles/.vim/syntax/thrift.vim @@ -0,0 +1,91 @@ +" Vim syntax file +" Language: Thrift +" Maintainer: Martin Smith <martin@facebook.com> +" Last Change: $Date: $ +" Copy to ~/.vim/ +" Add to ~/.vimrc +" au BufRead,BufNewFile *.thrift set filetype=thrift +" au! Syntax thrift source ~/.vim/thrift.vim +" +" $Id: $ +" +" Licensed to the Apache Software Foundation (ASF) under one +" or more contributor license agreements. See the NOTICE file +" distributed with this work for additional information +" regarding copyright ownership. The ASF licenses this file +" to you under the Apache License, Version 2.0 (the +" "License"); you may not use this file except in compliance +" with the License. You may obtain a copy of the License at +" +" http://www.apache.org/licenses/LICENSE-2.0 +" +" Unless required by applicable law or agreed to in writing, +" software distributed under the License is distributed on an +" "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +" KIND, either express or implied. See the License for the +" specific language governing permissions and limitations +" under the License. +" + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Todo +syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained + +" Comments +syn match thriftComment "#.*" contains=thriftTodo +syn region thriftComment start="/\*" end="\*/" contains=thriftTodo +syn match thriftComment "//.\{-}\(?>\|$\)\@=" + +" String +syn region thriftStringDouble matchgroup=None start=+"+ end=+"+ + +" Number +syn match thriftNumber "-\=\<\d\+\>" contained + +" Keywords +syn keyword thriftKeyword namespace +syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs +syn keyword thriftKeyword include cpp_include cpp_type const optional required +syn keyword thriftBasicTypes void bool byte i16 i32 i64 double string binary +syn keyword thriftStructure map list set struct typedef exception enum throws + +" Special +syn match thriftSpecial "\d\+:" + +" Structure +syn keyword thriftStructure service oneway extends +"async" { return tok_async; } +"exception" { return tok_xception; } +"extends" { return tok_extends; } +"throws" { return tok_throws; } +"service" { return tok_service; } +"enum" { return tok_enum; } +"const" { return tok_const; } + +if version >= 508 || !exists("did_thrift_syn_inits") + if version < 508 + let did_thrift_syn_inits = 1 + command! -nargs=+ HiLink hi link <args> + else + command! -nargs=+ HiLink hi def link <args> + endif + + HiLink thriftComment Comment + HiLink thriftKeyword Special + HiLink thriftBasicTypes Type + HiLink thriftStructure StorageClass + HiLink thriftTodo Todo + HiLink thriftString String + HiLink thriftNumber Number + HiLink thriftSpecial Special + HiLink thriftStructure Structure + + delcommand HiLink +endif + +let b:current_syntax = "thrift" diff --git a/dotfiles/.vim/syntax/typescript.vim b/dotfiles/.vim/syntax/typescript.vim @@ -0,0 +1,321 @@ +" Vim syntax file +" Language: TypeScript +" Author: MicroSoft Open Technologies Inc. +" Version: 0.1 +" Credits: Zhao Yi, Claudio Fleiner, Scott Shattuck, Jose Elera Campana + +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish + endif + let main_syntax = "typescript" +endif + +" Drop fold if it set but vim doesn't support it. +if version < 600 && exists("typeScript_fold") + unlet typeScript_fold +endif + +"" dollar sign is permitted anywhere in an identifier +setlocal iskeyword+=$ + +syntax sync fromstart + +"" syntax coloring for Node.js shebang line +syn match shebang "^#!.*/bin/env\s\+node\>" +hi link shebang Comment + +"" typeScript comments"{{{ +syn keyword typeScriptCommentTodo TODO FIXME XXX TBD contained +syn match typeScriptLineComment "\/\/.*" contains=@Spell,typeScriptCommentTodo,typeScriptRef +syn match typeScriptRef /\/\/\/<reference\s\+.*\/>$/ contains=typeScriptRefD,typeScriptRefS +syn region typeScriptRefD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ +syn region typeScriptRefS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ + +syn match typeScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" +syn region typeScriptComment start="/\*" end="\*/" contains=@Spell,typeScriptCommentTodo +"}}} +"" JSDoc support start"{{{ +if !exists("typeScript_ignore_typeScriptdoc") + syntax case ignore + +" syntax coloring for JSDoc comments (HTML) +"unlet b:current_syntax + + syntax region typeScriptDocComment matchgroup=typeScriptComment start="/\*\*\s*$" end="\*/" contains=typeScriptDocTags,typeScriptCommentTodo,typeScriptCvsTag,@typeScriptHtml,@Spell fold + syntax match typeScriptDocTags contained "@\(param\|argument\|requires\|exception\|throws\|type\|class\|extends\|see\|link\|member\|module\|method\|title\|namespace\|optional\|default\|base\|file\)\>" nextgroup=typeScriptDocParam,typeScriptDocSeeTag skipwhite + syntax match typeScriptDocTags contained "@\(beta\|deprecated\|description\|fileoverview\|author\|license\|version\|returns\=\|constructor\|private\|protected\|final\|ignore\|addon\|exec\)\>" + syntax match typeScriptDocParam contained "\%(#\|\w\|\.\|:\|\/\)\+" + syntax region typeScriptDocSeeTag contained matchgroup=typeScriptDocSeeTag start="{" end="}" contains=typeScriptDocTags + + syntax case match +endif "" JSDoc end +"}}} +syntax case match + +"" Syntax in the typeScript code"{{{ +syn match typeScriptSpecial "\\\d\d\d\|\\." +syn region typeScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=typeScriptSpecial,@htmlPreproc +syn region typeScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=typeScriptSpecial,@htmlPreproc + +syn match typeScriptSpecialCharacter "'\\.'" +syn match typeScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn region typeScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline +" syntax match typeScriptSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\." +" syntax region typeScriptStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=typeScriptSpecial,@htmlPreproc +" syntax region typeScriptStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=typeScriptSpecial,@htmlPreproc +" syntax region typeScriptRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]\{,3}+ contains=typeScriptSpecial,@htmlPreproc oneline +" syntax match typeScriptNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/ +syntax match typeScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ +" syntax match typeScriptLabel /\(?\s*\)\@<!\<\w\+\(\s*:\)\@=/ +"}}} +"" typeScript Prototype"{{{ +syntax keyword typeScriptPrototype prototype +"}}} +" DOM, Browser and Ajax Support {{{ +"""""""""""""""""""""""" +syntax keyword typeScriptBrowserObjects window navigator screen history location + +syntax keyword typeScriptDOMObjects document event HTMLElement Anchor Area Base Body Button Form Frame Frameset Image Link Meta Option Select Style Table TableCell TableRow Textarea +syntax keyword typeScriptDOMMethods createTextNode createElement insertBefore replaceChild removeChild appendChild hasChildNodes cloneNode normalize isSupported hasAttributes getAttribute setAttribute removeAttribute getAttributeNode setAttributeNode removeAttributeNode getElementsByTagName hasAttribute getElementById adoptNode close compareDocumentPosition createAttribute createCDATASection createComment createDocumentFragment createElementNS createEvent createExpression createNSResolver createProcessingInstruction createRange createTreeWalker elementFromPoint evaluate getBoxObjectFor getElementsByClassName getSelection getUserData hasFocus importNode +syntax keyword typeScriptDOMProperties nodeName nodeValue nodeType parentNode childNodes firstChild lastChild previousSibling nextSibling attributes ownerDocument namespaceURI prefix localName tagName + +syntax keyword typeScriptAjaxObjects XMLHttpRequest +syntax keyword typeScriptAjaxProperties readyState responseText responseXML statusText +syntax keyword typeScriptAjaxMethods onreadystatechange abort getAllResponseHeaders getResponseHeader open send setRequestHeader + +syntax keyword typeScriptPropietaryObjects ActiveXObject +syntax keyword typeScriptPropietaryMethods attachEvent detachEvent cancelBubble returnValue + +syntax keyword typeScriptHtmlElemProperties className clientHeight clientLeft clientTop clientWidth dir href id innerHTML lang length offsetHeight offsetLeft offsetParent offsetTop offsetWidth scrollHeight scrollLeft scrollTop scrollWidth style tabIndex target title + +syntax keyword typeScriptEventListenerKeywords blur click focus mouseover mouseout load item + +syntax keyword typeScriptEventListenerMethods scrollIntoView addEventListener dispatchEvent removeEventListener preventDefault stopPropagation +" }}} +"" Programm Keywords"{{{ +syntax keyword typeScriptSource import export +syntax keyword typeScriptIdentifier arguments this let var void yield +syntax keyword typeScriptOperator delete new instanceof typeof +syntax keyword typeScriptBoolean true false +syntax keyword typeScriptNull null undefined +syntax keyword typeScriptMessage alert confirm prompt status +syntax keyword typeScriptGlobal self top parent +syntax keyword typeScriptDeprecated escape unescape all applets alinkColor bgColor fgColor linkColor vlinkColor xmlEncoding +"}}} +"" Statement Keywords"{{{ +syntax keyword typeScriptConditional if else switch +syntax keyword typeScriptRepeat do while for in +syntax keyword typeScriptBranch break continue +syntax keyword typeScriptLabel case default +syntax keyword typeScriptStatement return with + +syntax keyword typeScriptGlobalObjects Array Boolean Date Function Infinity Math Number NaN Object Packages RegExp String netscape + +syntax keyword typeScriptExceptions try catch throw finally Error EvalError RangeError ReferenceError SyntaxError TypeError URIError + +syntax keyword typeScriptReserved constructor declare as interface module abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public +"}}} +"" TypeScript/DOM/HTML/CSS specified things"{{{ + +" TypeScript Objects"{{{ + syn match typeScriptFunction "(super\s*|constructor\s*)" contained nextgroup=typeScriptVars + syn region typeScriptVars start="(" end=")" contained contains=typeScriptParameters transparent keepend + syn match typeScriptParameters "([a-zA-Z0-9_?.$][\w?.$]*)\s*:\s*([a-zA-Z0-9_?.$][\w?.$]*)" contained skipwhite +"}}} +" DOM2 Objects"{{{ + syntax keyword typeScriptType DOMImplementation DocumentFragment Node NodeList NamedNodeMap CharacterData Attr Element Text Comment CDATASection DocumentType Notation Entity EntityReference ProcessingInstruction void any string bool number + syntax keyword typeScriptExceptions DOMException +"}}} +" DOM2 CONSTANT"{{{ + syntax keyword typeScriptDomErrNo INDEX_SIZE_ERR DOMSTRING_SIZE_ERR HIERARCHY_REQUEST_ERR WRONG_DOCUMENT_ERR INVALID_CHARACTER_ERR NO_DATA_ALLOWED_ERR NO_MODIFICATION_ALLOWED_ERR NOT_FOUND_ERR NOT_SUPPORTED_ERR INUSE_ATTRIBUTE_ERR INVALID_STATE_ERR SYNTAX_ERR INVALID_MODIFICATION_ERR NAMESPACE_ERR INVALID_ACCESS_ERR + syntax keyword typeScriptDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE ENTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INSTRUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE +"}}} +" HTML events and internal variables"{{{ + syntax case ignore + syntax keyword typeScriptHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize onload onsubmit + syntax case match +"}}} + +" Follow stuff should be highligh within a special context +" While it can't be handled with context depended with Regex based highlight +" So, turn it off by default +if exists("typeScript_enable_domhtmlcss") + +" DOM2 things"{{{ + syntax match typeScriptDomElemAttrs contained /\%(nodeName\|nodeValue\|nodeType\|parentNode\|childNodes\|firstChild\|lastChild\|previousSibling\|nextSibling\|attributes\|ownerDocument\|namespaceURI\|prefix\|localName\|tagName\)\>/ + syntax match typeScriptDomElemFuncs contained /\%(insertBefore\|replaceChild\|removeChild\|appendChild\|hasChildNodes\|cloneNode\|normalize\|isSupported\|hasAttributes\|getAttribute\|setAttribute\|removeAttribute\|getAttributeNode\|setAttributeNode\|removeAttributeNode\|getElementsByTagName\|getAttributeNS\|setAttributeNS\|removeAttributeNS\|getAttributeNodeNS\|setAttributeNodeNS\|getElementsByTagNameNS\|hasAttribute\|hasAttributeNS\)\>/ nextgroup=typeScriptParen skipwhite +"}}} +" HTML things"{{{ + syntax match typeScriptHtmlElemAttrs contained /\%(className\|clientHeight\|clientLeft\|clientTop\|clientWidth\|dir\|id\|innerHTML\|lang\|length\|offsetHeight\|offsetLeft\|offsetParent\|offsetTop\|offsetWidth\|scrollHeight\|scrollLeft\|scrollTop\|scrollWidth\|style\|tabIndex\|title\)\>/ + syntax match typeScriptHtmlElemFuncs contained /\%(blur\|click\|focus\|scrollIntoView\|addEventListener\|dispatchEvent\|removeEventListener\|item\)\>/ nextgroup=typeScriptParen skipwhite +"}}} +" CSS Styles in typeScript"{{{ + syntax keyword typeScriptCssStyles contained color font fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight letterSpacing lineBreak lineHeight quotes rubyAlign rubyOverhang rubyPosition + syntax keyword typeScriptCssStyles contained textAlign textAlignLast textAutospace textDecoration textIndent textJustify textJustifyTrim textKashidaSpace textOverflowW6 textShadow textTransform textUnderlinePosition + syntax keyword typeScriptCssStyles contained unicodeBidi whiteSpace wordBreak wordSpacing wordWrap writingMode + syntax keyword typeScriptCssStyles contained bottom height left position right top width zIndex + syntax keyword typeScriptCssStyles contained border borderBottom borderLeft borderRight borderTop borderBottomColor borderLeftColor borderTopColor borderBottomStyle borderLeftStyle borderRightStyle borderTopStyle borderBottomWidth borderLeftWidth borderRightWidth borderTopWidth borderColor borderStyle borderWidth borderCollapse borderSpacing captionSide emptyCells tableLayout + syntax keyword typeScriptCssStyles contained margin marginBottom marginLeft marginRight marginTop outline outlineColor outlineStyle outlineWidth padding paddingBottom paddingLeft paddingRight paddingTop + syntax keyword typeScriptCssStyles contained listStyle listStyleImage listStylePosition listStyleType + syntax keyword typeScriptCssStyles contained background backgroundAttachment backgroundColor backgroundImage gackgroundPosition backgroundPositionX backgroundPositionY backgroundRepeat + syntax keyword typeScriptCssStyles contained clear clip clipBottom clipLeft clipRight clipTop content counterIncrement counterReset cssFloat cursor direction display filter layoutGrid layoutGridChar layoutGridLine layoutGridMode layoutGridType + syntax keyword typeScriptCssStyles contained marks maxHeight maxWidth minHeight minWidth opacity MozOpacity overflow overflowX overflowY verticalAlign visibility zoom cssText + syntax keyword typeScriptCssStyles contained scrollbar3dLightColor scrollbarArrowColor scrollbarBaseColor scrollbarDarkShadowColor scrollbarFaceColor scrollbarHighlightColor scrollbarShadowColor scrollbarTrackColor +"}}} +" Highlight ways"{{{ + syntax match typeScriptDotNotation "\." nextgroup=typeScriptPrototype,typeScriptDomElemAttrs,typeScriptDomElemFuncs,typeScriptHtmlElemAttrs,typeScriptHtmlElemFuncs + syntax match typeScriptDotNotation "\.style\." nextgroup=typeScriptCssStyles +"}}} +endif "DOM/HTML/CSS + +"" end DOM/HTML/CSS specified things""}}} + + +"" Code blocks +syntax cluster typeScriptAll contains=typeScriptComment,typeScriptLineComment,typeScriptDocComment,typeScriptStringD,typeScriptStringS,typeScriptRegexpString,typeScriptNumber,typeScriptFloat,typeScriptLabel,typeScriptSource,typeScriptType,typeScriptOperator,typeScriptBoolean,typeScriptNull,typeScriptFuncKeyword,typeScriptConditional,typeScriptGlobal,typeScriptRepeat,typeScriptBranch,typeScriptStatement,typeScriptGlobalObjects,typeScriptMessage,typeScriptIdentifier,typeScriptExceptions,typeScriptReserved,typeScriptDeprecated,typeScriptDomErrNo,typeScriptDomNodeConsts,typeScriptHtmlEvents,typeScriptDotNotation,typeScriptBrowserObjects,typeScriptDOMObjects,typeScriptAjaxObjects,typeScriptPropietaryObjects,typeScriptDOMMethods,typeScriptHtmlElemProperties,typeScriptDOMProperties,typeScriptEventListenerKeywords,typeScriptEventListenerMethods,typeScriptAjaxProperties,typeScriptAjaxMethods,typeScriptFuncArg + +if main_syntax == "typeScript" + syntax sync clear + syntax sync ccomment typeScriptComment minlines=200 +" syntax sync match typeScriptHighlight grouphere typeScriptBlock /{/ +endif + +syntax keyword typeScriptFuncKeyword function contained +syntax region typeScriptFuncDef start="function" end="\([^)]*\)" contains=typeScriptFuncKeyword,typeScriptFuncArg keepend +syntax match typeScriptFuncArg "\(([^()]*)\)" contains=typeScriptParens,typeScriptFuncComma contained +syntax match typeScriptFuncComma /,/ contained +" syntax region typeScriptFuncBlock contained matchgroup=typeScriptFuncBlock start="{" end="}" contains=@typeScriptAll,typeScriptParensErrA,typeScriptParensErrB,typeScriptParen,typeScriptBracket,typeScriptBlock fold + +syn match typeScriptBraces "[{}\[\]]" +syn match typeScriptParens "[()]" +syn match typeScriptOpSymbols "=\{1,3}\|!==\|!=\|<\|>\|>=\|<=\|++\|+=\|--\|-=" +syn match typeScriptEndColons "[;,]" +syn match typeScriptLogicSymbols "\(&&\)\|\(||\)" + +" typeScriptFold Function {{{ + +function! TypeScriptFold() +setl foldmethod=syntax +setl foldlevelstart=1 +syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend + +setl foldtext=FoldText() +endfunction + +au FileType typeScript call TypeScriptFold() + +" }}} + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_typeScript_syn_inits") + if version < 508 + let did_typeScript_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + "Typescript highlighting + HiLink typeScriptParameters Operator + HiLink typescriptSuperBlock Operator + + HiLink typeScriptEndColons Exception + HiLink typeScriptOpSymbols Operator + HiLink typeScriptLogicSymbols Boolean + HiLink typeScriptBraces Function + HiLink typeScriptParens Operator + HiLink typeScriptComment Comment + HiLink typeScriptLineComment Comment + HiLink typeScriptRef Include + HiLink typeScriptRefS String + HiLink typeScriptRefD String + HiLink typeScriptDocComment Comment + HiLink typeScriptCommentTodo Todo + HiLink typeScriptCvsTag Function + HiLink typeScriptDocTags Special + HiLink typeScriptDocSeeTag Function + HiLink typeScriptDocParam Function + HiLink typeScriptStringS String + HiLink typeScriptStringD String + HiLink typeScriptRegexpString String + HiLink typeScriptGlobal Constant + HiLink typeScriptCharacter Character + HiLink typeScriptPrototype Type + HiLink typeScriptConditional Conditional + HiLink typeScriptBranch Conditional + HiLink typeScriptIdentifier Identifier + HiLink typeScriptRepeat Repeat + HiLink typeScriptStatement Statement + HiLink typeScriptFuncKeyword Function + HiLink typeScriptMessage Keyword + HiLink typeScriptDeprecated Exception + HiLink typeScriptError Error + HiLink typeScriptParensError Error + HiLink typeScriptParensErrA Error + HiLink typeScriptParensErrB Error + HiLink typeScriptParensErrC Error + HiLink typeScriptReserved Keyword + HiLink typeScriptOperator Operator + HiLink typeScriptType Type + HiLink typeScriptNull Type + HiLink typeScriptNumber Number + HiLink typeScriptFloat Number + HiLink typeScriptBoolean Boolean + HiLink typeScriptLabel Label + HiLink typeScriptSpecial Special + HiLink typeScriptSource Special + HiLink typeScriptGlobalObjects Special + HiLink typeScriptExceptions Special + + HiLink typeScriptDomErrNo Constant + HiLink typeScriptDomNodeConsts Constant + HiLink typeScriptDomElemAttrs Label + HiLink typeScriptDomElemFuncs PreProc + + HiLink typeScriptHtmlElemAttrs Label + HiLink typeScriptHtmlElemFuncs PreProc + + HiLink typeScriptCssStyles Label +" Ajax Highlighting +HiLink typeScriptBrowserObjects Constant + +HiLink typeScriptDOMObjects Constant +HiLink typeScriptDOMMethods Exception +HiLink typeScriptDOMProperties Type + +HiLink typeScriptAjaxObjects htmlH1 +HiLink typeScriptAjaxMethods Exception +HiLink typeScriptAjaxProperties Type + +HiLink typeScriptFuncDef Title + HiLink typeScriptFuncArg Special + HiLink typeScriptFuncComma Operator + +HiLink typeScriptHtmlEvents Special +HiLink typeScriptHtmlElemProperties Type + +HiLink typeScriptEventListenerKeywords Keyword + +HiLink typeScriptNumber Number +HiLink typeScriptPropietaryObjects Constant + + delcommand HiLink +endif + +" Define the htmltypeScript for HTML syntax html.vim +"syntax clear htmltypeScript +"syntax clear typeScriptExpression +syntax cluster htmltypeScript contains=@typeScriptAll,typeScriptBracket,typeScriptParen,typeScriptBlock,typeScriptParenError +syntax cluster typeScriptExpression contains=@typeScriptAll,typeScriptBracket,typeScriptParen,typeScriptBlock,typeScriptParenError,@htmlPreproc + +let b:current_syntax = "typeScript" +if main_syntax == 'typeScript' + unlet main_syntax +endif + +" vim: ts=4 diff --git a/dotfiles/.vim/syntax/yaml.vim b/dotfiles/.vim/syntax/yaml.vim @@ -0,0 +1,62 @@ +" To make this file do stuff, add something like the following (without the +" leading ") to your ~/.vimrc: +" au BufNewFile,BufRead *.yaml,*.yml so ~/src/PyYaml/YAML.vim + +" Vim syntax/macro file +" Language: YAML +" Author: Igor Vergeichik <iverg@mail.ru> +" Sponsor: Tom Sawyer <transami@transami.net> +" Stayven: Ryan King <jking@panoptic.com> +" Copyright (c) 2002 Tom Saywer + +" Add an item to a gangly list: +"map , o<bs><bs><bs><bs>-<esc>o +" Convert to Canonical form: +"map \c :%!python -c 'from yaml.redump import redump; import sys; print redump(sys.stdin.read()).rstrip()' + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif +syntax clear + +syn match yamlDelimiter "[:,-]" +syn match yamlBlock "[\[\]\{\}\|\>]" +syn match yamlOperator "[?^+-]\|=>" + +syn region yamlComment start="\#" end="$" +syn match yamlIndicator "#YAML:\S\+" + +syn region yamlString start="'" end="'" skip="\\'" +syn region yamlString start='"' end='"' skip='\\"' contains=yamlEscape +syn match yamlEscape +\\[abfnrtv'"\\]+ contained +syn match yamlEscape "\\\o\o\=\o\=" contained +syn match yamlEscape "\\x\x\+" contained + +syn match yamlType "!\S\+" + +syn keyword yamlConstant NULL Null null NONE None none NIL Nil nil +syn keyword yamlConstant TRUE True true YES Yes yes ON On on +syn keyword yamlConstant FALSE False false NO No no OFF Off off + +syn match yamlKey "\w\+\ze\s*:" +syn match yamlAnchor "&\S\+" +syn match yamlAlias "*\S\+" + +" Setupt the hilighting links + +hi link yamlConstant Keyword +hi link yamlIndicator PreCondit +hi link yamlAnchor Function +hi link yamlAlias Function +hi link yamlKey Identifier +hi link yamlType Type + +hi link yamlComment Comment +hi link yamlBlock Operator +hi link yamlOperator Operator +hi link yamlDelimiter Delimiter +hi link yamlString String +hi link yamlEscape Special + diff --git a/dotfiles/.vimperatorrc b/dotfiles/.vimperatorrc @@ -0,0 +1,26 @@ +"3.10.1 (created: 2015/08/25 00:41:59) + +map wo :tabonly<Return> +noremap d <C-d> +noremap u <C-u> +noremap <C-u> u +noremap <C-1> 1gt +noremap <C-2> 2gt +noremap <C-3> 3gt +noremap <C-4> 4gt +noremap <C-5> 5gt +noremap <C-6> 6gt +noremap <C-7> 7gt +noremap <C-8> 8gt +noremap <C-9> 9gt + +autocmd LocationChange .* js modes.passAllKeys = false +autocmd LocationChange mail\\.google\\.com js modes.passAllKeys = true +autocmd LocationChange www\\.google\\.com/calendar js modes.passAllKeys = true +autocmd LocationChange .*\\.slack\\.com js modes.passAllKeys = true + +" auto-pin certain tabs +autocmd PageLoad monstercat\\.slack\\.com js if(!getBrowser().mCurrentTab.pinned) getBrowser().pinTab(getBrowser().mCurrentTab); +autocmd PageLoad mail\\.google\\.com js if(!getBrowser().mCurrentTab.pinned) getBrowser().pinTab(getBrowser().mCurrentTab); + +" vim: set ft=vimperator: diff --git a/dotfiles/.xbindkeysrc b/dotfiles/.xbindkeysrc @@ -0,0 +1,24 @@ +"lock" + XF86Display + +"lock" + Pause + +"cmdtree" + Mod4 + u + +"cmdtree" + Mod4 + grave + +"env TZ='America/New_York' n date '+%a | %b %d | %H:%M:%S | %F'" + Mod4 + Control + F5 + +"xbacklight -dec 5" + XF86MonBrightnessDown + +"xbacklight -inc 5" + XF86MonBrightnessUp + +"snap" + Control + Print + diff --git a/dotfiles/.xinitrc b/dotfiles/.xinitrc @@ -0,0 +1,51 @@ +#!/usr/bin/env sh +# +# ~/.xinitrc +# + +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for f in /etc/X11/xinit/xinitrc.d/*; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +# xresources +#xrdb ~/.Xresources + +# nvidia +#nvidia-settings -l + +# repeat rate +xset r rate 300 40 + +# fonts +#xset +fp /usr/share/fonts/X11/PCF/ProFont/ + +# hotkeys +#sxhkd & + +# redshift +#redshift & + +# wallpaper +#feh --bg-tile "$HOME/bg.png" --no-fehbg +hsetroot -solid '#1a2028' + +# compositor +compton -r 4 -o 0.75 -l -6 -t -6 -c -G -b -m 0.75 + +# slow down deathadder +xinput set-prop 8 "Device Accel Constant Deceleration" 3 + +# bar +#bar.sh | bar -g x24 -d -f -*-profont-*-*-*-*-12-*-*-*-*-*-*-* -B "#ff101820" -F "#ff687078" & + +# mpd +#mpd + +# vnc +#x11vnc -forever -rfbauth ~/.x11vnc/passwd & + +# window manager +#exec spectrwm diff --git a/dotfiles/.xmonad/.envrc b/dotfiles/.xmonad/.envrc @@ -0,0 +1 @@ +use nix diff --git a/dotfiles/.xmonad/shell.nix b/dotfiles/.xmonad/shell.nix @@ -0,0 +1,12 @@ +let + pkgs = import <nixpkgs> { + config.allowUnfree = false; + overlays = [ ]; + }; + + ghcenv = pkgs.haskellPackages.ghcWithPackages (p: with p; [ xmonad xmonad-contrib ]); +in +pkgs.stdenv.mkDerivation { + name = "xmonad-dev-env"; + buildInputs = [ ghcenv ]; +} diff --git a/dotfiles/.xmonad/xmonad.hs b/dotfiles/.xmonad/xmonad.hs @@ -0,0 +1,265 @@ +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE TypeSynonymInstances #-} +{-# LANGUAGE MultiParamTypeClasses #-} + +import Data.Ratio +import Data.IORef +import Data.List +import Data.Default (def) +import Control.Monad (when) +import System.IO.Unsafe (unsafePerformIO) +import System.Posix.Files (readSymbolicLink) +import System.Posix.Signals (installHandler, sigUSR1, Handler(CatchOnce)) +import System.FilePath.Posix (takeBaseName) +import XMonad +import XMonad.Actions.CycleWS +import XMonad.Actions.SpawnOn (shellPromptHere, manageSpawn) +import XMonad.Actions.UpdatePointer +import XMonad.Hooks.EwmhDesktops (ewmh) +import XMonad.Hooks.ManageDocks +import XMonad.Hooks.ManageHelpers +import XMonad.Hooks.SetWMName +import XMonad.Hooks.UrgencyHook +import XMonad.Layout.Gaps +import XMonad.Layout.Grid +import XMonad.Layout.LayoutModifier +import XMonad.Layout.Maximize +import XMonad.Layout.MultiToggle +import XMonad.Layout.MultiToggle.Instances +import XMonad.Layout.NoBorders +import XMonad.Layout.ResizableTile +import XMonad.Layout.ResizeScreen +import XMonad.Layout.Spacing +import XMonad.Layout.Spiral +import XMonad.Layout.Tabbed +import XMonad.Layout.ToggleLayouts (ToggleLayout(ToggleLayout)) +import XMonad.Prompt +import XMonad.Prompt.Shell +import XMonad.Util.EZConfig +import XMonad.Util.NamedWindows +import XMonad.Util.Paste +import XMonad.Util.Run +import XMonad.Util.Font +import XMonad.Util.Image +import qualified XMonad.Layout.HintedTile as HT + +import qualified XMonad.StackSet as W + +data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show) + +instance UrgencyHook LibNotifyUrgencyHook where + urgencyHook LibNotifyUrgencyHook w = do + name <- getName w + Just idx <- W.findTag w <$> gets windowset + + safeSpawn "notify-send" [show name, "workspace " ++ idx] + +data OurTheme = + BasicTheme ThemeType String String + | FullTheme { + themeType :: ThemeType + , themeActiveColor :: String + , themeInactiveColor :: String + , themeActiveText :: String + , themeInactiveText :: String + } + deriving (Show, Read, Eq, Typeable) + +getThemeType (BasicTheme typ _ _) = typ +getThemeType FullTheme{..} = themeType + +data Center = Center deriving (Show, Read, Eq, Typeable) +data Maximized = Maximized deriving (Show, Read, Eq, Typeable) +data Gapz = Gapz deriving (Show, Read, Eq, Typeable) +data TabbedFull = TabbedFull OurTheme deriving (Show, Read, Eq, Typeable) +data ThemeType = LightTheme | DarkTheme deriving (Show, Read, Eq, Typeable) + +orig (ModifiedLayout _ o) = o +modi (ModifiedLayout mod _) = mod + +instance Transformer Center Window where + transform Center x k = k (centered x) (orig . orig) + +instance Transformer Gapz Window where + transform Gapz x k = k (smartSpacingWithEdge gapSize x) orig + +instance Transformer TabbedFull Window where + transform (TabbedFull theme) x k = + k (tabs (mkTabTheme theme) ||| Full) (const x) + +-- TODO: this should be a ratio based off current screen width +centeredGap = 270 +centered = resizeHorizontal centeredGap . resizeHorizontalRight centeredGap + +gapSize = 5 +sideGaps = False + +ourFont = "xft:terminus:size=12" +tabs = tabbed shrinkText + +baseTabTheme :: Theme +baseTabTheme = def { fontName = ourFont } + +mkTabTheme FullTheme{..} = + baseTabTheme { + inactiveBorderColor = themeInactiveColor + , inactiveColor = themeInactiveColor + , inactiveTextColor = themeInactiveText + , activeColor = themeActiveColor + , activeBorderColor = themeActiveColor + , activeTextColor = themeActiveText + } +mkTabTheme (BasicTheme _ active inactive) = + baseTabTheme { + inactiveBorderColor = inactive + , inactiveColor = inactive + , activeColor = active + , activeBorderColor = active + } + +darkTheme :: OurTheme +darkTheme = BasicTheme DarkTheme "#282C34" "#323742" + + +--darkTheme :: OurTheme +--darkTheme = FullTheme { +-- themeActiveColor = "#282C34" +-- , themeInactiveColor = "#323742" +-- , themeActiveText = "#000000" +-- , themeInactiveText = "#777777" +--} + + +lightTheme :: OurTheme +lightTheme = FullTheme { + themeType = LightTheme + , themeActiveColor = "#FFFFFF" + , themeInactiveColor = "#EEEEEE" + , themeActiveText = "#000000" + , themeInactiveText = "#777777" +} + +allGaps = (U, if sideGaps then gapSize else 0) : + if sideGaps then map (,gapSize) (enumFrom D) + else [] + +baseLayout = + let + tall = ResizableTall 1 (3/100) (1/2) [] + in + Mirror tall -- ||| otherstuff + +layout theme + = smartBorders + . mkToggle (Center ?? EOT) + . mkToggle ((TabbedFull theme) ?? EOT) + . mkToggle (Gapz ?? EOT) + . mkToggle (MIRROR ?? EOT) + $ baseLayout + + +getTheme :: IO OurTheme +getTheme = do + themePath <- readSymbolicLink "/home/jb55/.Xresources.d/themes/current" + case takeBaseName themePath of + "light" -> return lightTheme + _ -> return darkTheme + + +myStartupHook :: Layout Window -> X () +myStartupHook lout = do + setWMName "LG3D" + setLayout lout -- needed until we have themeSwitch implemented + +readTheme :: IORef OurTheme -> OurTheme +readTheme = unsafePerformIO . readIORef + +otherTheme :: OurTheme -> OurTheme +otherTheme t = + case getThemeType t of + LightTheme -> darkTheme + DarkTheme -> lightTheme + +shouldntFloat :: String -> Bool +shouldntFloat = isPrefixOf "qutebrowser" + +shouldFloat :: Query Bool +shouldFloat = do + fs <- isFullscreen + name <- appName + return (fs && not (shouldntFloat name)) + +myConfig theme = + let lout = layout theme + cfg = def { + terminal = "urxvtc" + , modMask = mod4Mask + , layoutHook = lout + , startupHook = myStartupHook (Layout lout) + , manageHook = shouldFloat --> doFullFloat -- doesn't show otherwise + , normalBorderColor = "#222" + , focusedBorderColor = "#BE5046" + } + in + withUrgencyHook LibNotifyUrgencyHook + $ ewmh + $ cfg + `additionalKeysP` (myKeys theme) + +main = do + installHandler sigUSR1 (CatchOnce doRestart) Nothing + theme <- getTheme + xmonad (myConfig theme) + +myXPConfig = + def { + font = ourFont, + height = 20, + borderColor = "#000000" + } + +nWindows :: X Int +nWindows = fmap go get + where + go = length . W.integrate' + . W.stack + . W.workspace + . W.current + . windowset + +toggleGaps = sendMessage (Toggle Gapz) +toggleFull theme = sendMessage (Toggle (TabbedFull theme)) +toggleMirror = sendMessage (Toggle MIRROR) +toggleCenter = sendMessage (Toggle Center) + +myKeys theme = [ + ("M-p", spawn "dmenu_run -fn \"terminus-12\" -p \"run\"") + , ("M-a", focusUrgent) + , ("M-d", toggleWS) + , ("M-f", toggleFull theme) + , ("M-c", toggleCenter) + , ("M-m", toggleMirror) + , ("M-g", toggleGaps) + -- , ("M-r", toggleFull) + , ("M-v", sendKey shiftMask xK_Insert) + ] + + + +sendRestart :: IO () +sendRestart = do + dpy <- openDisplay "" + rw <- rootWindow dpy $ defaultScreen dpy + xmonad_restart <- internAtom dpy "XMONAD_RESTART" False + allocaXEvent $ \e -> do + setEventType e clientMessage + setClientMessageEvent e rw xmonad_restart 32 0 currentTime + sendEvent dpy rw False structureNotifyMask e + sync dpy False + + +doRestart = spawn "xmonad --restart" diff --git a/dotfiles/.zshrc b/dotfiles/.zshrc @@ -0,0 +1,106 @@ +# +# Path to your oh-my-zsh configuration. +#export ZSH=$HOME/.oh-my-zsh + +# Set to the name theme to load. +# Look in ~/.oh-my-zsh/themes/ +#export ZSH_THEME="jb55" + +#export DISABLE_AUTO_UPDATE="true" +#source $ZSH/oh-my-zsh.sh + +# vi +bindkey -v + +setopt HIST_IGNORE_SPACE +setopt AUTO_PUSHD +setopt PUSHD_MINUS +setopt CDABLE_VARS +zstyle ':completion:*:directory-stack' list-colors '=(#b) #([0-9]#)*( *)==95=38;5;12' + +# short ESC delay +export KEYTIMEOUT=1 + +bindkey "^R" history-incremental-search-backward +bindkey "^F" history-incremental-search-forward + +# history settings +export HISTSIZE=50000 +export SAVEHIST=$HISTSIZE +setopt hist_ignore_all_dups + +export NIXPKGS=$HOME/nixpkgs +export NIX_FILES=$HOME/etc/nix-files + +# nix paths +export NIX_PATH="nixpkgs=$NIXPKGS:$NIX_PATH" +export NIX_PATH="nixos-config=$NIX_FILES:$NIX_PATH" +export NIX_PATH="monstercatpkgs=$HOME/etc/monstercatpkgs:$NIX_PATH" +export NIX_PATH="jb55pkgs=$HOME/etc/jb55pkgs:$NIX_PATH" +export NIX_PATH="dotfiles=$HOME/dotfiles:$NIX_PATH" + +# Customize to your needs... + +[ -e $HOME/.profile ] && source $HOME/.profile + +# other +export EDITOR="edit" +export VISUAL="edit-visual" +export BROWSER="qbrowser" +export PAGER=less +export LESS="-R" + +# go + +export GOPATH=$HOME/dev/gocode +export RUBYBIN=$HOME/.ruby/1.8/gems/bin +export PATH=$HOME/bin:$PATH +export PATH=$HOME/.local/bin:$PATH +export PATH=$RUBYBIN:$HOME/.npm/bin:$GOPATH/bin:$PATH +export PATH=$RUBYBIN:$HOME/.npm/bin:$GOPATH/bin:$PATH + +# alias + +# fix ssh agent forwarding in screen +FIXSSH=$HOME/bin/fixssh +if [[ $TERM == screen* ]] && [[ -f $FIXSSH ]]; then + source $FIXSSH +fi + + +### Added by the Heroku Toolbelt +export PATH="/usr/local/heroku/bin:$PATH" + +PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting + +export GEM_HOME="$HOME/.ruby/1.8/gems" +export GEM_PATH="$GEM_HOME" + +# added by travis gem +[ -f /Users/jb55/.travis/travis.sh ] && source /Users/jb55/.travis/travis.sh + +# z +source "$HOME/bin/z.sh" + +export BARI=$HOME/Dropbox/shared/bari + + +ALIASES="$HOME/.bash_aliases" +[ -e "$ALIASES" ] && source "$ALIASES" + +DIRCOLORS="$HOME/.dircolors" +[ -e "$DIRCOLORS" ] && eval "$(dircolors -b "$DIRCOLORS")" + +export FZF_DEFAULT_OPTS="--color=light" + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh + +[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' + +# undistract-me is great +[ -e $HOME/dotfiles/zsh/undistract-me.zsh ] && . $HOME/dotfiles/zsh/undistract-me.zsh + +# added by travis gem +[ -f /home/jb55/.travis/travis.sh ] && source /home/jb55/.travis/travis.sh + +eval "$(direnv hook zsh)" diff --git a/dotfiles/all.do b/dotfiles/all.do @@ -0,0 +1 @@ +redo-ifchange .vim/all diff --git a/dotfiles/bash-undistract-me/.bzrignore b/dotfiles/bash-undistract-me/.bzrignore @@ -0,0 +1,3 @@ +debian/undistract-me +debian/undistract-me.debhelper.log +debian/undistract-me.substvars diff --git a/dotfiles/bash-undistract-me/LICENSE b/dotfiles/bash-undistract-me/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2012-2013 Jonathan M. Lange <jml@mumak.net> and the undistract-me +authors. + +The undistract-me authors are: + * Canonical Ltd + * Jonathan Lange + * Matthew Lefkowitz + * Clint Byrum + * Mikey Neuling + * Stephen Rothwell + +and are collectively referred to as "undistract-me developers". + +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. diff --git a/dotfiles/bash-undistract-me/README.md b/dotfiles/bash-undistract-me/README.md @@ -0,0 +1,87 @@ +# undistract-me + +Notifies you when long-running terminal commands complete. + +## What is this? + +Does this ever happen to you? + +You're doing some work, and as part of that you need to run a command on the +terminal that takes a little while to finish. You run the command, watch it +for maybe a second and then switch to doing something else – checking +email or something. + +You get so deeply involved in your email that twenty minutes fly by. When +you switch back to your terminal the command has finished, but you've got no +idea whether it was nineteen seconds ago or nineteen *minutes* ago. + +This happens to me a lot. I'm just not disciplined enough to sit and watch +commands, and I'm not prescient enough to add something to each invocation to +tell me. What I want is something that alerts me whenever long running +commands finish. + +This is it. + +Install this, and then you'll get a notification when any command finishes +that took longer than ten seconds to finish. + +## Installation + +### From the Ubuntu repositories + + $ sudo apt install undistract-me + +### From the branch + + $ bzr checkout --lightweight lp:undistract-me + $ . undistract-me/long-running.bash + $ notify_when_long_running_commands_finish_install + +### Add to your Bash + + $ echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc + +## Configuration + +By default, a long-running command is any command that takes more than 10s to +complete. If this default is not right for you, set +`LONG_RUNNING_COMMAND_TIMEOUT` to a different number of seconds and export it. +It is possible to disable notifications for certain commands by adding them +space-separated to `LONG_RUNNING_IGNORE_LIST` variable. + +By default, the notification will only show if the active window is not the +window the command is running in. If this is not right for you, (eg. if you +are an Emacs user), you can set IGNORE_WINDOW_CHECK to 1 to skip the window +check. + +In addition to a visual notification, you can make undistract-me notify you +by playing an audible sound along with the notification popup by simply +setting the variable UDM_PLAY_SOUND to a non-zero integer on the command line. +This functionality requires that pulseaudio-utils and sound-theme-freedesktop +(which provides the notification sound file) be installed on a Debian-based +system. + +## Licensing + +All of undistract-me, including this file, is made available with the Expat +license. See `LICENSE` for details. + +## Getting help + +There's no dedicated IRC channel, but feel free to ping `jml` on Freenode, +probably in the `#ubuntu-devel` channel. + +Alternatively, ask questions or file bugs on the +[undistract-me](https://launchpad.net/undistract-me) Launchpad project. + +## Credits + +[Glyph Lefkowitz](http://glyph.twistedmatrix.com/) wrote +[a neat hack to provide ZSH-like preexec support for bash](http://glyf.livejournal.com/63106.html). + +A lot of help from [Chris Jones](http://www.tenshu.net/) of +[Terminator](http://www.tenshu.net/p/terminator.html). + +[Mikey Neuling](https://github.com/mikey/) and Stephen Rothwell have made huge +improvements to the performance and quality of the shell script. I'm amazed, +humbled and grateful. diff --git a/dotfiles/bash-undistract-me/debian/changelog b/dotfiles/bash-undistract-me/debian/changelog @@ -0,0 +1,12 @@ +undistract-me (0.1.0ubuntu1) UNRELEASED; urgency=medium + + * Added option to play sound along with notification. + + -- Akshay Naik <akshay@infineos.nowhere> Wed, 22 Mar 2017 23:41:40 +0530 + +undistract-me (0.1.0) quantal; urgency=low + + * Initial release of undistract-me + + -- Jonathan Lange <jml@mumak.net> Wed, 03 Oct 2012 11:00:28 +0100 + diff --git a/dotfiles/bash-undistract-me/debian/compat b/dotfiles/bash-undistract-me/debian/compat @@ -0,0 +1 @@ +7 diff --git a/dotfiles/bash-undistract-me/debian/control b/dotfiles/bash-undistract-me/debian/control @@ -0,0 +1,17 @@ +Source: undistract-me +Section: misc +Priority: extra +Standards-Version: 3.9.3 +Maintainer: Jonathan M. Lange <jml@mumak.net> +Build-Depends: debhelper (>= 7) +Homepage: http://launchpad.net/undistract-me/ + +Package: undistract-me +Architecture: all +Section: misc +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, libnotify-bin, pulseaudio-utils, sound-theme-freedesktop +Description: Notifies you when long-running terminal commands complete. + . + Uses notify-send to alert users whenever a shell command completes that took + more than 10s to do so. Only works with bash. diff --git a/dotfiles/bash-undistract-me/debian/copyright b/dotfiles/bash-undistract-me/debian/copyright @@ -0,0 +1,7 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: undistract-me +Upstream-Contact: Jonathan M. Lange <jml@mumak.net> + +Files: * +Copyright: 2012, Jonathan M. Lange and the undistract-me developers +License: Expat diff --git a/dotfiles/bash-undistract-me/debian/install b/dotfiles/bash-undistract-me/debian/install @@ -0,0 +1,4 @@ +long-running.bash usr/share/undistract-me +preexec.bash usr/share/undistract-me +README.md usr/share/doc/undistract-me +undistract-me.sh etc/profile.d diff --git a/dotfiles/bash-undistract-me/debian/rules b/dotfiles/bash-undistract-me/debian/rules @@ -0,0 +1,4 @@ +#!/usr/bin/make -f + +%: + dh $@ diff --git a/dotfiles/bash-undistract-me/debian/source/format b/dotfiles/bash-undistract-me/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/dotfiles/bash-undistract-me/long-running.bash b/dotfiles/bash-undistract-me/long-running.bash @@ -0,0 +1,131 @@ +# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details. +# +# Source this, and then run notify_when_long_running_commands_finish_install +# +# Relies on http://www.twistedmatrix.com/users/glyph/preexec.bash.txt + +# Generate a notification for any command that takes longer than this amount +# of seconds to return to the shell. e.g. if LONG_RUNNING_COMMAND_TIMEOUT=10, +# then 'sleep 11' will always generate a notification. + +# Default timeout is 10 seconds. +if [ -z "$LONG_RUNNING_COMMAND_TIMEOUT" ]; then + LONG_RUNNING_COMMAND_TIMEOUT=10 +fi + +# Default is not to play sound along with notification. (0 is false, non-zero is true.) +if [ -z "$UDM_PLAY_SOUND" ]; then + UDM_PLAY_SOUND=0 +fi + +# The pre-exec hook functionality is in a separate branch. +if [ -z "$LONG_RUNNING_PREEXEC_LOCATION" ]; then + LONG_RUNNING_PREEXEC_LOCATION=/usr/share/undistract-me/preexec.bash +fi + +if [ ! -f "$LONG_RUNNING_PREEXEC_LOCATION" ]; then + LONG_RUNNING_PREEXEC_LOCATION="$( dirname "${BASH_SOURCE[0]}" )/preexec.bash" +fi + +if [ -f "$LONG_RUNNING_PREEXEC_LOCATION" ]; then + . $LONG_RUNNING_PREEXEC_LOCATION +else + echo "Could not find preexec.bash" +fi + + +function notify_when_long_running_commands_finish_install() { + + function get_now() { + local secs + if ! secs=$(printf "%(%s)T" -1 2> /dev/null) ; then + secs=$(\date +'%s') + fi + echo $secs + } + + function active_window_id () { + if [[ -n $DISPLAY ]] ; then + xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}' + return + fi + echo nowindowid + } + + function sec_to_human () { + local H='' + local M='' + local S='' + + local h=$(($1 / 3600)) + [ $h -gt 0 ] && H="${h} hour" && [ $h -gt 1 ] && H="${H}s" + + local m=$((($1 / 60) % 60)) + [ $m -gt 0 ] && M=" ${m} min" && [ $m -gt 1 ] && M="${M}s" + + local s=$(($1 % 60)) + [ $s -gt 0 ] && S=" ${s} sec" && [ $s -gt 1 ] && S="${S}s" + + echo $H$M$S + } + + function precmd () { + + if [[ -n "$__udm_last_command_started" ]]; then + local now current_window + + now=$(get_now) + current_window=$(active_window_id) + if [[ $current_window != $__udm_last_window ]] || + [[ ! -z "$IGNORE_WINDOW_CHECK" ]] || + [[ $current_window == "nowindowid" ]] ; then + local time_taken=$(( $now - $__udm_last_command_started )) + local longtimeout="$(((time_taken / 3) * 1000))" + local timeout="$(btcs -t 15000 $longtimeout min)" + local time_taken_human=$(sec_to_human $time_taken) + local appname=$(basename "${__udm_last_command%% *}") + if [[ $time_taken -gt $LONG_RUNNING_COMMAND_TIMEOUT ]] && + [[ -n $DISPLAY ]] && + [[ ! " $LONG_RUNNING_IGNORE_LIST " == *" $appname "* ]] ; then + local icon=check-mark + local urgency=normal + if [[ $__preexec_exit_status != 0 ]]; then + icon=cross-mark + fi + notify=$(command -v notify-send) + if [ -x "$notify" ]; then + $notify \ + -i $icon \ + -t $timeout \ + -u $urgency \ + "Command completed in $time_taken_human" \ + "$__udm_last_command" + if [[ "$UDM_PLAY_SOUND" != 0 ]]; then + paplay /usr/share/sounds/freedesktop/stereo/complete.oga + fi + else + echo -ne "\a" + fi + fi + if [[ -n $LONG_RUNNING_COMMAND_CUSTOM_TIMEOUT ]] && + [[ -n $LONG_RUNNING_COMMAND_CUSTOM ]] && + [[ $time_taken -gt $LONG_RUNNING_COMMAND_CUSTOM_TIMEOUT ]] && + [[ ! " $LONG_RUNNING_IGNORE_LIST " == *" $appname "* ]] ; then + # put in brackets to make it quiet + export __preexec_exit_status + ( $LONG_RUNNING_COMMAND_CUSTOM \ + "\"$__udm_last_command\" took $time_taken_human" & ) + fi + fi + fi + } + + function preexec () { + # use __udm to avoid global name conflicts + __udm_last_command_started=$(get_now) + __udm_last_command=$(echo "$1") + __udm_last_window=$(active_window_id) + } + + preexec_install +} diff --git a/dotfiles/bash-undistract-me/preexec.bash b/dotfiles/bash-undistract-me/preexec.bash @@ -0,0 +1,180 @@ +# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details. +# +# preexec.bash -- Bash support for ZSH-like 'preexec' and 'precmd' functions. + +# The 'preexec' function is executed before each interactive command is +# executed, with the interactive command as its argument. The 'precmd' +# function is executed before each prompt is displayed. + +# To use, in order: + +# 1. source this file +# 2. define 'preexec' and/or 'precmd' functions (AFTER sourcing this file), +# 3. as near as possible to the end of your shell setup, run 'preexec_install' +# to kick everything off. + +# Note: this module requires 2 bash features which you must not otherwise be +# using: the "DEBUG" trap, and the "PROMPT_COMMAND" variable. preexec_install +# will override these and if you override one or the other this _will_ break. + +# This is known to support bash3, as well as *mostly* support bash2.05b. It +# has been tested with the default shells on MacOS X 10.4 "Tiger", Ubuntu 5.10 +# "Breezy Badger", Ubuntu 6.06 "Dapper Drake", and Ubuntu 6.10 "Edgy Eft". + + +# Copy screen-run variables from the remote host, if they're available. + +if [[ "$SCREEN_RUN_HOST" == "" ]] +then + SCREEN_RUN_HOST="$LC_SCREEN_RUN_HOST" + SCREEN_RUN_USER="$LC_SCREEN_RUN_USER" +fi + +# Default do-nothing implementation of preexec. +function preexec () { + true +} + +# Default do-nothing implementation of precmd. +function precmd () { + true +} + +# This function is installed as the PROMPT_COMMAND; it is invoked before each +# interactive prompt display. It sets a variable to indicate that the prompt +# was just displayed, to allow the DEBUG trap, below, to know that the next +# command is likely interactive. +function preexec_invoke_cmd () { + precmd + trap 'preexec_invoke_exec' DEBUG +} + +# This function is installed as the DEBUG trap. It is invoked before each +# interactive prompt display. Its purpose is to inspect the current +# environment to attempt to detect if the current command is being invoked +# interactively, and invoke 'preexec' if so. +function preexec_invoke_exec () { + if [[ -n "$COMP_LINE" ]] + then + # We're in the middle of a completer. This obviously can't be + # an interactively issued command. + return + fi + trap '' DEBUG + + if [[ "preexec_invoke_cmd" == "$BASH_COMMAND" ]] + then + # Sadly, there's no cleaner way to detect two prompts being displayed + # one after another. This makes it important that PROMPT_COMMAND + # remain set _exactly_ as below in preexec_install. Let's switch back + # out of interactive mode and not trace any of the commands run in + # precmd. + + # Given their buggy interaction between BASH_COMMAND and debug traps, + # versions of bash prior to 3.1 can't detect this at all. + return + fi + + # In more recent versions of bash, this could be set via the "BASH_COMMAND" + # variable, but using history here is better in some ways: for example, "ps + # auxf | less" will show up with both sides of the pipe if we use history, + # but only as "ps auxf" if not. + local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`; + + # If none of the previous checks have earlied out of this function, then + # the command is in fact interactive and we should invoke the user's + # preexec hook with the running command as an argument. + preexec "$this_command" +} + +function preexec_set_exit () { + __preexec_exit_status=$? +} + +# Execute this to set up preexec and precmd execution. +function preexec_install () { + + # *BOTH* of these options need to be set for the DEBUG trap to be invoked + # in ( ) subshells. This smells like a bug in bash to me. The null stderr + # redirections are to quiet errors on bash2.05 (i.e. OSX's default shell) + # where the options can't be set, and it's impossible to inherit the trap + # into subshells. + + set -o functrace > /dev/null 2>&1 + shopt -s extdebug > /dev/null 2>&1 + + # Finally, install the actual traps. + if [ -n "$PROMPT_COMMAND" ]; then + PROMPT_COMMAND="preexec_set_exit;${PROMPT_COMMAND} preexec_invoke_cmd"; + else + PROMPT_COMMAND="preexec_set_exit;preexec_invoke_cmd"; + fi +} + +# Since this is the reason that 99% of everybody is going to bother with a +# pre-exec hook anyway, we'll include it in this module. + +# Change the title of the xterm. +function preexec_xterm_title () { + local title="$1" + echo -ne "\033]0;$title\007" > /dev/stderr +} + +function preexec_screen_title () { + local title="$1" + echo -ne "\033k$1\033\\" > /dev/stderr +} + +# Abbreviate the "user@host" string as much as possible to preserve space in +# screen titles. Elide the host if the host is the same, elide the user if the +# user is the same. +function preexec_screen_user_at_host () { + local RESULT="" + if [[ "$SCREEN_RUN_HOST" == "$SCREEN_HOST" ]] + then + return + else + if [[ "$SCREEN_RUN_USER" == "$USER" ]] + then + echo -n "@${SCREEN_HOST}" + else + echo -n "${USER}@${SCREEN_HOST}" + fi + fi +} + +function preexec_xterm_title_install () { + # These functions are defined here because they only make sense with the + # preexec_install below. + function precmd () { + preexec_xterm_title "${TERM} - ${USER}@${SCREEN_HOST} `dirs -0` $PROMPTCHAR" + if [[ "${TERM}" == screen ]] + then + preexec_screen_title "`preexec_screen_user_at_host`${PROMPTCHAR}" + fi + } + + function preexec () { + preexec_xterm_title "${TERM} - $1 {`dirs -0`} (${USER}@${SCREEN_HOST})" + if [[ "${TERM}" == screen ]] + then + local cutit="$1" + local cmdtitle=`echo "$cutit" | cut -d " " -f 1` + if [[ "$cmdtitle" == "exec" ]] + then + local cmdtitle=`echo "$cutit" | cut -d " " -f 2` + fi + if [[ "$cmdtitle" == "screen" ]] + then + # Since stacked screens are quite common, it would be nice to + # just display them as '$$'. + local cmdtitle="${PROMPTCHAR}" + else + local cmdtitle=":$cmdtitle" + fi + preexec_screen_title "`preexec_screen_user_at_host`${PROMPTCHAR}$cmdtitle" + fi + } + + preexec_install +} diff --git a/dotfiles/bash-undistract-me/undistract-me.sh b/dotfiles/bash-undistract-me/undistract-me.sh @@ -0,0 +1,7 @@ +# Copyright (c) 2008-2012 undistract-me developers. See LICENSE for details. +# +# Check for interactive bash and that we haven't already been sourced. +[ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$last_command_started_cache" ] && return + +. $HOME/dotfiles/bash-undistract-me/long-running.bash +notify_when_long_running_commands_finish_install diff --git a/dotfiles/custom.el b/dotfiles/custom.el @@ -0,0 +1,338 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(Linum-format "%7i ") + '(ac-ispell-requires 4 t) + '(ahs-case-fold-search nil t) + '(ahs-default-range 'ahs-range-whole-buffer t) + '(ahs-idle-interval 0.25 t) + '(ahs-idle-timer 0 t) + '(ahs-inhibit-face-list nil t) + '(ansi-color-faces-vector + [default bold shadow italic underline bold bold-italic bold]) + '(ansi-color-names-vector + ["#110F13" "#B13120" "#719F34" "#CEAE3E" "#7C9FC9" "#7868B5" "#009090" "#F4EAD5"]) + '(ansi-term-color-vector + [unspecified "#1d1f21" "#cc6666" "#b5bd68" "#f0c674" "#81a2be" "#b294bb" "#81a2be" "#c5c8c6"] t) + '(before-save-hook + '(spacemacs//python-sort-imports gofmt-before-save org-update-all-dblocks)) + '(browse-url-browser-function 'browse-url-generic) + '(browse-url-generic-program "/home/jb55/bin/browser") + '(company-clang-arguments '("-Ideps")) + '(company-quickhelp-delay nil) + '(company-quickhelp-mode t) + '(compilation-message-face 'default) + '(compilation-window-height 15) + '(csv-separators '("," " ")) + '(cua-global-mark-cursor-color "#2aa198") + '(cua-normal-cursor-color "#657b83") + '(cua-overwrite-cursor-color "#b58900") + '(cua-read-only-cursor-color "#859900") + '(debug-on-error nil) + '(debug-on-quit nil) + '(disaster-objdump "objdump -d -M att -Sl --no-show-raw-insn") + '(elm-indent-offset 4) + '(epg-gpg-home-directory "~/.gnupg") + '(epg-gpg-program "gpg") + '(eshell-prompt-function 'jb55/eshell-prompt) + '(evil-kill-on-visual-paste nil) + '(evil-shift-width 2) + '(evil-want-Y-yank-to-eol t) + '(expand-region-contract-fast-key "V") + '(expand-region-reset-fast-key "r") + '(fci-rule-character-color "#202020") + '(fci-rule-color "#202020") + '(fill-column 70) + '(flycheck-clang-include-path '("deps")) + '(flycheck-clang-language-standard nil) + '(flycheck-display-errors-function 'flycheck-pos-tip-error-messages) + '(flycheck-gcc-language-standard "c++11") + '(flycheck-ghc-args '("-isrc")) + '(flycheck-hlint-ignore-rules '("Eta reduce")) + '(flycheck-pos-tip-timeout 2) + '(flycheck-standard-error-navigation t t) + '(fringe-mode '(1 . 1) nil (fringe)) + '(global-hl-line-mode t) + '(gnus-select-method '(nntp "nntp.lore.kernel.org")) + '(grep-find-ignored-directories + '("SCCS" "RCS" "CVS" "MCVS" ".svn" ".git" ".hg" ".bzr" "_MTN" "_darcs" "{arch}" "node_modules")) + '(haskell-font-lock-symbols nil) + '(haskell-hoogle-command nil) + '(haskell-hoogle-url "http://localhost:8080/?hoogle=%s") + '(haskell-indentation-indent-leftmost t) + '(haskell-interactive-mode-scroll-to-bottom t) + '(haskell-interactive-popup-error nil t) + '(haskell-mode-hook + '(turn-on-haskell-indent haskell-hook turn-on-hi2 flycheck-mode) t) + '(haskell-notify-p t t) + '(haskell-process-args-cabal-repl '("--ghc-options=-ferror-spans -fshow-loaded-modules")) + '(haskell-process-args-ghci + '("-isrc" "-XOverloadedStrings" "-ferror-spans" "-fshow-loaded-modules")) + '(haskell-process-auto-import-loaded-modules t t) + '(haskell-process-log t) + '(haskell-process-suggest-remove-import-lines t t) + '(haskell-process-type 'ghci) + '(haskell-stylish-on-save nil t) + '(haskell-tags-on-save nil) + '(helm-echo-input-in-header-line nil t) + '(helm-ff-skip-boring-files t) + '(highlight-changes-colors '("#d33682" "#6c71c4")) + '(highlight-symbol-colors + (--map + (solarized-color-blend it "#fdf6e3" 0.25) + '("#b58900" "#2aa198" "#dc322f" "#6c71c4" "#859900" "#cb4b16" "#268bd2"))) + '(highlight-symbol-foreground-color "#586e75") + '(highlight-tail-colors + '(("#eee8d5" . 0) + ("#B4C342" . 20) + ("#69CABF" . 30) + ("#69B7F0" . 50) + ("#DEB542" . 60) + ("#F2804F" . 70) + ("#F771AC" . 85) + ("#eee8d5" . 100))) + '(hl-bg-colors + '("#DEB542" "#F2804F" "#FF6E64" "#F771AC" "#9EA0E5" "#69B7F0" "#69CABF" "#B4C342")) + '(hl-fg-colors + '("#fdf6e3" "#fdf6e3" "#fdf6e3" "#fdf6e3" "#fdf6e3" "#fdf6e3" "#fdf6e3" "#fdf6e3")) + '(hl-todo-keyword-faces + '(("TODO" . "#dc752f") + ("NEXT" . "#dc752f") + ("THEM" . "#2d9574") + ("PROG" . "#3a81c3") + ("OKAY" . "#3a81c3") + ("DONT" . "#f2241f") + ("FAIL" . "#f2241f") + ("DONE" . "#42ae2c") + ("NOTE" . "#b1951d") + ("KLUDGE" . "#b1951d") + ("HACK" . "#b1951d") + ("TEMP" . "#b1951d") + ("FIXME" . "#dc752f") + ("XXX" . "#dc752f") + ("XXXX" . "#dc752f"))) + '(if (version< emacs-version "24.4")) + '(ispell-program-name "aspell") + '(js-indent-level 2) + '(js2-basic-offset 2) + '(js2-bounce-indent-p t) + '(js2-strict-missing-semi-warning nil) + '(ledger-reports + '(("bal realized" "%(binary) -f %(ledger-file) bal -V ") + ("bal" "%(binary) -f %(ledger-file) bal") + ("reg" "%(binary) -f %(ledger-file) reg") + ("payee" "%(binary) -f %(ledger-file) reg @%(payee)") + ("account" "%(binary) -f %(ledger-file) reg %(account)"))) + '(link-hint-delete-trailing-paren t) + '(linum-format " %7i ") + '(lsp-prefer-flymake :none) + '(magit-diff-use-overlays nil) + '(magit-log-margin '(nil age magit-log-margin-width nil 18)) + '(magit-refresh-status-buffer nil) + '(magit-revision-insert-related-refs nil) + '(magit-revision-show-gravatars nil t) + '(magit-revision-use-hash-sections 'quickest) + '(mail-envelope-from 'header) + '(mail-specify-envelope-from nil) + '(mailcap-user-mime-data '(("zathura %s" "application/pdf" nil))) + '(main-line-color1 "#1E1E1E") + '(main-line-color2 "#111111") + '(main-line-separator-style 'chamfer) + '(markdown-hide-urls t) + '(mastodon-instance-url "https://maly.io") + '(message-auto-save-directory "~/mail/drafts") + '(message-kill-buffer-on-exit t) + '(message-mode-hook nil) + '(message-send-mail-function 'message-send-mail-with-sendmail) + '(message-sendmail-envelope-from 'header) + '(message-sendmail-f-is-evil nil) + '(mm-html-inhibit-images t) + '(mm-sign-option nil) + '(mm-text-html-renderer 'shr) + '(mml-secure-key-preferences + '((OpenPGP + (sign + ("jb55@jb55.com" "5B2B1E4F62216BC74362AC61D4FBA2FC4535A2A9")) + (encrypt + ("jb55@jb55.com" "5B2B1E4F62216BC74362AC61D4FBA2FC4535A2A9"))) + (CMS + (sign) + (encrypt)))) + '(mml-secure-openpgp-encrypt-to-self + '("8860420C3C135662EABEADF96342E010C44A6337" "87D78CE40B38B817" "5B2B1E4F62216BC74362AC61D4FBA2FC4535A2A9")) + '(nil nil t) + '(notmuch-command "notmuch") + '(notmuch-fcc-dirs ".Sent +sent -inbox -unread") + '(notmuch-hello-tag-list-make-query "tag:inbox") + '(notmuch-message-headers-visible t) + '(notmuch-saved-searches + '((:name "flagged" :query "tag:flagged and tag:inbox" :key "f") + (:name "lightning" :query "tag:inbox and tag:lightning" :key "k" :sort-order newest-first) + (:name "bitcoin" :query "tag:core and tag:inbox and subject:bitcoin/bitcoin" :key "b" :sort-order subject-ascending) + (:name "best" :query "tag:best and tag:inbox" :key "B" :sort-order newest-first) + (:name "inbox" :query "tag:inbox and not tag:filed and not tag:noise" :key "i" :sort-order newest-first) + (:name "nixpkgs" :query "tag:nixpkgs and tag:inbox" :key "n" :sort-order subject-ascending) + (:name "notmuch" :query "tag:notmuch and tag:inbox" :key "N" :sort-order newest-first) + (:name "list" :query "tag:list and not tag:github and tag:inbox and not tag:busy" :key "l" :sort-order subject-ascending) + (:name "github" :query "tag:github and not tag:busy and tag:inbox" :key "g" :sort-order subject-ascending) + (:name "today" :query "date:today and tag:inbox" :key "1") + (:name "rss" :query "tag:rss and tag:inbox and not tag:busy" :key "r" :sort-order from-ascending) + (:name "rss-busy" :query "tag:rss and tag:inbox and tag:busy" :key "R" :sort-order from-ascending) + (:name "2-day" :query "date:yesterday.. and tag:inbox" :key "2") + (:name "work" :query "tag:inbox and tag:work" :key "w" :sort-order subject-ascending))) + '(notmuch-search-line-faces + (quote + (("unread" . notmuch-search-unread-face) + ("flagged" . notmuch-search-flagged-face)))) + '(notmuch-search-oldest-first nil) + '(notmuch-search-sort-order (quote newest-first)) + '(notmuch-show-all-tags-list t) + '(notmuch-show-insert-text/plain-hook + (quote + (notmuch-wash-convert-inline-patch-to-part notmuch-wash-wrap-long-lines notmuch-wash-tidy-citations notmuch-wash-elide-blank-lines notmuch-wash-excerpt-citations))) + '(notmuch-tag-formats + (quote + (("unread" "?" + (propertize tag + (quote face) + (quote notmuch-tag-unread))) + ("flagged" + #("*" 0 1 + (face + ((:foreground "gold") + (:foreground "gold")))) + (notmuch-apply-face tag + '(:foreground "gold"))) + ("pr" + (notmuch-apply-face tag + '(:foreground "green"))) + ("issue" + (notmuch-apply-face tag + '(:foreground "orange"))) + ("filed" + #("f" 0 1 + (face + ((:foreground "dim gray") + (:foreground "dim gray")))) + (notmuch-apply-face tag + '(:foreground "dim gray"))) + ("list") + ("github" + #("gh" 0 2 + (face + ((:foreground "dim gray") + (:foreground "dim gray")))) + (notmuch-apply-face tag + '(:foreground "dim gray"))) + ("inbox" + #("i" 0 1 + (face + ((:foreground "white") + (:foreground "white")))) + (notmuch-apply-face tag + '(:foreground "white"))) + ("closed" + (notmuch-apply-face tag + '(:foreground "wheat"))) + ("merged" + (notmuch-apply-face tag + '(:foreground "yellow"))) + ("bot" + (notmuch-apply-face tag + '(:foreground "dim gray"))) + ("busy" + #("b" 0 1 + (face + ((:foreground "brown") + (:foreground "brown")))) + (notmuch-apply-face tag + '(:foreground "brown"))) + ("bitcoin" + #("btc" 0 3 + (face + ((:foreground "gold") + (:foreground "gold")))) + (notmuch-apply-face tag + '(:foreground "gold")))))) + '(notmuch-wash-wrap-lines-length 100) + '(olivetti-body-width 100 t) + '(org-adapt-indentation nil) + '(org-agenda-current-time-string + #("=========================== NOW ===========================" 0 59 + (org-heading t))) + '(org-agenda-files + '("~/src/c/polyadvent/todo.org" "/home/jb55/docs/org/projects.org" "/home/jb55/docs/org/tasks.org" "/home/jb55/projects/razorcx/doc/org/todo.org")) + '(org-agenda-time-grid + '((daily today require-timed) + "" + (800 1000 1200 1400 1600 1800 2000))) + '(org-archive-location "archive/%s_archive::") + '(org-directory "~/docs/org" t) + '(org-duration-format '((special . h:mm))) + '(org-export-headline-levels 2) + '(org-export-with-section-numbers nil) + '(org-export-with-toc nil) + '(org-format-latex-options + '(:foreground default :background default :scale 2.0 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 :matchers + ("begin" "$1" "$" "$$" "\\(" "\\["))) + '(org-html-head-include-default-style nil) + '(org-html-head-include-scripts nil) + '(org-html-postamble nil) + '(org-refile-targets '((org-agenda-files :maxlevel . 1))) + '(org-use-sub-superscripts '{}) + '(package-selected-packages + '(lsp-pyright tracking treemacs-projectile spaceline rjsx-mode prettier-js gntp org-cliplink meson-mode lsp-haskell hierarchy json-snatcher json-reformat js2-mode window-purpose imenu-list epc ctable concurrent prop-menu htmlize parent-mode haml-mode project eldoc xref emacsql-sqlite flx evil-textobj-line evil-ledger evil-ediff elm-test-runner lcr csharp-mode counsel swiper ivy deferred web-completion-data rtags company-quickhelp pos-tip nixos-options lua-mode irony go-mode anaconda-mode pythonic company lsp-mode spinner ht dash-functional markdown-mode rust-mode blacken yasnippet packed auctex flycheck f s pkg-info epl avy auto-complete popup org-plus-contrib hydra lv evil bind-map bind-key notmuch neuron-mode projectile haskell-mode reformatter helm helm-core iedit paredit goto-chg undo-tree anzu smartparens magit git-commit async with-editor transient ghub treepy emacsql multiple-cursors skewer-mode simple-httpd treemacs magit-popup sml-mode alert log4e org-category-capture purescript-mode test-simple loc-changes load-relative powerline all-the-icons memoize pfuture visual-fill-column treemacs-persp treemacs-icons-dired ron-mode org-superstar magit-section dash lsp-ivy flycheck-elsa emr list-utils graphql-mode swift-mode company-tabnine unicode-escape names lsp-ui lsp-treemacs lsp-python-ms cquery company-lsp ccls github-search github-clone git-gutter-fringe+ git-gutter-fringe fringe-helper gist gh marshal logito confluence git-gutter+ git-gutter pcache diff-hl xml-rpc browse-at-remote direnv writeroom-mode treemacs-evil typescript-mode symbol-overlay realgud olivetti eglot flymake jsonrpc forge closql flycheck-package package-lint let-alist auctex-latexmk github-review treemacs-magit nodejs-repl flycheck-ycmd devdocs cpp-auto-include company-ycmd ycmd request-deferred company-reftex attrap hybrid-mode elpher protobuf-mode ini-mode vi-tilde-fringe org-bullets helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-mode-manager helm-flx helm-descbinds helm-ag ace-jump-helm-line yasnippet-snippets yapfify yaml-mode ws-butler winum which-key wgrep weechat web-mode web-beautify w3m volatile-highlights uuidgen use-package twittering-mode toml-mode toc-org tide tagedit symon string-inflection sql-indent spotify spaceline-all-the-icons smex smeargle slim-mode shen-mode shen-elisp scss-mode sass-mode restart-emacs request rainbow-delimiters racket-mode racer pyvenv pytest pyenv-mode py-isort pug-mode psci psc-ide powershell popwin pippel pipenv pip-requirements persp-mode pcre2el password-generator paradox overseer orgit org-projectile org-present org-pomodoro org-mime org-download org-clock-csv org-brain open-junk-file omnisharp ob-sml nix-mode neotree nameless mvn move-text mmm-mode meghanada maven-test-mode mastodon markdown-toc magit-svn magit-gitflow macrostep lorem-ipsum livid-mode live-py-mode link-hint ledger-mode json-navigator json-mode js2-refactor js-doc jade-mode ivy-yasnippet ivy-xref ivy-rtags ivy-purpose ivy-hydra intero insert-shebang indent-guide importmagic impatient-mode idris-mode hungry-delete hlint-refactor hl-todo hindent highlight-parentheses highlight-numbers highlight-indentation helm-pages helm-make haskell-snippets groovy-mode groovy-imports graphviz-dot-mode gradle-mode google-translate google-c-style golden-ratio godoctor go-tag go-rename go-impl go-guru go-gen-test go-fill-struct go-eldoc gnuplot gnu-apl-mode glsl-mode gitignore-templates gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link gh-md ggtags fuzzy fsharp-mode font-lock+ flycheck-rust flycheck-rtags flycheck-pos-tip flycheck-ledger flycheck-haskell flycheck-elm flycheck-bashate flx-ido fish-mode fill-column-indicator fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-org evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-magit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-escape evil-cleverparens evil-args evil-anzu eval-sexp-fu ereader ensime emojify emoji-cheat-sheet-plus emmet-mode elm-mode elisp-slime-nav editorconfig dumb-jump dotenv-mode disaster diminish define-word dante cython-mode csv-mode counsel-projectile counsel-notmuch counsel-gtags counsel-css company-web company-tern company-statistics company-shell company-rtags company-nixos-options company-lua company-irony company-go company-ghci company-ghc company-emoji company-emacs-eclim company-cabal company-c-headers company-auctex company-anaconda column-enforce-mode cmm-mode clean-aindent-mode clang-format centered-cursor-mode cargo bison-mode base16-theme auto-yasnippet auto-highlight-symbol auto-compile aggressive-indent ace-window ace-link ac-ispell)) + '(pdf-view-midnight-colors '("#655370" . "#fbf8ef")) + '(powerline-color1 "#1E1E1E") + '(powerline-color2 "#111111") + '(projectile-globally-ignored-directories + '(".idea" ".eunit" ".git" ".hg" ".fslckout" ".bzr" "_darcs" ".tox" ".svn" "build" "node_modules")) + '(projectile-mode-line 'Projectile t) + '(psc-ide-add-import-on-completion t t) + '(psc-ide-rebuild-on-save nil t) + '(python-indent-offset 4) + '(racer-cmd "racer") + '(racer-command-timeout 0.2) + '(racer-eldoc-timeout 0.2) + '(racer-rust-src-path nil) + '(rainbow-identifiers-cie-l*a*b*-lightness 80) + '(rainbow-identifiers-cie-l*a*b*-saturation 18) + '(rcirc-buffer-maximum-lines 10000) + '(ring-bell-function 'ignore) + '(rng-nxml-auto-validate-flag nil) + '(rust-indent-offset 4) + '(safe-local-variable-values + '((js-indent-level . 8) + (python-backend . lsp) + (indicate-empty-lines . t) + (indent-tabs-mode . f) + (flycheck-clang-include-path "./include" "../include"))) + '(send-mail-function 'smtpmail-send-it) + '(sendmail-program "sendmail") + '(smartrep-mode-line-active-bg (solarized-color-blend "#859900" "#eee8d5" 0.2)) + '(smerge-command-prefix "m") + '(smtpmail-smtp-server "smtp.jb55.com") + '(smtpmail-smtp-service 587) + '(sql-port 5444) + '(standard-indent 4) + '(tab-width 4) + '(url-handler-mode nil) + '(user-full-name "William Casarin") + '(user-mail-address "jb55@jb55.com") + '(vc-follow-symlinks t) + '(w3m-default-display-inline-images nil) + '(weechat-auto-monitor-buffers + '("monstercat.#general" "monstercat.#payments" "monstercat.#code")) + '(weechat-auto-monitor-new-buffers t) + '(weechat-modules '(weechat-button weechat-image weechat-complete)) + '(yas-snippet-dirs '("/home/jb55/.emacs.d/private/snippets/") t)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(diff-refine-added ((t (:background "dark green")))) + '(notmuch-search-non-matching-authors ((t (:foreground "#353B45")))) + '(notmuch-search-unread-face ((t nil)))) diff --git a/dotfiles/dmenu_cfg b/dotfiles/dmenu_cfg @@ -0,0 +1 @@ +-fn "terminus-12" diff --git a/dotfiles/dunstrc b/dotfiles/dunstrc @@ -0,0 +1,414 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + geometry = "0+50+50" + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 0 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 2 + + # Padding between text and separator. + padding = 8 + + # Horizontal padding. + horizontal_padding = 8 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 1 + + # Defines color of the frame around the notification window. + frame_color = "#BE5046" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + idle_threshold = 120 + + ### Text ### + + font = Monospace 12 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # <b>bold</b> + # <i>italic</i> + # <s>strikethrough</s> + # <u>underline</u> + # + # For a complete reference see + # <https://developer.gnome.org/pango/stable/pango-Markup.html>. + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "<b>%s</b>\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # When word_wrap is set to no, specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = left + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 32 + + # Paths to default icons. + icon_path = /home/jb55/.config/dunst + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /home/jb55/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /home/bin/browser -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false + + # Manage dunst's desire for talking + # Can be one of the following values: + # crit: Critical features. Dunst aborts + # warn: Only non-fatal warnings + # mesg: Important Messages + # info: all unimportant stuff + # debug: all less than unimportant stuff + verbosity = mesg + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 0 + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines action of mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: If the notification has exactly one action, or one is marked as default, + # invoke it. If there are multiple and no default, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + mouse_left_click = close_current + mouse_middle_click = do_action + mouse_right_click = close_all + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = ctrl+space + + # Close all notifications. + close_all = ctrl+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = ctrl+grave + + # Context menu. + context = ctrl+shift+period + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#222222" + foreground = "#888888" + timeout = 3 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "#393f4a" + foreground = "#ffffff" + timeout = 4 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_critical] + background = "#900000" + foreground = "#ffffff" + frame_color = "#ff0000" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# timeout +# urgency +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/dotfiles/jb55-spacemacs-layer/extensions.el b/dotfiles/jb55-spacemacs-layer/extensions.el @@ -0,0 +1,33 @@ +;;; extensions.el --- jb55 Layer extensions File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner <sylvain.benner@gmail.com> +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(defvar jb55-pre-extensions + '( + ;; pre extension jb55s go here + ) + "List of all extensions to load before the packages.") + +(defvar jb55-post-extensions + '( + ;; post extension jb55s go here + ) + "List of all extensions to load after the packages.") + +;; For each extension, define a function jb55/init-<extension-jb55> +;; +;; (defun jb55/init-my-extension () +;; "Initialize my extension" +;; ) +;; +;; Often the body of an initialize function uses `use-package' +;; For more info on `use-package', see readme: +;; https://github.com/jwiegley/use-package diff --git a/dotfiles/jb55.zsh-theme b/dotfiles/jb55.zsh-theme @@ -0,0 +1,14 @@ +if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="white"; fi + +PROMPT='%{$fg[$NCOLOR]%}%B%n%{$fg[blue]%}^%{$fg_bold[green]%}%M%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} %(1j.%j.) %(!.#.$) ' +RPROMPT='[%*]' + +# git theming +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg_no_bold[white]%}%B" +ZSH_THEME_GIT_PROMPT_SUFFIX="%b%{$fg_bold[blue]%})%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}*" + +# LS colors, made with http://geoff.greer.fm/lscolors/ +export LSCOLORS="Gxfxcxdxbxegedabagacad" +export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:' diff --git a/dotfiles/mimeapps.list b/dotfiles/mimeapps.list @@ -0,0 +1,217 @@ +[Default Applications] +application/arj=xarchiver.desktop +application/deb=xarchiver.desktop +application/java-archive=openjdk-6-java.desktop +application/msexcel=libreoffice-calc.desktop +application/mspowerpoint=libreoffice-impress.desktop +application/msword=libreoffice-writer.desktop +application/ogg=vlc.desktop +application/pdf=zathura.desktop +application/postscript=zathura.desktop +application/rdf+xml=chromium.desktop +application/rss+xml=chromium.desktop +application/rtf=libreoffice-writer.desktop +application/vnd.lotus-wordpro=libreoffice-writer.desktop +application/vnd.ms-excel=libreoffice-calc.desktop +application/vnd.ms-excel.sheet.binary.macroenabled.12=libreoffice-calc.desktop +application/vnd.ms-excel.sheet.macroenabled.12=libreoffice-calc.desktop +application/vnd.ms-excel.template.macroenabled.12=libreoffice-calc.desktop +application/vnd-ms-office=libreoffice-calc.desktop +application/vnd.ms-powerpoint=libreoffice-impress.desktop +application/vnd.ms-powerpoint.presentation.macroenabled.12=libreoffice-impress.desktop +application/vnd.ms-powerpoint.template.macroenabled.12=libreoffice-impress.desktop +application/vnd.ms-word.document.macroenabled.12=libreoffice-writer.desktop +application/vnd.ms-word=libreoffice-writer.desktop +application/vnd.ms-word.template.macroenabled.12=libreoffice-writer.desktop +application/vnd.oasis.opendocument.formula=libreoffice-math.desktop +application/vnd.oasis.opendocument.graphics-flat-xml=libreoffice-draw.desktop +application/vnd.oasis.opendocument.graphics=libreoffice-draw.desktop +application/vnd.oasis.opendocument.graphics-template=libreoffice-draw.desktop +application/vnd.oasis.opendocument.presentation-flat-xml=libreoffice-impress.desktop +application/vnd.oasis.opendocument.presentation=libreoffice-impress.desktop +application/vnd.oasis.opendocument.presentation-template=libreoffice-impress.desktop +application/vnd.oasis.opendocument.spreadsheet-flat-xml=libreoffice-calc.desktop +application/vnd.oasis.opendocument.spreadsheet=libreoffice-calc.desktop +application/vnd.oasis.opendocument.spreadsheet-template=libreoffice-calc.desktop +application/vnd.oasis.opendocument.text-flat-xml=libreoffice-writer.desktop +application/vnd.oasis.opendocument.text=libreoffice-writer.desktop +application/vnd.oasis.opendocument.text-master=libreoffice-writer.desktop +application/vnd.oasis.opendocument.text-template=libreoffice-writer.desktop +application/vnd.oasis.opendocument.text-web=libreoffice-writer.desktop +application/vnd.openofficeorg.extension=libreoffice-startcenter.desktop +application/vnd.openxmlformats-officedocument.presentationml.presentation=impress.desktop +application/vnd.openxmlformats-officedocument.presentationml.slide=impress.desktop +application/vnd.openxmlformats-officedocument.presentationml.slideshow=impress.desktop +application/vnd.openxmlformats-officedocument.presentationml.template=impress.desktop +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=calc.desktop +application/vnd.openxmlformats-officedocument.spreadsheetml.template=calc.desktop +application/vnd.openxmlformats-officedocument.wordprocessingml.document=writer.desktop +application/vnd.openxmlformats-officedocument.wordprocessingml.template=writer.desktop +application/vnd.powdertoy.save=powdertoy-tpt.desktop +application/vnd.rn-realmedia=vlc.desktop +application/vnd.sun.xml.calc=libreoffice-calc.desktop +application/vnd.sun.xml.calc.template=libreoffice-calc.desktop +application/vnd.sun.xml.draw=libreoffice-draw.desktop +application/vnd.sun.xml.draw.template=libreoffice-draw.desktop +application/vnd.sun.xml.impress=libreoffice-impress.desktop +application/vnd.sun.xml.impress.template=libreoffice-impress.desktop +application/vnd.sun.xml.math=libreoffice-math.desktop +application/vnd.sun.xml.writer.global=libreoffice-writer.desktop +application/vnd.sun.xml.writer=libreoffice-writer.desktop +application/vnd.sun.xml.writer.template=libreoffice-writer.desktop +application/vnd.visio=libreoffice-draw.desktop +application/vnd.wordperfect=libreoffice-writer.desktop +application/wordperfect=libreoffice-writer.desktop +application/x-7z-compressed=xarchiver.desktop +application/x-arj=xarchiver.desktop +application/x-bzip2-compressed-tar=xarchiver.desktop +application/x-bzip2=xarchiver.desktop +application/x-bzip-compressed-tar=xarchiver.desktop +application/x-bzip=xarchiver.desktop +application/x-cd-image=xfburn.desktop +application/x-compressed-tar=xarchiver.desktop +application/x-dbf=libreoffice-calc.desktop +application/x-deb=gdebi.desktop +application/x-debian-package=gdebi.desktop +application/x-desktop=panel-desktop-handler.desktop +application/x-doc=libreoffice-writer.desktop +application/x-dos_ms_excel=libreoffice-calc.desktop +application/x-excel=libreoffice-calc.desktop +application/x-extension-mp4=vlc.desktop +application/x-extension-mkv=vlc.desktop +application/x-flac=vlc.desktop +application/x-gzip=xarchiver.desktop +application/xhtml+xml=chromium.desktop +application/x-hwp=libreoffice-writer.desktop +application/x-jar=openjdk-6-java.desktop +application/x-java-archive=openjdk-6-java.desktop +application/x-java-jnlp-file=icedtea-netx-javaws.desktop +application/xls=libreoffice-calc.desktop +application/x-lzma-compressed-tar=xarchiver.desktop +application/x-lzma=xarchiver.desktop +application/x-matroska=vlc.desktop +application/xml=chromium.desktop +application/x-ms-excel=libreoffice-calc.desktop +application/x-msexcel=libreoffice-calc.desktop +application/x-ogg=vlc.desktop application/x-ms-dos-executable=wine.desktop +application/x-rar-compressed=xarchiver.desktop +application/x-rar=xarchiver.desktop +application/x-shockwave-flash=vlc.desktop +application/xspf+xml=vlc.desktop +application/x-tar=xarchiver.desktop +application/x-xls=libreoffice-calc.desktop +application/x-xpinstall=thunderbird.desktop +application/x-zip-compressed=xarchiver.desktop +application/x-zip=xarchiver.desktop +application/zip=xarchiver.desktop +audio/amr=vlc.desktop +audio/amr-wb=vlc.desktop +audio/mp4=vlc.desktop +audio/mpeg=vlc.desktop +audio/vnd.rn-realaudio=vlc.desktop +audio/webm=vlc.desktop +audio/x-flac=vlc.desktop +audio/x-m4a=vlc.desktop +audio/x-matroska=vlc.desktop +audio/x-mp3=vlc.desktop +audio/x-mpegurl=vlc.desktop +audio/x-mpeg=vlc.desktop +audio/x-ms-asf=vlc.desktop +audio/x-ms-asx=vlc.desktop +audio/x-ms-wax=vlc.desktop +audio/x-pn-aiff=vlc.desktop +audio/x-pn-au=vlc.desktop +audio/x-pn-realaudio-plugin=vlc.desktop +audio/x-pn-realaudio=vlc.desktop +audio/x-pn-wav=vlc.desktop +audio/x-pn-windows-acm=vlc.desktop +audio/x-real-audio=vlc.desktop +audio/x-scpls=vlc.desktop +audio/x-vorbis+ogg=vlc.desktop +audio/x-wav=vlc.desktop +image/bmp=eog.desktop +image/g3fax=gimp.desktop +image/gif=eog.desktop +image/jp2=gimp.desktop +image/jpeg2000=gimp.desktop +image/jpeg=eog.desktop +image/jpx=gimp.desktop +image/png=eog.desktop +image/svg+xml=eog.desktop +image/tiff=eog.desktop +image/vnd.djvu=zathura.desktop +image/vnd.rn-realpix=vlc.desktop +image/x-compressed-xcf=gimp.desktop +image/x-fits=gimp.desktop +image/x-gimp-gbr=gimp.desktop +image/x-gimp-gih=gimp.desktop +image/x-gimp-pat=gimp.desktop +image/x-icon=gimp.desktop +image/x-pcx=gimp.desktop +image/x-pixmap=eog.desktop +image/x-portable-anymap=gimp.desktop +image/x-portable-bitmap=gimp.desktop +image/x-portable-graymap=gimp.desktop +image/x-portable-pixmap=gimp.desktop +image/x-psd=gimp.desktop +image/x-psp=gimp.desktop +image/x-sgi=gimp.desktop +image/x-tga=gimp.desktop +image/x-wmf=gimp.desktop +image/x-xbitmap=gimp.desktop +image/x-xcf=gimp.desktop +image/x-xcursor=gimp.desktop +image/x-xpixmap=eog.desktop +image/x-xwindowdump=gimp.desktop +inode/directory=Thunar-folder-handler.desktop +misc/ultravox=vlc.desktop +multipart/x-zip=xarchiver.desktop +text/csv=libreoffice-calc.desktop +text/html=chromium.desktop +text/plain=leafpad.desktop +text/rtf=libreoffice-writer.desktop +text/spreadsheet=libreoffice-calc.desktop +text/x-apt-sources-list=software-properties-gtk.desktop +text/xml=chromium.desktop +video/dv=vlc.desktop +video/mp2t=vlc.desktop +video/mp4v-es=vlc.desktop +video/mp4=vlc.desktop +video/mpeg=vlc.desktop +video/msvideo=vlc.desktop +video/quicktime=vlc.desktop +video/vnd.rn-realvideo=vlc.desktop +video/webm=vlc.desktop +video/x-anim=vlc.desktop +video/x-avi=vlc.desktop +video/x-flc=vlc.desktop +video/x-fli=vlc.desktop +video/x-flv=vlc.desktop +video/x-matroska=vlc.desktop +video/x-mpeg=vlc.desktop +video/x-ms-asf=vlc.desktop +video/x-msvideo=vlc.desktop +video/x-ms-wmv=vlc.desktop +video/x-nsv=vlc.desktop +video/x-ogm+ogg=vlc.desktop +x-content/audio-cdda=xfburn.desktop +x-content/audio-player=vlc.desktop +x-content/blank-cd=xfburn.desktop +x-content/video-dvd=vlc.desktop +x-content/video-svcd=vlc.desktop +x-content/video-vcd=vlc.desktop +x-scheme-handler/chrome=chromium.desktop +x-scheme-handler/ftp=chromium.desktop +x-scheme-handler/ghelp=yelp.desktop +x-scheme-handler/help=yelp.desktop +x-scheme-handler/http=chromium.desktop +x-scheme-handler/https=chromium.desktop +x-scheme-handler/info=yelp.desktop +x-scheme-handler/magnet=userapp-transmission-gtk-ATMADY.desktop +x-scheme-handler/mailto=notmuch-emacs-mua.desktop +x-scheme-handler/man=yelp.desktop +x-scheme-handler/mms=vlc.desktop +x-scheme-handler/ptsave=powdertoy-tpt-ptsave.desktop +x-scheme-handler/rtmp=vlc.desktop +x-scheme-handler/rtsp=vlc.desktop +x-scheme-handler/steam=steam.desktop diff --git a/dotfiles/setup_env.sh b/dotfiles/setup_env.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env sh +OHMY=.oh-my-zsh +OLD=/tmp/old + +if [ ! -d $OLD ]; then + mkdir $OLD +fi + +# set up symlinks +echo "Creating sym links..." + +FILES=`ls -a | grep "^\." \ + | sed \ + -e "1,2d" \ + -e "/\.git$/d" \ + -e "/\.gitmodules$/d" \ +` + +for FILE in $FILES +do + DEST=$HOME/$FILE + if [ -e $DEST ]; then + mv $DEST $OLD/$FILE + fi + ln -sf `pwd`/$FILE $HOME/$FILE +done + +# install vim config +echo "Installing vim config..." +ln -sf $HOME/.vim/.vimrc $HOME/.vimrc + +# install zsh config +echo "Installing zsh config..." +if [ -d $HOME/$OHMY ]; then + mv $HOME/$OHMY $OLD/$OHMY +fi + +git clone http://github.com/robbyrussell/oh-my-zsh.git $HOME/$OHMY +ln -sf `pwd`/jb55.zsh-theme $HOME/$OHMY/themes/jb55.zsh-theme diff --git a/dotfiles/skeletons/nix-rust/.envrc b/dotfiles/skeletons/nix-rust/.envrc @@ -0,0 +1 @@ +use nix diff --git a/dotfiles/skeletons/nix-rust/default.nix b/dotfiles/skeletons/nix-rust/default.nix @@ -0,0 +1,6 @@ +{ pkgs ? import <nixpkgs> {} }: +with pkgs; +stdenv.mkDerivation { + name = "project"; + nativeBuildInputs = [ cargo rustc ]; +} diff --git a/dotfiles/skeletons/nix/.envrc b/dotfiles/skeletons/nix/.envrc @@ -0,0 +1 @@ +use nix diff --git a/dotfiles/skeletons/nix/default.nix b/dotfiles/skeletons/nix/default.nix @@ -0,0 +1,6 @@ +{ pkgs ? import <nixpkgs> {} }: +with pkgs; +stdenv.mkDerivation { + name = "project"; + nativeBuildInputs = [ ]; +} diff --git a/dotfiles/snippets/cs.snippets b/dotfiles/snippets/cs.snippets @@ -0,0 +1,374 @@ +# cs.snippets +# =========== +# +# Standard C-Sharp snippets for snipmate. +# +# Largely ported over from Visual Studio 2010 snippets plus +# a few snippets from Resharper plus a few widely known snippets. +# +# Most snippets on elements (i.e. classes, properties) +# follow suffix conventions. The order of suffixes to a snippet +# is fixed. +# +# Snippet Suffix Order +# -------------------- +# 1. Access Modifiers +# 2. Class Modifiers +# +# Access Modifier Suffix Table +# ---------------------------- +# + = public +# & = internal +# | = protected +# - = private +# +# Example: `cls&` expands to `internal class $1`. +# Access modifiers might be doubled to indicate +# different modifiers for get/set on properties. +# Example: `pb+-` expands to `public bool $1 { get; private set; }` +# +# Class Modifier Table +# -------------------- +# ^ = static +# % = abstract +# +# Example: `cls|%` expands to `protected abstract class $1` +# +# On method and property snippets, you can directly set +# one of the common types int, string and bool, if desired, +# just by appending the type modifier. +# +# Type Modifier Table +# ------------------- +# i = integer +# s = string +# b = bool +# +# Example: `pi+&` expands to `public int $1 { get; internal set; }` +# +# I'll most propably add more stuff in here like +# * List/Array constructio +# * Mostly used generics +# * Linq +# * Funcs, Actions, Predicates +# * Lambda +# * Events +# +# Feedback is welcome! +# +# entry point +snippet sim + public static int Main(string[] args) { + ${1} + return 0; + } +snippet simc + public class Application { + public static int Main(string[] args) { + ${1} + return 0; + } + } +# if condition +snippet if + if (${1}) { + ${2} + } +snippet el + else { + ${1} + } +snippet ifs + if (${1}) + ${2} +# ternary conditional +snippet t + ${1} ? ${2} : ${3} +snippet ? + ${1} ? ${2} : ${3} +# do while loop +snippet do + do { + ${2} + } while (${1}); +# while loop +snippet wh + while (${1}) { + ${2} + } +# for loop +snippet for + for (int ${1:i} = 0; $1 < ${2:count}; $1${3:++}) { + ${4} + } +# foreach +snippet fore + foreach (var ${1:entry} in ${2}) { + ${3} + } +snippet foreach + foreach (var ${1:entry} in ${2}) { + ${3} + } +snippet each + foreach (var ${1:entry} in ${2}) { + ${3} + } +# interfaces +snippet interface + public interface ${1:`Filename()`} { + ${2} + } +snippet if+ + public interface ${1:`Filename()`} { + ${2} + } +# class bodies +snippet class + public class ${1:`Filename()`} { + ${2} + } +snippet cls + ${2:public} class ${1:`Filename()`} { + ${3} + } +snippet cls+ + public class ${1:`Filename()`} { + ${2} + } +snippet cls+^ + public static class ${1:`Filename()`} { + ${2} + } +snippet cls& + internal class ${1:`Filename()`} { + ${2} + } +snippet cls&^ + internal static class ${1:`Filename()`} { + ${2} + } +snippet cls| + protected class ${1:`Filename()`} { + ${2} + } +snippet cls|% + protected abstract class ${1:`Filename()`} { + ${2} + } +# constructor +snippet ctor + public ${1:`Filename()`}() { + ${2} + } +# properties - auto properties by default. +# default type is int with layout get / set. +snippet prop + ${1:public} ${2:int} ${3:} { get; set; }${4} +snippet p + ${1:public} ${2:int} ${3:} { get; set; }${4} +snippet p+ + public ${1:int} ${2:} { get; set; }${3} +snippet p+& + public ${1:int} ${2:} { get; internal set; }${3} +snippet p+| + public ${1:int} ${2:} { get; protected set; }${3} +snippet p+- + public ${1:int} ${2:} { get; private set; }${3} +snippet p& + internal ${1:int} ${2:} { get; set; }${3} +snippet p&| + internal ${1:int} ${2:} { get; protected set; }${3} +snippet p&- + internal ${1:int} ${2:} { get; private set; }${3} +snippet p| + protected ${1:int} ${2:} { get; set; }${3} +snippet p|- + protected ${1:int} ${2:} { get; private set; }${3} +snippet p- + private ${1:int} ${2:} { get; set; }${3} +# property - bool +snippet pi + ${1:public} int ${2:} { get; set; }${3} +snippet pi+ + public int ${1} { get; set; }${2} +snippet pi+& + public int ${1} { get; internal set; }${2} +snippet pi+| + public int ${1} { get; protected set; }${2} +snippet pi+- + public int ${1} { get; private set; }${2} +snippet pi& + internal int ${1} { get; set; }${2} +snippet pi&| + internal int ${1} { get; protected set; }${2} +snippet pi&- + internal int ${1} { get; private set; }${2} +snippet pi| + protected int ${1} { get; set; }${2} +snippet pi|- + protected int ${1} { get; private set; }${2} +snippet pi- + private int ${1} { get; set; }${2} +# property - bool +snippet pb + ${1:public} bool ${2:} { get; set; }${3} +snippet pb+ + public bool ${1} { get; set; }${2} +snippet pb+& + public bool ${1} { get; internal set; }${2} +snippet pb+| + public bool ${1} { get; protected set; }${2} +snippet pb+- + public bool ${1} { get; private set; }${2} +snippet pb& + internal bool ${1} { get; set; }${2} +snippet pb&| + internal bool ${1} { get; protected set; }${2} +snippet pb&- + internal bool ${1} { get; private set; }${2} +snippet pb| + protected bool ${1} { get; set; }${2} +snippet pb|- + protected bool ${1} { get; private set; }${2} +snippet pb- + private bool ${1} { get; set; }${2} +# property - string +snippet ps + ${1:public} string ${2:} { get; set; }${3} +snippet ps+ + public string ${1} { get; set; }${2} +snippet ps+& + public string ${1} { get; internal set; }${2} +snippet ps+| + public string ${1} { get; protected set; }${2} +snippet ps+- + public string ${1} { get; private set; }${2} +snippet ps& + internal string ${1} { get; set; }${2} +snippet ps&| + internal string ${1} { get; protected set; }${2} +snippet ps&- + internal string ${1} { get; private set; }${2} +snippet ps| + protected string ${1} { get; set; }${2} +snippet ps|- + protected string ${1} { get; private set; }${2} +snippet ps- + private string ${1} { get; set; }${2} +# members - void +snippet m + ${1:public} ${2:void} ${3:}(${4:}) { + ${5:} + } +snippet m+ + public ${1:void} ${2:}(${3:}) { + ${4:} + } +snippet m& + internal ${1:void} ${2:}(${3:}) { + ${4:} + } +snippet m| + protected ${1:void} ${2:}(${3:}) { + ${4:} + } +snippet m- + private ${1:void} ${2:}(${3:}) { + ${4:} + } +# members - int +snippet mi + ${1:public} int ${2:}(${3:}) { + ${4:return 0;} + } +snippet mi+ + public int ${1:}(${2:}) { + ${3:return 0;} + } +snippet mi& + internal int ${1:}(${2:}) { + ${3:return 0;} + } +snippet mi| + protected int ${1:}(${2:}) { + ${3:return 0;} + } +snippet mi- + private int ${1:}(${2:}) { + ${3:return 0;} + } +# members - bool +snippet mb + ${1:public} bool ${2:}(${3:}) { + ${4:return false;} + } +snippet mb+ + public bool ${1:}(${2:}) { + ${3:return false;} + } +snippet mb& + internal bool ${1:}(${2:}) { + ${3:return false;} + } +snippet mb| + protected bool ${1:}(${2:}) { + ${3:return false;} + } +snippet mb- + private bool ${1:}(${2:}) { + ${3:return false;} + } +# members - string +snippet ms + ${1:public} string ${2:}(${3:}) { + ${4:return "";} + } +snippet ms+ + public string ${1:}(${2:}) { + ${3:return "";} + } +snippet ms& + internal string ${1:}(${2:}) { + ${3:return "";} + } +snippet ms| + protected string ${1:}(${2:}) { + ${3:return "";} + } +snippet ms- + private string ${1:}(${2:}) { + ${3:return "";} + } +# structure +snippet struct + public struct ${1:`Filename()`} { + ${2} + } +# enumeration +snippet enum + public enum ${1} { + ${2} + } +# preprocessor directives +snippet #if + #if + ${1} + #endif +# inline xml documentation +snippet /// + /// <summary> + /// ${1} + /// </summary> +snippet <p + <param name="${1}">${2:$1}</param>${3} +snippet <ex + <exception cref="${1:System.Exception}">${2}</exception>${3} +snippet <r + <returns>${1}</returns>{${2} +snippet <s + <see cref="${1}"/>${2} +snippet <rem + <remarks>${1}</remarks>${2} +snippet <c + <code>${1}</code>${2} diff --git a/dotfiles/snippets/dart.snippets b/dotfiles/snippets/dart.snippets @@ -0,0 +1,82 @@ +snippet lib + #library('${1}'); + ${2} +snippet im + #import('${1}'); + ${2} +snippet so + #source('${1}'); + ${2} +snippet main + static void main() { + ${1:/* code */} + } +snippet st + static ${1} +snippet fi + final ${1} +snippet re + return ${1} +snippet br + break; +snippet th + throw ${1} +snippet cl + class ${1:`Filename("", "untitled")`} ${2} +snippet in + interface ${1:`Filename("", "untitled")`} ${2} +snippet imp + implements ${1} +snippet ext + extends ${1} +snippet if + if (${1:true}) { + ${2} + } +snippet ife + if (${1:true}) { + ${2} + } else { + ${3} + } +snippet el + else +snippet sw + switch (${1}) { + ${2} + } +snippet cs + case ${1}: + ${2} +snippet de + default: + ${1} +snippet for + for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) { + ${4:$1[$2]} + } +snippet fore + for (final ${2:item} in ${1:itemList}) { + ${3:/* code */} + } +snippet wh + while (${1:/* condition */}) { + ${2:/* code */} + } +snippet dowh + do { + ${2:/* code */} + } while (${1:/* condition */}); +snippet as + assert(${1:/* condition */}); +snippet try + try { + ${2} + } catch (${1:Exception e}) { + } +snippet tryf + try { + ${2} + } catch (${1:Exception e}) { + } finally { + } diff --git a/dotfiles/snippets/htmltornado.snippets b/dotfiles/snippets/htmltornado.snippets @@ -0,0 +1,55 @@ +# Generic tags + +snippet { + {{ ${1} }} + +# Template tags + +snippet extends + {% extends "${1:base.html}" %} +snippet autoescape + {% autoescape ${1:xhtml_escape | None} %} +snippet apply + {% apply ${1:function} %} + ${2} + {% end %} +snippet block + {% block ${1} %} + ${2} + {% end %} +snippet for + {% for ${1:item} in ${2} %} + ${3} + {% end %} +snippet from + {% from ${1:x} import ${2:y} %} +snippet if + {% if ${1:condition} %} + ${2} + {% end %} +snippet elif + {% elif ${1:condition} %} +snippet else + {% else %} +snippet import + {% import ${1:module} %} +snippet include + {% include "${1:filename}" %} +snippet module + {% module ${1:expression} %} +snippet raw + {% raw ${1:expression} %} +snippet set + {% set ${1:x} = ${2:y} %} +snippet try + {% try %} + ${1} + {% except %} + ${2} + {% finallly %} + ${3} + {% end %} +snippet while + {% while ${1:condition} %} + ${2} + {% end %} diff --git a/dotfiles/xmobar/get-volume b/dotfiles/xmobar/get-volume @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# alsa +amixer sget Master | awk -F"[][]" '/dB/ { print $2,$6 }' + +# pulse +#amixer sget Master | tail -n1 | awk -F"[][]" '{ print $2,$4 }' diff --git a/dotfiles/zsh/undistract-me.zsh b/dotfiles/zsh/undistract-me.zsh @@ -0,0 +1,72 @@ +# commands to ignore +cmdignore=(htop tmux top vim git less bat sacc fz fzf nix-shell rust-dev all-dev npm) + + +function sec_to_human () { + local H='' + local M='' + local S='' + + local h=$(($1 / 3600)) + [ $h -gt 0 ] && H="${h} hour " && [ $h -gt 1 ] && H="${H}s" + + local m=$((($1 / 60) % 60)) + [ $m -gt 0 ] && M="${m} min " && [ $m -gt 1 ] && M="${M}s" + + local s=$(($1 % 60)) + [ $s -gt 0 ] && S="${s} sec" && [ $s -gt 1 ] && S="${S}s" + + echo $H$M$S +} + +# Function taken from undistract-me, get the current window id +function active_window_id () { + if [[ -n $DISPLAY ]] ; then + xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}' + return + fi + echo nowindowid +} + +# end and compare timer, notify-send if needed +function notifyosd-precmd() { + retval=$? + if [[ ${cmdignore[(r)$cmd_basename]} == $cmd_basename ]]; then + return + else + if [ ! -z "$cmd" ]; then + cmd_end=`date +%s` + ((cmd_time=$cmd_end - $cmd_start)) + fi + if [ $retval -gt 0 ]; then + icon="cross-mark" + else + icon="check-mark" + fi + if [ ! -z "$cmd" -a $cmd_time -gt 3 ] && [[ "$cmd_active_win" != "$(active_window_id)" ]]; then + longtimeout="$(((cmd_time / 3) * 1000))" + timeout="$(btcs -t 15000 $longtimeout min)" + local human="$(sec_to_human $cmd_time)" + if [ ! -z $SSH_TTY ] ; then + notify-send -t $timeout -i $icon "Command took $human" "$cmd" + else + notify-send -t $timeout -i $icon "Command took $human" "$cmd" + fi + fi + unset cmd + fi +} + +# make sure this plays nicely with any existing precmd +precmd_functions+=( notifyosd-precmd ) + +# get command name and start the timer +function notifyosd-preexec() { + cmd=$1 + cmd_basename=${${cmd:s/sudo //}[(ws: :)1]} + cmd_start=$(date +%s) + cmd_active_win=$(active_window_id) +} + +# make sure this plays nicely with any existing preexec +preexec_functions+=( notifyosd-preexec )