-
-
Save JBaczuk/43e124c66fcc48664c49b4b21d96a079 to your computer and use it in GitHub Desktop.
My vimrc - C++
This file contains hidden or 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
" VIM Configuration File | |
" Description: Optimized for C/C++ development, but useful also for other things. | |
" | |
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() | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
Plugin 'VundleVim/Vundle.vim' | |
Plugin 'Valloric/YouCompleteMe' | |
" The following are examples of different formats supported. | |
" Keep Plugin commands between vundle#begin/end. | |
" plugin on GitHub repo | |
Plugin 'tpope/vim-fugitive' | |
" plugin from http://vim-scripts.org/vim/scripts.html | |
" Plugin 'L9' | |
" Git plugin not hosted on GitHub | |
Plugin 'git://git.wincent.com/command-t.git' | |
" git repos on your local machine (i.e. when working on your own plugin) | |
"Plugin 'file:///home/gmarik/path/to/plugin' | |
" The sparkup vim script is in a subdirectory of this repo called vim. | |
" Pass the path to set the runtimepath properly. | |
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} | |
" Install L9 and avoid a Naming conflict if you've already installed a | |
" different version somewhere else. | |
" Plugin 'ascenator/L9', {'name': 'newL9'} | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" set UTF-8 encoding | |
set enc=utf-8 | |
set fenc=utf-8 | |
set termencoding=utf-8 | |
" use indentation of previous line | |
set autoindent | |
" use intelligent indentation for C | |
set smartindent | |
" configure tabwidth and insert spaces instead of tabs | |
set tabstop=4 " tab width is 4 spaces | |
set shiftwidth=4 " indent also with 4 spaces | |
set expandtab " expand tabs to spaces | |
" wrap lines at 120 chars. 80 is somewaht antiquated with nowadays displays. | |
"set textwidth=120 | |
" turn syntax highlighting on | |
set t_Co=256 | |
syntax on | |
" colorscheme wombat256 | |
" turn line numbers on | |
set number | |
" highlight matching braces | |
set showmatch | |
" intelligent comments | |
set comments=sl:/*,mb:\ *,elx:\ */ | |
" Install OmniCppComplete like described on http://vim.wikia.com/wiki/C++_code_completion | |
" This offers intelligent C++ completion when typing ‘.’ ‘->’ or <C-o> | |
" Load standard tag files | |
set tags+=~/.vim/tags/cpp | |
set tags+=~/.vim/tags/gl | |
set tags+=~/.vim/tags/sdl | |
set tags+=~/.vim/tags/qt4 | |
" Install DoxygenToolkit from http://www.vim.org/scripts/script.php?script_id=987 | |
let g:DoxygenToolkit_authorName="John Doe <[email protected]>" | |
" Enhanced keyboard mappings | |
" | |
" in normal mode F2 will save the file | |
nmap <F2> :w<CR> | |
" in insert mode F2 will exit insert, save, enters insert again | |
imap <F2> <ESC>:w<CR>i | |
" switch between header/source with F4 | |
map <F4> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR> | |
" recreate tags file with F5 | |
map <F5> :!ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .<CR> | |
" create doxygen comment | |
map <F6> :Dox<CR> | |
" build using makeprg with <F7> | |
map <F7> :make<CR> | |
" build using makeprg with <S-F7> | |
map <S-F7> :make clean all<CR> | |
" goto definition with F12 | |
map <F12> <C-]> | |
"" in diff mode we use the spell check keys for merging | |
"if &diff | |
" ” diff settings | |
" map <M-Down> ]c | |
" map <M-Up> [c | |
" map <M-Left> do | |
" map <M-Right> dp | |
" map <F9> :new<CR>:read !svn diff<CR>:set syntax=diff buftype=nofile<CR>gg | |
"else | |
" " spell settings | |
" :setlocal spell spelllang=en | |
" " set the spellfile - folders must exist | |
" set spellfile=~/.vim/spellfile.add | |
" map <M-Down> ]s | |
" map <M-Up> [s | |
"endif | |
" Code Folding | |
set foldmethod=indent | |
set foldnestmax=10 | |
set nofoldenable | |
set foldlevel=2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment