" General options set ruler " show the cursor position all the time set showcmd " display incomplete commands set ttimeout " time out for key codes set ttimeoutlen=100 " wait up to 100ms after Esc for special key set display=truncate " show @@@ in the last line if it is truncated set scrolloff=5 " show a few lines around the cursor set relativenumber " relative line numbering set tabstop=4 " 4-space tabs set softtabstop=4 " 4-space tabs set shiftwidth=4 " 4-space shiftwidth set backspace=indent,eol,start " backspace over everything in insert set directory=$HOME/.vim/swapfiles// " common swap directory set fillchars+=vert:\ syntax on " switch syntax highlighting on " Matching and key mappings :match ErrorMsg '\%>80v.\+' " right-hand drift warning "" automatically finish closing tags :inoremap / ==gi " only do this if autocommands enabled if has("autocmd") " enable file type detection and load indent files filetype plugin indent on augroup vimStartup au! "at startup, jump to last cursor position if valid autocmd BufReadPost * \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' \ | exe "normal! g`\"" \ | endif augroup END endif if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif call plug#begin('~/.vim/plugged') "Plug 'dense-analysis/ale' Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'} call plug#end() "" ALE "let g:ale_linter_aliases = { "\ 'vue': ['vue', 'javascript'], "\ 'liquid': ['liquid', 'html'], "\} "let g:ale_linters = { "\ 'vue': ['eslint', 'vls'], "\ 'javascript': ['eslint'], "\ 'html': ['htmlhint'], "\ 'rust': [] "\} "let g:ale_fixers = { "\ 'css': ['prettier'], "\ 'html': ['prettier'], "\ 'javascript': ['eslint'], "\ 'json': ['prettier'], "\ 'liquid': ['prettier'], "\ 'markdown': ['prettier'], "\ 'vue': ['eslint'], "\ 'scss': ['prettier'], "\ '*': ['remove_trailing_lines', 'trim_whitespace'], "\ 'rust': [] "\} "let g:ale_fix_on_save = 1 " COC.VIM inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh() inoremap pumvisible() ? "\" : "\" function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction highlight CocFloating ctermbg=black " Auto-reloading scripts autocmd BufWritePost i3.base !themer.sh -r autocmd BufWritePost */i3blocks/config !i3-msg reload