This website is built by coding on vim.
There is a steep learning curve for vim.
However, once you are killed at it, you can code fast with ease.
:help index
First, install a vim plugin manager. I use Vundle.
The following code in `.vimrc’ would map the FixIt command to , f where my leader key is ,
let mapleader=","
map <leader>f :YcmCompleter FixIt<CR>
Use , j d to jump to definition.
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
Without corrent settings, it cannot find the standard library and perform auto completion. (e.g. unordered_map)
flags = [
'-Wall',
'-std=c++11',
'-stdlib=libc++',
'-x',
'c++',
'-I',
'.',
'-isystem',
'/Library/Developer/CommandLineTools/usr/include/c++/v1'
]
Plugin 'mattn/emmet-vim'
and in vim, type shift + : in command mode input:
: BundleInstall
Vundle will install the plugins for you automatically.
If you want to have custom code snippets, you need to install webapi as well.
Plugin 'mattn/webapi-vim'
The default expand key is ctrl + y + ,.
Below is the animation from official site:

You can change the expand key by put the following line in your .vimrc.
The following code maps the expand key to ctrl + e
let g:user_emmet_expandabbr_key = '<c-e>'
:echo b:current_syntax
ctrl + w + r
http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_(Part_2)
https://github.com/Valloric/YouCompleteMe/issues/420#issuecomment-55940039
https://github.com/SirVer/ultisnips/issues/512
http://vim.wikia.com/wiki/List_loaded_scripts