"""""""""""""""""""""""""""""""""""""""""""""""" " GENERAL CONFIGURATION """"""""""""""""""""""""""""""""""""""""""""""""" " Turn off vi compatibility mode set nocompatible set modeline set modelines=10 "set spell spelllang=en filetype off " Enable filetype plugin filetype indent plugin on " Sets how many lines of history VIM has to remember set history=500 " Set to auto read when a file is changed from the outside set autoread " When vimrc is edited, reload it autocmd! bufwritepost vimrc source ~/.vimrc " Annoying bracket highliting bullshit let loaded_matchparen = 1 """"""""""""""""""""""""""""""""""""""""""""""""" " USER INTERFACE CONFIGURATION """"""""""""""""""""""""""""""""""""""""""""""""" " Turn on WiLd menu set wildmenu set showcmd set hlsearch set incsearch """"""""""""""""""""""""""""""""""""""""""""""""" " COLORS AND FONTS """"""""""""""""""""""""""""""""""""""""""""""""" "Turn on syntax highlighting syntax on "colorscheme inkpot set encoding=utf8 try lang en_US catch endtry " visibile characters to show for :list! highlight NonText guifg=#4a4a59 highlight SpecialKey guifg=#4a4a59 " map l to toggle the list! option " this will show or hide EOL and tab characters nmap l :set list! nmap f :!./sync-files set listchars=tab:>\ ,eol:¬ """"""""""""""""""""""""""""""""""""""""""""""""" " Text, tab and indent related """"""""""""""""""""""""""""""""""""""""""""""""" " Expand tabs into spaces set expandtab set shiftwidth=2 tabstop=2 set smarttab set autoindent set smartindent set wrap """"""""""""""""""""""""""""""""""""""""""""""""" " set magic makes vim search behave like extended " regular expressions set magic set hidden " Show matching brackets when text indicator is over them set showmatch " How many tenths of a second to blink set mat=2 " TODO: deal with these: set nomodeline set ignorecase set smartcase set backspace=indent,eol,start set nostartofline set ruler set laststatus=2 set confirm set visualbell set t_vb= set cmdheight=2 set number set notimeout ttimeout ttimeoutlen=200 set pastetoggle= "set colorcolumn=80 hi ColorColumn ctermbg=blue guibg=blue let g:syntastic_check_on_open=1 let g:syntastic_sh_shellcheck_args="--external-sources --source-path=." " map ctrl+L to turn off highlighting (after a search) nnoremap :nohl """"""""""""""""""""""""""""""""""""""""""""""""" " Files, backups, and undo """"""""""""""""""""""""""""""""""""""""""""""""" " Setup backups in the scratch directory try set backup set backupdir=~/.vim-scratch// set writebackup catch endtry " Keep swapfiles in the scratch directory try set directory=~/.vim-scratch// set swapfile catch endtry " Keep persistant undo files in the scratch directory try set undodir=~/.vim-scratch// set undofile catch endtry """"""""""""""""""""""""""""""""""""""""""""""""" " Encryption """"""""""""""""""""""""""""""""""""""""""""""""" " Set Encryption Type ("crypt method") setlocal cm=blowfish " Based on some of the tips at http://stelfox.net/blog/2013/11/using-vim-as-your-password-manager/ " This disables additional files that vim may write copies to such as swap files " and backups, prevents dangerous shell commands, and prevents vim from storing a " history of commands. autocmd BufReadPost * if &key != "" | set noswapfile nowritebackup viminfo= nobackup noshelltemp history=0 secure | endif """"""""""""""""""""""""""""""""""""""""""""""""" " File Cleanup """"""""""""""""""""""""""""""""""""""""""""""""" " autocmd BufWritePre *.rb,*.js,*.sh :call StripTrailingWhitespaces() nnoremap :call StripTrailingWhitespaces() " Function from " http://vimcasts.org/episodes/tidying-whitespace/ function! StripTrailingWhitespaces() " preparation: save last search, and cursor position. let _s=@/ let l = line(".") let c = col(".") " Do the business: %s/\s\+$//e " Clean up: restore previous search history, and " cursor position let @/=_s call cursor(l, c) endfunction " Support Pago filetype for screenplay editing filetype on filetype plugin on au BufRead,BufNewFile *.pago set filetype=pago if filereadable(".vim.custom") so .vim.custom endif " Base16 Random (https://github.com/chriskempson/base16) " Scheme: HUSL " " GUI Base16 Color Definitions let s:gui00 = "090705" let s:gui01 = "181411" let s:gui02 = "2b2620" let s:gui03 = "463e36" let s:gui04 = "685c52" let s:gui05 = "918173" let s:gui06 = "c1ad9a" let s:gui07 = "eae1da" let s:gui08 = "80a35c" let s:gui09 = "b88ecf" let s:gui0A = "71a297" let s:gui0B = "ce7a97" let s:gui0C = "ae87c4" let s:gui0D = "d2658d" let s:gui0E = "b0906e" let s:gui0F = "829fb2" " Terminal Base16 Color Definitions let s:cterm00 = "00" let s:cterm03 = "08" let s:cterm05 = "07" let s:cterm07 = "15" let s:cterm08 = "01" let s:cterm0A = "03" let s:cterm0B = "02" let s:cterm0C = "06" let s:cterm0D = "04" let s:cterm0E = "05" if exists('base16colorspace') && base16colorspace == "256" let s:cterm01 = "18" let s:cterm02 = "19" let s:cterm04 = "20" let s:cterm06 = "21" let s:cterm09 = "16" let s:cterm0F = "17" else let s:cterm01 = "10" let s:cterm02 = "11" let s:cterm04 = "12" let s:cterm06 = "13" let s:cterm09 = "09" let s:cterm0F = "14" endif " Theme Setup hi clear syntax reset let g:colors_name = "base16-random" hi Comment ctermfg=lightblue " Highlighting function fun! hi(group, guifg, guibg, ctermfg, ctermbg, attr) if a:guifg != "" exec "hi " . a:group . " guifg=#" . a:guifg endif if a:guibg != "" exec "hi " . a:group . " guibg=#" . a:guibg endif if a:ctermfg != "" exec "hi " . a:group . " ctermfg=" . a:ctermfg endif if a:ctermbg != "" exec "hi " . a:group . " ctermbg=" . a:ctermbg endif if a:attr != "" exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr endif endfun