let mapleader ="," if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) echo "Downloading junegunn/vim-plug to manage plugins..." silent !mkdir -p ~/.config/nvim/autoload/ silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim autocmd VimEnter * PlugInstall endif set bg=dark set go=a set mouse=a set nohlsearch set clipboard=unnamedplus " Some basics: nnoremap c "_c set nocompatible filetype plugin on syntax on set encoding=utf-8 set number relativenumber " Enable autocompletion: set wildmode=longest,list,full " Disables automatic commenting on newline: autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o " Goyo plugin makes text more readable when writing prose: map f :Goyo \| set bg=light \| set linebreak " Spell-check set to o, 'o' for 'orthography': map o :setlocal spell! spelllang=en_us " Splits open at the bottom and right, which is non-retarded, unlike vim defaults. set splitbelow splitright " Nerd tree map n :NERDTreeToggle autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " vimling: nm d :call ToggleDeadKeys() imap d :call ToggleDeadKeys()a nm i :call ToggleIPA() imap i :call ToggleIPA()a nm q :call ToggleProse() " Shortcutting split navigation, saving a keypress: map h map j map k map l " Check file in shellcheck: map s :!clear && shellcheck % " Open my bibliography file in split map b :vsp$BIB map r :vsp$REFER " Replace all is aliased to S. nnoremap S :%s//g " Compile document, be it groff/LaTeX/markdown/etc. map c :w! \| !compiler % " Open corresponding .pdf/.html or preview map p :!opout % " Runs a script that cleans out tex build files whenever I close out of a .tex file. autocmd VimLeave *.tex !texclear % " Ensure files are read as what I want: let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} map v :VimwikiIndex let g:vimwiki_list = [{'path': '~/repos/writings', 'syntax': 'markdown', 'ext': '.md'}] autocmd BufRead,BufNewFile /tmp/calcurse*,~/.calcurse/notes/* set filetype=markdown autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff autocmd BufRead,BufNewFile *.tex set filetype=tex " Copy selected text to system clipboard (requires gvim/nvim/vim-x11 installed): vnoremap "+y map "+P " Enable Goyo by default for mutt writting autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80 autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo | set bg=light " Automatically deletes all trailing whitespace on save. autocmd BufWritePre * %s/\s\+$//e " When shortcut files are updated, renew bash and ranger configs with new material: autocmd BufWritePost *bmdirs,*bmfiles !shortcuts " Run xrdb whenever Xdefaults or Xresources are updated. autocmd BufWritePost *Xresources,*Xdefaults !xrdb % " Update binds when sxhkdrc is updated. autocmd BufWritePost *sxhkdrc !pkill -USR1 sxhkd " Update dwmbar when changed. autocmd BufWritePost *dwmbar !killall dwmbar; setsid dwmbar & colo delek