if empty(glob('~/.config/nvim/autoload/plug.vim')) silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif set number set relativenumber set tabstop=4 set shiftwidth=4 set smarttab set expandtab set hidden set showtabline=1 set termguicolors set ttyfast set wildmenu set title set list set listchars=tab:→\ ,eol:¬,trail:•,extends:❯,precedes:❮,space:⨪ set showbreak=↪ set timeoutlen=500 let g:mapleader="\" let g:maplocallead=',' if has('nvim') set inccommand=split endif if has("persistent_undo") set undodir=$HOME/.undodir set undofile endif call plug#begin('~/.config/nvim/plugged') "LSP Stuff Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'junegunn/rainbow_parentheses.vim' Plug 'machakann/vim-highlightedyank' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'morhetz/gruvbox' Plug 'arzg/vim-corvine' Plug 'tpope/vim-fugitive' Plug 'mhinz/vim-signify' Plug 'tpope/vim-commentary' Plug 'mbbill/undotree' Plug 'elmcast/elm-vim' Plug 'liuchengxu/vim-which-key' "async.vim Plug 'prabirshrestha/async.vim' "https://github.com/baverman/vial-http/blob/master/doc/tutorial.rst "Plug 'baverman/vial' "Plug 'baverman/vial-http' call plug#end() "Setting up coc-tools function! s:handlestdout(job_id, data, event_type) endfunction function! s:handlestderr(job_id, data, event_type) endfunction function! s:handleexitpyls(job_id, data, event_type) echo 'pyls installed' endfunction function! s:handleexitsolargraph(job_id, data, event_type) echo 'solargraph installed' endfunction function! s:cmdexitcode(cmd) let output = system(a:cmd) return v:shell_error endfunction function! s:ensurePython() if (s:cmdexitcode('pyls -h')) let jobid = async#job#start(['pip', 'install', 'python-language-server'], { \ 'on_stdout': function('s:handlestdout'), \ 'on_stderr': function('s:handlestderr'), \ 'on_exit': function('s:handleexitpyls') \ }) endif execute 'CocInstall coc-python' endfunction function! s:ensureRuby() if (s:cmdexitcode('solargraph -v')) let jobid = async#job#start(['gem', 'install', 'solargraph'], { \ 'on_stdout': function('s:handlestdout'), \ 'on_stderr': function('s:handlestderr'), \ 'on_exit': function('s:handleexitsolargraph') \ }) endif endfunction call s:ensurePython() call s:ensureRuby() "Gruvbox config " colorscheme gruvbox set background=dark let g:gruvbox_contrast_dark = 'soft' colorscheme corvine "Airline settings let g:airline#extensions#tabline#enabled = 1 let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#formatter = 'unique_tail_improved' let g:airline_theme='base16_tomorrow' nnoremap u :UndotreeToggle nnoremap h nnoremap j nnoremap k nnoremap l nnoremap nnoremap "ALE Keymaps and options "nnoremap a a "nnoremap g :ALEGoToDefinition "nnoremap f :ALEFix "which-key let g:which_key_map = {} autocmd! User vim-which-key call which_key#register('', 'g:which_key_map') let g:which_key_map[' '] = { \ 'name' : '+ale' , \ 'a' : 'completions' , \ 'g' : 'go-to-definition' , \ 'f' : 'fix' , \ } call which_key#register('', "g:which_key_map") nnoremap :WhichKey '' nnoremap :WhichKey ',' "rainbow-parens autocmd VimEnter * RainbowParentheses let g:rainbow#blacklist = [248] let g:rainbow#pairs = [['(', ')'], ['[', ']'], ['{', '}']]