Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " https://github.com/sontek/dotfiles/
- " ==========================================================
- " Dependencies - Libraries/Applications outside of vim
- " ==========================================================
- " Pep8 - http://pypi.python.org/pypi/pep8
- " Pyflakes
- " Ack
- " Rake & Ruby for command-t
- " nose, django-nose
- " ==========================================================
- " Plugins included
- " ==========================================================
- " Pathogen
- " Better Management of VIM plugins
- "
- " GunDo
- " Visual Undo in vim with diff's to check the differences
- "
- " Pytest
- " Runs your Python tests in Vim.
- "
- " Commant-T
- " Allows easy search and opening of files within a given path
- "
- " Snipmate
- " Configurable snippets to avoid re-typing common comands
- "
- " PyFlakes
- " Underlines and displays errors with Python on-the-fly
- "
- " Fugitive
- " Interface with git from vim
- "
- " Git
- " Syntax highlighting for git config files
- "
- " Pydoc
- " Opens up pydoc within vim
- "
- " Surround
- " Allows you to surround text with open/close tags
- "
- " Py.test
- " Run py.test test's from within vim
- "
- " MakeGreen
- " Generic test runner that works with nose
- "
- " ==========================================================
- " Shortcuts
- " ==========================================================
- set nocompatible " Don't be compatible with vi
- let mapleader="," " change the leader to be a comma vs slash
- " Seriously, guys. It's not like :W is bound to anything anyway.
- command! W :w
- " Make esc key eliminate search highlighing
- nnoremap <esc> :noh<return><esc>
- fu! SplitScroll()
- :wincmd v
- :wincmd w
- execute "normal! \<C-d>"
- :set scrollbind
- :wincmd w
- :set scrollbind
- endfu
- nmap <leader>sb :call SplitScroll()<CR>
- "<CR><C-w>l<C-f>:set scrollbind<CR>
- " sudo write this
- cmap W! w !sudo tee % >/dev/null
- " Toggle the tasklist
- map <leader>td <Plug>TaskList
- " Run pep8
- let g:pep8_map='<leader>8'
- " run py.test's
- nmap <silent><Leader>tf <Esc>:Pytest file<CR>
- nmap <silent><Leader>tc <Esc>:Pytest class<CR>
- nmap <silent><Leader>tm <Esc>:Pytest method<CR>
- nmap <silent><Leader>tn <Esc>:Pytest next<CR>
- nmap <silent><Leader>tp <Esc>:Pytest previous<CR>
- nmap <silent><Leader>te <Esc>:Pytest error<CR>
- " Run django tests
- map <leader>dt :set makeprg=python\ manage.py\ test\|:call MakeGreen()<CR>
- " Reload Vimrc
- map <silent> <leader>V :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
- " open/close the quickfix window
- nmap <leader>c :copen<CR>
- nmap <leader>cc :cclose<CR>
- " for when we forget to use sudo to open/edit a file
- cmap w!! w !sudo tee % >/dev/null
- " ctrl-jklm changes to that split
- map <c-j> <c-w>j
- map <c-k> <c-w>k
- map <c-l> <c-w>l
- map <c-h> <c-w>h
- " and lets make these all work in insert mode too ( <C-O> makes next cmd
- " happen as if in command mode )
- imap <C-W> <C-O><C-W>
- " Open NerdTree
- map <leader>n :NERDTreeToggle<CR>
- " Run command-t file search
- map <leader>f :CommandT<CR>
- " Ack searching
- nmap <leader>a <Esc>:Ack!
- " Load the Gundo window
- map <leader>g :GundoToggle<CR>
- " Jump to the definition of whatever the cursor is on
- map <leader>j :RopeGotoDefinition<CR>
- " Rename whatever the cursor is on (including references to it)
- map <leader>r :RopeRename<CR>
- " ==========================================================
- " Pathogen - Allows us to organize our vim plugins
- " ==========================================================
- " Load pathogen with docs for all plugins
- filetype off
- call pathogen#runtime_append_all_bundles()
- call pathogen#helptags()
- " ==========================================================
- " Basic Settings
- " ==========================================================
- syntax on " syntax highlighing
- filetype on " try to detect filetypes
- filetype plugin indent on " enable loading indent file for filetype
- set number " Display line numbers
- set numberwidth=1 " using only 1 column (and 1 space) while possible
- set background=dark " We are using dark background in vim
- set title " show title in console title bar
- set wildmenu " Menu completion in command mode on <Tab>
- set wildmode=full " <Tab> cycles between all matching choices.
- " don't bell or blink
- set noerrorbells
- set vb t_vb=
- " Ignore these files when completing
- set wildignore+=*.o,*.obj,.git,*.pyc
- set wildignore+=eggs/**
- set wildignore+=*.egg-info/**
- set grepprg=ack " replace the default grep program with ack
- " Set working directory
- nnoremap <leader>. :lcd %:p:h<CR>
- " Disable the colorcolumn when switching modes. Make sure this is the
- " first autocmd for the filetype here
- "autocmd FileType * setlocal colorcolumn=0
- """ Insert completion
- " don't select first item, follow typing in autocomplete
- set completeopt=menuone,longest,preview
- set pumheight=6 " Keep a small completion window
- """ Moving Around/Editing
- set cursorline " have a line indicate the cursor location
- set ruler " show the cursor position all the time
- set nostartofline " Avoid moving cursor to BOL when jumping around
- set virtualedit=block " Let cursor move past the last char in <C-v> mode
- set scrolloff=10 " Keep 10 context lines above and below the cursor
- set backspace=2 " Allow backspacing over autoindent, EOL, and BOL
- set showmatch " Briefly jump to a paren once it's balanced
- set nowrap " don't wrap text
- set linebreak " don't wrap textin the middle of a word
- set autoindent " always set autoindenting on
- set smartindent " use smart indent if there is no indent file
- set tabstop=4 " <tab> inserts 4 spaces
- set shiftwidth=4 " but an indent level is 2 spaces wide.
- set softtabstop=4 " <BS> over an autoindent deletes both spaces.
- set expandtab " Use spaces, not tabs, for autoindent/tab key.
- set shiftround " rounds indent to a multiple of shiftwidth
- set matchpairs+=<:> " show matching <> (html mainly) as well
- set foldmethod=indent " allow us to fold on indents
- set foldlevel=99 " don't fold by default
- " don't outdent hashes
- "inoremap # #
- " close preview window automatically when we move around
- autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
- autocmd InsertLeave * if pumvisible() == 0|pclose|endif
- """" Reading/Writing
- set noautowrite " Never write a file unless I request it.
- set noautowriteall " NEVER.
- set noautoread " Don't automatically re-read changed files.
- set modeline " Allow vim options to be embedded in files;
- set modelines=5 " they must be within the first or last 5 lines.
- set ffs=unix,dos,mac " Try recognizing dos, unix, and mac line endings.
- """" Messages, Info, Status
- set ls=2 " allways show status line
- set vb t_vb= " Disable all bells. I hate ringing/flashing.
- set confirm " Y-N-C prompt if closing with unsaved changes.
- set showcmd " Show incomplete normal mode commands as I type.
- set report=0 " : commands always print changed line count.
- set shortmess+=a " Use [+]/[RO]/[w] for modified/readonly/written.
- set ruler " Show some info, even without statuslines.
- set laststatus=2 " Always show statusline, even if only 1 window.
- set statusline=[%l,%v\ %P%M]\ %f\ %r%h%w\ (%{&ff})\ %{fugitive#statusline()}
- " displays tabs with :set list & displays when a line runs off-screen
- " set listchars=tab:>-,eol:$,trail:-,precedes:<,extends:>
- " set list
- """ Searching and Patterns
- set ignorecase " Default to using case insensitive searches,
- set smartcase " unless uppercase letters are used in the regex.
- set smarttab " Handle tabs more intelligently
- set hlsearch " Highlight searches by default.
- set incsearch " Incrementally search while typing a /regex
- """" Display
- if has("gui_running")
- colorscheme blackboard
- " Remove menu bar
- set guioptions-=m
- " Set font
- set guifont=Monaco:h12
- " Remove toolbar
- set guioptions-=T
- else
- colorscheme molokai
- endif
- " Paste from clipboard
- map <leader>p "+p
- " Quit window on <leader>q
- nnoremap <leader>q :q<CR>
- " hide matches on <leader>space
- nnoremap <leader><space> :nohlsearch<cr>
- " Remove trailing whitespace on <leader>S
- nnoremap <leader>S :%s/\s\+$//<cr>:let @/=''<CR>
- " Select the item in the list with enter
- inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
- " ==========================================================
- " Javascript
- " ==========================================================
- au BufRead *.js set makeprg=jslint\ %
- " Use tab to scroll through autocomplete menus
- "autocmd VimEnter * imap <expr> <Tab> pumvisible() ? "<C-N>" : "<Tab>"
- "autocmd VimEnter * imap <expr> <S-Tab> pumvisible() ? "<C-P>" : "<S-Tab>"
- let g:acp_completeoptPreview=1
- " ===========================================================
- " FileType specific changes
- " ============================================================
- " Mako/HTML
- autocmd BufNewFile,BufRead *.mako,*.mak,*.jinja2 setlocal ft=html
- autocmd FileType html,xhtml,xml,css setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2
- " Python
- "au BufRead *.py compiler nose
- au FileType python set omnifunc=pythoncomplete#Complete
- au FileType python setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with
- au FileType coffee setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with
- au BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
- " Don't let pyflakes use the quickfix window
- let g:pyflakes_use_quickfix = 0
- " Add the virtualenv's site-packages to vim path
- if has('python')
- py << EOF
- import os.path
- import sys
- import vim
- if 'VIRTUAL_ENV' in os.environ:
- project_base_dir = os.environ['VIRTUAL_ENV']
- sys.path.insert(0, project_base_dir)
- activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
- execfile(activate_this, dict(__file__=activate_this))
- EOF
- endif
- " Load up virtualenv's vimrc if it exists
- if filereadable($VIRTUAL_ENV . '/.vimrc')
- source $VIRTUAL_ENV/.vimrc
- endif
- set colorcolumn=79
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement