set showcmd set number filetype plugin on set noswapfile " Restore the size of the vim window set sessionoptions+=resize " Plugins " ====== " clang_complete " a.vim " taglist " autotag " SingleCompile " Pathogen " ======== execute pathogen#infect() " Enabled plugins: " - jedi-vim " - syntastic " - LaTeX-Box set spell if has("gui_running") :set guifont=DejaVu\ Sans\ Mono\ 11 :colorscheme evening else :colorscheme elflord endif if has("autocmd") augroup module " CakePHP *.ctp files. " for cakePHP templates autocmd BufRead *.ctp set filetype=php augroup END endif " The next line was superseded by jedi " autocmd FileType python setlocal tags+=$HOME/.vim/python-2.6.tags syntax sync fromstart " Tabs " ==== set noexpandtab set autoindent filetype indent on " I use setlocal so the tab settings will only apply for the python buffer autocmd Filetype python setlocal tabstop=4 autocmd Filetype python setlocal expandtab autocmd Filetype python setlocal softtabstop=4 autocmd Filetype python setlocal shiftwidth=4 autocmd Filetype python setlocal cinwords=if,elif,else,for,while,with,try,except,finally,def,class " tab menus :amenu Syntax.Tabs.ts=4,et,sts=4,sw=4 :set tabstop=4 expandtab softtabstop=4 shitwidth=4<CR> :amenu Syntax.Tabs.ts=2,et,sts=2,sw=2 :set tabstop=2 expandtab softtabstop=2 shitwidth=2<CR> " Highlight whitespace at end-of-line autocmd Filetype python match Error /\s\+$/ " Status Line " =========== set statusline=%F%m%r%h%w\ [TYPE=%Y,%{eval('&fileformat')}]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] set laststatus=2 " Always display the status line. " Searches " ======== set incsearch " do partial searches set hlsearch " search highlighting set ignorecase set smartcase let g:netrw_retmap = 0 " TagList Plugin " ============== nnoremap <silent> <F8> :TlistToggle<CR> " PyLint Plugin " ============= "let g:pylint_onwrite = 0 "autocmd FileType python compiler pylint " SingleCompile " ============= nmap <F9> :SCCompile<cr> nmap <F10> :SCCompileRun<cr> autocmd Filetype cpp nmap <buffer> <F9> :SCCompileAF -std=c++0x <CR> autocmd Filetype cpp nmap <buffer> <F10> :SCCompileRunAF -std=c++0x <CR> " C++ Omnicomplete - Replaced by clang_complete " ================ " Generating tags: " ctags --c++-kinds=+p --fields=+iaS --extra=+q --language-force=c++ " autocmd FileType cpp set tags+=~/.vim/tags/libstdc++.tags " autocmd FileType cpp set tags+=~/.vim/tags/wxwidgets.tags " autocmd FileType cpp set tags+=~/.vim/tags/gtk-3.0.tags " let OmniCpp_MayCompleteScope = 1 " autocomplete after :: " let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters " let OmniCpp_ShowAccess = 1 " let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] " clang_complete " ============== let g:clang_use_library = 1 " Vim Help " ======== " search help for word under cursor nnoremap <C-F1> :help <C-R><C-W><CR> " Mouse " ===== set mousemodel=popup_setpos " makes tab/shift-tab in visual mode do what I expect from visual studio vnoremap <Tab> >gv vnoremap <S-Tab> <LT>gv " Make it easier to move between window " " Reorder tabs " ============ function! GuyTabLeft() let tab_number = tabpagenr() - 1 if tab_number == 0 execute "tabm" tabpagenr('$') - 1 else execute "tabm" tab_number - 1 endif endfunction function! GuyTabRight() let tab_number = tabpagenr() - 1 let last_tab_number = tabpagenr('$') - 1 if tab_number == last_tab_number execute "tabm" 0 else execute "tabm" tab_number + 1 endif endfunction map <silent><C-S-Right> :execute GuyTabRight()<CR> map <silent><C-S-Left> :execute GuyTabLeft()<CR> " CScope " ====== set cscopetag set cscopetagorder=0 " Use cscope before tag file if filereadable("cscope.out") cscope add cscope.out endif nnoremap <A-]>s :cs find s <C-R>=expand("<cword>")<CR><CR> nnoremap <A-]>g :cs find g <C-R>=expand("<cword>")<CR><CR> nnoremap <A-]>c :cs find c <C-R>=expand("<cword>")<CR><CR> nnoremap <A-]>t :cs find t <C-R>=expand("<cword>")<CR><CR> nnoremap <A-]>e :cs find e <C-R>=expand("<cword>")<CR><CR> nnoremap <A-]>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nnoremap <A-]>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nnoremap <A-]>d :cs find d <C-R>=expand("<cword>")<CR><CR> " Using 'CTRL-spacebar' then a search type makes the vim window " split horizontally, with search result displayed in " the new window. nnoremap <C-Space>s :scs find s <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space>g :scs find g <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space>c :scs find c <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space>t :scs find t <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space>e :scs find e <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR> nnoremap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nnoremap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR> " Hitting CTRL-space *twice* before the search type does a vertical " split instead of a horizontal one nnoremap <C-Space><C-Space>s \:vert scs find s <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space><C-Space>g \:vert scs find g <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space><C-Space>c \:vert scs find c <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space><C-Space>t \:vert scs find t <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space><C-Space>e \:vert scs find e <C-R>=expand("<cword>")<CR><CR> nnoremap <C-Space><C-Space>i \:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nnoremap <C-Space><C-Space>d \:vert scs find d <C-R>=expand("<cword>")<CR><CR> " Misc " ==== " join lines in reverse order nnoremap <C-j> ddpkJ nnoremap + :vim/\C\<<C-R><C-w>\>/ **/*.%:e<CR> nnoremap <C-S> :tab split<CR> nnoremap <C-S-Tab> :tabprevious<CR> nnoremap <C-Tab> :tabnext<CR> " Fast exit from Insert Mode inoremap kj <ESC> " Properly display man pages " ========================== runtime ftplugin/man.vim if has("gui_running") nnoremap K :<C-U>exe "Man" v:count "<C-R><C-W>"<CR> endif " Textwidth settings " ================== autocmd Filetype tex set textwidth=72