Files
dotfiles/vim/vimrc
2015-10-02 04:00:34 +02:00

253 lines
4.8 KiB
VimL

" 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 'sjl/gundo.vim'
Plugin 'tpope/vim-commentary'
Plugin 'tpope/vim-fugitive'
Plugin 'tpope/vim-speeddating'
Plugin 'tpope/vim-surround'
Plugin 'junegunn/goyo.vim'
Plugin 'junegunn/limelight.vim'
"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
" == formatting ==
set tabstop=4
set smarttab
set softtabstop=4
set shiftround
set shiftwidth=4
set autoindent
set expandtab
set smartindent
set formatoptions=tcroqnj
" == ui ==
set cursorline
set showcmd
set number
set wildmode=list:longest
set lazyredraw
set wildmenu
set noshowmatch
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
set whichwrap=b,s
" == line breaking ==
set linebreak
set wrap
set wrapscan
" === keybinds ===
set pastetoggle=<F11>
let mapleader = "\<Space>"
map <leader>w: w!<cr>
nnoremap <leader>w :w<CR>
nmap <leader><leader> za
map , :
vnoremap <silent> y y`]
vnoremap <silent> p p`]
nnoremap <silent> p p`]
nnoremap <leader>, :nohlsearch<CR>
noremap gV `[v`]
map Y y$
map j gj
map k gk
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nmap <C-n> :bnext<CR>
nmap <C-p> :bprev<CR>
map N Nzz
map n nzz
inoremap jj <ESC>
nnoremap <leader>v <C-w>v<C-w>l
nnoremap <leader>u :GundoToggle<CR>
nmap <leader>w :Goyo<CR>:TogglePencil<CR>:Limelight!!<CR>
" no more ex mode
nnoremap Q <nop>
" === 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 <F10> :TagbarToggle<CR>
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']
" == pencil ==
let g:pencil#textwidth = 80
let g:pencil#autoformat = 1
let g:pencil#cursorwrap = 1
" == goyo ==
let g:goyo_width = 80
let g:goyo_height = "90%"
let g:goyo_linenr = 0
" === functions ===
function! DeleteTrailingWS()
exe "normal mz"
%s/\s\+$//e
exe "normal `z"
endfunction
autocmd BufWrite * :call DeleteTrailingWS()