Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " vim: set ts=4 sw=4 expandtab tw=120 :
- set fileformats=unix
- " Use Pathogen, if available, to manage bundles
- if filereadable(expand("~/.vim/autoload/pathogen.vim"))
- call pathogen#infect()
- endif
- " Basic options --------------------------------------------------------------
- if has("gui_running")
- set background=light " Light background in gui
- set mouse=a
- else
- set background=dark " Dark background in terminal
- set mouse=vi
- endif
- set showcmd " Show (partial) command in status line.
- set showmatch " Show matching brackets.
- set ignorecase " Do case insensitive matching
- set smartcase " Do smart case matching
- set incsearch " Incremental search
- set autowrite " Automatically save before :next, :make, etc.
- set hidden " Hide buffers when they are abandoned
- set laststatus=2 " Last file open has status bar always
- set nocompatible " Screw compatibility
- set backspace=eol,indent,start " Better backspace in insert mode
- set guioptions+=menu
- " Wildmenu
- set wildmenu
- set wildignore+=*.o,*~
- set wildmode=longest:full
- " Modelines
- set modeline
- set modelines=3
- " Persistant undo
- if version >= 730
- set undofile
- set undodir=~/.undo
- set undolevels=1000
- set undoreload=10000
- endif
- " Solarized
- let g:solarized_termtrans = 1 " Even though it's not usually :-p
- let g:solarized_termcolors = 16 " Yes, 16 (indexed) not 256 (non-indexed)
- let g:solarized_visibility = "low" " For non-printing hi: SpecialKey, NonText
- let g:solarized_contrast = "normal"
- " Syntax
- syntax enable
- " Colorscheme (yes, in this order)
- colorscheme solarized
- " Filetype specific indentation
- if has("autocmd")
- filetype on
- filetype indent on
- filetype plugin on
- " MySQL is the default SQL dialect
- let g:sql_type_default = 'mysql'
- endif
- " Have Vim jump to the last position when reopening a file
- if has("autocmd")
- au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
- \| exe "normal! g'\"" | endif
- endif
- " Show non-printing characters
- set listchars=tab:\|»,trail:·,eol:
- set list
- " Highlighting ---------------------------------------------------------------
- " Normal
- exe "hi! StatusLine" .solarized_vars['fmt_bold'] .solarized_vars['bg_base2'] .solarized_vars['fg_base02']
- exe "hi! StatusLineNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base03'] .solarized_vars['fg_base3']
- " Need to save!
- exe "hi! StatusLineModified" .solarized_vars['fmt_bold'] .solarized_vars['bg_base2'] .solarized_vars['fg_red']
- exe "hi! StatusLineModifiedNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base2'] .solarized_vars['fg_red']
- " /etc/* as non-root
- exe "hi! StatusLineReadonly" .solarized_vars['fmt_bold'] .solarized_vars['bg_magenta'] .solarized_vars['fg_base02']
- exe "hi! StatusLineReadonlyNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base03'] .solarized_vars['fg_magenta']
- " NERDTree, Help
- exe "hi! StatusLineSpecial" .solarized_vars['fmt_bold'] .solarized_vars['bg_base01'] .solarized_vars['fg_base02']
- exe "hi! StatusLineSpecialNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base02'] .solarized_vars['fg_orange']
- " Help
- " exe "hi! StatusLineUnmodifiable" .solarized_vars['fmt_bold'] .solarized_vars['bg_base02'] .solarized_vars['fg_orange']
- " exe "hi! StatusLineUnmodifiableNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base02'] .solarized_vars['fg_yellow']
- " exe "hi! StatusLinePreview" .solarized_vars['fmt_bold'] .solarized_vars['bg_base01'] .solarized_vars['fg_base0']
- " exe "hi! StatusLinePreviewNC" .solarized_vars['fmt_none'] .solarized_vars['bg_base01'] .solarized_vars['fg_base0']
- " Statusline ---------------------------------------------------------------
- set statusline= " Clear
- "set statusline+=%#StatusLineImportant#
- set statusline+=%3.3n\ " buffer number
- set statusline+=%f\ " file name
- set statusline+=%h%m%r%w " flags
- set statusline+=[%{strlen(&ft)?&ft:'none'}, " filetype
- set statusline+=%{strlen(&fenc)?&fenc:&enc}, " encoding
- set statusline+=%{&fileformat}] " file format
- set statusline+=%{SyntasticStatuslineFlag()}
- set statusline+=%= " right align
- set statusline+=%{synIDattr(synID(line('.'),col('.'),1),'name')} " highlight
- set statusline+=%b,0x%-8B\ " current char
- set statusline+=%-14.(%l,%c%V%)\ %<\ " offset
- set statusline+=%P
- " Autocomplete ---------------------------------------------------------------
- " All on
- setlocal omnifunc=syntaxcomplete#Complete
- " Improvements
- " " Only insert longest match, show menu for only one match
- set completeopt+=longest,menuone
- " " Enter key selects highlighted menu item
- inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
- " " Keep menu item always highlighted
- inoremap <expr> <C-n> pumvisible() ? '<C-n>' :
- \ '<C-n><C-r>=pumvisible() ? "\<lt>Down>" : ""<CR>'
- " ctags
- set tags=./tags,tags,~/.tags,../tags,./TAGS
- "autocmd BufEnter ~/workspace/* :setlocal tags+=~/workspace/tags
- " Syntastic
- let g:syntastic_mode_map = { 'mode': 'passive',
- \ 'active_filetypes': ['ruby', 'puppet'],
- \ 'passive_filetypes': [] }
- " Tabularize
- if exists(":Tabularize")
- nmap <Leader>a= :Tabularize /=<CR>
- vmap <Leader>a= :Tabularize /=<CR>
- nmap <Leader>a: :Tabularize /:\zs<CR>
- vmap <Leader>a: :Tabularize /:\zs<CR>
- endif
- " Key mappings ---------------------------------------------------------------
- " Privileged write to file
- cmap w!! %!sudo tee > /dev/null %
- " Replace semicolon with colon in no mode
- nmap ; :
- " Easy indentation in visual mode
- " " This keeps the visual selection active after indenting.
- " " Usually the visual selection is lost after you indent it.
- vmap > >gv
- vmap < <gv
- " Commenting
- " " lhs comments
- map ,# :s/^/#/<CR>
- map ,/ :s/^/\/\//<CR>
- map ,? :s/^\/\///<CR>
- map ,> :s/^/> /<CR>
- map ," :s/^/\"/<CR>
- map ,% :s/^/%/<CR>
- map ,! :s/^/!/<CR>
- map ,; :s/^/;/<CR>
- map ,- :s/^/--/<CR>
- map ,c :s/^\/\/\\|^--\\|^> \\|^[#"%!;]//<CR>
- " " wrapping comments
- map ,* :s/^\(.*\)$/\/\* \1 \*\//<CR>
- map ,( :s/^\(.*\)$/\(\* \1 \*\)/<CR>
- map ,< :s/^\(.*\)$/<!-- \1 -->/<CR>
- map ,d :s/^\([/(]\*\\|<!--\) \(.*\) \(\*[/)]\\|-->\)$/\2/<CR>
- " Fix whitespace plugin
- nnoremap <Leader>fw :FixWhitespace<CR>
- " Long line length display
- nnoremap <silent> <Leader>l
- \ :if exists('w:long_line_match') <Bar>
- \ echo "Line length display OFF" <Bar>
- \ silent! call matchdelete(w:long_line_match) <Bar>
- \ unlet w:long_line_match <Bar>
- \ elseif &textwidth > 0 <Bar>
- \ echo "Line length display ON (" . &tw . ")" <Bar>
- \ let w:long_line_match = matchadd('ErrorMsg', '\%>' . &tw . 'v.\+', -1) <Bar>
- \ else <Bar>
- \ echo "Line length display ON (80)" <Bar>
- \ let w:long_line_match = matchadd('ErrorMsg', '\%>80v.\+', -1) <Bar>
- \ endif<CR>
- " Append modeline after last line in buffer.
- " Use substitute() instead of printf() to handle '%%s' modeline in LaTeX
- " files.
- function! AppendModeline()
- let l:modeline = printf(" vim: set ts=%d sw=%d tw=%d :",
- \ &tabstop, &shiftwidth, &textwidth)
- let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
- call append(line("1"), l:modeline)
- endfunction
- nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
- " NERDTree mappings
- nnoremap <Leader>pp :NERDTreeToggle puppet<CR>
- nnoremap <Leader>pf :NERDTreeFind<CR>
- nnoremap <Leader>pt :NERDTreeToggle<CR>
- let NERDTreeMapHelp='<F1>'
- " Project settings
- let g:proj_window_width=45
- " Open in tab
- nnoremap <silent> <Leader>te :tabedit %<CR>
- nnoremap <silent> <Leader>tc :tabclose<CR>
- " Resize window
- nnoremap <silent> <Leader>+ :exe "resize " . (winwidth(0) * 3/2)<CR>
- nnoremap <silent> <Leader>- :exe "resize " . (winwidth(0) * 2/3)<CR>
- nnoremap <silent> <Leader>> :exe "vertical resize " . (winheight(0) * 3/2)<CR>
- nnoremap <silent> <Leader>< :exe "vertical resize " . (winheight(0) * 2/3)<CR>
- " Edit .vimrc
- nnoremap <Leader>ve :vsplit ~/.vimrc<CR>
- nnoremap <Leader>vs :source ~/.vimrc<CR>
- " Nice regexes
- " To use: :s<C-R>=rpp<CR> (for example)
- let rpp = '/\(,\|(\) */\1
- \t/g'
- " Allow diff against saved file
- function! s:DiffWithSaved()
- let filetype=&ft
- diffthis
- vnew | r # | normal! 1Gdd
- diffthis
- exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
- endfunction
- com! DiffSaved call s:DiffWithSaved()
- nnoremap <Leader>ds :DiffSaved<CR>
- set ts=2 sw=2 expandtab tw=120
Add Comment
Please, Sign In to add comment