Skip to content

Instantly share code, notes, and snippets.

@jeremytwfortune
Last active March 5, 2020 19:52
Show Gist options
  • Save jeremytwfortune/dbef983305a406ebd25a to your computer and use it in GitHub Desktop.
Save jeremytwfortune/dbef983305a406ebd25a to your computer and use it in GitHub Desktop.
Cygwin Configuration
# To the extent possible under law, the author(s) have dedicated all
# copyright and related and neighboring rights to this software to the
# public domain worldwide. This software is distributed without any warranty.
# You should have received a copy of the CC0 Public Domain Dedication along
# with this software.
# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
# base-files version 4.1-1
# ~/.bash_profile: executed by bash(1) for login shells.
# The latest version as installed by the Cygwin Setup program can
# always be found at /etc/defaults/etc/skel/.bash_profile
# Modifying /etc/skel/.bash_profile directly will prevent
# setup from updating it.
# The copy in your home directory (~/.bash_profile) is yours, please
# feel free to customise it to create a shell
# environment to your liking. If you feel a change
# would be benifitial to all, please feel free to send
# a patch to the cygwin mailing list.
# User dependent .bash_profile file
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
# Set PATH so it includes user's private bin if it exists
# if [ -d "${HOME}/bin" ] ; then
# export PATH="/cygdrive/c/cygwin/bin"
# fi
# Set MANPATH so it includes users' private man if it exists
# if [ -d "${HOME}/man" ]; then
# MANPATH="${HOME}/man:${MANPATH}"
# fi
# Set INFOPATH so it includes users' private info if it exists
# if [ -d "${HOME}/info" ]; then
# INFOPATH="${HOME}/info:${INFOPATH}"
# fi
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# startup set
export GIT_SSH=/cygdrive/c/cygwin64/bin/ssh
export PATH="/cygdrive/c/cygwin64/bin"
export PATH=$PATH:"/cygdrive/c/Program Files/Java/jdk1.7.0_05/bin"
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# git autocomplete
# https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
. /etc/bash_completion.d/git-completion
shopt extglob > /dev/null
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# 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_color_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
# Displays user@host pwd gitbranch.
export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w \
\[\e[1;36m\]\$(git symbolic-ref --short HEAD 2>/dev/null\
|| echo \$(git rev-parse HEAD 2>/dev/null | cut -b 1-7))\
\[\e[0m\]\n\$ "
# enable color support of ls and also add handy aliases
if [ -x /bin/dircolors ]; then
test -r ~/.dir_colors && eval "$(dircolors -b ~/.dir_colors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias lt='ls -lrht'
alias gits='git status'
alias gitf='git fetch --all -p'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# 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 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 ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# Copyright (C) 1996, 1999-2011 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# Below, there should be one TERM entry for each termtype that is colorizable
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 jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM putty
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.rxvt
TERM screen.linux
TERM terminator
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;47 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.lzma 01;31
.tlz 01;31
.txz 01;31
.zip 01;31
.z 01;31
.Z 01;31
.dz 01;31
.gz 01;31
.lz 01;31
.xz 01;31
.bz2 01;31
.bz 01;31
.tbz 01;31
.tbz2 01;31
.tz 01;31
.deb 01;31
.rpm 01;31
.jar 01;31
.war 01;31
.ear 01;31
.sar 01;31
.rar 01;31
.ace 01;31
.zoo 01;31
.cpio 01;31
.7z 01;31
.rz 01;31
# image formats
.jpg 01;35
.jpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.svg 01;35
.svgz 01;35
.mng 01;35
.pcx 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.m2v 01;35
.mkv 01;35
.webm 01;35
.ogm 01;35
.mp4 01;35
.m4v 01;35
.mp4v 01;35
.vob 01;35
.qt 01;35
.nuv 01;35
.wmv 01;35
.asf 01;35
.rm 01;35
.rmvb 01;35
.flc 01;35
.avi 01;35
.fli 01;35
.flv 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
.yuv 01;35
.cgm 01;35
.emf 01;35
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 01;35
.anx 01;35
.ogv 01;35
.ogx 01;35
# audio formats
.aac 00;36
.au 00;36
.flac 00;36
.mid 00;36
.midi 00;36
.mka 00;36
.mp3 00;36
.mpc 00;36
.ogg 00;36
.ra 00;36
.wav 00;36
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 00;36
.oga 00;36
.spx 00;36
.xspf 00;36
Transparency=off
Columns=180
Rows=50
BoldAsFont=yes
Term=xterm-256color
BoldAsColour=yes
Black=7,54,66
Red=220,50,47
Green=133,153,0
Yellow=181,137,0
Blue=38,139,210
Magenta=211,54,130
Cyan=42,161,152
White=238,232,213
BoldBlack=0,43,54
BoldRed=203,75,22
BoldGreen=88,110,117
BoldYellow=101,123,131
BoldBlue=131,148,150
BoldMagenta=108,113,196
BoldCyan=147,161,161
BoldWhite=253,246,227
ForegroundColour=238,232,213
BackgroundColour=0,43,54
CursorColour=133,153,0
CopyOnSelect=no
FontHeight=11
Font=Consolas
FontSmoothing=full
set nocompatible
set bs=indent,eol,start
set history=50
" For indentation.
filetype indent on
set tabstop=2
set shiftwidth=2
set expandtab
" Syntax highlighting.
syntax on
filetype on
au BufNewFile,BufRead *.script set filetype=sh
au BufNewFile,BufRead *.create set filetype=sql
au BufNewFile,BufRead *.load set filetype=sql
colorscheme solarized
set background=dark
hi Normal ctermbg=NONE
set colorcolumn=80
" Numbering.
set number
" Substitution
set magic
" Airline, https://github.com/bling/vim-airline
set laststatus=2
" Tabs
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
ELFIO
ImageMagick
OpenSP
R
R_autorebase
XmHTML-devel
_autorebase
_update-info-dir
aalib-devel
adwaita-icon-theme
algol68g
alternatives
apache2
appdata-tools
appstream-glib
astyle
at-spi2-core
autobuild
autoconf
autoconf-archive
autoconf2.1
autoconf2.5
automake
automake1.10
automake1.11
automake1.12
automake1.13
automake1.14
automake1.4
automake1.5
automake1.6
automake1.7
automake1.8
automake1.9
automoc4
base-cygwin
base-files
bash
bash-completion
bashdb
bc
biber
binutils
bison
build-docbook-catalog
byacc
bzip2
bzr
bzr-fastimport
c-client
ca-certificates
catgets
cgdb
check
cloog-isl
cmake
cmake-gui
cocom
codeville
colorgcc
compositeproto
coreutils
cppcheck
cppunit
crypt
csih
ctags
curl
cvs
cvs2svn
cvsps
cvsutils
cygport
cygrunsrv
cygutils
cygwin
cygwin-devel
cygwin32
cygwin32-binutils
cygwin32-bzip2
cygwin32-catgets
cygwin32-cloog-isl
cygwin32-cloog-ppl
cygwin32-crypt
cygwin32-default-manifest
cygwin32-expat
cygwin32-freetype2
cygwin32-gcc-core
cygwin32-gcc-fortran
cygwin32-gcc-g++
cygwin32-gcc-objc
cygwin32-gcc-objc++
cygwin32-gettext
cygwin32-gmp
cygwin32-gnutls
cygwin32-isl
cygwin32-jbigkit
cygwin32-libX11
cygwin32-libXau
cygwin32-libXdmcp
cygwin32-libbfd
cygwin32-libedit
cygwin32-libffi
cygwin32-libiconv
cygwin32-libmpc
cygwin32-libpng
cygwin32-libtasn1
cygwin32-libtool
cygwin32-libxcb
cygwin32-lzo2
cygwin32-minizip
cygwin32-mpfr
cygwin32-ncurses
cygwin32-nettle
cygwin32-openssl
cygwin32-p11-kit
cygwin32-pcre
cygwin32-ppl
cygwin32-readline
cygwin32-w32api-headers
cygwin32-w32api-runtime
cygwin32-xproto
cygwin32-zlib
damageproto
dash
dblatex
dbus
dconf-service
ddd
dejagnu
desktop-file-utils
dialog
diffstat
diffutils
docbook-dsssl
docbook-xml412
docbook-xml42
docbook-xml43
docbook-xml44
docbook-xsl
dos2unix
doxygen
doxygen-doxywizard
dri-drivers
ed
editrights
emacs
emacs-mercurial
eventlog
expect
file
findutils
fixesproto
flac-devel
flex
font-adobe-dpi75
font-bh-lucidatypewriter-dpi75
font-encodings
fontconfig
gamin
gawk
gcc-core
gcc-fortran
gcc-g++
gcc-objc
gcc-objc++
gcc-tools-epoch1-autoconf
gcc-tools-epoch1-automake
gcc-tools-epoch2-autoconf
gcc-tools-epoch2-automake
gccmakedep
gcr
gdb
gdk-pixbuf2.0-svg
gendef
getent
gettext
gettext-devel
ghostscript
ghostscript-fonts-other
ghostscript-fonts-std
girepository-GLib2.0
git
git-completion
git-cvs
git-email
git-gui
git-review
git-svn
gitk
gitweb
glib2.0-networking
glproto
gmp
gpg
gnome-common
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnutls-devel
gobject-introspection
gperf
grep
groff
gsettings-desktop-schemas
gsl
gsl-apps
gsl-devel
gsl-doc
gtk-doc
gtk-update-icon-cache
guilt
gvfs
gzip
help2man
hicolor-icon-theme
hostname
icon-naming-utils
idle
idle3
imake
info
inputproto
intltool
ipc-utils
isl
iso-codes
itstool
kbproto
less
lftp
libEGL-devel
libEGL1
libEMF-devel
libEMF1
libFLAC++6
libFLAC8
libGL-devel
libGL1
libGLU1
libICE-devel
libICE6
libMagick-devel
libMagickCore5
libMagickCore6
libOpenVG1
libQtCore4
libQtCore4-devel
libQtDBus4
libQtDeclarative4
libQtDesigner4
libQtGui4
libQtHelp4
libQtMultimedia4
libQtNetwork4
libQtOpenGL4
libQtScript4
libQtScriptTools4
libQtSql4
libQtSvg4
libQtTest4
libQtWebKit4
libQtXml4
libQtXmlPatterns4
libRmath
libRmath-devel
libSM-devel
libSM6
libX11-devel
libX11-xcb-devel
libX11-xcb1
libX11_6
libXau-devel
libXau6
libXaw7
libXcomposite-devel
libXcomposite1
libXcursor-devel
libXcursor1
libXdamage-devel
libXdamage1
libXdmcp-devel
libXdmcp6
libXext-devel
libXext6
libXfixes-devel
libXfixes3
libXft-devel
libXft2
libXi-devel
libXi6
libXinerama-devel
libXinerama1
libXm-devel
libXm4
libXmHTML0
libXmu6
libXpm-devel
libXpm-noX-devel
libXpm-noX_4
libXpm4
libXrandr-devel
libXrandr2
libXrender-devel
libXrender1
libXss1
libXt-devel
libXt6
libXtst6
libaa1
libappstream-glib1
libapr1
libapr1-devel
libaprutil1
libaprutil1-devel
libarchive13
libargp
libasn1_8
libaspell-devel
libaspell15
libasprintf0
libasyncns0
libatk-bridge2.0_0
libatk1.0-devel
libatk1.0_0
libatomic1
libatspi0
libattr-devel
libattr1
libaudio2
libautotrace-devel
libautotrace3
libavahi-client3
libavahi-common3
libavahi-glib1
libblkid1
libboost1.53
libboost_regex1.55
libbotan1.8.13
libbz2-devel
libbz2_1
libcaca-devel
libcaca0
libcairo-devel
libcairo2
libcatgets-devel
libcatgets1
libcharset1
libclang
libcloog-isl-devel
libcloog-isl-doc
libcloog-isl4
libcloog0
libcom_err-devel
libcom_err2
libcompface-devel
libcompface0
libcroco0.6_3
libcrypt-devel
libcrypt0
libcurl4
libdatrie1
libdb-devel
libdb5.3
libdbus-glib_1_2
libdbus1-devel
libdbus1_3
libdialog11
libecpg-devel
libedit-devel
libedit0
libevent2.0_5
libevtlog-devel
libevtlog0
libexpat-devel
libexpat1
libexpat1-devel
libfam0
libffi-devel
libffi6
libfftw3-devel
libfftw3_3
libfltk-devel
libfltk-doc
libfltk1.3
libfontconfig-devel
libfontconfig1
libfontenc1
libfpx-devel
libfpx1
libfreetype-devel
libfreetype6
libgamin1_0
libgcc1
libgck1_0
libgcr3-common
libgcr3_1
libgcrypt-devel
libgcrypt11
libgd-devel
libgd2
libgd3
libgdbm-devel
libgdbm4
libgdk_pixbuf2.0-devel
libgdk_pixbuf2.0_0
libgettextpo0
libgfortran3
libggi2
libggi2-devel
libggimisc2
libggimisc2-devel
libggiwmh0
libggiwmh0-devel
libgif-devel
libgif4
libgii1
libgii1-devel
libgirepository1.0_1
libglade2.0_0
libglapi0
libglib2.0-devel
libglib2.0_0
libglut3
libgmp-devel
libgmp10
libgmpxx4
libgnome-keyring0
libgnutls-devel
libgnutls28
libgomp1
libgpg-error-devel
libgpg-error0
libgraphite2_3
libgs-devel
libgs9
libgssapi3
libgssapi_krb5_2
libgssrpc4
libgstinterfaces0.10_0
libgstreamer0.10_0
libgtk2.0-devel
libgtk2.0_0
libgtk3_0
libguile17
libharfbuzz-devel
libharfbuzz-icu0
libharfbuzz0
libhdb9
libhdf5-devel
libhdf5_8
libhdf5_9
libheimbase1
libheimntlm0
libhogweed2
libhx509_5
libiconv
libiconv-devel
libiconv2
libicu-devel
libicu51
libicu54
libidn-devel
libidn11
libintl-devel
libintl8
libiodbc-devel
libiodbc2
libisl-devel
libisl10
libjasper1
libjbig-devel
libjbig2
libjpeg-devel
libjpeg8
libjson-c-common
libjson-c2
libjson-glib1.0_0
libk5crypto3
libkadm5clnt7
libkadm5clnt_mit9
libkadm5srv8
libkadm5srv_mit9
libkafs0
libkate
libkate-devel
libkate1
libkdb5_7
libkdc2
libkpathsea6
libkrad0
libkrb5-devel
libkrb5_26
libkrb5_3
libkrb5support0
liblapack-devel
liblapack0
liblcms-devel
liblcms1
liblcms2-devel
liblcms2_2
libllvm3.4
libltdl7
liblzma-devel
liblzma5
liblzo2_2
libmangle
libmcrypt-devel
libmcrypt4
libmetalink3
libming-devel
libming1
libmng-devel
libmng1
libmpc3
libmpfr4
libmysqlclient18
libncurses-devel
libncursesw-devel
libncursesw10
libneon-devel
libneon27
libnetpbm10
libnettle-devel
libnettle4
libobjc4
libogg-devel
libogg0
libopencdk-devel
libopencdk10
libopenjpeg1
libopenldap2_4_2
libopenssl100
liborc0.4_0
libosp5
libostyle1
libotp0
libp11-kit-devel
libp11-kit0
libpango1.0-devel
libpango1.0_0
libpaper-common
libpaper-devel
libpaper1
libpcre-devel
libpcre1
libpcre16_0
libpcre32_0
libpcrecpp0
libpcreposix0
libphonon4
libpipeline1
libpixman1-devel
libpixman1_0
libplot2
libplotter-devel
libplotter2
libpng-devel
libpng-doc
libpng15
libpng16
libpng16-devel
libpoco-devel
libpoco-doc
libpoco16
libpoco17
libpoppler28
libpoppler44
libpoppler46
libpopt0
libppl9
libppl_c4
libpq-devel
libpq5
libproxy-devel
libproxy1
libpstoedit0
libptexenc1
libpulse-mainloop-glib0
libpulse0
libpwl5
libqhull-devel
libqhull_6
libqt3
libquadmath0
libqzeitgeist1
librarian0
libreadline7
librest0.7_0
libroken18
librsvg2-devel
librsvg2_2
librsync-devel
librsync1
libsasl2-devel
libsasl2_3
libsecret1_0
libserf1-devel
libserf1_0
libsl0
libslang-devel
libslang2
libsmartcols1
libsmi-devel
libsmi2
libsndfile1
libsoup-gnome2.4_1
libsoup2.4_1
libsource-highlight-common
libsource-highlight4
libspeex1
libsqlite3-devel
libsqlite3_0
libssh2_1
libssp0
libstdc++6
libsybdb5
libtasn1-devel
libtasn1_6
libtdb1
libthai0
libtidy0_99_0
libtiff-devel
libtiff5
libtiff6
libtinyxml2_2
libtool
libunistring-devel
libunistring0
libunistring2
libustr-devel
libustr1
libuuid-devel
libuuid1
libvala0.20-devel
libvala0.20_0
libvala0.22_0
libvala0.26_0
libverto1
libvorbis
libvorbis-devel
libvorbis0
libvorbisenc2
libvorbisfile3
libvpx-devel
libvpx1
libwebp-devel
libwebp5
libwebpdecoder1
libwebpdemux1
libwebpmux1
libwind0
libwmf-devel
libwmf027
libwrap-devel
libwrap0
libxcb-devel
libxcb-glx-devel
libxcb-glx0
libxcb-render-devel
libxcb-render0
libxcb-shm-devel
libxcb-shm0
libxcb1
libxml2
libxml2-devel
libxslt
libyaml0_2
libzip-devel
libzip2
libzzip0.13
lighttpd
lndir
login
lua
lynx
m4
make
makedepend
man
man-db
mercurial
mercurial-convert
mercurial-gui
mercurial-highlight
mingw-binutils
mingw-bzip2
mingw-gcc-core
mingw-gcc-fortran
mingw-gcc-g++
mingw-gcc-objc
mingw-libbz2-devel
mingw-libbz2_2
mingw-libminizip-devel
mingw-libminizip1
mingw-minizip
mingw-pthreads
mingw-runtime
mingw-w32api
mingw-zlib
mingw-zlib-devel
mingw-zlib1
mingw64-i686-binutils
mingw64-i686-bzip2
mingw64-i686-gcc-core
mingw64-i686-gcc-fortran
mingw64-i686-gcc-g++
mingw64-i686-headers
mingw64-i686-libgcrypt
mingw64-i686-libgpg-error
mingw64-i686-minizip
mingw64-i686-pthreads
mingw64-i686-runtime
mingw64-i686-windows-default-manifest
mingw64-i686-winpthreads
mingw64-i686-xz
mingw64-i686-zlib
mingw64-x86_64-binutils
mingw64-x86_64-bzip2
mingw64-x86_64-gcc-core
mingw64-x86_64-gcc-fortran
mingw64-x86_64-gcc-g++
mingw64-x86_64-headers
mingw64-x86_64-libgcrypt
mingw64-x86_64-libgpg-error
mingw64-x86_64-minizip
mingw64-x86_64-pthreads
mingw64-x86_64-runtime
mingw64-x86_64-windows-default-manifest
mingw64-x86_64-winpthreads
mingw64-x86_64-xz
mingw64-x86_64-zlib
mintty
mkfontdir
mkfontscale
mm-common
monotone
nasm
net-snmp-agent-libs
net-snmp-devel
net-snmp-libs
net-snmp-perl
net-snmp-python
netpbm
openjade
openldap-devel
openssh
openssl
openssl-devel
p11-kit
p11-kit-trust
patch
perl
perl-Archive-Zip
perl-Authen-SASL
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Business-ISMN
perl-Business-ISSN
perl-Capture-Tiny
perl-Config-AutoConf
perl-DBD-SQLite
perl-DBD-mysql
perl-DBI
perl-Data-Compare
perl-Data-Diver
perl-Data-Dump
perl-Date-Simple
perl-Digest-HMAC
perl-Digest-SHA1
perl-Encode-EUCJPASCII
perl-Encode-HanExtra
perl-Encode-JIS2K
perl-Encode-Locale
perl-Error
perl-ExtUtils-LibBuilder
perl-File-Find-Rule
perl-File-Listing
perl-File-Slurp
perl-File-Slurp-Unicode
perl-Getopt-ArgvFile
perl-HTML-Parser
perl-HTML-Tagset
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-IO-HTML
perl-IO-Socket-IP
perl-IO-Socket-SSL
perl-IPC-Run3
perl-Image-Magick
perl-LWP
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-List-AllUtils
perl-List-MoreUtils
perl-Locale-gettext
perl-Log-Log4perl
perl-MIME-Charset
perl-MailTools
perl-Module-ScanDeps
perl-Mozilla-CA
perl-Net-HTTP
perl-Net-Libproxy
perl-Net-SMTP-SSL
perl-Net-SSLeay
perl-Number-Compare
perl-PAR
perl-PAR-Dist
perl-PAR-Packer
perl-Params-Util
perl-Readonly
perl-Readonly-XS
perl-Regexp-Common
perl-SGMLSpm
perl-Socket
perl-Term-ReadKey
perl-Term-ReadLine-Gnu
perl-Text-BibTeX
perl-Text-CSV
perl-Text-CSV_XS
perl-Text-Glob
perl-Tie-Cycle
perl-TimeDate
perl-Tk
perl-Tk-Canvas-GradientColor
perl-Tk-ColoredButton
perl-Tk-EntryCheck
perl-Tk-Getopt
perl-Tk-Pod
perl-URI
perl-Unicode-Collate
perl-Unicode-GCString
perl-WWW-RobotRules
perl-XML-LibXML
perl-XML-LibXML-Simple
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-Simple
perl-YAML
perl-ming
perl_autorebase
perl_base
pkg-config
pl
pl-devel
pl-odbc
pl-static
pl-xpce
poco
poppler-data
popt
postgresql-devel
pstoedit-devel
pylint
python
python-avahi
python-backports.ssl_match_hostname
python-bsddb3
python-caca
python-cairo
python-cairo-devel
python-chardet
python-crypto
python-dbus
python-dbus-devel
python-doc
python-fastimport
python-feedparser
python-gamin
python-gi-common
python-gobject
python-gobject-devel
python-gtk2.0
python-gtk2.0-demo
python-gtk2.0-devel
python-htmltmpl
python-imaging
python-libproxy
python-libxml2
python-libxslt
python-logilab-astng
python-logilab-common
python-mako
python-markupsafe
python-ming
python-numpy
python-paramiko
python-pygments
python-pyqt4
python-pyrex
python-requests
python-setuptools
python-simplejson
python-sip
python-six
python-tdb
python-test
python-tkinter
python-urllib3
python-xdg
python3
python3-caca
python3-cairo
python3-cairo-devel
python3-chardet
python3-dbus
python3-gi
python3-libproxy
python3-mako
python3-markupsafe
python3-numpy
python3-pygments
python3-pyqt4
python3-setuptools
python3-sip
python3-test
python3-tkinter
qt3-devel-tools
quilt
randrproto
rarian
rcs
rebase
renderproto
rgb
robodoc
rsync
ruby
ruby-caca
ruby-doc
ruby-io-console
ruby-json
ruby-minitest
ruby-minitest4
ruby-psych
ruby-rake
ruby-rdoc
ruby-tcltk
rubygems
run
scons
screen
sed
sgml-common
shared-mime-info
source-highlight
stgit
subversion
subversion-apache2
subversion-devel
subversion-gnome
subversion-perl
subversion-python
subversion-ruby
subversion-tools
svn-load
svn_load_dirs
swig
t1lib-devel
t1lib5
t1libx-devel
t1libx5
tailor
tar
tcl
tcl-tix
tcl-tk
tcsh
terminfo
terminfo-extra
texinfo
texlive
texlive-collection-basic
texlive-collection-bibtexextra
texlive-collection-binextra
texlive-collection-fontsrecommended
texlive-collection-latex
texlive-collection-latexextra
texlive-collection-latexrecommended
texlive-collection-mathextra
texlive-collection-pictures
tidy
transfig
tzcode
unzip
util-linux
vala
vim
vim-common
vim-minimal
w32api-headers
w32api-runtime
wget
which
windows-default-manifest
xbitmaps
xextproto
xineramaproto
xml2po
xmltoman
xorg-cf-files
xorg-util-macros
xproto
xxd
xz
yasm
yasm-devel
yelp-tools
yelp-xsl
zlib-devel
zlib0

Cygwin Configuration

The files in this gist can be used to reconstruct my Cygwin configuration (at least all the parts I really care about).

  • .bashrc, .bash_profile, and .vimrc should all go in the home directory.
  • solarized.vim should be placed in .vim/colors (the directory may not exist).
  • sql.vim should be placed in .vim/syntax (the direectory may not exist).

Setup

  1. Set /etc/nsswitch.conf db_home value to the home directory.
  2. Download vim-airline and place it in ~/.vim.
  3. Download git-completion. Place it in /etc/bash_completion.d/.
  4. Install apt-cyg with lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg; install apt-cyg /bin.
  5. Install packages in cygwin-packages.txt with for package in $(cat cygwin-packages.txt); do apt-cyg install $package; done.

GPG

  1. Download the private key from keybase.io.
  2. Import and trust the private key with gpg --import-key <keyfile> and gpg --edit-key 35E40FA7 trust.
  3. Add the key to git config with git config --global user.signingkey 35E40FA7
" Name: Solarized vim colorscheme
" Author: Ethan Schoonover <[email protected]>
" URL: http://ethanschoonover.com/solarized
" (see this url for latest release & screenshots)
" License: OSI approved MIT license (see end of this file)
" Created: In the middle of the night
" Modified: 2011 May 05
"
" Usage "{{{
"
" ---------------------------------------------------------------------
" ABOUT:
" ---------------------------------------------------------------------
" Solarized is a carefully designed selective contrast colorscheme with dual
" light and dark modes that runs in both GUI, 256 and 16 color modes.
"
" See the homepage above for screenshots and details.
"
" ---------------------------------------------------------------------
" OPTIONS:
" ---------------------------------------------------------------------
" See the "solarized.txt" help file included with this colorscheme (in the
" "doc" subdirectory) for information on options, usage, the Toggle Background
" function and more. If you have already installed Solarized, this is available
" from the Solarized menu and command line as ":help solarized"
"
" ---------------------------------------------------------------------
" INSTALLATION:
" ---------------------------------------------------------------------
" Two options for installation: manual or pathogen
"
" MANUAL INSTALLATION OPTION:
" ---------------------------------------------------------------------
"
" 1. Download the solarized distribution (available on the homepage above)
" and unarchive the file.
" 2. Move `solarized.vim` to your `.vim/colors` directory.
" 3. Move each of the files in each subdirectories to the corresponding .vim
" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
" directory as .vim/autoload/togglebg.vim).
"
" RECOMMENDED PATHOGEN INSTALLATION OPTION:
" ---------------------------------------------------------------------
"
" 1. Download and install Tim Pope's Pathogen from:
" https://github.com/tpope/vim-pathogen
"
" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
" a subdirectory of the `.vim/bundle` directory.
"
" a. **clone with git:**
"
" $ cd ~/.vim/bundle
" $ git clone git://github.com/altercation/vim-colors-solarized.git
"
" b. **or move manually into the pathogen bundle directory:**
" In the parent directory of vim-colors-solarized:
"
" $ mv vim-colors-solarized ~/.vim/bundle/
"
" MODIFY VIMRC:
"
" After either Option 1 or Option 2 above, put the following two lines in your
" .vimrc:
"
" syntax enable
" set background=dark
" colorscheme solarized
"
" or, for the light background mode of Solarized:
"
" syntax enable
" set background=light
" colorscheme solarized
"
" I like to have a different background in GUI and terminal modes, so I can use
" the following if-then. However, I find vim's background autodetection to be
" pretty good and, at least with MacVim, I can leave this background value
" assignment out entirely and get the same results.
"
" if has('gui_running')
" set background=light
" else
" set background=dark
" endif
"
" See the Solarized homepage at http://ethanschoonover.com/solarized for
" screenshots which will help you select either the light or dark background.
"
" ---------------------------------------------------------------------
" COLOR VALUES
" ---------------------------------------------------------------------
" Download palettes and files from: http://ethanschoonover.com/solarized
"
" L\*a\*b values are canonical (White D65, Reference D50), other values are
" matched in sRGB space.
"
" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
" --------- ------- ---- ------- ----------- ---------- ----------- -----------
" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
"
" ---------------------------------------------------------------------
" COLORSCHEME HACKING
" ---------------------------------------------------------------------
"
" Useful commands for testing colorschemes:
" :source $VIMRUNTIME/syntax/hitest.vim
" :help highlight-groups
" :help cterm-colors
" :help group-name
"
" Useful links for developing colorschemes:
" http://www.vim.org/scripts/script.php?script_id=2937
" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
" http://www.frexx.de/xterm-256-notes/"
"
" }}}
" Environment Specific Overrides "{{{
" Allow or disallow certain features based on current terminal emulator or
" environment.
" Terminals that support italics
let s:terms_italic=[
\"rxvt",
\"gnome-terminal"
\]
" For reference only, terminals are known to be incomptible.
" Terminals that are in neither list need to be tested.
let s:terms_noitalic=[
\"iTerm.app",
\"Apple_Terminal"
\]
if has("gui_running")
let s:terminal_italic=1 " TODO: could refactor to not require this at all
else
let s:terminal_italic=0 " terminals will be guilty until proven compatible
for term in s:terms_italic
if $TERM_PROGRAM =~ term
let s:terminal_italic=1
endif
endfor
endif
" }}}
" Default option values"{{{
" ---------------------------------------------------------------------
" s:options_list is used to autogenerate a list of all non-default options
" using "call SolarizedOptions()" or with the "Generate .vimrc commands"
" Solarized menu option. See the "Menus" section below for the function itself.
let s:options_list=[
\'" this block of commands has been autogenerated by solarized.vim and',
\'" includes the current, non-default Solarized option values.',
\'" To use, place these commands in your .vimrc file (replacing any',
\'" existing colorscheme commands). See also ":help solarized"',
\'',
\'" ------------------------------------------------------------------',
\'" Solarized Colorscheme Config',
\'" ------------------------------------------------------------------',
\]
let s:colorscheme_list=[
\'syntax enable',
\'set background='.&background,
\'colorscheme solarized',
\]
let s:defaults_list=[
\'" ------------------------------------------------------------------',
\'',
\'" The following items are available options, but do not need to be',
\'" included in your .vimrc as they are currently set to their defaults.',
\''
\]
let s:lazycat_list=[
\'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"',
\'" ------------------------------------------------------------------',
\]
function! s:SetOption(name,default)
if type(a:default) == type(0)
let l:wrap=''
let l:ewrap=''
else
let l:wrap='"'
let l:ewrap='\"'
endif
if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default
exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"'
exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")'
else
exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")'
endif
endfunction
if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
let s:solarized_termtrans_default = 1
else
let s:solarized_termtrans_default = 0
endif
call s:SetOption("termtrans",s:solarized_termtrans_default)
call s:SetOption("degrade",0)
call s:SetOption("bold",1)
call s:SetOption("underline",1)
call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support
call s:SetOption("termcolors",16)
call s:SetOption("contrast","normal")
call s:SetOption("visibility","normal")
call s:SetOption("diffmode","normal")
call s:SetOption("hitrail",0)
call s:SetOption("menu",1)
"}}}
" Colorscheme initialization "{{{
" ---------------------------------------------------------------------
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "solarized"
"}}}
" GUI & CSApprox hexadecimal palettes"{{{
" ---------------------------------------------------------------------
"
" Set both gui and terminal color values in separate conditional statements
" Due to possibility that CSApprox is running (though I suppose we could just
" leave the hex values out entirely in that case and include only cterm colors)
" We also check to see if user has set solarized (force use of the
" neutral gray monotone palette component)
if (has("gui_running") && g:solarized_degrade == 0)
let s:vmode = "gui"
let s:base03 = "#002b36"
let s:base02 = "#073642"
let s:base01 = "#586e75"
let s:base00 = "#657b83"
let s:base0 = "#839496"
let s:base1 = "#93a1a1"
let s:base2 = "#eee8d5"
let s:base3 = "#fdf6e3"
let s:yellow = "#b58900"
let s:orange = "#cb4b16"
let s:red = "#dc322f"
let s:magenta = "#d33682"
let s:violet = "#6c71c4"
let s:blue = "#268bd2"
let s:cyan = "#2aa198"
"let s:green = "#859900" "original
let s:green = "#719e07" "experimental
elseif (has("gui_running") && g:solarized_degrade == 1)
" These colors are identical to the 256 color mode. They may be viewed
" while in gui mode via "let g:solarized_degrade=1", though this is not
" recommened and is for testing only.
let s:vmode = "gui"
let s:base03 = "#1c1c1c"
let s:base02 = "#262626"
let s:base01 = "#4e4e4e"
let s:base00 = "#585858"
let s:base0 = "#808080"
let s:base1 = "#8a8a8a"
let s:base2 = "#d7d7af"
let s:base3 = "#ffffd7"
let s:yellow = "#af8700"
let s:orange = "#d75f00"
let s:red = "#af0000"
let s:magenta = "#af005f"
let s:violet = "#5f5faf"
let s:blue = "#0087ff"
let s:cyan = "#00afaf"
let s:green = "#5f8700"
elseif g:solarized_termcolors != 256 && &t_Co >= 16
let s:vmode = "cterm"
let s:base03 = "8"
let s:base02 = "0"
let s:base01 = "10"
let s:base00 = "11"
let s:base0 = "12"
let s:base1 = "14"
let s:base2 = "7"
let s:base3 = "15"
let s:yellow = "3"
let s:orange = "9"
let s:red = "1"
let s:magenta = "5"
let s:violet = "13"
let s:blue = "4"
let s:cyan = "6"
let s:green = "2"
elseif g:solarized_termcolors == 256
let s:vmode = "cterm"
let s:base03 = "234"
let s:base02 = "235"
let s:base01 = "239"
let s:base00 = "240"
let s:base0 = "244"
let s:base1 = "245"
let s:base2 = "187"
let s:base3 = "230"
let s:yellow = "136"
let s:orange = "166"
let s:red = "124"
let s:magenta = "125"
let s:violet = "61"
let s:blue = "33"
let s:cyan = "37"
let s:green = "64"
else
let s:vmode = "cterm"
let s:bright = "* term=bold cterm=bold"
" let s:base03 = "0".s:bright
" let s:base02 = "0"
" let s:base01 = "2".s:bright
" let s:base00 = "3".s:bright
" let s:base0 = "4".s:bright
" let s:base1 = "6".s:bright
" let s:base2 = "7"
" let s:base3 = "7".s:bright
" let s:yellow = "3"
" let s:orange = "1".s:bright
" let s:red = "1"
" let s:magenta = "5"
" let s:violet = "5".s:bright
" let s:blue = "4"
" let s:cyan = "6"
" let s:green = "2"
let s:base03 = "DarkGray" " 0*
let s:base02 = "Black" " 0
let s:base01 = "LightGreen" " 2*
let s:base00 = "LightYellow" " 3*
let s:base0 = "LightBlue" " 4*
let s:base1 = "LightCyan" " 6*
let s:base2 = "LightGray" " 7
let s:base3 = "White" " 7*
let s:yellow = "DarkYellow" " 3
let s:orange = "LightRed" " 1*
let s:red = "DarkRed" " 1
let s:magenta = "DarkMagenta" " 5
let s:violet = "LightMagenta" " 5*
let s:blue = "DarkBlue" " 4
let s:cyan = "DarkCyan" " 6
let s:green = "DarkGreen" " 2
endif
"}}}
" Formatting options and null values for passthrough effect "{{{
" ---------------------------------------------------------------------
let s:none = "NONE"
let s:none = "NONE"
let s:t_none = "NONE"
let s:n = "NONE"
let s:c = ",undercurl"
let s:r = ",reverse"
let s:s = ",standout"
let s:ou = ""
let s:ob = ""
"}}}
" Background value based on termtrans setting "{{{
" ---------------------------------------------------------------------
if (has("gui_running") || g:solarized_termtrans == 0)
let s:back = s:base03
else
let s:back = "NONE"
endif
"}}}
" Alternate light scheme "{{{
" ---------------------------------------------------------------------
if &background == "light"
let s:temp03 = s:base03
let s:temp02 = s:base02
let s:temp01 = s:base01
let s:temp00 = s:base00
let s:base03 = s:base3
let s:base02 = s:base2
let s:base01 = s:base1
let s:base00 = s:base0
let s:base0 = s:temp00
let s:base1 = s:temp01
let s:base2 = s:temp02
let s:base3 = s:temp03
if (s:back != "NONE")
let s:back = s:base03
endif
endif
"}}}
" Optional contrast schemes "{{{
" ---------------------------------------------------------------------
if g:solarized_contrast == "high"
let s:base01 = s:base00
let s:base00 = s:base0
let s:base0 = s:base1
let s:base1 = s:base2
let s:base2 = s:base3
let s:back = s:back
endif
if g:solarized_contrast == "low"
let s:back = s:base02
let s:ou = ",underline"
endif
"}}}
" Overrides dependent on user specified values and environment "{{{
" ---------------------------------------------------------------------
if (g:solarized_bold == 0 || &t_Co == 8 )
let s:b = ""
let s:bb = ",bold"
else
let s:b = ",bold"
let s:bb = ""
endif
if g:solarized_underline == 0
let s:u = ""
else
let s:u = ",underline"
endif
if g:solarized_italic == 0 || s:terminal_italic == 0
let s:i = ""
else
let s:i = ",italic"
endif
"}}}
" Highlighting primitives"{{{
" ---------------------------------------------------------------------
exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'"
exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
" revbb (reverse bold for bright colors) is only set to actual bold in low
" color terminals (t_co=8, such as OS X Terminal.app) and should only be used
" with colors 8-15.
exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'"
exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'"
if has("gui_running")
exe "let s:sp_none = ' guisp=".s:none ."'"
exe "let s:sp_back = ' guisp=".s:back ."'"
exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
exe "let s:sp_green = ' guisp=".s:green ."'"
exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
exe "let s:sp_orange = ' guisp=".s:orange ."'"
exe "let s:sp_red = ' guisp=".s:red ."'"
exe "let s:sp_magenta = ' guisp=".s:magenta."'"
exe "let s:sp_violet = ' guisp=".s:violet ."'"
exe "let s:sp_blue = ' guisp=".s:blue ."'"
exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
else
let s:sp_none = ""
let s:sp_back = ""
let s:sp_base03 = ""
let s:sp_base02 = ""
let s:sp_base01 = ""
let s:sp_base00 = ""
let s:sp_base0 = ""
let s:sp_base1 = ""
let s:sp_base2 = ""
let s:sp_base3 = ""
let s:sp_green = ""
let s:sp_yellow = ""
let s:sp_orange = ""
let s:sp_red = ""
let s:sp_magenta = ""
let s:sp_violet = ""
let s:sp_blue = ""
let s:sp_cyan = ""
endif
"}}}
" Basic highlighting"{{{
" ---------------------------------------------------------------------
" note that link syntax to avoid duplicate configuration doesn't work with the
" exe compiled formats
exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
" *Comment any comment
exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
" *Constant any constant
" String a string constant: "this is a string"
" Character a character constant: 'c', '\n'
" Number a number constant: 234, 0xff
" Boolean a boolean constant: TRUE, false
" Float a floating point constant: 2.3e10
exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
" *Identifier any variable name
" Function function name (also: methods for classes)
"
exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
" *Statement any statement
" Conditional if, then, else, endif, switch, etc.
" Repeat for, do, while, etc.
" Label case, default, etc.
" Operator "sizeof", "+", "*", etc.
" Keyword any other keyword
" Exception try, catch, throw
exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
" *PreProc generic Preprocessor
" Include preprocessor #include
" Define preprocessor #define
" Macro same as Define
" PreCondit preprocessor #if, #else, #endif, etc.
exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
" *Type int, long, char, etc.
" StorageClass static, register, volatile, etc.
" Structure struct, union, enum, etc.
" Typedef A typedef
exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
" *Special any special symbol
" SpecialChar special character in a constant
" Tag you can use CTRL-] on this
" Delimiter character that needs attention
" SpecialComment special things inside a comment
" Debug debugging statements
exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
" *Underlined text that stands out, HTML links
exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
" *Ignore left blank, hidden |hl-Ignore|
exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
" *Error any erroneous construct
exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
" *Todo anything that needs extra attention; mostly the
" keywords TODO FIXME and XXX
"
"}}}
" Extended highlighting "{{{
" ---------------------------------------------------------------------
if (g:solarized_visibility=="high")
exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none
elseif (g:solarized_visibility=="low")
exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
else
exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02
exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none
endif
exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb
exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb
exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb
exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
if ( has("gui_running") || &t_Co > 8 )
exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00
else
exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02
endif
exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb
exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb
exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
if (g:solarized_diffmode=="high")
exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
elseif (g:solarized_diffmode=="low")
exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green
exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow
exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none
exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue
else " normal
if has("gui_running")
exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green
exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow
exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02
exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue
else
exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green
exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow
exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02
exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue
endif
endif
exe "hi! SignColumn" .s:fmt_none .s:fg_base0
exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb
exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb
exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb
exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb
exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu
exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
hi! link lCursor Cursor
exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
"}}}
" vim syntax highlighting "{{{
" ---------------------------------------------------------------------
"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
"hi! link vimComment Comment
"hi! link vimLineComment Comment
hi! link vimVar Identifier
hi! link vimFunc Function
hi! link vimUserFunc Function
hi! link helpSpecial Special
hi! link vimSet Normal
hi! link vimSetEqual Normal
exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none
exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none
exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none
exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none
exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none
exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none
exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none
exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none
exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none
exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none
exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none
exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none
exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none
exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none
"}}}
" diff highlighting "{{{
" ---------------------------------------------------------------------
hi! link diffAdded Statement
hi! link diffLine Identifier
"}}}
" git & gitcommit highlighting "{{{
"git
"exe "hi! gitDateHeader"
"exe "hi! gitIdentityHeader"
"exe "hi! gitIdentityKeyword"
"exe "hi! gitNotesHeader"
"exe "hi! gitReflogHeader"
"exe "hi! gitKeyword"
"exe "hi! gitIdentity"
"exe "hi! gitEmailDelimiter"
"exe "hi! gitEmail"
"exe "hi! gitDate"
"exe "hi! gitMode"
"exe "hi! gitHashAbbrev"
"exe "hi! gitHash"
"exe "hi! gitReflogMiddle"
"exe "hi! gitReference"
"exe "hi! gitStage"
"exe "hi! gitType"
"exe "hi! gitDiffAdded"
"exe "hi! gitDiffRemoved"
"gitcommit
"exe "hi! gitcommitSummary"
exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none
hi! link gitcommitUntracked gitcommitComment
hi! link gitcommitDiscarded gitcommitComment
hi! link gitcommitSelected gitcommitComment
exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none
exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none
exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none
hi! link gitcommitNoBranch gitcommitBranch
exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none
exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none
"exe "hi! gitcommitUnmergedType"
"exe "hi! gitcommitType"
"exe "hi! gitcommitNoChanges"
"exe "hi! gitcommitHeader"
exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none
exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none
exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none
exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none
exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none
exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none
hi! link gitcommitDiscardedArrow gitcommitDiscardedFile
hi! link gitcommitSelectedArrow gitcommitSelectedFile
hi! link gitcommitUnmergedArrow gitcommitUnmergedFile
"exe "hi! gitcommitArrow"
"exe "hi! gitcommitOverflow"
"exe "hi! gitcommitBlank"
" }}}
" html highlighting "{{{
" ---------------------------------------------------------------------
exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none
exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none
exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none
exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none
exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none
exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none
exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none
"}}}
" perl highlighting "{{{
" ---------------------------------------------------------------------
exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
"}}}
" tex highlighting "{{{
" ---------------------------------------------------------------------
exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
"}}}
" ruby highlighting "{{{
" ---------------------------------------------------------------------
exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
"rubyInclude
"rubySharpBang
"rubyAccess
"rubyPredefinedVariable
"rubyBoolean
"rubyClassVariable
"rubyBeginEnd
"rubyRepeatModifier
"hi! link rubyArrayDelimiter Special " [ , , ]
"rubyCurlyBlock { , , }
"hi! link rubyClass Keyword
"hi! link rubyModule Keyword
"hi! link rubyKeyword Keyword
"hi! link rubyOperator Operator
"hi! link rubyIdentifier Identifier
"hi! link rubyInstanceVariable Identifier
"hi! link rubyGlobalVariable Identifier
"hi! link rubyClassVariable Identifier
"hi! link rubyConstant Type
"}}}
" haskell syntax highlighting"{{{
" ---------------------------------------------------------------------
" For use with syntax/haskell.vim : Haskell Syntax File
" http://www.vim.org/scripts/script.php?script_id=3034
" See also Steffen Siering's github repository:
" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
" ---------------------------------------------------------------------
"
" Treat True and False specially, see the plugin referenced above
let hs_highlight_boolean=1
" highlight delims, see the plugin referenced above
let hs_highlight_delimiters=1
exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
hi! link hsImportParams Delimiter
hi! link hsDelimTypeExport Delimiter
hi! link hsModuleStartLabel hsStructure
hi! link hsModuleWhereLabel hsModuleStartLabel
" following is for the haskell-conceal plugin
" the first two items don't have an impact, but better safe
exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
"}}}
" pandoc markdown syntax highlighting "{{{
" ---------------------------------------------------------------------
"PandocHiLink pandocNormalBlock
exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
hi! link pandocCodeBlock pandocVerbatimBlock
hi! link pandocCodeBlockDelim pandocVerbatimBlock
exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
" Definitions
" ---------------------------------------------------------------------
let s:fg_pdef = s:fg_violet
exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
" Tables
" ---------------------------------------------------------------------
let s:fg_ptable = s:fg_blue
exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
hi! link pandocTableStructureTop pandocTableStructre
hi! link pandocTableStructureEnd pandocTableStructre
exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
" Headings
" ---------------------------------------------------------------------
let s:fg_phead = s:fg_orange
exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
" Links
" ---------------------------------------------------------------------
exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
" Main Styles
" ---------------------------------------------------------------------
exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
hi! link pandocEscapedCharacter pandocEscapePair
hi! link pandocLineBreak pandocEscapePair
" Embedded Code
" ---------------------------------------------------------------------
exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
hi! link pandocMetadataTitle pandocMetadata
"}}}
" Utility autocommand "{{{
" ---------------------------------------------------------------------
" In cases where Solarized is initialized inside a terminal vim session and
" then transferred to a gui session via the command `:gui`, the gui vim process
" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
" related code that sets gui specific values isn't executed.
"
" Currently, Solarized sets only the cterm or gui values for the colorscheme
" depending on gui or terminal mode. It's possible that, if the following
" autocommand method is deemed excessively poor form, that approach will be
" used again and the autocommand below will be dropped.
"
" However it seems relatively benign in this case to include the autocommand
" here. It fires only in cases where vim is transferring from terminal to gui
" mode (detected with the script scope s:vmode variable). It also allows for
" other potential terminal customizations that might make gui mode suboptimal.
"
autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
"}}}
" Highlight Trailing Space {{{
" Experimental: Different highlight when on cursorline
function! s:SolarizedHiTrail()
if g:solarized_hitrail==0
hi! clear solarizedTrailingSpace
else
syn match solarizedTrailingSpace "\s*$"
exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red
endif
endfunction
augroup SolarizedHiTrail
autocmd!
if g:solarized_hitrail==1
autocmd! Syntax * call s:SolarizedHiTrail()
autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif
endif
augroup END
" }}}
" Menus "{{{
" ---------------------------------------------------------------------
" Turn off Solarized menu by including the following assignment in your .vimrc:
"
" let g:solarized_menu=0
function! s:SolarizedOptions()
new "new buffer
setf vim "vim filetype
let failed = append(0, s:defaults_list)
let failed = append(0, s:colorscheme_list)
let failed = append(0, s:options_list)
let failed = append(0, s:lazycat_list)
0 "jump back to the top
endfunction
if !exists(":SolarizedOptions")
command SolarizedOptions :call s:SolarizedOptions()
endif
function! SolarizedMenu()
if exists("g:loaded_solarized_menu")
try
silent! aunmenu Solarized
endtry
endif
let g:loaded_solarized_menu = 1
if g:colors_name == "solarized" && g:solarized_menu != 0
amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized<CR>
amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized<CR>
amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized<CR>
an &Solarized.&Contrast.-sep- <Nop>
amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast'<CR>
amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized<CR>
amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized<CR>
amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized<CR>
an &Solarized.&Visibility.-sep- <Nop>
amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility'<CR>
amenu &Solarized.&Background.&Toggle\ Background :ToggleBG<CR>
amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized<CR>
amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized<CR>
an &Solarized.&Background.-sep- <Nop>
amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg<CR>
if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif
exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized<CR>"
if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif
exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized<CR>"
if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif
exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized<CR>"
amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized<CR>
amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized<CR>
amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized<CR>
if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif
exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized<CR>"
an &Solarized.&Experimental.-sep- <Nop>
amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail'<CR>
an &Solarized.-sep1- <Nop>
amenu &Solarized.&Autogenerate\ options :SolarizedOptions<CR>
an &Solarized.-sep2- <Nop>
amenu &Solarized.&Help.&Solarized\ Help :help solarized<CR>
amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg<CR>
amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu<CR>
an 9999.77 &Help.&Solarized\ Colorscheme :help solarized<CR>
an 9999.78 &Help.&Toggle\ Background :help togglebg<CR>
an 9999.79 &Help.-sep3- <Nop>
endif
endfunction
autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif
"}}}
" License "{{{
" ---------------------------------------------------------------------
"
" Copyright (c) 2011 Ethan Schoonover
"
" Permission is hereby granted, free of charge, to any person obtaining a copy
" of this software and associated documentation files (the "Software"), to deal
" in the Software without restriction, including without limitation the rights
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
" copies of the Software, and to permit persons to whom the Software is
" furnished to do so, subject to the following conditions:
"
" The above copyright notice and this permission notice shall be included in
" all copies or substantial portions of the Software.
"
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
" THE SOFTWARE.
"
" vim:foldmethod=marker:foldlevel=0
"}}}
" Vim syntax file
" Language: SQL with SQLite and other additions.
" Maintainer: Lorance Stinson <Lorance Stinson AT gmail DOT com>
" Last Change: Sun, Aug 21, 2011
" More complete SQL matching with error reporting.
" Only matches types inside 'CREATE TABLE ();'.
" Highlights functions. Unknown functions are an error.
" Based on the SQL syntax files that come with Vim.
" 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
syn case ignore
" All non-contained SQL syntax.
syn cluster sqlALL contains=TOP
" Various error conditions.
syn match sqlError "\<\w\+(" " Not a known function.
syn match sqlError ")" " Lonely closing paren.
syn match sqlError ",\(\_\s*[;)]\)\@=" " Comma before a paren or semicolon.
syn match sqlError " $" " Space at the end of a line.
" Comma before certain words.
syn match sqlError ",\_\s*\(\<\(asc\|desc\|exists\|for\|from\)\>\)\@="
syn match sqlError ",\_\s*\(\<\(group by\|into\|limit\|order\)\>\)\@="
syn match sqlError ",\_\s*\(\<\(table\|using\|where\)\>\)\@="
" Special words.
syn keyword sqlSpecial false null true
" Keywords
syn keyword sqlKeyword access add after aggregate as asc authorization
syn keyword sqlKeyword begin by cache cascade check cluster collate
syn keyword sqlKeyword collation column compress conflict connect connection
syn keyword sqlKeyword constraint current cursor database debug decimal
syn keyword sqlKeyword default desc each else elsif escape exception
syn keyword sqlKeyword exclusive explain external file for foreign from function
syn keyword sqlKeyword group having identified if immediate increment index
syn keyword sqlKeyword initial inner into is join key left level loop
syn keyword sqlKeyword maxextents mode modify nocompress nowait object of
syn keyword sqlKeyword off offline on online option order outer pctfree
syn keyword sqlKeyword primary privileges procedure public references
syn keyword sqlKeyword referencing release resource return role row
syn keyword sqlKeyword rowlabel rownum rows schema session share size
syn keyword sqlKeyword start successful synonym then to transaction trigger
syn keyword sqlKeyword uid user using validate values view virtual whenever
syn keyword sqlKeyword where with
syn match sqlKeyword "\<prompt\>"
syn match sqlKeyword "\<glob\>"
" Do special things with CREATE TABLE ( below.
syn match sqlKeyword "\<table\>"
" SQLite Pragmas - Treat them as keywords.
syn keyword sqlKeyword auto_vacuum automatic_index cache_size
syn keyword sqlKeyword case_sensitive_like checkpoint_fullfsync
syn keyword sqlKeyword collation_list compile_options count_changes
syn keyword sqlKeyword database_list default_cache_size
syn keyword sqlKeyword empty_result_callbacks encoding foreign_key_list
syn keyword sqlKeyword foreign_keys freelist_count full_column_names
syn keyword sqlKeyword fullfsync ignore_check_constraints
syn keyword sqlKeyword incremental_vacuum index_info index_list
syn keyword sqlKeyword integrity_check journal_mode journal_size_limit
syn keyword sqlKeyword legacy_file_format locking_mode max_page_count
syn keyword sqlKeyword page_count page_size parser_trace quick_check
syn keyword sqlKeyword read_uncommitted recursive_triggers
syn keyword sqlKeyword reverse_unordered_selects schema_version
syn keyword sqlKeyword secure_delete short_column_names synchronous
syn keyword sqlKeyword table_info temp_store temp_store_directory
syn keyword sqlKeyword user_version vdbe_listing vdbe_trace
syn keyword sqlKeyword wal_autocheckpoint wal_checkpoint writable_schema
" Operators
syn keyword sqlOperator all and any between case distinct elif else end
syn keyword sqlOperator exists if in intersect is like match matches minus
syn keyword sqlOperator not or out prior regexp some then union unique when
syn match sqlOperator "||\|:="
" Functions - Only valid with a '(' after them.
syn match sqlFunction "\<\(abs\|acos\|asin\|atan2\?\|avg\|cardinality\)(\@="
syn match sqlFunction "\<\(cast\|changes\|char_length\|character_length\)(\@="
syn match sqlFunction "\<\(coalesce\|cos\|count\|\(date\)\?\(time\)\?\)(\@="
syn match sqlFunction "\<\(exp\|filetoblob\|filetoclob\|glob\|group_concat\)(\@="
syn match sqlFunction "\<\(hex\|ifnull\|initcap\|isnull\|julianday\|last_insert_rowid\)(\@="
syn match sqlFunction "\<\(length\|log10\|logn\|lower\|lpad\|ltrin\|max\|min\)(\@="
syn match sqlFunction "\<\(mod\|nullif\|octet_length\|pow\|quote\|random\)(\@="
syn match sqlFunction "\<\(range\|replace\|root\|round\|rpad\|sin\|soundex\)(\@="
syn match sqlFunction "\<\(sqrtstdev\|strftime\|substr\|substring\|sum\|sysdate\|tan\)(\@="
syn match sqlFunction "\<\(to_char\|to_date\|total\|trim\|trunc\|typeof\)(\@="
syn match sqlFunction "\<\(upper\|variance\)(\@="
" SQLite Functions
syn match sqlFunction "\<\(last_insert_rowid\|load_extension\|randomblob\)(\@="
syn match sqlFunction "\<\(sqlite_compileoption_get\|sqlite_compileoption_used\)(\@="
syn match sqlFunction "\<\(sqlite_source_id\|sqlite_version\|sqlite_version\)(\@="
syn match sqlFunction "\<\(zeroblob\|ltrim\|rtrim\)(\@="
" SQLite Command Line Client Functions
syn match sqlFunction "^\.\w\+"
" Statements
syn keyword sqlStatement alter analyze audit begin comment commit delete
syn keyword sqlStatement drop execute explain grant insert lock noaudit
syn keyword sqlStatement rename revoke rollback savepoint select
syn keyword sqlStatement truncate update vacuum
syn match sqlStatement "\<\(replace\|create\)\>"
" SQLite Statements
syn keyword sqlStatement attach detach indexed pragma reindex
" Types - Only matched inside 'CREATE TABLE ();'.
syn keyword sqlType contained bigint bit blob bool boolean byte char
syn keyword sqlType contained clob date datetime dec decimal enum
syn keyword sqlType contained float int int8 integer interval long
syn keyword sqlType contained longblob longtext lvarchar mediumblob
syn keyword sqlType contained mediumint mediumtext mlslabel money
syn keyword sqlType contained multiset nchar number numeric nvarchar
syn keyword sqlType contained raw real rowid serial serial8 set
syn keyword sqlType contained smallfloat smallint text time
syn keyword sqlType contained timestamp tinyblob tinyint tinytext
syn keyword sqlType contained varchar varchar2 varray year
syn match sqlType contained "\<\(character\|double\|varying\)\>"
syn match sqlType contained "\<character\s\+varying\>"
syn match sqlType contained "\<double\s\+precision\>"
" Oracle Variables
syn match sqlVariable contained "&\a\w\+"
" Strings
syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sqlVariable
syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=sqlVariable
syn region sqlString start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=sqlVariable
" Numbers
syn match sqlNumber "-\=\<[0-9]*\>"
syn match sqlNumber "-\=\<[0-9]*\.[0-9]*\>"
syn match sqlNumber "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
syn match sqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
syn match sqlNumber "\<0x[abcdef0-9]*\>"
" Todo
syn keyword sqlTodo contained DEBUG FIXME NOTE TODO XXX
" Comments
syn region sqlComment start="/\*" end="\*/" contains=sqlTodo
syn match sqlComment "--.*$" contains=sqlTodo
" Mark correct paren use. Different colors for different purposes.
syn region sqlParens transparent matchgroup=sqlParen start="(" end=")"
syn match sqlParenEmpty "()"
syn region sqlParens transparent matchgroup=sqlParenFunc start="\(\<\w\+\>\)\@<=(" end=")"
" Highlight types correctly inside 'CREATE TABLE ();' statements.
" All other SQL is properly highlighted as well.
syn region sqlTypeParens contained matchgroup=sqlType start="(" end=")" contains=@sqlALL
syn match sqlTypeMatch contained "\(\(^\|[,(]\)\s*\S\+\s\+\)\@<=\w\+\(\s*([^)]\+)\)\?" contains=sqlType,sqlTypeParens
syn match sqlTypeMatch contained "\(\(^\|[,(]\)\s*\S\+\s\+\)\@<=character\s\+varying\s*([^)]\+)" contains=sqlType,sqlTypeParens
syn region sqlTypeRegion matchgroup=sqlParen start="\(create\s\+table\s\+[^(]\+\s\+\)\@<=(" end=")" contains=@sqlALL,sqlTypeMatch
" Special Oracle Statements
syn match sqlStatement "^\s*\(prompt\|spool\)\>" nextgroup=sqlAnyString
syn match sqlStatement "^\s*accept\s\+" nextgroup=sqlAnyVariable
syn match sqlStatement "declare\s\+" nextgroup=sqlDeclare
syn region sqlDeclare contained matchgroup=sqlVariable start="\a\w\+" end="$" contains=@sqlALL,sqlType
syn match sqlOperator "^@" nextgroup=sqlAnyString
syn match sqlAnyVariable contained "\a\w\+"
syn match sqlAnyString contained ".*" contains=sqlVariable
syn region sqlSetRegion matchgroup=sqlStatement start="^\s*set\>" matchgroup=NONE end="$" contains=sqlSetOptions,sqlSetValues
syn keyword sqlSetOptions contained autorecovery colsep copytypecheck describe escchar flagger
syn keyword sqlSetOptions contained instance logsource long null recsep recsepchar
syn keyword sqlSetOptions contained
syn match sqlSetOptions contained "\<\(app\w*\|array\w*\|auto\w*\|autop\w*\)\>"
syn match sqlSetOptions contained "\<\(autot\w*\|blo\w*\|cmds\w*\|con\w*\|copyc\w*\)\>"
syn match sqlSetOptions contained "\<\(def\w*\|echo\|editf\w*\|emb\w*\|errorl\w*\|esc\w*\)\>"
syn match sqlSetOptions contained "\<\(feed\w*\|flu\w*\|hea\w*\|heads\w*\|lin\w*\)\>"
syn match sqlSetOptions contained "\<\(lobof\w*\|longc\w*\|mark\w*\|newp\w*\|numf\w*\)\>"
syn match sqlSetOptions contained "\<\(pages\w*\|pau\w*\|serverout\w*\|shift\w*\|show\w*\)\>"
syn match sqlSetOptions contained "\<\(sqlbl\w*\|sqlc\w*\|sqlco\w*\|sqln\w*\|sqlpluscompat\w*\)\>"
syn match sqlSetOptions contained "\<\(sqlpre\w*\|sqlp\w*\|sqlt\w*\|suf\w*\|tab\)\>"
syn match sqlSetOptions contained "\<\(term\w*\|timi\w*\|und\w*\|ver\w*\|wra\w\?\)\>"
syn match sqlSetOptions contained "\<\(xquery\s\+\(baseuri\|ordering\|node\|context\)\)\>"
syn keyword sqlSetValues contained all body byreference byvalue default
syn keyword sqlSetValues contained entry fill head html identifier indent
syn keyword sqlSetValues contained linenum local none off on size table truncate
syn match sqlSetValues contained "\<\(ea\w*\|wr\w*\|imm\w*\|trace\w*\|expl\w*\|stat\w*\)\>"
syn match sqlSetValues contained "\<\(intermed\w*\|pre\w*\|unl\w*\|for\w*\|wra\w*\|wor\w\?\)\>"
syn match sqlSetValues contained "\<\(vis\w*\|inv\w*\)\>"
syn match sqlSetValues contained "\<\(\(un\)\?ordered\)\>"
" Stolen from sh.vim.
if !exists("sh_minlines")
let sh_minlines = 200
endif
if !exists("sh_maxlines")
let sh_maxlines = 2 * sh_minlines
endif
exec "syn sync minlines=" . sh_minlines . " maxlines=" . sh_maxlines
" 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_sql_syn_inits")
if version < 508
let did_sql_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink sqlComment Comment
HiLink sqlError Error
HiLink sqlFunction Function
HiLink sqlKeyword Special
HiLink sqlNumber Number
HiLink sqlOperator Operator
HiLink sqlParen Comment
HiLink sqlParenEmpty Operator
HiLink sqlParenFunc Function
HiLink sqlSpecial Keyword
HiLink sqlStatement Statement
HiLink sqlString String
HiLink sqlTodo Todo
HiLink sqlType Type
HiLink sqlVariable Identifier
HiLink sqlAnyString sqlString
HiLink sqlAnyVariable sqlVariable
HiLink sqlSetOptions Operator
HiLink sqlSetValues Special
delcommand HiLink
endif
let b:current_syntax = "sql"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment