" ---------------------------------------------------------------------- " This is basically a copy of the starting vimrc, just to make sure I " have all the cool things enabled " ---------------------------------------------------------------------- set encoding=utf-8 " Use Vim settings, rather then Vi settings (much better!). " This must be first, because it changes other options as a side effect. set nocompatible " allow backspacing over everything in insert mode set backspace=indent,eol,start " Don't use Ex mode, use Q for formatting map Q gq " Map Y to do the same (well, almost) as the D command map Y y$ " This is an alternative that also works in block mode, but the deleted " text is lost and it only works for putting the current register. " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif " ---------------------------------------------------------------------- " Those are my settings " ---------------------------------------------------------------------- set tabstop=4 " tabs are displayed as 4 spaces set shiftwidth=4 " by default, when auto-identing, add 4 spaces (or 1 tabstop) set foldmethod=marker " fold on markers set foldlevel=3 " number of folds to open automatically set scrolloff=1 " always show one line around the cursor set laststatus=2 " always show the status bar ('cause I like to see the line and column, always) set showtabline=2 " always show the tabline set showmatch " show matching bracket set noerrorbells " no error bells set autowrite " write the file when switching between files or something set nowrap " do not wrap long lines set nobackup " do not keep a backup file, use versions instead set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set showcmd " display incomplete commands set incsearch " do incremental searching set formatoptions=tcq " wrap with textwidth, wrap comments, insert commend leader (twice), format comments set smartindent " smart identation set number " show line numbers set wim=longest,list " file auto-completion set background=dark " to follow most of the colorschemes I use set vb t_vb= " convert bells to visual bells and do nothing as visual bell set t_Co=256 " 256 color terminals syntax sync minlines=1500 " increases the number of lines to find the proper syntax let mapleader="," " use comma to start user-defined (in plugins) functions " Only do this part when compiled with support for autocommands. if has("autocmd") " Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. filetype plugin indent on " Put these in an autocmd group, so that we can delete them easily. augroup vimrcEx au! " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif augroup END " Python files should not have empty lines autocmd FileType python autocmd BufWritePre :%s/\s\+$//e " omni completion au FileType python setlocal ofu=pythoncomplete#Complete au FileType javascript setlocal ofu=javascriptcomplete#CompleteJS au FileType html setlocal ofu=htmlcomplete#CompleteTags au FileType css setlocal ofu=csscomplete#CompleteCSS au FileType xml setlocal ofu=xmlcomplete#CompleteTags au FileType php setlocal ofu=phpcomplete#CompletePHP set completeopt-=preview " ---------------------------------------------------------------------- " Auto-commands " ---------------------------------------------------------------------- " default python style " (use spaces instead of tabs (expandtab), uses 4 spaces for tabs (tabstop), " when auto-indenting, also use 4 spaces (shiftwidth), when deleting text, 4 " spaces are a tab (softtabstop) and break the line at column 78 (textwidth)) au FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 textwidth=78 colorcolumn=79 " reStructured files follow python closely, but use 3 tab stops instead of 4 au FileType rst setlocal expandtab tabstop=3 sw=3 sts=3 textwidth=78 " templates (Jinja2 in this case) will use tabs instead (to reduce file size) au FileType htmldjango setlocal noet tabstop=4 shiftwidth=4 softtabstop=4 textwidth=0 au FileType jinja setlocal noet tabstop=4 shiftwidth=4 softtabstop=4 textwidth=0 " the smarty filetypes doesn't have any sort of indentation, so we set it to " auto au FileType smarty setlocal ai " PHP break lines at column 79, like Python au FileType php setlocal textwidth=79 " svn (when editing svn commit messages, break lines at " column 70) au FileType svn setlocal tw=70 " email (mostly mutt stuff) au FileType mail setlocal spell spelllang=en " JavaScript (who though those were "good" defaults?) au FileType javascript setlocal expandtab tabstop=2 sw=2 sts=2 textwidth=0 else set autoindent " always set autoindenting on endif " has("autocmd") " ---------------------------------------------------------------------- " mapings " ---------------------------------------------------------------------- " Easy switching between tabs (just use Alt+) if has('mac') map :tabn 1 map :tabn 2 map :tabn 3 map :tabn 4 map :tabn 5 map :tabn 6 map :tabn 7 map :tabn 8 map :tabn 9 map :tabn 10 imap :tabn 1a imap :tabn 2a imap :tabn 3a imap :tabn 4a imap :tabn 5a imap :tabn 6a imap :tabn 7a imap :tabn 8a imap :tabn 9a imap :tabn 10a else map :tabn 1 map :tabn 2 map :tabn 3 map :tabn 4 map :tabn 5 map :tabn 6 map :tabn 7 map :tabn 8 map :tabn 9 map :tabn 10 imap :tabn 1a imap :tabn 2a imap :tabn 3a imap :tabn 4a imap :tabn 5a imap :tabn 6a imap :tabn 7a imap :tabn 8a imap :tabn 9a imap :tabn 10a endif " custom PHP syntax file configuration let php_smart_members=1 " Vundle stuff starts here set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " ---------------------------------------------------------------------- " Bundles " ---------------------------------------------------------------------- " Vundle itself! Bundle 'gmarik/vundle' " status line " Bundle "Lokaltog/powerline" Bundle "bling/vim-airline" " git support Bundle 'tpope/vim-fugitive' " comment code with keys Bundle 'tpope/vim-commentary' " align things Bundle 'godlygeek/tabular' " close pairs Bundle 'jiangmiao/auto-pairs' " Bundle 'Townk/vim-autoclose' " python " Bundle 'nvie/vim-flake8' Bundle 'klen/python-mode' Bundle 'scrooloose/syntastic' " snippets Bundle 'msanders/snipmate.vim' " Bundle "MarcWeber/vim-addon-mw-utils" " Bundle "tomtom/tlib_vim" " Bundle "garbas/vim-snipmate" " fuzzy file open Bundle 'kien/ctrlp.vim' " Bundle "unite.vim" " fuzzy function search (based on ctrlp) Bundle 'tacahiroy/ctrlp-funky' " select multiple strings at the same time Bundle 'terryma/vim-multiple-cursors' " colorscheme Bundle 'croaker/mustang-vim' " Bundle "Ambient-Color-Scheme" Bundle 'EditPlus' " Bundle 'altercation/vim-colors-solarized' color mustang " looks awesome on gvim, looks alright in vim if you have 256 color support " Autocomplete " Bundle 'ervandew/supertab' " Improved syntax files Bundle 'Glench/Vim-Jinja2-Syntax' " Identation guidelines " Bundle 'nathanaelkane/vim-indent-guides' " Airline to prompt Bundle 'edkolev/promptline.vim' " JSON Bundle 'elzr/vim-json' " auto-pair settings let g:AutoPairsMapCR = 1 " ---------------------------------------------------------------------- " Powerline settings " ---------------------------------------------------------------------- " python from powerline.vim import setup as powerline_setup " python powerline_setup() " python del powerline_setup " let g:Powerline_symbols = 'unicode' " ---------------------------------------------------------------------- " Airline configuration " ---------------------------------------------------------------------- let g:airline_powerline_fonts = 1 let g:airline_theme = 'understated' let g:airline_detect_whitespace=0 "disabled let g:airline_enable_branch = 1 let g:airline_enable_syntastic = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#show_buffers = 0 let g:airline#extensions#tabline#show_tab_type = 0 let g:airline#extensions#tabline#tab_nr_type = 1 " ---------------------------------------------------------------------- " Unite configuration (disabled) " ---------------------------------------------------------------------- " let g:unite_split_rule = "bottomleft" let g:unite_winheight = 10 " ---------------------------------------------------------------------- " CtrlP and extensions configuration " ---------------------------------------------------------------------- set wildignore+=*/build/*,*.egginfo,*.pyc,*.mo,*/dist/* let g:ctrlp_extensions = ['funky'] nnoremap :CtrlPFunky " ---------------------------------------------------------------------- " Indent guides " ---------------------------------------------------------------------- let g:indent_guides_start_level=2 let g:indent_guides_guide_size=1 " ---------------------------------------------------------------------- " JSON syntax " ---------------------------------------------------------------------- let g:vim_json_syntax_conceal = 0 autocmd BufNewFile,BufRead *.json set filetype=json autocmd Filetype json set noet ts=4