aboutsummaryrefslogtreecommitdiffstats
path: root/baseline/.vimrc
diff options
context:
space:
mode:
Diffstat (limited to 'baseline/.vimrc')
-rw-r--r--baseline/.vimrc309
1 files changed, 309 insertions, 0 deletions
diff --git a/baseline/.vimrc b/baseline/.vimrc
new file mode 100644
index 0000000..3cbbdb1
--- /dev/null
+++ b/baseline/.vimrc
@@ -0,0 +1,309 @@
+set encoding=UTF-8
+let mapleader = " "
+set nocompatible
+set completeopt-=preview
+filetype off
+set rtp+=~/.vim/bundle/Vundle.vim
+call vundle#begin()
+Plugin 'tpope/vim-surround'
+Plugin 'easymotion/vim-easymotion'
+Plugin 'sheerun/vim-polyglot'
+Plugin 'ctrlpvim/ctrlp.vim'
+Plugin 'chrisbra/Recover.vim'
+Plugin 'nanotech/jellybeans.vim'
+Plugin 'unblevable/quick-scope'
+Plugin 'tpope/vim-repeat'
+Plugin 'adelarsq/vim-matchit'
+Plugin 'majutsushi/tagbar'
+Plugin 'ludovicchabant/vim-gutentags'
+Plugin 'mbbill/undotree'
+Plugin 'tpope/vim-commentary'
+call vundle#end()
+filetype plugin indent on
+
+" jellybeans
+colo jellybeans
+set background=dark
+let g:gruvbox_italics = 1
+let g:jellybeans_overrides = {
+\ 'Todo': { 'guifg': '000000', 'guibg': '00cc00',
+\ 'ctermfg': 'Black', 'ctermbg': 'Blue',
+\ 'attr': 'bold' },
+\ 'Comment': { 'guifg': '339966' },
+\ 'background': { "guibg": "000000", "ctermbg":"none"},
+\ 'StorageClass': {"guifg": '9966ff' },
+\ 'Exception': {"guifg": "99cc00"},
+\ "Ignore": {"guifg": "336699"},
+\ "SpecialComment": {"guifg": "009900"},
+\ "Macro": {"guifg": "0099cc"}
+\}
+let g:jellybeans_use_term_italics = 1
+
+"set exrc
+set encoding=UTF-8
+set linebreak
+set breakindent
+set wrap
+set tagbsearch
+set secure
+set list
+set showmatch
+set number
+set relativenumber
+set noerrorbells
+set hidden
+set novisualbell
+set expandtab
+set smarttab
+set autoindent
+set shell=ksh
+set autoread
+set ignorecase
+set smartcase
+set hlsearch
+set incsearch
+set magic
+set lazyredraw
+set ttyfast
+set scrolloff=0
+set tagbsearch
+set wildmenu
+set diffopt=internal,algorithm:patience
+set tags=./tags,tags;$HOME
+syntax on
+set directory^=$HOME/.vim/tmp//
+nmap <Backspace> <Nop>
+nmap <Delete> <Nop>
+nmap <Left> <Nop>
+nmap <Down> <Nop>
+nmap <Up> <Nop>
+nmap <Right> <Nop>
+nmap <PageUp> <Nop>
+nmap <PageDown> <Nop>
+imap <PageUp> <Nop>
+imap <PageDown> <Nop>
+map <F3> :bp<CR>
+map <F4> :bn<CR>
+nnoremap <F7> :Vexplore<CR>
+map <F8> :TagbarToggle<CR>
+nnoremap <F12> :UndotreeToggle<cr>
+map <C-e> :q<cr>
+set timeoutlen=1000 ttimeoutlen=100
+set <F13>=^[[21;2~
+map <F13> <S-F10>
+map! <F13> <S-F10>
+nnoremap <F10> :vsp<cr>
+nnoremap <S-F10> :sp<cr>
+set pastetoggle=<F11>
+nnoremap <leader>cd :cd %:p:h<cr>
+nmap ]c :cn<CR>
+nmap [c :cp<CR>
+
+function! GetBufferList()
+ redir =>buflist
+ silent! ls!
+ redir END
+ return buflist
+endfunction
+
+function! ToggleList(bufname, pfx)
+ let buflist = GetBufferList()
+ for bufnum in map(filter(split(buflist, '\n'), 'v:val =~ "'.a:bufname.'"'), 'str2nr(matchstr(v:val, "\\d\\+"))')
+ if bufwinnr(bufnum) != -1
+ exec(a:pfx.'close')
+ return
+ endif
+ endfor
+ if a:pfx == 'l' && len(getloclist(0)) == 0
+ echohl ErrorMsg
+ echo "Location List is Empty."
+ return
+ endif
+ let winnr = winnr()
+ exec(a:pfx.'open')
+ if winnr() != winnr
+ wincmd p
+ endif
+endfunction
+nmap <silent> <leader>l :call ToggleList("Location List", 'l')<CR>
+nmap <silent> <leader>q :call ToggleList("Quickfix List", 'c')<CR>
+
+set laststatus=2
+function! InsertStatuslineColor(mode)
+ if a:mode == 'i'
+ hi statusline ctermfg=22 ctermbg=15 guibg=#005f00 guifg=#ffffff
+ elseif a:mode == 'r'
+ hi statusline ctermfg=52 ctermbg=15 guibg=#5f0000 guifg=#ffffff
+ else
+ hi statusline ctermfg=25 ctermbg=63 guibg=#005faf guifg=#5f5fff
+ endif
+endfunction
+
+au InsertEnter * call InsertStatuslineColor(v:insertmode)
+au InsertLeave * hi statusline ctermfg=24 ctermbg=15 guibg=#005f87 guifg=#ffffff
+hi statusline ctermfg=24 ctermbg=15 guibg=#005f87 guifg=#ffffff
+hi statuslineNC ctermfg=0 ctermbg=24 term=bold guifg=#000000 guibg=#005f87
+set statusline=[%f] "file name
+set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding
+set statusline+=%{&ff}] "file format
+set statusline+=%y "filetype
+set statusline+=%h "help file flag
+set statusline+=%m "modified flag
+set statusline+=\ %= " align left
+set statusline+=Line:%l/%L[%p%%] " line X of Y [percent of file]
+set statusline+=\ Col:%c " current column
+set statusline+=\ Buf:%n " Buffer number
+set statusline+=\ [%b][0x%B]\ " ASCII and byte code under cursor
+
+set fillchars+=vert:\ " whitespace signifacant
+hi VertSplit ctermbg=0 ctermfg=0 guibg=#000000 guifg=#000000
+
+" highlight groups
+hi def InterestingWord1 ctermfg=16 ctermbg=214 guifg=#000000 guibg=#ffaf00
+hi def InterestingWord2 ctermfg=16 ctermbg=154 guifg=#000000 guibg=#afff00
+hi def InterestingWord3 ctermfg=16 ctermbg=121 guifg=#000000 guibg=#87ffaf
+hi def InterestingWord4 ctermfg=16 ctermbg=137 guifg=#000000 guibg=#af875f
+hi def InterestingWord5 ctermfg=16 ctermbg=211 guifg=#000000 guibg=#ff87af
+hi def InterestingWord6 ctermfg=16 ctermbg=195 guifg=#000000 guibg=#d7ffff
+hi def InterestingWord7 ctermfg=16 ctermbg=99 guifg=#000000 guibg=#875fff
+hi def InterestingWord8 ctermfg=16 ctermbg=35 guifg=#000000 guibg=#00af5f
+hi def InterestingWord9 ctermfg=16 ctermbg=57 guifg=#000000 guibg=#5f00ff
+hi def InterestingWord0 ctermfg=16 ctermbg=39 guifg=#000000 guibg=#00afff
+
+" Steve Losh's highlight function
+function HighInterestingWord(n)
+ normal! mz
+ normal! "zyiw
+ let mid = 88888 + a:n
+ silent! call matchdelete(mid)
+ let pat = '\V\<' . escape(@z, '\') . '\>'
+ call matchadd("InterestingWord".a:n, pat, 1, mid)
+ normal! `z
+endfunction
+
+" multiple highlights
+nnoremap <silent> <leader>1 :call HighInterestingWord(1)<cr>
+nnoremap <silent> <leader>2 :call HighInterestingWord(2)<cr>
+nnoremap <silent> <leader>3 :call HighInterestingWord(3)<cr>
+nnoremap <silent> <leader>4 :call HighInterestingWord(4)<cr>
+nnoremap <silent> <leader>5 :call HighInterestingWord(5)<cr>
+nnoremap <silent> <leader>6 :call HighInterestingWord(6)<cr>
+nnoremap <silent> <leader>7 :call HighInterestingWord(7)<cr>
+nnoremap <silent> <leader>8 :call HighInterestingWord(8)<cr>
+nnoremap <silent> <leader>9 :call HighInterestingWord(9)<cr>
+nnoremap <silent> <leader>0 :call HighInterestingWord(0)<cr>
+
+au BufNewFile,BufEnter *.s set ft=nasm
+
+"copy and paste between different Vim sessions
+nmap _Y :!echo ""> ~/.vi_tmp<CR><CR>:w! ~/.vi_tmp<CR>
+vmap _Y :w! ~/.vi_tmp<CR>
+nmap _P :r ~/.vi_tmp<CR>
+
+inoremap <c-a> <esc>I
+inoremap <c-e> <esc>A
+
+iab pritn print
+iab retrun return
+iab fucntion function
+iab funciton function
+
+nnoremap <S-Delete> :bd<CR>
+map <F6> <nop>
+nnoremap <leader>c :call clearmatches()<CR>
+map <leader>w :w<CR>
+nnoremap <leader>t :bel term<CR>
+nnoremap <leader>r :!%:p<CR>
+
+let g:qs_highlight_on_keys = ["f", "F", "t", "T"]
+
+" undotree
+if has("persistent_undo")
+ set undodir=~/.undodir/
+ set undofile
+endif
+let g:undotree_WindowLayout = 4
+
+"highlight search
+highlight Search ctermfg=White ctermbg=DarkGreen cterm=Bold
+highlight IncSearch ctermfg=White ctermbg=DarkBlue cterm=Bold
+highlight WildMenu ctermfg=DarkBlue ctermbg=DarkGreen cterm=Bold
+
+"netrw
+let g:netrw_sort_by = 'date'
+let g:netrw_sort_direction = 'reverse'
+let g:netrw_banner = 0
+let g:netrw_liststyle = 3
+let g:netrw_browse_split = 1
+let g:netrw_winsize = 15
+let g:netrw_fastbrowse = 1
+let g:netrw_sort_by = 'name'
+let g:netrw_sort_direction = 'normal'
+
+"tagbar
+let g:tagbar_compact = 1
+let g:tagbar_show_linenumbers = 2
+let g:tagbar_width = 50
+highlight TagbarSignature ctermfg=DarkBlue
+
+"view the python docs for the word under cursor in a split window
+function! s:pythondoc()
+ let l:vword = expand("<cword>")
+ botright vnew
+ setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
+ execute ".!pydoc3 " . l:vword
+ setlocal nomodifiable
+ set syntax=man
+ 1
+endfunction
+command! -complete=shellcmd -nargs=0 PythonDoc call s:pythondoc()
+nnoremap <leader>h :<C-U>PythonDoc<cr>
+
+"camel and snake case motion
+let g:camelchar = "A-Z0-9.,;:{([`'\"_"
+nnoremap <silent><C-h> :<C-u>call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%^','bW')<CR>
+nnoremap <silent><C-l> :<C-u>call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%$','W')<CR>
+inoremap <silent><C-h> <C-o>:call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%^','bW')<CR>
+inoremap <silent><C-l> <C-o>:call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%$','W')<CR>
+vnoremap <silent><C-h> :<C-U>call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%^','bW')<CR>v`>o
+vnoremap <silent><C-l> <Esc>`>:<C-U>call search('\C\<\<Bar>\%(^\<Bar>[^'.g:camelchar.']\@<=\)['.g:camelchar.']\<Bar>['.g:camelchar.']\ze\%([^'.g:camelchar.']\&\>\@!\)\<Bar>\%$','W')<CR>v`<o
+
+inoremap " ""<left>
+inoremap ' ''<left>
+inoremap ( ()<left>
+inoremap [ []<left>
+inoremap { {}<left>
+inoremap {<CR> {<CR>}<ESC>O
+
+"window resizing
+if bufwinnr(1)
+ nnoremap <right> <c-w>>
+ nnoremap <left> <c-w><
+ nnoremap <up> <c-w>-
+ nnoremap <down> <c-w>+
+endif
+
+if has('cscope')
+ set cscopetag cscopeverbose
+
+ if has('quickfix')
+ set cscopequickfix=s-,c-,d-,i-,t-,e-
+ endif
+
+ cnoreabbrev <expr> csa ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs add' : 'csa')
+ cnoreabbrev <expr> csf ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs find' : 'csf')
+ cnoreabbrev <expr> csk ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs kill' : 'csk')
+ cnoreabbrev <expr> csr ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs reset' : 'csr')
+ cnoreabbrev <expr> css ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs show' : 'css')
+ cnoreabbrev <expr> csh ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs help' : 'csh')
+
+ command -nargs=0 Cscope cs add $VIMSRC/src/cscope.out $VIMSRC/src
+endif
+
+if has("gui")
+ set guifont=DejaVu_Sans_Mono_for_Powerline:h10
+ set guioptions-=m
+ set guioptions-=T
+ set guioptions-=L
+ set guioptions-=r
+endif