diff options
Diffstat (limited to 'baseline/.vimrc')
-rw-r--r-- | baseline/.vimrc | 309 |
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 |