
"
" .vimrc by Alexander Koponen
"
" updated : 20200411 1738 UTC
"
" wget -O ~/.vimrc http://techblog.koponen.se/files/vimrc
"


"
" ResetColorScheme()
"
" Set default colortheme, and reset colortheme cycle counter
"
function! ResetColorScheme()
  let g:ak_colorscheme = 1
  colorscheme elflord
endfunction



"
" ToggleColorScheme
"
" Cycle through colorschemes
"
function! ToggleColorScheme()
  if(g:ak_colorscheme == 0)
    let g:ak_colorscheme = 1
    colorscheme elflord
  elseif(g:ak_colorscheme == 1)
    let g:ak_colorscheme = 2
    colorscheme peachpuff
  elseif(g:ak_colorscheme == 2)
    let g:ak_colorscheme = 3
    colorscheme desert
  elseif(g:ak_colorscheme == 3)
    let g:ak_colorscheme = 0
    colorscheme blue
  endif
endfunction



"
" ToggleCrosshair()
"
" Show Crosshair (combo of two)
"
function! ToggleCrosshair()
  if(g:ak_crosshair)
    let g:ak_crosshair = 0
    let g:ak_cursorline = 0
    let g:ak_cursorcolumn = 0
    set nocursorline
    set nocursorcolumn
  else
    let g:ak_crosshair = 1
    let g:ak_cursorline = 1
    let g:ak_cursorcolumn = 1
    set cursorline
    set cursorcolumn
  endif
endfunction



"
" ToggleCursorColumn()
"
" Show a nifty column
"
function! ToggleCursorColumn()
  if(g:ak_cursorcolumn)
    let g:ak_cursorcolumn = 0
    set nocursorcolumn
  else
    let g:ak_cursorcolumn = 1
    set cursorcolumn
  endif
endfunction



"
" ToggleCursorLine()
"
" Show a sleek underline
"
function! ToggleCursorLine()
  if(g:ak_cursorline)
    let g:ak_cursorline = 0
    set nocursorline
  else
    let g:ak_cursorline = 1
    set cursorline
  endif
endfunction



" ToggleExpandTab()
"
" Show a sleek underline
"
function! ToggleExpandTab()
  if(g:ak_expandtab)
    let g:ak_expandtab = 0
    set noexpandtab
  else
    let g:ak_expandtab = 1
    set expandtab
  endif
endfunction



"
" ToggleHTMLinPHP()
"
" Toggle php_htmlInStrings
"
function! ToggleHTMLinPHP()
  if(g:ak_htmlinphp)
    let g:ak_htmlinphp = 0
    let php_htmlInStrings = 0
  else
    let g:ak_htmlinphp = 1
    let php_htmlInStrings = 1
  endif
endfunction



"
" ToggleList()
"
" Show/Hide formatting marks
"
function! ToggleList()
  if(g:ak_list)
    let g:ak_list = 0
    set nolist
  else
    let g:ak_list = 1
    set list
  endif
endfunction



"
" ToggleNumber
"
" Showing line numbers on left side
"
function! ToggleNumber()
  if(g:ak_number)
    let g:ak_number = 0
    set nonumber
  else
    let g:ak_number = 1
    set number
  endif
endfunction



"
" ToggleRuler()
"
" Toggle a small Ruler in the bottom right corner
"
function! ToggleRuler()
  if(g:ak_ruler)
    let g:ak_ruler = 0
    set noruler
  else
    let g:ak_ruler = 1
    set ruler
  endif
endfunction



"
" ToggleSyntax()
"
" Show/Hide syntax highlighting
"
function! ToggleSyntax()
  if(g:ak_syntax)
    let g:ak_syntax = 0
    syntax off
  else
    let g:ak_syntax = 1
    syntax on
  endif
endfunction



""" key bindings """

nnoremap <C-F5>  :call ToggleList()         <cr>
nnoremap <C-F6>  :call ToggleRuler()        <cr>
nnoremap <C-F7>  :call ToggleCrosshair()    <cr>
nnoremap <C-F8>  :call ToggleNumber()       <cr>
"nnoremap <C-F8>  :call ToggleCursorLine()   <cr>
"nnoremap <C-F10> :call ToggleCursorColumn() <cr>

nnoremap <C-F9>  :call ToggleSyntax()       <cr>
"nnoremap <C-F10> :call ToggleHTMLinPHP()    <cr>
nnoremap <C-F10> :call ToggleExpandTab()    <cr>
nnoremap <C-F11> :call ToggleColorScheme()  <cr>
nnoremap <C-F12> :call ResetColorScheme()   <cr>



""" setting default values """

let g:ak_syntax = 1
syntax on
"syntax off

let g:ak_colorscheme = 1
colorscheme elflord

let g:ak_htmlinphp = 1
let php_htmlInStrings = 1

let g:ak_number = 0
"set number
set nonumber

let g:ak_crosshair = 0
let g:ak_cursorline = 0
let g:ak_cursorcolumn = 0
"set cursorline
set nocursorline
"set cursorcolumn
set nocursorcolumn

let g:ak_ruler = 1
set ruler
"set noruler

"
" makes autoindent be spaces only spaces
"
let g:ak_expandtab = 1
set expandtab
"set noexpandtab

" setting list properties
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
let g:ak_list = 0
"set list
set nolist



""" other settings """

"
" I really need the arrow keys to work in edit mode
"
"set compatible
set nocompatible

"
" I like autoindent
"
set autoindent
"set noautoindent


"
" makes autoindent to be 2 spaces instead of 8 spaces
"
set shiftwidth=2

"
" sets tab to be 2 spaces instead of 8
"
set tabstop=2

"
" sets so that mouse works as intended, paste with middle button
"
set mouse=r

