set commentstring=//\ %s " Disable inserting comment leader after hitting o or O or set formatoptions-=o set formatoptions-=r nnoremap :call compile_run_cpp() function! s:compile_run_cpp() abort let src_path = expand('%:p:~') let src_noext = expand('%:p:~:r') let _flag = '-Wall -Wextra -std=c++11 -O2' if executable('clang++') let prog = 'clang++' elseif executable('g++') let prog = 'g++' else echoerr 'No C++ compiler found on the system!' endif call s:create_term_buf('h', 20) execute printf('term %s %s %s -o %s && %s', prog, _flag, src_path, src_noext, src_noext) startinsert endfunction function s:create_term_buf(_type, size) abort set splitbelow set splitright if a:_type ==# 'v' vnew else new endif execute 'resize ' . a:size endfunction