" lloeki's vimrc "bundle loading via vundle source ~/.vim/bundles.vim scriptencoding "utf-8" "security measure set modelines=0 let g:secure_modelines_leave_modeline=1 let g:secure_modelines_verbose=1 " prevent .netrwhist creation let g:netrw_dirhistmax = 0 "make sure backspace behaves set backspace=indent,eol,start "shorten esc timeout set timeout set timeoutlen=1000 set ttimeoutlen=50 "airline let g:airline_theme='raven' if !exists('g:airline_symbols') let g:airline_symbols = {} endif let g:airline_left_sep='' let g:airline_right_sep='' let g:airline_symbols.linenr = '' let g:airline_symbols.branch = '⎇' let g:airline_symbols.whitespace = '' "terminal behavior and appearance if !has('gui_running') set showtabline=1 "automatic tab bar set mouse=n "mouse support set background=light colorscheme one-light "use terminal background hi Normal ctermbg=none hi todo ctermbg=none hi statement ctermbg=none endif "ignore some files set wildignore+=*.o,*.obj,*.pyc set wildignore+=.git,.svn set wildignore+=env,venv* "display more info set showmode "display current mode at the bottom set showcmd "display command info at the bottom set ruler "display coordinates and relative position at the bottom set number "show line numbers in left margin set laststatus=2 " search tweaks set incsearch set ignorecase "ignore case when searching set smartcase "... but be nice when actually typing caps " tabbing settings set shiftwidth=4 "indent size set shiftround "round indent to next offset set tabstop=4 "size of tab character set expandtab "insert spaces instead of tab set softtabstop=4 "... and that much spaces are inserted set smarttab "tab insertion actually indents on line start set autoindent "new line copies indent from above "feedback "set cursorline "highlight current line set showmatch "highlight both matching parentheses set listchars=eol:¬,tab:→\ ,nbsp:•,trail:· set list "OS clipboard integration set clipboard^=unnamed "filetype/language specific settings autocmd FileType make set noexpandtab "makefiles need tabs autocmd FileType ruby set softtabstop=2 shiftwidth=2 autocmd FileType eruby set softtabstop=2 shiftwidth=2 autocmd FileType coffee set softtabstop=4 shiftwidth=4 au BufRead,BufNewFile Guardfile setfiletype ruby au BufRead,BufNewFile *.skim setfiletype slim au BufRead,BufNewFile *.opal setfiletype ruby let g:syntastic_ruby_checkers = ['mri', 'rubocop'] let g:go_fmt_command = "goimports" if expand('%:t') =~? 'rfc\d\+' || expand('%:t') =~? 'draft-.*-\d\{2,}' setfiletype rfc set textwidth=72 endif "notify line over length function HighlightOverLength(len) highlight OverLength ctermbg=blue ctermfg=white guibg=#59292 execute 'match OverLength /\%'.(a:len+1).'v.\+/' endfunction autocmd FileType vim call HighlightOverLength(79) autocmd FileType ruby call HighlightOverLength(79) autocmd FileType slim call HighlightOverLength(79) autocmd FileType python call HighlightOverLength(79) autocmd FileType mdown call HighlightOverLength(79) "swap/undo files set dir=~/.vim/tmp/swap//,/var/tmp//,/tmp//,. "set undodir=~/.vim/tmp/undo//,. "buffer management set swb=usetab "make :sb go to tabs too "key mappings let mapleader = ',' set hlsearch map c :nohlsearch map t :NERDTreeToggle map b :CtrlPBuffer map r :CtrlPTag map p :CtrlP "SuperTab options let g:SuperTabDefaultCompletionType = "context" " Complete options (disable preview scratch window) set completeopt=menu,menuone,longest " Limit popup menu height set pumheight=10 "OmniComplete let g:rubycomplete_buffer_loading = 1 let g:rubycomplete_classes_in_global = 1 set completeopt+=longest " restore last known cursor position function! ResCur() if line("'\"") <= line("$") normal! g`" return 1 endif endfunction " unfold at cursor position if has("folding") function! UnfoldCur() if !&foldenable return endif let cl = line(".") if cl <= 1 return endif let cf = foldlevel(cl) let uf = foldlevel(cl - 1) let min = (cf > uf ? uf : cf) if min execute "normal!" min . "zo" return 1 endif endfunction endif " restore last known cursor position on open augroup resCur autocmd! if has("folding") autocmd BufWinEnter * if ResCur() | call UnfoldCur() | endif else autocmd BufWinEnter * call ResCur() endif augroup END " restore session if Session.vim exists function! RestoreSession() if argc() == 0 && filereadable("Session.vim") "vim called without arguments execute 'source Session.vim' end endfunction autocmd VimEnter * call RestoreSession() "matchit source $VIMRUNTIME/macros/matchit.vim "crontab -e au! BufNewFile,BufRead crontab.* set nobackup | set nowritebackup " vim: ft=vim