packadd snippets " General set ignorecase " Indentation set tabstop=8 set shiftround set nobackup set autoindent set smartindent set cindent " Theme syntax on set background=light set rnu colorscheme quiet set incsearch set matchpairs+=<:> hi Normal ctermfg=black ctermbg=white "hi Keyword ctermfg=black cterm=bold hi SpellBad term=reverse cterm=underline ctermfg=124 ctermbg=white hi SpellCap term=reverse cterm=underline ctermfg=25 ctermbg=white hi SpellRare term=reverse cterm=underline ctermfg=30 ctermbg=white hi SpellLocal term=reverse cterm=underline ctermfg=90 ctermbg=white " Cursor - switch between line and full let &t_SI = "\[6 q" let &t_SR = "\[4 q" let &t_EI = "\[2 q" " Pesky swap set backupdir=~/.vim/backup// set directory=~/.vim/swap// set undodir=~/.vim/undo// " Netrw let g:netrw_keepdir = 0 let g:netrw_banner = 0 let g:netrw_localcopydircmd = 'cp -r' hi! link netrwMarkFile Search nnoremap - :Explore " LSP packadd lsp if exists('g:loaded_lsp') call LspOptionsSet(#{ \ aleSupport: v:false, \ autoComplete: v:false, \ autoHighlight: v:false, \ autoHighlightDiags: v:true, \ autoPopulateDiags: v:true, \ completionMatcher: 'case', \ completionMatcherValue: 1, \ diagSignErrorText: 'E', \ diagSignHintText: 'H', \ diagSignInfoText: 'I', \ diagSignWarningText: 'W', \ echoSignature: v:false, \ hideDisabledCodeActions: v:false, \ highlightDiagInline: v:true, \ hoverInPreview: v:false, \ ignoreMissingServer: v:true, \ keepFocusInDiags: v:true, \ keepFocusInReferences: v:true, \ completionTextEdit: v:true, \ diagVirtualTextAlign: 'above', \ diagVirtualTextWrap: 'default', \ noNewlineInCompletion: v:false, \ omniComplete: v:null, \ outlineOnRight: v:true, \ outlineWinSize: 20, \ semanticHighlight: v:false, \ showDiagInBalloon: v:true, \ showDiagInPopup: v:true, \ showDiagOnStatusLine: v:false, \ showDiagWithSign: v:false, \ showDiagWithVirtualText: v:false, \ showInlayHints: v:false, \ showSignature: v:true, \ snippetSupport: v:false, \ ultisnipsSupport: v:false, \ useBufferCompletion: v:false, \ usePopupInCodeAction: v:false, \ useQuickfixForLocations: v:false, \ vsnipSupport: v:false, \ bufferCompletionTimeout: 100, \ customCompletionKinds: v:false, \ completionKinds: {}, \ filterCompletionDuplicates: v:false, \ }) end " Ocaml if exists('g:loaded_lsp') call LspAddServer([#{ \ name: 'caml', \ filetype: ['ocaml'], \ path: 'ocamllsp', \ args: [], \ syncInit: v:true \ }]) end autocmd Filetype ocaml autocmd BufWritePre :LspFormat " Go if exists('g:loaded_lsp') call LspAddServer([#{ \ name: 'golang', \ filetype: ['go', 'gomod'], \ path: '/usr/bin/gopls', \ args: ['serve'], \ syncInit: v:true \ }]) end autocmd Filetype go set makeprg=go\ build autocmd Filetype go autocmd BufWritePre :LspFormat au BufRead,BufNewFile *.tmpl set filetype=tmpl autocmd Filetype tmpl setlocal tabstop=2 " Nix if exists('g:loaded_lsp') call LspAddServer([#{ \ name: 'nix', \ filetype: ['nix'], \ path: 'nixd', \ args: [], \ syncInit: v:true \ }]) end autocmd Filetype nix autocmd BufWritePre :LspFormat " Markdown if exists('g:loaded_lsp') call LspAddServer([#{ \ name: 'marksman', \ filetype: ['markdown'], \ path: 'marksman', \ args: ['server'], \ syncInit: v:true }]) end autocmd Filetype markdown setlocal spell " Keybindings let mapleader=" " noremap , : noremap e :e **/ noremap gd mB:LspGotoDefinition noremap ]d :LspDiagNext noremap [d :LspDiagPrev noremap gs mB:LspDocumentSymbol noremap gr mB:LspGotoImpl noremap ca :LspCodeAction noremap cr :LspRename noremap m :make noremap k :LspDiagCurrent noremap K :LspHover nnoremap l :ls:b nnoremap = :LspFormat " Spell au BufEnter *.org set spell " Wildmenu set wildmenu set wildmode=longest:full,lastused set wildignore=_build/**,release/**,node_modules/** set wildoptions+=fuzzy " Grep set grepprg=git\ grep\ -nH