Created
March 5, 2013 16:49
-
-
Save prafulfillment/5091739 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" =================================================== | |
" P R A F U L ' S V I M R C | |
" =================================================== | |
" ================ Vundle ====================== | |
" Setting up Vundle - the vim plugin bundler | |
let iCanHazVundle=1 | |
let vundle_readme=expand('~/.vim/bundle/vundle/README.md') | |
if !filereadable(vundle_readme) | |
echo "Installing Vundle..." | |
echo "" | |
silent !mkdir -p ~/.vim/bundle | |
silent !git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle | |
let iCanHazVundle=0 | |
endif | |
highlight OverLength ctermbg=red ctermfg=white guibg=#592929 | |
match OverLength /\%80v.\+/ | |
" Required for vundle | |
filetype off | |
set rtp+=~/.vim/bundle/vundle/ | |
call vundle#rc() | |
" Installing plugins the first time | |
if iCanHazVundle == 0 | |
echo "Installing Bundles, please ignore key map error messages" | |
echo "" | |
:BundleInstall | |
endif | |
let mapleader="," | |
" Vundle manages Vundle *required* | |
Bundle 'gmarik/vundle' | |
" ================ VimScripts Repo ====================== | |
" Autocompletition | |
" #Bundle 'AutoComplPop' | |
" Python code checker | |
" Bundle 'pyflakes.vim' | |
" Search results counter | |
Bundle 'IndexedSearch' | |
" XML/HTML tags navigation | |
Bundle 'matchit.zip' | |
" Gvim colorscheme | |
Bundle 'Wombat' | |
" Autocompletition inside search | |
Bundle 'SearchComplete' | |
" Yank history navigation | |
Bundle 'YankRing.vim' | |
" ================ Github Repo ====================== | |
" Python and PHP Debugger | |
" Bundle 'fisadev/vim-debug.vim' | |
" Better file browser | |
Bundle 'scrooloose/nerdtree' | |
" Code commenter | |
Bundle 'scrooloose/nerdcommenter' | |
" Search and read python documentation | |
" Bundle 'fs111/pydoc.vim' | |
" Class/module browser | |
Bundle 'majutsushi/tagbar' | |
" Code and files fuzzy finder | |
Bundle 'kien/ctrlp.vim' | |
" PEP8 and python-flakes checker | |
" Bundle 'nvie/vim-flake8' | |
" Zen coding | |
Bundle 'mattn/zencoding-vim' | |
" Git integration | |
" Bundle 'motemen/git-vim' | |
" Tab list panel | |
Bundle 'kien/tabman.vim' | |
" Powerline | |
Bundle 'Lokaltog/vim-powerline' | |
" Terminal Vim with 256 colors colorscheme | |
Bundle 'fisadev/fisa-vim-colorscheme' | |
" Consoles as buffers | |
Bundle 'rosenfeld/conque-term' | |
" Pending tasks list | |
Bundle 'fisadev/FixedTaskList.vim' | |
" Surround | |
Bundle 'tpope/vim-surround' | |
" Autoclose | |
Bundle 'Townk/vim-autoclose' | |
" Better python indentation | |
" Bundle 'vim-scripts/indentpython.vim--nianyang' | |
" Indent text object | |
Bundle 'michaeljsmith/vim-indent-object' | |
" Jedi.vim | |
" Bundle 'davidhalter/jedi-vim' | |
" YaSnippets | |
" Bundle 'vim-scripts/yasnippets' | |
" Gundo | |
Bundle 'sjl/gundo.vim.git' | |
" Python-Mode | |
Bundle 'klen/python-mode.git' | |
" Fugitive | |
Bundle 'tpope/vim-fugitive' | |
" ================ General Config ==================== | |
" This must be first, because it changes other options as a side effect. | |
set nocompatible | |
set number "Line numbers are good | |
set backspace=indent,eol,start "Allow backspace in insert mode | |
set history=1000 "Store lots of :cmdline history | |
set showcmd "Show incomplete cmds down the bottom | |
set showmode "Show current mode down the bottom | |
set gcr=a:blinkon0 "Disable cursor blink | |
set visualbell "No sounds | |
set autoread "Reload files changed outside vim | |
" This makes vim act like all other editors, buffers can | |
" exist in the background without being in a window. | |
" http://items.sjbach.com/319/configuring-vim-right | |
set hidden | |
" Turn on syntax highlighting | |
syntax on | |
" Allow plugins by file type | |
filetype plugin on | |
filetype indent on | |
" Use 256 colors when possible | |
if &term =~? 'mlterm\|xterm\|screen-256' | |
let &t_Co = 256 | |
colorscheme fisa | |
else | |
colorscheme delek | |
endif | |
" Gvim colors | |
if has('gui_running') | |
colorscheme wombat | |
endif | |
" ================ Search Settings ================= | |
set incsearch "Find the next match as we type the search | |
set nohlsearch "Hilight searches by default | |
set viminfo='100,f1 "Save up to 100 marks, enable capital marks | |
" ================ Turn Off Swap Files ============== | |
set noswapfile | |
set nobackup | |
set nowb | |
" ================ Persistent Undo ================== | |
" Keep undo history across sessions, by storing in file. | |
silent !mkdir ~/.vim/backups > /dev/null 2>&1 | |
set undodir=~/.vim/backups | |
set undofile | |
" ================ Indentation ====================== | |
set autoindent | |
set smartindent | |
set smarttab | |
set expandtab | |
set tabstop=4 | |
set softtabstop=4 | |
set shiftwidth=4 | |
" Display tabs and trailing spaces visually | |
set list listchars=tab:\ \ ,trail:· | |
set nowrap " Don't wrap lines | |
set linebreak " Wrap lines at convenient points | |
" Indentation exceptions | |
autocmd FileType html setlocal shiftwidth=2 tabstop=2 | |
autocmd FileType htmldjango setlocal shiftwidth=2 tabstop=2 | |
autocmd FileType javascript setlocal shiftwidth=2 tabstop=2 | |
" ================ Folds ============================ | |
set foldmethod=indent " Fold based on indent | |
set foldnestmax=3 " Deepest fold is 3 levels | |
set nofoldenable " Dont fold by default | |
" ================ Completion ======================= | |
" Autocompletition of files and commands behaves like shell | |
" (complete only the common part, list the options that match) | |
set wildmode=list:longest | |
set wildmenu " Enable ctrl-n and ctrl-p to scroll thru matches | |
set wildignore=*.o,*.obj,*~ " Stuff to ignore when tab completing | |
set wildignore+=*vim/backups* | |
set wildignore+=*sass-cache* | |
set wildignore+=*DS_Store* | |
set wildignore+=vendor/rails/** | |
set wildignore+=vendor/cache/** | |
set wildignore+=*.gem | |
set wildignore+=log/** | |
set wildignore+=tmp/** | |
" ================ Scrolling ======================== | |
set scrolloff=8 " Start scrolling when we're 8 lines away from margins | |
" set sidescrolloff=15 | |
" set sidescroll=1 | |
" Fix to let ESC work as espected with Autoclose plugin | |
let g:AutoClosePumvisible = {"ENTER": "\<C-Y>", "ESC": "\<ESC>"} | |
" Use fancy symbols for powerline | |
let g:Powerline_symbols = 'fancy' | |
" Enable syntax highlight | |
syntax on | |
" Always show status bar | |
set ls=2 | |
" Toggle Tagbar display | |
map <F4> :TagbarToggle<CR> | |
" Autofocus on Tagbar open | |
let g:tagbar_autofocus = 1 | |
" NERDTree (better file browser) toggle | |
map <F3> :NERDTreeToggle<CR> | |
" Tab navigation | |
map tn :tabn<CR> | |
map tp :tabp<CR> | |
map tm :tabm<CR> | |
map tt :tabnew | |
map <C-S-Right> :tabn<CR> | |
imap <C-S-Right> <ESC>:tabn<CR> | |
map <C-S-Left> :tabp<CR> | |
imap <C-S-Left> <ESC>:tabp<CR> | |
" Navigate windows with meta+arrows | |
map <M-Right> <c-w>l | |
map <M-Left> <c-w>h | |
map <M-Up> <c-w>k | |
map <M-Down> <c-w>j | |
imap <M-Right> <ESC><c-w>l | |
imap <M-Left> <ESC><c-w>h | |
imap <M-Up> <ESC><c-w>k | |
imap <M-Down> <ESC><c-w>j | |
" Automatically close autocompletition window | |
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif | |
autocmd InsertLeave * if pumvisible() == 0|pclose|endif | |
" Old autocomplete keyboard shortcut | |
imap <C-J> <C-X><C-O> | |
" Show pending tasks list | |
map <F2> :TaskList<CR> | |
" Removes trailing spaces of python files | |
" (and restores cursor position) | |
autocmd BufWritePre *.py mark z | %s/ *$//e | 'z | |
" Save as sudo | |
ca w!! w !sudo tee "%" | |
" Colors and settings of autocompletion | |
highlight Pmenu ctermbg=4 guibg=LightGray | |
highlight PmenuSel ctermbg=8 guibg=DarkBlue guifg=Red | |
highlight PmenuSbar ctermbg=7 guibg=DarkGray | |
highlight PmenuThumb guibg=Black | |
" Use global scope search | |
let OmniCpp_GlobalScopeSearch = 1 | |
" 0 = namespaces disabled | |
" 1 = search namespaces in the current buffer | |
" 2 = search namespaces in the current buffer and in included files | |
let OmniCpp_NamespaceSearch = 2 | |
" 0 = auto | |
" 1 = always show all members | |
let OmniCpp_DisplayMode = 1 | |
" 0 = don't show scope in abbreviation | |
" 1 = show scope in abbreviation and remove the last column | |
let OmniCpp_ShowScopeInAbbr = 0 | |
" This option allows to display the prototype of a function in the abbreviation part of the popup menu. | |
" 0 = don't display prototype in abbreviation | |
" 1 = display prototype in abbreviation | |
let OmniCpp_ShowPrototypeInAbbr = 1 | |
" This option allows to show/hide the access information ('+', '#', '-') in the popup menu. | |
" 0 = hide access | |
" 1 = show access | |
let OmniCpp_ShowAccess = 1 | |
" This option can be use if you don't want to parse using namespace declarations in included files and want to add | |
" namespaces that are always used in your project. | |
let OmniCpp_DefaultNamespaces = ["std"] | |
" Complete Behaviour | |
let OmniCpp_MayCompleteDot = 0 | |
let OmniCpp_MayCompleteArrow = 0 | |
let OmniCpp_MayCompleteScope = 0 | |
" When 'completeopt' does not contain "longest", Vim automatically select the first entry of the popup menu. You can | |
" change this behaviour with the OmniCpp_SelectFirstItem option. | |
let OmniCpp_SelectFirstItem = 0 | |
" Debugger keyboard shortcuts | |
map <F5> :Dbg over<CR> | |
map <F6> :Dbg into<CR> | |
map <F7> :Dbg out<CR> | |
map <F8> :Dbg here<CR> | |
map <F9> :Dbg break<CR> | |
map <F10> :Dbg watch<CR> | |
map <F11> :Dbg down<CR> | |
map <F12> :Dbg up<CR> | |
" CtrlP (new fuzzy finder) | |
let g:ctrlp_map = ',e' | |
nmap ,g :CtrlPBufTag<CR> | |
nmap ,G :CtrlPBufTagAll<CR> | |
nmap ,f :CtrlPLine<CR> | |
nmap ,m :CtrlPMRUFiles<CR> | |
" Call CtrlP with default search text | |
function! CtrlPWithSearchText(search_text, ctrlp_command_end) | |
execute ':CtrlP' . a:ctrlp_command_end | |
call feedkeys(a:search_text) | |
endfunction | |
" CtrlP with default text | |
nmap ,wg :call CtrlPWithSearchText(expand('<cword>'), 'BufTag')<CR> | |
nmap ,wG :call CtrlPWithSearchText(expand('<cword>'), 'BufTagAll')<CR> | |
nmap ,wf :call CtrlPWithSearchText(expand('<cword>'), 'Line')<CR> | |
nmap ,d ,wg | |
nmap ,D ,wG | |
nmap ,we :call CtrlPWithSearchText(expand('<cword>'), '')<CR> | |
nmap ,pe :call CtrlPWithSearchText(expand('<cfile>'), '')<CR> | |
nmap ,wm :call CtrlPWithSearchText(expand('<cword>'), 'MRUFiles')<CR> | |
" Don't change working directory | |
let g:ctrlp_working_path_mode = 0 | |
" Ignore files on fuzzy finder | |
let g:ctrlp_custom_ignore = { | |
\ 'dir': '\v[\/](\.git|\.hg|\.svn)$', | |
\ 'file': '\.pyc$\|\.pyo$', | |
\ } | |
" simple recursive grep | |
command! -nargs=1 RecurGrep lvimgrep /<args>/gj ./**/*.* | lopen | set nowrap | |
command! -nargs=1 RecurGrepFast silent exec 'lgrep! <q-args> ./**/*.*' | lopen | |
nmap ,R :RecurGrep | |
nmap ,r :RecurGrepFast | |
nmap ,wR :RecurGrep <cword><CR> | |
nmap ,wr :RecurGrepFast <cword><CR> | |
" run pep8+pyflakes validator | |
autocmd FileType python map <buffer> ,8 :call Flake8()<CR> | |
" rules to ignore (example: "E501,W293") | |
let g:flake8_ignore="" | |
" don't let pyflakes allways override the quickfix list | |
let g:pyflakes_use_quickfix = 0 | |
" tabman shortcuts | |
let g:tabman_toggle = 'tl' | |
let g:tabman_focus = 'tf' | |
" ================ PyLint ====================== | |
let g:pymode_lint_ignore = "E128" | |
" ================ Gundo ====================== | |
nmap <leader>u :GundoToggle<CR> | |
" a little wider for wider screens | |
let g:gundo_width = 30 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment