|
" ------------------
|
|
" __
|
|
" .--.--.|__|.--------.----.----.
|
|
" | | || || | _| __|
|
|
" \___/ |__||__|__|__|__| |____|
|
|
" ------------------
|
|
"
|
|
" 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
|