set tabstop=4 shiftwidth=4 noexpandtab relativenumber ai nu rnu nosmd ignorecase smartcase set showtabline=0 set lazyredraw nocursorline ttyfast let mapleader = "," set shell=/bin/sh hi Search cterm=NONE ctermfg=white ctermbg=blue hi StatusLine ctermbg=NONE cterm=italic autocmd InsertEnter * hi StatusLine cterm=bold autocmd InsertLeave * hi StatusLine cterm=italic highlight LineNr ctermfg=grey " Disable highlighting when searching nnoremap :noh " NetRW set splitbelow splitright let g:netrw_banner = 0 let g:netrw_liststyle = 3 let g:netrw_browse_split = 4 let g:netrw_altv = 1 let g:netrw_winsize = 20 function! OpenNetRW() Vexplore endfunction aug netrw_close au! au WinEnter * if winnr('$') == 1 && getbufvar(winbufnr(winnr()), "&filetype") == "netrw"|q|endif aug END nnoremap - :call OpenNetRW() " gdb integration let g:termdebug_popup = 0 let g:termdebug_wide = 50 " Enter insert mode automatically in terminal windows "au BufEnter term://* startinsert au BufEnter *.c,*.cpp,*.h,*.hpp packadd termdebug au TermOpen * setlocal nonumber norelativenumber tnoremap " start debugger nnoremap dd :execute "Termdebug" $HOME .. "/.cache/termdebug/" .. expand("%:r"):Source " compile nnoremap dc :Source:w:execute "make ~/.cache/termdebug/" .. expand("%:r") .. " -f ~/.config/nvim/makefile" " start, stop, continue forwards nnoremap rs :Run nnoremap rr :Stop nnoremap rf :Continue " clear, add breakpoints nnoremap dsc :Clear nnoremap dsf :Break nnoremap :vertical resize -5 nnoremap :vertical resize +5 nnoremap :Step nnoremap :Over " quickfix window (after running make) nnoremap dqf :tab cope nnoremap df :tabNext vnoremap K :'<,'>Evaluate " tab, window management nnoremap w nnoremap W " force exit (akin to ZZ, ZQ) nnoremap ZF :qa! " Plugins " Run PlugInstall if there are missing plugins " (disabled because it's kind of intense for weak devices) "autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) "\| PlugInstall --sync | source $MYVIMRC "\| endif call plug#begin() filetype plugin indent on Plug 'lervag/vimtex' let g:vimtex_view_method = 'zathura' let g:vimtex_compiler_method = 'latexmk' set conceallevel=0 let g:tex_conceal='abdmg' let g:vimtex_view_forward_search_on_start=1 let g:vimtex_compiler_latexmk = { \ 'build_dir' : $HOME.'/.cache/latexmk/', \ 'callback' : 1, \ 'continuous' : 1, \ 'executable' : 'latexmk', \ 'hooks' : [], \ 'options' : [ \ '-verbose', \ '-file-line-error', \ '-synctex=1', \ '-interaction=nonstopmode', \ ], \} " spellcheck au BufEnter *.tex set spell spelllang=en_ca " Autowrite in tex files " au TextChanged,TextChangedI *.tex silent write if has('python3') Plug 'SirVer/ultisnips' let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/ultisnips/'] endif Plug 'nvim-treesitter/nvim-treesitter' call plug#end() lua << EOF require'nvim-treesitter.configs'.setup { ensure_installed = { "c", "cpp", "javascript", "python", "vim", "latex", "fish", "bash" }, sync_install = false, auto_install = false, highlight = { enable = true, disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end, }, } EOF " Code folding set foldmethod=expr set foldexpr=nvim_treesitter#foldexpr() "autocmd BufEnter * normal zR