Friday, 7 June 2013

Setting up vim for C/C++

This post if about the changes that I make in the configuration of vim to use it as an editor for C/C++ Programs. Now first of all make a file named .vimrc in your home directory

$ touch .vimrc
And also make a directory named .vim in the very same folder i.e. your home directory

$ mkdir .vim
Now here is the link of the things that you have to put in the .vim directory.

Download the cvim Zip file from the link and extract the contents to the .vim directory
$ tar zxvf .vim/
Now copy paste the following in the .vimrc file

" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below.  If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed.  It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
  syntax on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
"  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
"  filetype plugin indent on

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes)

" My Style
"set columns=70
set textwidth=70
set ruler
set nu
set shiftwidth=4
set autoindent
set smartindent
filetype plugin on
let g:C_SourceCodeExtensions = 'h cc cp cxx cpp CPP c++ C i ii Makefile'
set expandtab           " set tab to spaces
set tabstop=4           " set tab size = 4
set colorcolumn=70      " set column color to indicate not to extend 
                        " more than 72 chars

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
And now you are all set and done. Happy Coding.