" ==== ==== 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' Plugin 'elzr/vim-json' call vundle#end() " required " ==== ==== " 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 ss :call StripWhitespace() " Save a file as root (,W) noremap W :w !sudo tee % > /dev/null " 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 n :call NumberToggle() ":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 m :RainbowParenthesesToggle " ==== ==== " Trigger configuration. Do not use if you use " https://github.com/Valloric/YouCompleteMe. let g:UltiSnipsExpandTrigger="" "let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpForwardTrigger="" "let g:UltiSnipsJumpBackwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " ==== ==== " Spaces FTW set shiftwidth=4 set expandtab "let g:ctrlp_map = '' let g:ctrlp_map = '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 :CtrlP nnoremap :CtrlPMRU 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 fu :CtrlPFunky endif endif "} " " change cursor shape based on mode let &t_SI = "\]50;CursorShape=1\x7" let &t_EI = "\]50;CursorShape=0\x7" set pastetoggle=t set conceallevel=0 let g:vim_json_syntax_conceal = 0 let g:indentLine_noConcealCursor=""