diff options
-rw-r--r-- | vim/.vimrc | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/vim/.vimrc b/vim/.vimrc new file mode 100644 index 0000000..4a3981d --- /dev/null +++ b/vim/.vimrc @@ -0,0 +1,239 @@ +" ==== <Vundle> ==== +set nocompatible " be iMproved, required +filetype off " required + +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +" let Vundle manage Vundle, required +Plugin 'gmarik/Vundle.vim' +Plugin 'kien/rainbow_parentheses.vim' +Plugin 'hsanson/vim-android' +Plugin 'scrooloose/nerdcommenter' +Plugin 'SirVer/ultisnips' +Plugin 'honza/vim-snippets' +Plugin 'kien/ctrlp.vim' +Plugin 'tacahiroy/ctrlp-funky' +Plugin 'Raimondi/delimitMate' +Plugin 'Yggdroot/indentLine' +"Plugin 'tpope/vim-fugitive' +Plugin 'airblade/vim-gitgutter' +"Plugin 'altercation/vim-colors-solarized' +Plugin 'terryma/vim-multiple-cursors' +call vundle#end() " required +" ==== </Vundle> ==== + +" Use the Solarized Dark theme +set background=dark +"colorscheme solarized + +" Make Vim more useful +set nocompatible +" Use the OS clipboard by default (on versions compiled with `+clipboard`) +set clipboard=unnamed +" Enhance command-line completion +set wildmenu +" Allow cursor keys in insert mode +set esckeys +" Allow backspace in insert mode +set backspace=indent,eol,start +" Optimize for fast terminal connections +set ttyfast +" Add the g flag to search/replace by default +set gdefault +" Use UTF-8 without BOM +set encoding=utf-8 nobomb +" Change mapleader +let mapleader="," +" Don’t add empty newlines at the end of files +set binary +set noeol +" Centralize backups, swapfiles and undo history +set backupdir=~/.vim/backups +set directory=~/.vim/swaps +if exists("&undodir") + set undodir=~/.vim/undo +endif +set undofile + +" Don’t create backups when editing files in certain directories +set backupskip=/tmp/*,/private/tmp/* + +" Respect modeline in files +set modeline +set modelines=4 +" Enable per-directory .vimrc files and disable unsafe commands in them +set exrc +set secure +" Enable line numbers +set number +" Enable syntax highlighting +syntax on +" Highlight current line +"set cursorline +" Make tabs as wide as two spaces +set tabstop=4 +" Show “invisible” characters +set lcs=tab:▸\ ,eol:\ \,nbsp:_ +" set lcs=tab:▸\ ,trail:·,eol:¬,nbsp:_ +set list +" Highlight searches +set hlsearch +" Ignore case of searches +set ignorecase +" Highlight dynamically as pattern is typed +set incsearch +" Always show status line +set laststatus=2 +" Enable mouse in all modes +set mouse=a +" Disable error bells +set noerrorbells +" Don’t reset cursor to start of line when moving around. +set nostartofline +" Show the cursor position +set ruler +" Don’t show the intro message when starting Vim +set shortmess=atI +" Show the current mode +set showmode +" Show the filename in the window titlebar +set title +" Show the (partial) command as it’s being typed +set showcmd +" Use relative line numbers +if exists("&relativenumber") + set relativenumber + au BufReadPost * set relativenumber +endif +" Start scrolling three lines before the horizontal window border +set scrolloff=3 + +" Strip trailing whitespace (,ss) +function! StripWhitespace() + let save_cursor = getpos(".") + let old_query = getreg('/') + :%s/\s\+$//e + call setpos('.', save_cursor) + call setreg('/', old_query) +endfunction +noremap <leader>ss :call StripWhitespace()<CR> +" Save a file as root (,W) +noremap <leader>W :w !sudo tee % > /dev/null<CR> + +" Automatic commands +if has("autocmd") + " Enable file type detection + filetype plugin indent on + " Treat .json files as .js + autocmd BufNewFile,BufRead *.json setfiletype json syntax=javascript +endif + +" Enable pathogen +"execute pathogen#infect() + +" swap ; and : + nnoremap ; : + nnoremap : ; + vnoremap ; : + vnoremap : ; + +" relative line number stuff +function! NumberToggle() + if(&relativenumber == 1) + set number + else + set relativenumber + endif +endfunc +nnoremap <leader>n :call NumberToggle()<cr> +":au FocusLost * :set number +":au FocusGained * :set relativenumber +autocmd InsertEnter * :set number +autocmd InsertEnter * :set norelativenumber +autocmd InsertLeave * :set relativenumber +"autocmd InsertLeave * :set nonumber + +" Rainbow Parantheses +au Syntax * RainbowParenthesesLoadRound +au Syntax * RainbowParenthesesLoadSquare +au Syntax * RainbowParenthesesLoadBraces +noremap <leader>m :RainbowParenthesesToggle<CR> + + +" ==== <UltiSnips> ==== +" Trigger configuration. Do not use <tab> if you use +" https://github.com/Valloric/YouCompleteMe. +let g:UltiSnipsExpandTrigger="<tab>" +"let g:UltiSnipsJumpForwardTrigger="<c-b>" +let g:UltiSnipsJumpForwardTrigger="<tab>" +"let g:UltiSnipsJumpBackwardTrigger="<c-z>" +let g:UltiSnipsJumpBackwardTrigger="<s-tab>" +" ==== </UltiSnips> ==== + +" Spaces FTW +set shiftwidth=4 +set expandtab + +"let g:ctrlp_map = '<space>' +let g:ctrlp_map = '<leader>p' +set wildignore+=*/build/** +let g:android_sdk_path= '/Applications/Android\ Studio.app/sdk/' +let g:android_adb_tool= '/Applications/Android\ Studio.app/sdk/platform-tools/adb' +let gradle_path= '~/.gradle/' +let g:android_build_type= 'gradle' + +let delimitMate_expand_space=1 +let delimitMate_expand_cr=2 + +let g:indentLine_enabled=1 +"let g:indentLine_color_term = 239 +"let g:indentLine_color_gui = '#09AA08' +"let g:indentLine_char = '│' +let g:indentLine_char = '¦' + + " ctrlp { + if isdirectory(expand("~/.vim/bundle/ctrlp.vim/")) + let g:ctrlp_working_path_mode = 'ra' + nnoremap <silent> <D-t> :CtrlP<CR> + nnoremap <silent> <D-r> :CtrlPMRU<CR> + let g:ctrlp_custom_ignore = { + \ 'dir': '\.git$\|\.hg$\|\.svn$', + \ 'file': '\.exe$\|\.so$\|\.dll$\|\.pyc$' } + +" On Windows use "dir" as fallback command. + if executable('ag') + let s:ctrlp_fallback = 'ag %s --nocolor -l -g ""' + elseif executable('ack-grep') + let s:ctrlp_fallback = 'ack-grep %s --nocolor -f' + elseif executable('ack') + let s:ctrlp_fallback = 'ack %s --nocolor -f' + else + let s:ctrlp_fallback = 'find %s -type f' + endif + let g:ctrlp_user_command = { + \ 'types': { + \ 1: ['.git', 'cd %s && git ls-files . --cached --exclude-standard --others'], + \ 2: ['.hg', 'hg --cwd %s locate -I .'], + \ }, + \ 'fallback': s:ctrlp_fallback + \ } + + if isdirectory(expand("~/.vim/bundle/ctrlp-funky/")) +" CtrlP extensions + let g:ctrlp_extensions = ['funky'] + +"funky + nnoremap <Leader>fu :CtrlPFunky<Cr> + endif + endif +"} +" + +" change cursor shape based on mode +let &t_SI = "\<Esc>]50;CursorShape=1\x7" +let &t_EI = "\<Esc>]50;CursorShape=0\x7" + +set pastetoggle=<leader>t + |