Skip to content

Instantly share code, notes, and snippets.

@bleader
Last active April 4, 2016 12:41
Show Gist options
  • Save bleader/4656245 to your computer and use it in GitHub Desktop.
Save bleader/4656245 to your computer and use it in GitHub Desktop.
" ---------------
" Start Plug
" ---------------
call plug#begin('~/.vim/plugged')
" git
Plug 'tpope/vim-fugitive'
" utils
Plug 'rking/ag.vim' " ag fro grepping in vim
Plug 'tpope/vim-commentary' " gcc gc etc for commenting
Plug 'tpope/vim-surround' " change surrounding chars
Plug 'tpope/vim-unimpaired' " [<space> and more
Plug 'tpope/vim-sensible' " default settings that makes sense
"Plug 'tpope/vim-rsi' " shell/emacs binding in insert mode
Plug 'tpope/vim-tbone' " tmux integration in vim
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
" wiki + tw
Plug 'vimwiki/vimwiki'
Plug 'tbabej/taskwiki'
" appearance
Plug 'powerline/powerline'
Plug 'noah/fu'
" Add plugins to &runtimepath
call plug#end()
" ---------------
" Behavior
" ---------------
syntax on
set nobackup
set undodir=~/etc/vim/undo
set history=1000
set undolevels=1000
set wildignore=*.swp,*.bak,*.pyc,*.class
set hidden " allow changing buffer from unsaved
set ai
set cinoptions=(0
set cindent
set nocompatible
set ruler
set hlsearch
set wildmode=list:longest "bash like completion
set mouse=vn
set clipboard=unnamed
filetype plugin on
if has("autocmd")
autocmd BufRead *.txt set tw=78 sw=2 ts=2 et
autocmd BufRead *.py set tw=80 sw=4 ts=4 et
autocmd BufRead *.sh set ts=4 sw=4 et noai nocin
autocmd Bufread *.wiki set tw=80 ts=4 sw=4 et ai
endif
" spellcheck in rst
autocmd FileType rst setlocal spell spelllang=en_us
autocmd Filetype rst set tw=80 sw=2 ts=2 et
" ---------------
" Appearance
" ---------------
set term=xterm-256color
set t_Co=256
set background=dark
set listchars=tab:▸\ ,eol:¬
colorscheme fu
set laststatus=2
set cursorline
set nocursorcolumn
set colorcolumn=80
highlight ColorColumn ctermbg=16
highlight CursorLine ctermbg=23 term=bold cterm=bold
" Syntax error hilighting, this should be after colorscheme
syntax match Error "\(^\t.*\n\)\@<= \+"
syntax match Error "\(^ \+.*\n\)\@<=\t\+"
autocmd FileType c* syntax match Error '\%>80v.\+'
" enable powerline
set rtp+=/home/bleader/.vim/plugged/powerline/powerline/bindings/vim
" enable fzf
set rtp+=~/.fzf
" ---------------
" Binds
" ---------------
" use , for map leader, feel easier than \
let mapleader=","
set pastetoggle=<F9>
" edit/reload vimrc quickly
nmap <silent> <leader>ev :e $MYVIMRC<CR>
nmap <silent> <leader>sv :so $MYVIMRC<CR>
" allow use of ; in place of :
nnoremap ; :
" clear search hilight
nmap <silent> <leader>/ :nohl<CR>
" Error list binds
nnoremap <leader>n :cn<CR>zz
nnoremap <leader>p :cp<CR>zz
" compute line through rcpy https://github.com/bleader/rcpy
map <F4> yypV:!rcpy<CR>
" enable/disable list
imap <F1> <C-o>:set nolist!<CR>
map <F1> <ESC>:set nolist!<CR>
" moving around centering
nnoremap n nzz
nnoremap N Nzz
nnoremap * *zz
nnoremap # #zz
nnoremap g* g*zz
nnoremap g# g#zz
nnoremap [[ [[zz
nnoremap ]] ]]zz
nnoremap {{ {{zz
nnoremap }} }}zz
" debug printf in C
map <leader>dd oprintf("%s:%d\n", __func__, __LINE__);<Esc>==
" paste selection to haste
vnoremap Y <esc>:'<,'>:w !haste<CR>
" ---------------
" GIT
" ---------------
nnoremap <leader>gd :Gvdiff<CR>
nnoremap <leader>gs :Gstatus<CR>
nnoremap <leader>gl :Glog --<CR>:copen<CR>
nnoremap <leader>gL :Git l<CR>
nnoremap <leader>gg :Ggrep <cword><CR>
nnoremap <leader>ag :Ag <cword><CR>
nnoremap <leader>gc :Gcommit -s -v<CR>
nnoremap <leader>gS :Git show<CR>
nnoremap <leader><leader>gS :Git show <cword><CR>
autocmd BufReadPost fugitive://* set bufhidden=delete
let g:git_branch_status_head_current=1
let g:git_branch_status_text="branch "
let g:git_branch_status_nogit="no git"
let g:git_branch_status_around="{}"
fu! GitReview()
Glog --reverse origin/master.. -- .
copen
endf
command Greview call GitReview()
nnoremap <leader>gr :Greview<CR>
" ---------------
" Cscope bindings and configuration (autoload of cscope.out)
" ---------------
nmap <leader>cs :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>cs :vert scs find s <C-R>=expand("<cword>")<CR><CR>
nmap <leader>cg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>cg :vert scs find g <C-R>=expand("<cword>")<CR><CR>
nmap <leader>cc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>cc :vert scs find c <C-R>=expand("<cword>")<CR><CR>
nmap <leader>ct :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>ct :vert scs find t <C-R>=expand("<cword>")<CR><CR>
nmap <leader>ce :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>ce :vert scs find e <C-R>=expand("<cword>")<CR><CR>
nmap <leader>cf :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <leader><leader>cf :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <leader>ci :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <leader><leader>ci :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <leader>cd :cs find d <C-R>=expand("<cword>")<CR><CR>
nmap <leader><leader>cd :vert scs find d <C-R>=expand("<cword>")<CR><CR>
if has("cscope") && filereadable("/usr/bin/cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
endif
fu! CscopeReload()
cscope kill 0
!cscope -R -b
cscope add cscope.out
endf
nmap <leader>cR :call CscopeReload()<CR>
" edit .configs
map <leader>uu ^i# <esc>$xxA is not set<esc>
map <leader>ss ^xxEld$a=y<esc>
" FZF
let g:fzf_command_prefix="Fzf"
nnoremap <leader>f :FzfFiles<cr>
nnoremap <leader>b :FzfBuffers<cr>
inoremap <expr> <c-x><c-k> fzf#vim#complete#word({'left': '15%'})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment