|
|
|
set encoding=utf-8
|
|
|
|
set fileencoding=utf-8
|
|
|
|
|
|
|
|
set nocompatible
|
|
|
|
filetype off
|
|
|
|
|
|
|
|
|
|
|
|
" set the runtime path to include vundle and initialize
|
|
|
|
|
|
|
|
" *nix
|
|
|
|
set rtp+=~/.vim/bundle/Vundle.vim
|
|
|
|
|
|
|
|
call vundle#begin()
|
|
|
|
|
|
|
|
" let Vundle manage Vundle, required
|
|
|
|
Plugin 'gmarik/Vundle.vim'
|
|
|
|
|
|
|
|
" Solarized theme
|
|
|
|
Plugin 'altercation/vim-colors-solarized'
|
|
|
|
|
|
|
|
" Syntastic
|
|
|
|
Plugin 'scrooloose/syntastic'
|
|
|
|
|
|
|
|
" Git
|
|
|
|
Plugin 'tpope/vim-fugitive'
|
|
|
|
|
|
|
|
" Easy Commenting
|
|
|
|
Plugin 'tpope/vim-commentary'
|
|
|
|
|
|
|
|
" Surround - Easy changing of quotes and stuff
|
|
|
|
Plugin 'tpope/vim-surround'
|
|
|
|
|
|
|
|
" Ctrlp full path fuzzy file finder
|
|
|
|
Plugin 'kien/ctrlp.vim'
|
|
|
|
|
|
|
|
" Ack from vim
|
|
|
|
Plugin 'mileszs/ack.vim'
|
|
|
|
|
|
|
|
" Improved vim status bar
|
|
|
|
Plugin 'bling/vim-airline'
|
|
|
|
|
|
|
|
" Indent guides
|
|
|
|
Plugin 'Yggdroot/indentLine'
|
|
|
|
|
|
|
|
" Language specific syntax highlighting
|
|
|
|
Plugin 'derekwyatt/vim-scala'
|
|
|
|
Plugin 'kchmck/vim-coffee-script'
|
|
|
|
Plugin 'rust-lang/rust.vim'
|
|
|
|
|
|
|
|
if !has("win32") || !has("win16")
|
|
|
|
"Code Completion
|
|
|
|
Plugin 'Valloric/YouCompleteMe'
|
|
|
|
|
|
|
|
|
|
|
|
" Tree explorer
|
|
|
|
"Instead of forcing vim to start Nerdtree just do it manually
|
|
|
|
" autocmd vimenter * NERDTree " make NERDTree come up automatically
|
|
|
|
" on vim start
|
|
|
|
|
|
|
|
Plugin 'scrooloose/nerdtree'
|
|
|
|
|
|
|
|
|
|
|
|
" Make Vim play nice with tmux
|
|
|
|
" Use <c-h> <c-j> <c-k> <c-l>
|
|
|
|
" to move between window panes in tmux or vim
|
|
|
|
Plugin 'christoomey/vim-tmux-navigator'
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Markdown
|
|
|
|
Plugin 'godlygeek/tabular'
|
|
|
|
Plugin 'plasticboy/vim-markdown'
|
|
|
|
|
|
|
|
" Jade - Express templating
|
|
|
|
Plugin 'digitaltoad/vim-jade'
|
|
|
|
|
|
|
|
" Stylus highlighting
|
|
|
|
Plugin 'wavded/vim-stylus'
|
|
|
|
|
|
|
|
" Haskell
|
|
|
|
Plugin 'raichoo/haskell-vim'
|
|
|
|
|
|
|
|
" end plugin list
|
|
|
|
call vundle#end()
|
|
|
|
filetype plugin indent on
|
|
|
|
|
|
|
|
|
|
|
|
" Solarized Dark
|
|
|
|
syntax enable
|
|
|
|
set background=dark
|
|
|
|
colorscheme solarized
|
|
|
|
" let g:solarized_termcolors=256 " Better terminal colors
|
|
|
|
|
|
|
|
" Toggle solarized scheme
|
|
|
|
" call togglebg#map("<F5>")
|
|
|
|
|
|
|
|
|
|
|
|
" Standard variables
|
|
|
|
set expandtab " tabs to spaces
|
|
|
|
set tabstop=2 " spaces entered when tab key is pressed
|
|
|
|
set shiftwidth=2 " spaces entered for indentation
|
|
|
|
set number " Line numbering
|
|
|
|
set backspace=indent,eol,start " Make backspacing work right
|
|
|
|
set clipboard=unnamedplus " Share system clipboard
|
|
|
|
set eol " End of line at bottom of file
|
|
|
|
set shiftround
|
|
|
|
set hlsearch " Highlight matches in search
|
|
|
|
set incsearch " Search as characters are entered
|
|
|
|
set list
|
|
|
|
set list listchars=tab:»·,trail:·
|
|
|
|
|
|
|
|
" custom functons
|
|
|
|
function! NumberToggle()
|
|
|
|
if(&relativenumber == 1)
|
|
|
|
set norelativenumber
|
|
|
|
set number
|
|
|
|
else
|
|
|
|
set relativenumber
|
|
|
|
endif
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
" Autocmds
|
|
|
|
|
|
|
|
" Stripping trailing whitespace on save
|
|
|
|
autocmd BufWritePre * :%s/\s\+$//e
|
|
|
|
|
|
|
|
" Fix rust
|
|
|
|
autocmd FileType rust setlocal shiftwidth=2 tabstop=2
|
|
|
|
autocmd BufRead,BufNewFile *.rs set filetype=rust
|
|
|
|
|
|
|
|
" Disable the rust style guide recommended 4 space indentation
|
|
|
|
let g:rust_recommended_style=0
|
|
|
|
|
|
|
|
" Hotkeys
|
|
|
|
" Note noremap is a normal mode non-recursive mapping
|
|
|
|
" nnoremap and nmap make the bind only work in normal mode
|
|
|
|
|
|
|
|
let mapleader=" "
|
|
|
|
map <silent> <Leader>t :NERDTreeToggle<CR>
|
|
|
|
nnoremap <silent> <Leader>r :call NumberToggle()<CR>
|
|
|
|
|
|
|
|
" This one maps F5 to delete all trailing whitespace
|
|
|
|
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR>
|
|
|
|
|
|
|
|
" Pressing enter in command mode clears the current search highlighting until
|
|
|
|
" the next search.
|
|
|
|
nnoremap <silent> <CR> :noh<CR><CR>
|
|
|
|
|
|
|
|
" ctrlp hotkeys
|
|
|
|
let g:ctrlp_map='<c-p>'
|
|
|
|
let g:ctrlp_cmd='CtrlP'
|
|
|
|
|
|
|
|
" ctrlp configuration
|
|
|
|
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
|
|
|
|
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows
|
|
|
|
|
|
|
|
let g:ctrlp_working_path_mode='ra'
|
|
|
|
|
|
|
|
" Highlight any line with ErrorMsg that goes over 120 characters
|
|
|
|
if exists('+colorcolumn')
|
|
|
|
set colorcolumn=120
|
|
|
|
else
|
|
|
|
au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Indent lines customizations
|
|
|
|
|
|
|
|
" Color customizations
|
|
|
|
" let g:indentLine_color_term=###
|
|
|
|
|
|
|
|
" Line indent guides are defaulted to off
|
|
|
|
let g:indentLine_enabled=0
|
|
|
|
|
|
|
|
" Leader + i will toggle line indent guides
|
|
|
|
map <silent> <Leader>i :IndentLinesToggle<CR>
|