execute pathogen#infect()
syntax on
set splitright
set splitbelow
set autoindent
set tabstop=2
set history=100
colorscheme blue
set autoread
set nowrap

let compileMode=0

function Compile()
  :w
	if g:compileMode == 0
  	:!g++ -Wall -DHOME -O2 -std=c++17 -o %<.exe %
	else	
		:!g++ -Wall -DHOME -O2 -std=c++17 -o %<.exe % grader_%
	endif
endfunction

function Run()
  :!./%<.exe
endfunction

function Input()
  :vs input.in
endfunction

function Output()
  :vs output.out
endfunction

function Toggle()
  if &nu == 1
    set nonu
    set rnu
  elseif &rnu == 1
    set nornu
  else
    set nu
  endif
endfunction

function ToggleCompiler()
	if g:compileMode == 0
		let g:compileMode = 1
		echo "Toggled interactive mode"
	else
		let g:compileMode = 0
		echo "Toggled batch mode"
	endif
endfunction

let mapleader = " "

map <leader>s :w<Return>
map <leader>c :call Compile()<Return>
map <leader>r :call Run()<Return>
map <leader>x :!xed %<Return>
map <leader>i :call Input()<Return>
map <leader>o :call Output()<Return>
map <leader>q :q<Return>
map <leader>n :call Toggle()<Return>
map <leader>a <Plug>(easymotion-bd-w)
map <leader>v :call ToggleCompiler()<Return>

map <leader>dvim :vs ~/surse_vim/template_reference.cpp<Return>

map <leader>temp :vs ~/surse_vim/template.cpp<Return><S-v><S-g>y<Space>q:echo "Copied template"<Return>
map <leader>tmath :vs ~/surse_vim/template_math.cpp<Return><S-v><S-g>y<Space>q:echo "Copied maths"<Return>
map <leader>taib :vs ~/surse_vim/template_aib.cpp<Return><S-v><S-g>y<Space>q:echo "Copied aib.cpp"<Return>
map <leader>trmq :vs ~/surse_vim/template_rmq.cpp<Return><S-v><S-g>y<Space>q:echo "Copied rmq.cpp"<Return>
map <leader>taint :vs ~/surse_vim/template_aint.cpp<Return><S-v><S-g>y<Space>q:echo "Copied aint.cpp"<Return>
map <leader>tlaint :vs ~/surse_vim/template_lazyaint.cpp<Return><S-v><S-g>y<Space>q:echo "Copied lazyaint.cpp"<Return>
map <leader>tgraph :vs ~/surse_vim/template_graph.cpp<Return><S-v><S-g>y<Space>q:echo "Copied graph.cpp"<Return>
map <leader>ttree :vs ~/surse_vim/template_tree.cpp<Return><S-v><S-g>y<Space>q:echo "Copied tree.cpp"<Return>
map <leader>tbinlift :vs ~/surse_vim/template_binarylifting.cpp<Return><S-v><S-g>y<Space>q:echo "Copied binary lifting.cpp"<Return>
map <leader>tlca :vs ~/surse_vim/template_lca.cpp<Return><S-v><S-g>y<Space>q:echo "Copied LCA.cpp"<Return>

map <leader>etemp :vs ~/surse_vim/template.cpp<Return>
map <leader>emath :vs ~/surse_vim/template_math.cpp<Return>
map <leader>eaib :vs ~/surse_vim/template_aib.cpp<Return>
map <leader>ermq :vs ~/surse_vim/template_rmq.cpp<Return>
map <leader>eaint :vs ~/surse_vim/template_aint.cpp<Return>
map <leader>elaint :vs ~/surse_vim/template_lazyaint.cpp<Return>
map <leader>egraph :vs ~/surse_vim/template_graph.cpp<Return>
map <leader>etree :vs ~/surse_vim/template_tree.cpp<Return>
map <leader>ebinlift :vs ~/surse_vim/template_binarylifting.cpp<Return>
map <leader>elca :vs ~/surse_vim/template_lca.cpp<Return>

inoremap " ""<Left>
inoremap ' ''<Left>
inoremap { {}<Left>
inoremap [ []<Left>
inoremap ( ()<Left>
