| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								"         __                     
							 | 
						
						
						
							| 
								
							 | 
							
								" .--.--.|__|.--------.----.----.
							 | 
						
						
						
							| 
								
							 | 
							
								" |  |  ||  ||        |   _|  __|
							 | 
						
						
						
							| 
								
							 | 
							
								"  \___/ |__||__|__|__|__| |____|
							 | 
						
						
						
							| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								 "
							 | 
						
						
						
							| 
								
							 | 
							
								" Basic settings 
							 | 
						
						
						
							| 
								
							 | 
							
								" --------------
							 | 
						
						
						
							| 
								
							 | 
							
								set nocompatible
							 | 
						
						
						
							| 
								
							 | 
							
								filetype plugin indent on
							 | 
						
						
						
							| 
								
							 | 
							
								syntax enable
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								set number relativenumber
							 | 
						
						
						
							| 
								
							 | 
							
								set path+=**
							 | 
						
						
						
							| 
								
							 | 
							
								set wildmode=longest,list,full
							 | 
						
						
						
							| 
								
							 | 
							
								set encoding=UTF-8
							 | 
						
						
						
							| 
								
							 | 
							
								set cursorline
							 | 
						
						
						
							| 
								
							 | 
							
								set showmatch	" matching brackets
							 | 
						
						
						
							| 
								
							 | 
							
								set linebreak	
							 | 
						
						
						
							| 
								
							 | 
							
								set ignorecase	" case insensitive matching
							 | 
						
						
						
							| 
								
							 | 
							
								set smartcase	" smart case matching
							 | 
						
						
						
							| 
								
							 | 
							
								"set clipboard+=unnamedplus
							 | 
						
						
						
							| 
								
							 | 
							
								set mouse=a
							 | 
						
						
						
							| 
								
							 | 
							
								set tabstop=4
							 | 
						
						
						
							| 
								
							 | 
							
								set shiftwidth=4
							 | 
						
						
						
							| 
								
							 | 
							
								set softtabstop=4
							 | 
						
						
						
							| 
								
							 | 
							
								set spelllang=en_us
							 | 
						
						
						
							| 
								
							 | 
							
								set fillchars+=eob:~
							 | 
						
						
						
							| 
								
							 | 
							
								set showtabline=2
							 | 
						
						
						
							| 
								
							 | 
							
								set laststatus=2
							 | 
						
						
						
							| 
								
							 | 
							
								set backspace=indent,eol,start  " more powerful backspacing
							 | 
						
						
						
							| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" Basic styling
							 | 
						
						
						
							| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								highlight Comment cterm=italic
							 | 
						
						
						
							| 
								
							 | 
							
								highlight CursorLine ctermbg=Black cterm=NONE
							 | 
						
						
						
							| 
								
							 | 
							
								highlight CursorLineNr ctermbg=Black cterm=bold ctermfg=Green
							 | 
						
						
						
							| 
								
							 | 
							
								highlight LineNr ctermbg=Black ctermfg=White
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" OS detection
							 | 
						
						
						
							| 
								
							 | 
							
								" ---------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								if !exists("g:os_current")
							 | 
						
						
						
							| 
								
							 | 
							
									if system('uname -s') == "Linux\n"
							 | 
						
						
						
							| 
								
							 | 
							
										let g:os_current = "Linux"
							 | 
						
						
						
							| 
								
							 | 
							
									elseif system('uname -s') == "Darwin\n"
							 | 
						
						
						
							| 
								
							 | 
							
										let g:os_current = "Darwin"
							 | 
						
						
						
							| 
								
							 | 
							
									else
							 | 
						
						
						
							| 
								
							 | 
							
										echom "Error: the current operating system won't support my Vim Config" 
							 | 
						
						
						
							| 
								
							 | 
							
										let g:os_current = "Other"
							 | 
						
						
						
							| 
								
							 | 
							
									endif
							 | 
						
						
						
							| 
								
							 | 
							
								endif
							 | 
						
						
						
							| 
								
							 | 
							
								" ---------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								" Plugin settings
							 | 
						
						
						
							| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								call plug#begin()
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'sonph/onehalf', { 'rtp': 'vim' }
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'https://github.com/Badacadabra/vim-archery'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'vim-airline/vim-airline'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'vim-airline/vim-airline-themes'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'lervag/vimtex'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'Valloric/YouCompleteMe'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'preservim/nerdtree'
							 | 
						
						
						
							| 
								
							 | 
							
									"Plug 'liuchengxu/vim-which-key'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'godlygeek/tabular'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'preservim/vim-markdown'
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']}
							 | 
						
						
						
							| 
								
							 | 
							
									Plug 'https://github.com/godlygeek/tabular'
							 | 
						
						
						
							| 
								
							 | 
							
								call plug#end()
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" Theme configuration
							 | 
						
						
						
							| 
								
							 | 
							
								" ------------------
							 | 
						
						
						
							| 
								
							 | 
							
								colorscheme onehalfdark "archery
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline_theme = 'onehalfdark' "'archery'
							 | 
						
						
						
							| 
								
							 | 
							
								set t_Co=256
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline_powerline_fonts=1
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline#extensions#tabline#left_sep = ' '
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline#extensions#tabline#left_alt_sep = '|'
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline_symbols = {}
							 | 
						
						
						
							| 
								
							 | 
							
								let g:airline_symbols.colnr = ' ㏇:'
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" LaTeX
							 | 
						
						
						
							| 
								
							 | 
							
								let g:tex_flavor='latex'
							 | 
						
						
						
							| 
								
							 | 
							
								set sw=2
							 | 
						
						
						
							| 
								
							 | 
							
								set iskeyword+=:
							 | 
						
						
						
							| 
								
							 | 
							
								let g:vimtex_view_method = "skim"
							 | 
						
						
						
							| 
								
							 | 
							
								let g:vimtex_compiler_latexmk= {'options' : ['-pdf', '-shell-escape', '-verbose', '-file-line-error', '-synctex=1', '-interaction=nonstopmode',],} " we need to enable -shell-escape to be able to use externalization library for avioiding recompiling unchanged diagrams/graphs created using tikz/pgfplots
							 | 
						
						
						
							| 
								
							 | 
							
								if !exists('g:ycm_semantic_triggers')
							 | 
						
						
						
							| 
								
							 | 
							
								      let g:ycm_semantic_triggers = {}
							 | 
						
						
						
							| 
								
							 | 
							
									endif
							 | 
						
						
						
							| 
								
							 | 
							
								au VimEnter * let g:ycm_semantic_triggers.tex=g:vimtex#re#youcompleteme
							 | 
						
						
						
							| 
								
							 | 
							
								" ---------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" Miscelanious
							 | 
						
						
						
							| 
								
							 | 
							
								" ---------------------------------------------
							 | 
						
						
						
							| 
								
							 | 
							
								" Easier write command
							 | 
						
						
						
							| 
								
							 | 
							
								let mapleader = " "
							 | 
						
						
						
							| 
								
							 | 
							
								nnoremap <leader>w <Cmd>write<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								" NERDTree
							 | 
						
						
						
							| 
								
							 | 
							
								nnoremap <leader>n :NERDTreeFocus<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								nnoremap <C-n> :NERDTree<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								nnoremap <C-t> :NERDTreeToggle<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								nnoremap <C-f> :NERDTreeFind<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								let g:NERDTreeQuitOnOpen = 1
							 | 
						
						
						
							| 
								
							 | 
							
								" Whichkey
							 | 
						
						
						
							| 
								
							 | 
							
								set timeoutlen=500
							 | 
						
						
						
							| 
								
							 | 
							
								"let g:mapleader = "\<Space>"
							 | 
						
						
						
							| 
								
							 | 
							
								"let g:maplocalleader = ','
							 | 
						
						
						
							| 
								
							 | 
							
								"nnoremap <silent> <leader>      :<c-u>WhichKey '<Space>'<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								"nnoremap <silent> <localleader> :<c-u>WhichKey  ','<CR>
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								" Tabularize
							 | 
						
						
						
							| 
								
							 | 
							
								inoremap <silent> <Bar>   <Bar><Esc>:call <SID>align()<CR>a
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								function! s:align()
							 | 
						
						
						
							| 
								
							 | 
							
								    let p = '^\s*|\s.*\s|\s*$'
							 | 
						
						
						
							| 
								
							 | 
							
									if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
							 | 
						
						
						
							| 
								
							 | 
							
										let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g'))
							 | 
						
						
						
							| 
								
							 | 
							
										let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*'))
							 | 
						
						
						
							| 
								
							 | 
							
										Tabularize/|/l1
							 | 
						
						
						
							| 
								
							 | 
							
										normal! 0
							 | 
						
						
						
							| 
								
							 | 
							
										call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
							 | 
						
						
						
							| 
								
							 | 
							
										endif
							 | 
						
						
						
							| 
								
							 | 
							
								endfunction
							 |