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 call plug#begin('~/.vim/plugged') Plug 'artur-shaik/vim-javacomplete2' call plug#end() colorscheme delek " Java autocompletion autocmd FileType java setlocal omnifunc=javacomplete#Complete nmap (JavaComplete-Imports-AddSmart) imap (JavaComplete-Imports-AddSmart) nmap (JavaComplete-Imports-Add) imap (JavaComplete-Imports-Add) nmap (JavaComplete-Imports-AddMissing) imap (JavaComplete-Imports-AddMissing) nmap (JavaComplete-Imports-RemoveUnused) imap (JavaComplete-Imports-RemoveUnused) nmap jI (JavaComplete-Imports-AddMissing) nmap jR (JavaComplete-Imports-RemoveUnused) nmap ji (JavaComplete-Imports-AddSmart) nmap jii (JavaComplete-Imports-Add) imap I (JavaComplete-Imports-AddMissing) imap R (JavaComplete-Imports-RemoveUnused) imap i (JavaComplete-Imports-AddSmart) imap ii (JavaComplete-Imports-Add) nmap jM (JavaComplete-Generate-AbstractMethods) imap jM (JavaComplete-Generate-AbstractMethods) nmap jA (JavaComplete-Generate-Accessors) nmap js (JavaComplete-Generate-AccessorSetter) nmap jg (JavaComplete-Generate-AccessorGetter) nmap ja (JavaComplete-Generate-AccessorSetterGetter) nmap jts (JavaComplete-Generate-ToString) nmap jeq (JavaComplete-Generate-EqualsAndHashCode) nmap jc (JavaComplete-Generate-Constructor) nmap jcc (JavaComplete-Generate-DefaultConstructor) imap s (JavaComplete-Generate-AccessorSetter) imap g (JavaComplete-Generate-AccessorGetter) imap a (JavaComplete-Generate-AccessorSetterGetter) vmap js (JavaComplete-Generate-AccessorSetter) vmap jg (JavaComplete-Generate-AccessorGetter) vmap ja (JavaComplete-Generate-AccessorSetterGetter) nmap jn (JavaComplete-Generate-NewClass) nmap jN (JavaComplete-Generate-ClassInFile)