" ============== KEY MAPPINGS let mapleader="," " Tab modes. map m :set expandtab ts=2 sw=2 sts=2 map t :set noexpandtab ts=4 sw=4 sts=4 map T :set expandtab ts=4 sw=4 sts=4 " Folds: " map f :set fen fdn=3 fdm=indent fml=1 fdc=3 " ; -> FZF (see :help fzf-vim-commands) map ; :GFiles " H-L for next-prev buffer nnoremap l :bnext nnoremap k :bprev " S-D for prev/next Coc error diagnostic " X-C for prev/next Coc diagnostic nnoremap d (coc-diagnostic-next-error) nnoremap s (coc-diagnostic-prev-error) nnoremap x (coc-diagnostic-next) nnoremap c (coc-diagnostic-prev) " F for Coc show documentation nnoremap f :call ShowDocumentation() function! ShowDocumentation() if CocAction('hasProvider', 'hover') call CocActionAsync('doHover') else call feedkeys('K', 'in') endif endfunction " Symbol renaming nmap rn (coc-rename) " Append modeline after last line in buffer. " Use substitute() instead of printf() to handle '%%s' modeline in LaTeX " files. function! AppendModeline() let l:modeline = printf(" vim: set sts=%d ts=%d sw=%d tw=%d %set :", \ &softtabstop, &tabstop, &shiftwidth, &textwidth, &expandtab ? '' : 'no') let l:modeline = substitute(&commentstring, "%s", l:modeline, "") call append(line("$"), l:modeline) endfunction nnoremap ml :call AppendModeline() " =================== OPTIONS " colorscheme slate filetype plugin indent on set autoindent set ts=4 sw=4 " Controls set mouse=a set nostartofline set wildmode=list:longest " Display highlight SpellBad ctermfg=red ctermbg=none set bg=dark set hlsearch set incsearch syntax on set lazyredraw set number set relativenumber set showcmd set shortmess=a set display+=lastline " indentation for long line wraps set wrap set linebreak set breakindent let &showbreak = '> ' " set cursorline " hi CursorLine cterm=bold ctermbg=0 " hi Folded ctermfg=2 ctermbg=0 " hi FoldColumn ctermfg=2 ctermbg=0 let g:sclangTerm = "urxvt -e" let NERDTreeIgnore=['\.o$', '\.cmo$', '\.cmx$', '\.cmi$', '\.lib$', '\.pyc$', '^__pycache__$'] " set completeopt=menuone,menu,longest,preview set directory=~/.vim/swp,/tmp " =========== FILE TYPE SPECIFIC au BufRead,BufNewFile *.make set filetype=make au BufRead,BufNewFile *.md set filetype=markdown au BufRead,BufNewFile *.lus set filetype=lustre au BufRead,BufNewFile *.scade set filetype=scade au FileType make setl noexpandtab au FileType python setl sw=4 sts=4 et au FileType html setl sw=2 sts=2 et au FileType htmldjango setl sw=2 sts=2 et au FileType json setl sw=2 sts=2 et au FileType javascript setl sw=2 sts=2 et au FileType yaml setl sw=2 sts=2 et au FileType css setl sw=4 sts=4 et au FileType lua setl ts=4 sw=4 noet au FileType elixir setl sw=2 sts=2 et au FileType nix setl sw=2 sts=2 et autocmd FileType tex setlocal spell spelllang=en " Packs " packloadall " silent! helptags ALL