diff options
Diffstat (limited to '')
-rw-r--r-- | .vim/colors/hybrid.vim | 441 | ||||
-rw-r--r-- | .vimrc | 303 | ||||
-rw-r--r-- | .vimrc.full | 304 |
3 files changed, 771 insertions, 277 deletions
diff --git a/.vim/colors/hybrid.vim b/.vim/colors/hybrid.vim new file mode 100644 index 00000000..166907ba --- /dev/null +++ b/.vim/colors/hybrid.vim @@ -0,0 +1,441 @@ +" File: hybrid.vim +" Maintainer: Andrew Wong (w0ng) +" URL: https://github.com/w0ng/vim-hybrid +" Modified: 27 Jan 2013 07:33 AM AEST +" License: MIT + +" Description:"{{{ +" ---------------------------------------------------------------------------- +" The RGB colour palette is taken from Tomorrow-Night.vim: +" https://github.com/chriskempson/vim-tomorrow-theme +" +" The syntax highlighting scheme is taken from jellybeans.vim: +" https://github.com/nanotech/jellybeans.vim +" +" The code taken from solarized.vim +" https://github.com/altercation/vim-colors-solarized + +"}}} +" Requirements And Recommendations:"{{{ +" ---------------------------------------------------------------------------- +" This colourscheme is intended for use on: +" - gVim 7.3 for Linux, Mac and Windows. +" - Vim 7.3 for Linux, using a 256 colour enabled terminal. +" +" By default, Vim will use the closest matching cterm equivalent of the RGB +" colours. +" +" However, Due to the limited 256 palette, colours in Vim and gVim will still +" be noticeably different. In order to get a uniform appearance and the way +" that this colourscheme was intended, it is HIGHLY recommended that you: +" +" 1. Add these colours to ~/.Xresources: +" +" https://gist.github.com/3278077 +" +" 2. Use Xresources colours by setting in ~/.vimrc: +" +" let g:hybrid_use_Xresources = 1 +" colorscheme hybrid +" +" For iTerm2 users: +" 1. Install this color preset on your iTerm2: +" +" https://gist.github.com/luan/6362811 +" +" 2. Use iTerm colours by setting in ~/.vimrc: +" +" let g:hybrid_use_iTerm_colors = 1 +" colorscheme hybrid +" + +"}}} +" Initialisation:"{{{ +" ---------------------------------------------------------------------------- +if !has("gui_running") && &t_Co < 256 + finish +endif + +if !exists("g:hybrid_use_Xresources") + let g:hybrid_use_Xresources = 0 +endif + +if !exists("g:hybrid_use_iTerm_colors") + let g:hybrid_use_iTerm_colors = 0 +endif + +set background=dark +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "hybrid" + +"}}} +" GUI And Cterm Palettes:"{{{ +" ---------------------------------------------------------------------------- +if has("gui_running") + let s:vmode = "gui" + let s:background = "#1d1f21" + let s:foreground = "#c5c8c6" + let s:selection = "#373b41" + let s:line = "#282a2e" + let s:comment = "#707880" + let s:red = "#cc6666" + let s:orange = "#de935f" + let s:yellow = "#f0c674" + let s:green = "#b5bd68" + let s:aqua = "#8abeb7" + let s:blue = "#81a2be" + let s:purple = "#b294bb" + let s:window = "#303030" + let s:darkcolumn = "#1c1c1c" + let s:addbg = "#5F875F" + let s:addfg = "#d7ffaf" + let s:changebg = "#5F5F87" + let s:changefg = "#d7d7ff" + let s:darkblue = "#00005f" + let s:darkcyan = "#005f5f" + let s:darkred = "#5f0000" + let s:darkpurple = "#5f005f" +else + let s:vmode = "cterm" + let s:background = "234" + let s:window = "236" + let s:darkcolumn = "234" + let s:addbg = "65" + let s:addfg = "193" + let s:changebg = "60" + let s:changefg = "189" + let s:darkblue = "17" + let s:darkcyan = "24" + let s:darkred = "52" + let s:darkpurple = "53" + if g:hybrid_use_Xresources == 1 + let s:foreground = "15" " White + let s:selection = "8" " DarkGrey + let s:line = "0" " Black + let s:comment = "7" " LightGrey + let s:red = "9" " LightRed + let s:orange = "3" " DarkYellow + let s:yellow = "11" " LightYellow + let s:green = "10" " LightGreen + let s:aqua = "14" " LightCyan + let s:blue = "12" " LightBlue + let s:purple = "13" " LightMagenta + elseif g:hybrid_use_iTerm_colors == 1 + let s:background = "NONE" + let s:foreground = "7" + let s:selection = "0" + let s:line = "0" + let s:comment = "15" + let s:red = "1" + let s:orange = "11" + let s:yellow = "3" + let s:green = "2" + let s:aqua = "6" + let s:blue = "4" + let s:purple = "5" + else + let s:foreground = "250" + let s:selection = "237" + let s:line = "235" + let s:comment = "243" + let s:red = "167" + let s:orange = "173" + let s:yellow = "221" + let s:green = "143" + let s:aqua = "109" + let s:blue = "110" + let s:purple = "139" + endif +endif + +"}}} +" Formatting Options:"{{{ +" ---------------------------------------------------------------------------- +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:b = ",bold" +let s:u = ",underline" +let s:i = ",italic" + +"}}} +" Highlighting Primitives:"{{{ +" ---------------------------------------------------------------------------- +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_foreground = ' ".s:vmode."bg=".s:foreground."'" +exe "let s:bg_background = ' ".s:vmode."bg=".s:background."'" +exe "let s:bg_selection = ' ".s:vmode."bg=".s:selection ."'" +exe "let s:bg_line = ' ".s:vmode."bg=".s:line ."'" +exe "let s:bg_comment = ' ".s:vmode."bg=".s:comment ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_aqua = ' ".s:vmode."bg=".s:aqua ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_purple = ' ".s:vmode."bg=".s:purple ."'" +exe "let s:bg_window = ' ".s:vmode."bg=".s:window ."'" +exe "let s:bg_darkcolumn = ' ".s:vmode."bg=".s:darkcolumn."'" +exe "let s:bg_addbg = ' ".s:vmode."bg=".s:addbg ."'" +exe "let s:bg_addfg = ' ".s:vmode."bg=".s:addfg ."'" +exe "let s:bg_changebg = ' ".s:vmode."bg=".s:changebg ."'" +exe "let s:bg_changefg = ' ".s:vmode."bg=".s:changefg ."'" +exe "let s:bg_darkblue = ' ".s:vmode."bg=".s:darkblue ."'" +exe "let s:bg_darkcyan = ' ".s:vmode."bg=".s:darkcyan ."'" +exe "let s:bg_darkred = ' ".s:vmode."bg=".s:darkred ."'" +exe "let s:bg_darkpurple = ' ".s:vmode."bg=".s:darkpurple."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_foreground = ' ".s:vmode."fg=".s:foreground."'" +exe "let s:fg_background = ' ".s:vmode."fg=".s:background."'" +exe "let s:fg_selection = ' ".s:vmode."fg=".s:selection ."'" +exe "let s:fg_line = ' ".s:vmode."fg=".s:line ."'" +exe "let s:fg_comment = ' ".s:vmode."fg=".s:comment ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_aqua = ' ".s:vmode."fg=".s:aqua ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_purple = ' ".s:vmode."fg=".s:purple ."'" +exe "let s:fg_window = ' ".s:vmode."fg=".s:window ."'" +exe "let s:fg_darkcolumn = ' ".s:vmode."fg=".s:darkcolumn."'" +exe "let s:fg_addbg = ' ".s:vmode."fg=".s:addbg ."'" +exe "let s:fg_addfg = ' ".s:vmode."fg=".s:addfg ."'" +exe "let s:fg_changebg = ' ".s:vmode."fg=".s:changebg ."'" +exe "let s:fg_changefg = ' ".s:vmode."fg=".s:changefg ."'" +exe "let s:fg_darkblue = ' ".s:vmode."fg=".s:darkblue ."'" +exe "let s:fg_darkcyan = ' ".s:vmode."fg=".s:darkcyan ."'" +exe "let s:fg_darkred = ' ".s:vmode."fg=".s:darkred ."'" +exe "let s:fg_darkpurple = ' ".s:vmode."fg=".s:darkpurple."'" + +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_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."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_foreground = ' guisp=".s:foreground."'" + exe "let s:sp_background = ' guisp=".s:background."'" + exe "let s:sp_selection = ' guisp=".s:selection ."'" + exe "let s:sp_line = ' guisp=".s:line ."'" + exe "let s:sp_comment = ' guisp=".s:comment ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_aqua = ' guisp=".s:aqua ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_purple = ' guisp=".s:purple ."'" + exe "let s:sp_window = ' guisp=".s:window ."'" + exe "let s:sp_addbg = ' guisp=".s:addbg ."'" + exe "let s:sp_addfg = ' guisp=".s:addfg ."'" + exe "let s:sp_changebg = ' guisp=".s:changebg ."'" + exe "let s:sp_changefg = ' guisp=".s:changefg ."'" + exe "let s:sp_darkblue = ' guisp=".s:darkblue ."'" + exe "let s:sp_darkcyan = ' guisp=".s:darkcyan ."'" + exe "let s:sp_darkred = ' guisp=".s:darkred ."'" + exe "let s:sp_darkpurple = ' guisp=".s:darkpurple."'" +else + let s:sp_none = "" + let s:sp_foreground = "" + let s:sp_background = "" + let s:sp_selection = "" + let s:sp_line = "" + let s:sp_comment = "" + let s:sp_red = "" + let s:sp_orange = "" + let s:sp_yellow = "" + let s:sp_green = "" + let s:sp_aqua = "" + let s:sp_blue = "" + let s:sp_purple = "" + let s:sp_window = "" + let s:sp_addbg = "" + let s:sp_addfg = "" + let s:sp_changebg = "" + let s:sp_changefg = "" + let s:sp_darkblue = "" + let s:sp_darkcyan = "" + let s:sp_darkred = "" + let s:sp_darkpurple = "" +endif + +"}}} +" Vim Highlighting: (see :help highlight-groups)"{{{ +" ---------------------------------------------------------------------------- +exe "hi! ColorColumn" .s:fg_none .s:bg_line .s:fmt_none +" Conceal" +" Cursor" +" CursorIM" +exe "hi! CursorColumn" .s:fg_none .s:bg_line .s:fmt_none +exe "hi! CursorLine" .s:fg_none .s:bg_line .s:fmt_none +exe "hi! Directory" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! DiffAdd" .s:fg_addfg .s:bg_addbg .s:fmt_none +exe "hi! DiffChange" .s:fg_changefg .s:bg_changebg .s:fmt_none +exe "hi! DiffDelete" .s:fg_background .s:bg_red .s:fmt_none +exe "hi! DiffText" .s:fg_background .s:bg_blue .s:fmt_none +exe "hi! ErrorMsg" .s:fg_background .s:bg_red .s:fmt_stnd +exe "hi! VertSplit" .s:fg_window .s:bg_none .s:fmt_none +exe "hi! Folded" .s:fg_comment .s:bg_darkcolumn .s:fmt_none +exe "hi! FoldColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none +exe "hi! SignColumn" .s:fg_none .s:bg_darkcolumn .s:fmt_none +" Incsearch" +exe "hi! LineNr" .s:fg_selection .s:bg_none .s:fmt_none +exe "hi! CursorLineNr" .s:fg_yellow .s:bg_none .s:fmt_bold +exe "hi! MatchParen" .s:fg_background .s:bg_changebg .s:fmt_none +exe "hi! ModeMsg" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! MoreMsg" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! NonText" .s:fg_selection .s:bg_none .s:fmt_none +exe "hi! Pmenu" .s:fg_foreground .s:bg_selection .s:fmt_none +exe "hi! PmenuSel" .s:fg_foreground .s:bg_selection .s:fmt_revr +" PmenuSbar" +" PmenuThumb" +exe "hi! Question" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! Search" .s:fg_background .s:bg_yellow .s:fmt_none +exe "hi! SpecialKey" .s:fg_selection .s:bg_none .s:fmt_none +exe "hi! SpellCap" .s:fg_blue .s:bg_darkblue .s:fmt_undr +exe "hi! SpellLocal" .s:fg_aqua .s:bg_darkcyan .s:fmt_undr +exe "hi! SpellBad" .s:fg_red .s:bg_darkred .s:fmt_undr +exe "hi! SpellRare" .s:fg_purple .s:bg_darkpurple .s:fmt_undr +exe "hi! StatusLine" .s:fg_comment .s:bg_background .s:fmt_revr +exe "hi! StatusLineNC" .s:fg_window .s:bg_comment .s:fmt_revr +exe "hi! TabLine" .s:fg_foreground .s:bg_darkcolumn .s:fmt_revr +" TabLineFill" +" TabLineSel" +exe "hi! Title" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! Visual" .s:fg_none .s:bg_selection .s:fmt_none +" VisualNos" +exe "hi! WarningMsg" .s:fg_red .s:bg_none .s:fmt_none +" WildMenu" + +" Use Xresources for background colour +if has('gui_running') || (g:hybrid_use_Xresources != 1 && g:hybrid_use_iTerm_colors != 1) + exe "hi! Normal" .s:fg_foreground .s:bg_background .s:fmt_none +else + exe "hi! Normal" .s:fg_foreground .s:bg_none .s:fmt_none +endif + +"}}} +" Generic Syntax Highlighting: (see :help group-name)"{{{ +" ---------------------------------------------------------------------------- +exe "hi! Comment" .s:fg_comment .s:bg_none .s:fmt_none + +exe "hi! Constant" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! String" .s:fg_green .s:bg_none .s:fmt_none +" Character" +" Number" +" Boolean" +" Float" + +exe "hi! Identifier" .s:fg_purple .s:bg_none .s:fmt_none +exe "hi! Function" .s:fg_yellow .s:bg_none .s:fmt_none + +exe "hi! Statement" .s:fg_blue .s:bg_none .s:fmt_none +" Conditional" +" Repeat" +" Label" +exe "hi! Operator" .s:fg_aqua .s:bg_none .s:fmt_none +" Keyword" +" Exception" + +exe "hi! PreProc" .s:fg_aqua .s:bg_none .s:fmt_none +" Include" +" Define" +" Macro" +" PreCondit" + +exe "hi! Type" .s:fg_orange .s:bg_none .s:fmt_none +" StorageClass" +exe "hi! Structure" .s:fg_aqua .s:bg_none .s:fmt_none +" Typedef" + +exe "hi! Special" .s:fg_green .s:bg_none .s:fmt_none +" SpecialChar" +" Tag" +" Delimiter" +" SpecialComment" +" Debug" +" +exe "hi! Underlined" .s:fg_blue .s:bg_none .s:fmt_none + +exe "hi! Ignore" .s:fg_none .s:bg_none .s:fmt_none + +exe "hi! Error" .s:fg_red .s:bg_darkred .s:fmt_undr + +exe "hi! Todo" .s:fg_addfg .s:bg_none .s:fmt_none + +" Quickfix window highlighting +exe "hi! qfLineNr" .s:fg_yellow .s:bg_none .s:fmt_none +" qfFileName" +" qfLineNr" +" qfError" + +"}}} +" Diff Syntax Highlighting:"{{{ +" ---------------------------------------------------------------------------- +" Diff +" diffOldFile +" diffNewFile +" diffFile +" diffOnly +" diffIdentical +" diffDiffer +" diffBDiffer +" diffIsA +" diffNoEOL +" diffCommon +hi! link diffRemoved Constant +" diffChanged +hi! link diffAdded Special +" diffLine +" diffSubname +" diffComment + +"}}} +" Legal:"{{{ +" ---------------------------------------------------------------------------- +" Copyright (c) 2011 Ethan Schoonover +" Copyright (c) 2009-2012 NanoTech +" Copyright (c) 2012 w0ng +" +" Permission is hereby granted, free of charge, to any per‐ +" son obtaining a copy of this software and associated doc‐ +" umentation files (the “Software”), to deal in the Soft‐ +" ware without restriction, including without limitation +" the rights to use, copy, modify, merge, publish, distrib‐ +" ute, 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 PARTICU‐ +" LAR 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 CON‐ +" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ +" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. + +" }}} diff --git a/.vimrc b/.vimrc index a6ce2641..7891eba9 100644 --- a/.vimrc +++ b/.vimrc @@ -1,304 +1,53 @@ -" Do not try to behave like vi. set nocompatible -" Allow backspace in insert mode to delete past the beginning of the line. +" Backspace past beginning of line in insert mode. set backspace=indent,eol,start -" Keep buffers loaded even when they aren't shown. Allows switching buffers -" without saving first. +" Allow switching buffers without saving. set hidden -" Keep 50 lines of : command history and search patterns. -set history=50 +" Show cursor position and incomplete commands, always show status line. +set ruler showcmd laststatus=2 -" Show the cursor position in the bottom right. -set ruler +" Search incrementally with smart case sensitivity, highlight all matches. +set incsearch ignorecase smartcase hlsearch -" Show partial command in the bottom right (i.e. if a command is started but -" needs a motion, it will be shown). -set showcmd +" Automatic indentation and adjust with tab and backspace. +set autoindent smartindent smarttab -" Jump to search results while typing. Pressing enter actually jumps to the -" result, pressing escape goes back to the cursor. -set incsearch +" Show line numbers, highlight current line and fixed columns. +set number cursorline colorcolumn=80,100,120 -" Perform case-insensitive searching when the search pattern contains only -" lowercase letters. -set ignorecase -set smartcase - -" Copy the indent from the previous line when starting a new line. -" Automatically indent between curly braces and indent keywords. -set autoindent -set smartindent - -" Show line numbers. -set number - -" Perform spell-checking on strings and comments. -set spell - -" Highlight the 80th, 100th and 120th columns. -set colorcolumn=80,100,120 - -" Set the window title with the current file name, status and directory. +" Set window title. set title -" Make file messages shorter: -" - a: Shorten all file description messages -" - t: Truncate file messages if they are too long -" - I: Do not show the intro message when Vim starts +" Shorten messages and disable intro screen set shortmess=atI -" Disable beeping and visual bell (flashing the terminal window). +" Disable audible bell. set visualbell t_vb= -" Highlight the current line. -set cursorline - -" Insert `shiftwidth` spaces at the beginning of a line when tab is pressed, -" delete `shiftwidth` spaces when backspace is pressed. -set smarttab - -" Highlight all search matches. -set hlsearch +" Show hard tabs and trailing whitespace +set list listchars=tab:»·,trail:· -" Show hard tabs and trailing whitespace. -set list -set listchars=tab:»·,trail:· +" Show hard tabs as 4 side, use 2 space indentation rounded to multiples. +set tabstop=4 expandtab shiftwidth=2 shiftround - -" Fold by syntax, start with all folds open. -set foldmethod=syntax -set foldlevelstart=99 - -" Always show the status line. -set laststatus=2 - -" Always show one line above or below the cursor. -set scrolloff=1 - -" Ctrl-A and Ctrl-X work on hex and single letters -set nrformats=alpha,hex - -" Enable syntax highlighting. +" Syntax highlighting, filetype indentation rules. syntax on - -" Enable mouse in terminals -if has('mouse') - set mouse=a -endif - -" Disable spell-checking in terminal Vim. -if !has('gui_running') - set nospell -endif - -" GUI options: -" * -m: Disable menu bar -" * -r: Disable right scroll bar -" * -L: Disable left scroll bar -" * -T: Disable toolbar -" * +c: Use console dialogs -set guioptions-=m -set guioptions-=r -set guioptions-=L -set guioptions-=T -set guioptions+=c - -" Use a font. -set guifont=ProFont:h11 - -" Jump to the last cursor position when opening a file. -au BufReadPost * if &filetype !~ '^git\c' && line("'\"") > 0 && line("'\"") <= line("$") - \| exe "normal! g`\"" | endif - -" Use two-space indents. -set expandtab -set shiftwidth=2 - -" Round to the nearest multiple of `shiftwidth` when indenting. -set shiftround - -" Show hard tabs as 4 characters wide. -set tabstop=4 - - -" Load filetype plugins and indentation rules. filetype plugin indent on -" Use 4-space indents in C, C++ and Lua. -autocmd FileType c,cpp,lua setlocal sw=4 - -" Hard-wrap text at 72 characters in Markdown. -autocmd FileType markdown setlocal tw=72 - -" C/C++ indentation options: -" * :0 Align `case` with `switch` -" * l1 Indent case bodies with braces to case -" * g0 Align `public:` and friends to class -set cinoptions=:0,l1,g0 - -" Show tab-complete suggestions when typing in the command-line. List all -" matches and complete to the longest common string. Ignore output files and -" backups. -set wildmenu -set wildmode=list:longest -set wildignore=*.o,*.d,*~ - -" Smarter % matching on HTML tags, if/endif etc. -runtime macros/matchit.vim +" Show tab-complete suggestions and complete longest substring. +set wildmenu wildmode=list:longest -" Do not show whitespace in insert mode. -autocmd InsertEnter * setlocal nolist -autocmd InsertLeave * setlocal list - -" Set leader to , and remap , to \. +" Swap , and \ for leader. noremap \ , -let mapleader = "," - -" Swap ' and ` (' is now character-wise and ` is line-wise). -nnoremap ' ` -nnoremap ` ' +let mapleader="," -" Swap 0 and ^ (0 now moves to the first non-whitespace character). -nnoremap 0 ^ -nnoremap ^ 0 - -" Clear search result highlighting. +" Clear search results. nmap <leader>n :nohlsearch<CR> -" Toggle visible whitespace. -nmap <leader>s :set list!<CR> - -" Toggle spell checking. -nmap <leader>z :set spell!<CR> - -" Cut/copy/paste to system clipboard. -nmap <leader>p "+p -nmap <leader>P "+P -nmap <leader>y "+y -nmap <leader>Y "+Y -nmap <leader>d "+d -nmap <leader>D "+D - -" Yank to end of line. -nmap Y y$ - -" Insert hard tab. -imap <S-tab> <C-v><tab> - -" Toggle relative/absolute line numbers. -nmap <C-n> :set relativenumber!<CR> - -" Common typos. -command! W :w -command! Q :q - -" Plugins - -call plug#begin('~/.vim/plugged') - -" Fancy statusline. -Plug 'bling/vim-airline' -" Don't show mode in last line. -set noshowmode -" Disable silly > separators. -let g:airline_left_sep = '' -let g:airline_right_sep = '' -" Only show diff stats if there are some. -let g:airline#extensions#hunks#non_zero_only = 1 -" Don't complain about whitespace constantly. -let g:airline#extensions#whitespace#enabled = 0 - -" Syntax checking. -Plug 'scrooloose/syntastic' -let g:syntastic_check_on_open=1 -let g:syntastic_enable_signs=0 - -" Git diff signs in margins. -Plug 'mhinz/vim-signify' -let g:signify_vcs_list = ['git'] -let g:signify_sign_overwrite = 1 -let g:signify_sign_change = '~' - -" Fuzzy matching files/buffers. -Plug 'kien/ctrlp.vim' -nmap <leader>b :CtrlPBuffer<CR> -nmap <leader>e :CtrlP<CR> -nmap <leader>t :CtrlPBufTag<CR> -nmap <leader>l :CtrlPLine<CR> - -" Git commands. -Plug 'tpope/vim-fugitive' -nmap <leader>gs :Gstatus<CR> -nmap <leader>gc :Gcommit<CR> -nmap <leader>gp :Git push<CR> - -" Alignment of = : , etc. -Plug 'junegunn/vim-easy-align' -vnoremap <silent> <Enter> :EasyAlign<Enter> - -" Auto-close braces, parens, quotes, etc. -Plug 'Raimondi/delimitMate' -let delimitMate_expand_cr = 1 -let delimitMate_expand_space = 1 -let delimitMate_jump_expansion = 1 - -" Indent guides by alternating background colour. (<leader>ig) -Plug 'nathanaelkane/vim-indent-guides' -let g:indent_guides_start_level = 2 - -" Distraction-free editing -Plug 'junegunn/goyo.vim' -Plug 'junegunn/limelight.vim' -nmap <leader>G :Goyo<CR> -autocmd User GoyoEnter Limelight -autocmd User GoyoLeave Limelight! - -" Colorschemes. -Plug 'programble/jellybeans.vim' -Plug 'programble/vim-hybrid' -Plug 'morhetz/gruvbox' -" Show nearest tag in statusline. -Plug 'majutsushi/tagbar' -" Scratch buffers. -Plug 'programble/itchy.vim' -" Better paste indentation. -Plug 'sickill/vim-pasta' -" Commenting. -Plug 'tpope/vim-commentary' -" Surround text objects. -Plug 'tpope/vim-surround' -" Increment, decrement dates and roman numerals with C-a, C-x. -Plug 'tpope/vim-speeddating' -" File-related commands. -Plug 'tpope/vim-eunuch' -" Highlight color values with their color in CSS. -Plug 'ap/vim-css-color' -" Swap two selections. -Plug 'tommcdo/vim-exchange' - -" Language support. -Plug 'digitaltoad/vim-jade' -Plug 'groenewege/vim-less' -Plug 'kchmck/vim-coffee-script' -Plug 'pangloss/vim-javascript' -Plug 'tpope/vim-markdown' -Plug 'tpope/vim-ragtag' - -Plug 'Z1MM32M4N/vim-superman' - -Plug 'kshenoy/vim-signature' - -call plug#end() +colorscheme hybrid -set background=dark -let g:gruvbox_termcolors = 16 -let g:gruvbox_italic = 0 -let g:gruvbox_invert_selection = 0 -let g:gruvbox_sign_column = 'dark0' -let g:gruvbox_vert_split = 'dark0' -set fillchars+=vert:│ -colorscheme gruvbox -let g:airline_theme = 'tomorrow' +" Set GUI font and disable GUI features. +set guifont=ProFont:h11 guioptions=c diff --git a/.vimrc.full b/.vimrc.full new file mode 100644 index 00000000..a6ce2641 --- /dev/null +++ b/.vimrc.full @@ -0,0 +1,304 @@ +" Do not try to behave like vi. +set nocompatible + +" Allow backspace in insert mode to delete past the beginning of the line. +set backspace=indent,eol,start + +" Keep buffers loaded even when they aren't shown. Allows switching buffers +" without saving first. +set hidden + +" Keep 50 lines of : command history and search patterns. +set history=50 + +" Show the cursor position in the bottom right. +set ruler + +" Show partial command in the bottom right (i.e. if a command is started but +" needs a motion, it will be shown). +set showcmd + +" Jump to search results while typing. Pressing enter actually jumps to the +" result, pressing escape goes back to the cursor. +set incsearch + +" Perform case-insensitive searching when the search pattern contains only +" lowercase letters. +set ignorecase +set smartcase + +" Copy the indent from the previous line when starting a new line. +" Automatically indent between curly braces and indent keywords. +set autoindent +set smartindent + +" Show line numbers. +set number + +" Perform spell-checking on strings and comments. +set spell + +" Highlight the 80th, 100th and 120th columns. +set colorcolumn=80,100,120 + +" Set the window title with the current file name, status and directory. +set title + +" Make file messages shorter: +" - a: Shorten all file description messages +" - t: Truncate file messages if they are too long +" - I: Do not show the intro message when Vim starts +set shortmess=atI + +" Disable beeping and visual bell (flashing the terminal window). +set visualbell t_vb= + +" Highlight the current line. +set cursorline + +" Insert `shiftwidth` spaces at the beginning of a line when tab is pressed, +" delete `shiftwidth` spaces when backspace is pressed. +set smarttab + +" Highlight all search matches. +set hlsearch + +" Show hard tabs and trailing whitespace. +set list +set listchars=tab:»·,trail:· + + +" Fold by syntax, start with all folds open. +set foldmethod=syntax +set foldlevelstart=99 + +" Always show the status line. +set laststatus=2 + +" Always show one line above or below the cursor. +set scrolloff=1 + +" Ctrl-A and Ctrl-X work on hex and single letters +set nrformats=alpha,hex + +" Enable syntax highlighting. +syntax on + +" Enable mouse in terminals +if has('mouse') + set mouse=a +endif + +" Disable spell-checking in terminal Vim. +if !has('gui_running') + set nospell +endif + +" GUI options: +" * -m: Disable menu bar +" * -r: Disable right scroll bar +" * -L: Disable left scroll bar +" * -T: Disable toolbar +" * +c: Use console dialogs +set guioptions-=m +set guioptions-=r +set guioptions-=L +set guioptions-=T +set guioptions+=c + +" Use a font. +set guifont=ProFont:h11 + +" Jump to the last cursor position when opening a file. +au BufReadPost * if &filetype !~ '^git\c' && line("'\"") > 0 && line("'\"") <= line("$") + \| exe "normal! g`\"" | endif + +" Use two-space indents. +set expandtab +set shiftwidth=2 + +" Round to the nearest multiple of `shiftwidth` when indenting. +set shiftround + +" Show hard tabs as 4 characters wide. +set tabstop=4 + + +" Load filetype plugins and indentation rules. +filetype plugin indent on + +" Use 4-space indents in C, C++ and Lua. +autocmd FileType c,cpp,lua setlocal sw=4 + +" Hard-wrap text at 72 characters in Markdown. +autocmd FileType markdown setlocal tw=72 + +" C/C++ indentation options: +" * :0 Align `case` with `switch` +" * l1 Indent case bodies with braces to case +" * g0 Align `public:` and friends to class +set cinoptions=:0,l1,g0 + +" Show tab-complete suggestions when typing in the command-line. List all +" matches and complete to the longest common string. Ignore output files and +" backups. +set wildmenu +set wildmode=list:longest +set wildignore=*.o,*.d,*~ + +" Smarter % matching on HTML tags, if/endif etc. +runtime macros/matchit.vim + +" Do not show whitespace in insert mode. +autocmd InsertEnter * setlocal nolist +autocmd InsertLeave * setlocal list + +" Set leader to , and remap , to \. +noremap \ , +let mapleader = "," + +" Swap ' and ` (' is now character-wise and ` is line-wise). +nnoremap ' ` +nnoremap ` ' + +" Swap 0 and ^ (0 now moves to the first non-whitespace character). +nnoremap 0 ^ +nnoremap ^ 0 + +" Clear search result highlighting. +nmap <leader>n :nohlsearch<CR> + +" Toggle visible whitespace. +nmap <leader>s :set list!<CR> + +" Toggle spell checking. +nmap <leader>z :set spell!<CR> + +" Cut/copy/paste to system clipboard. +nmap <leader>p "+p +nmap <leader>P "+P +nmap <leader>y "+y +nmap <leader>Y "+Y +nmap <leader>d "+d +nmap <leader>D "+D + +" Yank to end of line. +nmap Y y$ + +" Insert hard tab. +imap <S-tab> <C-v><tab> + +" Toggle relative/absolute line numbers. +nmap <C-n> :set relativenumber!<CR> + +" Common typos. +command! W :w +command! Q :q + +" Plugins + +call plug#begin('~/.vim/plugged') + +" Fancy statusline. +Plug 'bling/vim-airline' +" Don't show mode in last line. +set noshowmode +" Disable silly > separators. +let g:airline_left_sep = '' +let g:airline_right_sep = '' +" Only show diff stats if there are some. +let g:airline#extensions#hunks#non_zero_only = 1 +" Don't complain about whitespace constantly. +let g:airline#extensions#whitespace#enabled = 0 + +" Syntax checking. +Plug 'scrooloose/syntastic' +let g:syntastic_check_on_open=1 +let g:syntastic_enable_signs=0 + +" Git diff signs in margins. +Plug 'mhinz/vim-signify' +let g:signify_vcs_list = ['git'] +let g:signify_sign_overwrite = 1 +let g:signify_sign_change = '~' + +" Fuzzy matching files/buffers. +Plug 'kien/ctrlp.vim' +nmap <leader>b :CtrlPBuffer<CR> +nmap <leader>e :CtrlP<CR> +nmap <leader>t :CtrlPBufTag<CR> +nmap <leader>l :CtrlPLine<CR> + +" Git commands. +Plug 'tpope/vim-fugitive' +nmap <leader>gs :Gstatus<CR> +nmap <leader>gc :Gcommit<CR> +nmap <leader>gp :Git push<CR> + +" Alignment of = : , etc. +Plug 'junegunn/vim-easy-align' +vnoremap <silent> <Enter> :EasyAlign<Enter> + +" Auto-close braces, parens, quotes, etc. +Plug 'Raimondi/delimitMate' +let delimitMate_expand_cr = 1 +let delimitMate_expand_space = 1 +let delimitMate_jump_expansion = 1 + +" Indent guides by alternating background colour. (<leader>ig) +Plug 'nathanaelkane/vim-indent-guides' +let g:indent_guides_start_level = 2 + +" Distraction-free editing +Plug 'junegunn/goyo.vim' +Plug 'junegunn/limelight.vim' +nmap <leader>G :Goyo<CR> +autocmd User GoyoEnter Limelight +autocmd User GoyoLeave Limelight! + +" Colorschemes. +Plug 'programble/jellybeans.vim' +Plug 'programble/vim-hybrid' +Plug 'morhetz/gruvbox' +" Show nearest tag in statusline. +Plug 'majutsushi/tagbar' +" Scratch buffers. +Plug 'programble/itchy.vim' +" Better paste indentation. +Plug 'sickill/vim-pasta' +" Commenting. +Plug 'tpope/vim-commentary' +" Surround text objects. +Plug 'tpope/vim-surround' +" Increment, decrement dates and roman numerals with C-a, C-x. +Plug 'tpope/vim-speeddating' +" File-related commands. +Plug 'tpope/vim-eunuch' +" Highlight color values with their color in CSS. +Plug 'ap/vim-css-color' +" Swap two selections. +Plug 'tommcdo/vim-exchange' + +" Language support. +Plug 'digitaltoad/vim-jade' +Plug 'groenewege/vim-less' +Plug 'kchmck/vim-coffee-script' +Plug 'pangloss/vim-javascript' +Plug 'tpope/vim-markdown' +Plug 'tpope/vim-ragtag' + +Plug 'Z1MM32M4N/vim-superman' + +Plug 'kshenoy/vim-signature' + +call plug#end() + +set background=dark +let g:gruvbox_termcolors = 16 +let g:gruvbox_italic = 0 +let g:gruvbox_invert_selection = 0 +let g:gruvbox_sign_column = 'dark0' +let g:gruvbox_vert_split = 'dark0' +set fillchars+=vert:│ +colorscheme gruvbox +let g:airline_theme = 'tomorrow' |