" vim: set filetype=vim set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim/ call vundle#begin() " === plugin setup === Plugin 'VundleVim/Vundle.vim' Plugin 'bling/vim-airline' Plugin 'godlygeek/tabular' Plugin 'lepture/vim-jinja' Plugin 'majutsushi/tagbar' Plugin 'nblock/vim-dokuwiki' Plugin 'reedes/vim-pencil' Plugin 'saltstack/salt-vim' Plugin 'sickill/vim-monokai' Plugin 'tpope/vim-commentary' Plugin 'tpope/vim-fugitive' Plugin 'tpope/vim-speeddating' Plugin 'tpope/vim-surround' "Plugin 'Lokaltog/vim-easymotion' "Plugin 'PeterRincker/vim-argumentative' "Plugin 'Valloric/YouCompleteMe' "Plugin 'flazz/vim-colorschemes' "Plugin 'jmcantrell/vim-virtualenv' "Plugin 'kien/ctrlp.vim' "Plugin 'klen/python-mode' "Plugin 'mbbill/undotree' "Plugin 'scrooloose/nerdtree' "Plugin 'sjl/gundo.vim' "Plugin 'terryma/vim-expand-region' "Plugin 'terryma/vim-multiple-cursors' "Plugin 'wellle/targets.vim' "Plugin 'wincent/Command-T' call vundle#end() filetype plugin indent on " === General options === set t_Co=256 " == tabs / spaces / indent == set tabstop=4 set smarttab set softtabstop=4 set shiftround set shiftwidth=4 set autoindent set expandtab set smartindent " == ui == set cursorline set showcmd set number set wildmode=list:longest set lazyredraw set wildmenu set showmatch set colorcolumn=80 set laststatus=2 set matchtime=5 set mouse=a set mousehide set noerrorbells set showmode set numberwidth=2 set relativenumber set shortmess=rti set ruler set scrolloff=7 set title set titlestring="" set ttyfast " == searching == set hlsearch set incsearch set gdefault set ignorecase set magic set smartcase " == folding == set foldenable set foldmethod=indent set foldnestmax=2 set foldlevelstart=2 " == backups == set nobackup set backupcopy=no set nowritebackup " == swap == set swapfile set updatecount=200 set updatetime=10000 " == undo == set undolevels=1000 set undoreload=10000 set undodir=~/.vim/undo set undofile " == environment / directories == set autochdir set directory=/var/tmp,/tmp set viewdir=~/.vim/view " == misc == set autoread set confirm set encoding=utf-8 set history=1000 set modeline set modelines=5 set notildeop set wildignore=*.swp,*.bak,*.pyc,*~,*.o set hidden " == editing == set backspace=indent,eol,start set esckeys set matchpairs="(:),{:},[:],<:>" set notimeout set ttimeout set timeoutlen=1000 set ttimeoutlen=0 set virtualedit=block " == line breaking == set linebreak set wrap set wrapscan " === keybinds === set pastetoggle= let mapleader = "\" map w: w! nnoremap w :w nmap za map , : vnoremap y y`] vnoremap p p`] nnoremap p p`] nnoremap , :nohlsearch noremap gV `[v`] map Y y$ map j gj map k gk nnoremap h nnoremap j nnoremap k nnoremap l nmap :bnext nmap :bprev inoremap jj nnoremap v vl nmap ; :CtrlPBuffer " no more ex mode nnoremap Q " === autocommands === " autosave views when closing and restoring when opening again. autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview " === plugin setup === " == colorscheme == set background=dark let g:solarized_termcolors=16 let g:solarized_termtrans=1 let g:solarized_contrast="normal" let g:solarized_visibility="normal" syntax enable colorscheme monokai " == tagbar == nnoremap :TagbarToggle let g:tagbar_map_jump = "i" let g:tagbar_left = 0 let g:tagbar_vertical = 0 let g:tagbar_width = 50 let g:tagbar_autoclose = 1 let g:tagbar_autofocus = 1 let g:tagbar_sort = 0 " 1: sort by name, 0: sort by position let g:tagbar_compact = 1 let g:tagbar_indent = 2 let g:tagbar_show_linenumbers = 0 let g:tagbar_foldlevel = 99 " unfold all " == airline == let g:airline_right_sep = '' let g:airline_left_sep = '' let g:airline#extensions#disable_rtp_load = 1 let g:airline_extensions = ['whitespace'] let g:airline_theme='powerlineish' let g:airline_section_x = airline#section#create(['%{tagbar#currenttag("%s", "", "f")}','' , ' %{PencilMode()}', ' [', 'filetype', ']']) let g:pencil#mode_indicators = {'hard': 'H', 'auto': 'A', 'soft': 'S', 'off': '',} let g:airline#extensions#whitespace#enabled = 1 let g:airline#extensions#whitespace#symbol = '' let g:airline#extensions#whitespace#checks = ['trailing'] " === functions === function! DeleteTrailingWS() exe "normal mz" %s/\s\+$//e exe "normal `z" endfunction autocmd BufWrite * :call DeleteTrailingWS()