Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
minimal .vimrc for c/c++ developers
branch: master

fix: missing plugins

Signed-off-by: Hu Fu <>
latest commit a8991af5d1
@fuhu authored
Failed to load latest commit information.
screenshots up fix: update bundle to the latest version
vimrc fix: update bundle to the latest version
vimrc.minimal add title
vundles.vim fix: missing plugins

I use vundle to manage my plugins, which makes my .vim directory clean and tidy. If you are new to vim, the following two posts

will be good for you.

Most of the time we are writing code so we need:

Code Completions

Such as completions for variable names and function names(neocomplcache), expanding snippets(snipMate), auto closing brackets/brace/quote(delimitMate) and fast expand expressions to HTML(ZenCoding).

  • neocomplcache - Ultimate auto completion system for Vim.
  • snipMate - Plugin for using TextMate-style snippets in Vim.
  • supertab - Perform all your vim insert mode completions with Tab.
  • delimitMate - Provides auto-balancing and some expansions for parens, quotes, etc.


  • Tab -> Rotate across the completion list
  • Tab -> Expand snippets or jump to the next placeholder of snippet
  • Ctrl + j -> Call zen-coding expansion on html tags


Compile Vim with --enable-pythoninterp and --enable-rubyinterp to enable powerful syntax completion supplied by neocomplcache.

brew install macvim --override-system-vim  # OS X
yum install vim                            # Fedora
emerge vim                                 # Gentoo


Completions Snippets

Sometimes we need to jump to previous positions to copy/paste or do some fixes:

Fast navigation

  • matchit - Extended % matching for HTML, LaTeX, and many other languages.
  • EasyMotion - Vim motions on speed!


:help easymotion


  • % -> Jump between brackets and html/xml tags
  • <leader> + w -> Beginning of the word.
  • <leader> + f + {char} -> Find {char} to the right.

Doing fixes should be as fast as possible!

Fast editing

  • surround - Easily delete, change and add such surroundings in pairs.
  • nerdcommenter - Easy commenting of code for many filetypes.
  • Gundo - visualize your Vim undo tree.
  • tabular - Vim script for text filtering and alignment.
  • IndentGuides - A Vim plugin for visually displaying indent levels in code.


:help text-objexts
:help surround
:help tabular


  • % -> Jump between brackets and html/xml tags
  • <leader> + c + <space> -> Toggle comment
  • F3 -> Toggle Gundo viewer
  • F4 -> Toggle Indent Guides

IDE features

  • nerdtree - A tree explorer plugin for navigating the filesystem.
  • tabbar - Add tab bar and quickt tab switch with alt+1~9.
  • tagbar - Displays the tags of the current file in a sidebar.
  • ack-vim - Front for the Perl module App::Ack.
  • ctrlp - Fuzzy file, buffer, mru and tag finder.
  • powerline - The ultimate vim statusline utility.
  • fugitive - a Git wrapper so awesome, it should be illegal.
  • syntastic - Syntax checking hacks for vim.


yum install ctags                    # Fedora
emerge ctags                         # Gentoo
brew install ack ctags               # OS X

For syntax check tools:

Languages Lint Tools Install guide
C gcc built-in
CPP g++ built-in
Erlang escript built-in
Go go built-in
Haml haml built-in
Haskell ghc-mod cabal install ghc-mod
Lisp clisp built-in
Lua luac built-in
Python pyflakes sudo pip install pyflakes
Scala scala built-in
XML xmllint built-in
YAML js-yaml npm install -g js-yaml


  • F5 -> Toggle Nerd-Tree file viewer
  • F6 -> Toggle tagbar
  • Ctrl + p -> Toggle ctrlp
  • Alt + 1~9 -> Switch between multiple buffers
  • Ctrl + h/j/k/l -> Moving between spilt windows
  • :Ack or <leader> + a -> Toggle Ack searching


Vim IDE 1 Vim IDE 2

Other Utils

  • fcitx-status - automatic change status of fcitx in vim.
  • togglemouse - Toggles the mouse focus between Vim and your terminal emulator, allowing terminal emulator mouse commands, like copy/paste.


  • F12 -> Toggle Mouse

Better syntax/indent for language enhancement

  • Server
    • go
  • Markup language
    • markdown
    • textile
  • FPs
    • scale


Additional functions

  1. File encoding auto detection
  2. Hightlight current line and column
  3. Automatically jump to the last edited location
  4. :w/:wq error correction
  5. Remove trailing white space(run :FixWhitespace in vim)
  6. Code folding is disabled, enable it as you wish
  7. w!! to write if you forget add sudo
  8. Indent style:
    • Python - Use soft-tabs with a four space indent(PEP8).


  1. Backup your old vim configuration files:

    mv ~/.vim ~/.vim.orig
    mv ~/.vimrc ~/.vimrc.orig
  2. Clone and install this repo:

    git clone git:// ~/.vim
    ln -s ~/.vim/vimrc ~/.vimrc
  3. Setup Vundle:

    git clone ~/.vim/bundle/Vundle.vim
  4. Install bundles. Launch vim(ignore the errors and they will disappear after installing needed plugins)and run:


Thst's it!

How to manage this vimrc?

All plugins are listed in file vundles.vim with detailed comments, just add plugins as you like.

  1. :PluginClean to clean up unused plugins
  2. :PluginInstall to install newly added plugins
  3. :PluginInstall! to upgrade all plugins

Other configurations are also well organized in vimrc.

Known issues

  • Compeletions are not well supported for statically typed languages(c/c++)
  • Snippets are not shown in completions popups
  • May has some conflicts with GVIM
Something went wrong with that request. Please try again.