"VIEW config
syntax off
filetype off
set number


"INDENT config
filetype plugin indent on
"" show existing tab with 8 spaces width
set tabstop=8
"
"" when indenting with '>', use 4 spaces width
set shiftwidth=4
"
"" On pressing tab, insert 4 spaces
set expandtab
set autoindent


"MACROS config
vnoremap <C-R> "hy:%s/<C-r>h//gc<left><left><left>
nnoremap <C-S> :w<CR>


"LaTEX config
vnoremap <C-b> c{\bfseries <C-r>"}<Esc>

"PLUGIN config
let g:NERDTreeNodeDelimiter = "\u00a0"
execute "set <M-n>=\en"
nnoremap <M-n> :NERDTree<CR>


"MACROS
"PASCAL_BEGIN
:iab ifi <Esc>^ifunction <Esc>eli(<Esc>lxhea: integer): integer;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab ift <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE): integer;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab ifii <Esc>^ifunction <Esc>eli(<Esc>lxhea: integer,
                                   \<Esc>ea: integer): integer;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab iftt <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE,
                                   \<Esc>ea: TYPE): integer;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>


:iab tft <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE): TYPE;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>
        
:iab tftt <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE,<Esc>ea: TYPE): TYPE;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab tfttt <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE,
                                  \<Esc>ea: TYPE,
                                  \<Esc>ea: TYPE): TYPE;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab tftttt <Esc>^ifunction <Esc>eli(<Esc>lxhea: TYPE,
                                  \<Esc>ea: TYPE,
                                  \<Esc>ea: TYPE,
                                  \<Esc>ea: TYPE): TYPE;<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab pi <Esc>^iprocedure <Esc>eli(<Esc>lxhea: integer);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab pt <Esc>^iprocedure <Esc>eli(<Esc>lxhea: TYPE);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab ptt <Esc>^iprocedure <Esc>eli(<Esc>lxhea: TYPE,
                                   \<Esc>ea: TYPE);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab pttt <Esc>^iprocedure <Esc>eli(<Esc>lxhea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab ptttt <Esc>^iprocedure <Esc>eli(<Esc>lxhea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

:iab pttttt <Esc>^iprocedure <Esc>eli(<Esc>lxhea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE,
                                   \<Esc>ea: TYPE);<CR>
        \var<CR><ESC>20xi
        \begin<CR>
        \end;<Esc>O<BS>

"PASCAL_END

