2019-01-19 15:19:10 +00:00
|
|
|
let mapleader =","
|
2019-01-04 00:06:34 +00:00
|
|
|
|
2019-03-26 16:30:16 +00:00
|
|
|
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
|
2019-05-28 19:57:07 +00:00
|
|
|
autocmd VimEnter * PlugInstall
|
2019-03-26 16:30:16 +00:00
|
|
|
endif
|
|
|
|
|
2019-01-15 14:11:59 +00:00
|
|
|
call plug#begin('~/.config/nvim/plugged')
|
2019-01-19 15:19:10 +00:00
|
|
|
Plug 'tpope/vim-surround'
|
|
|
|
Plug 'scrooloose/nerdtree'
|
2019-01-04 00:06:34 +00:00
|
|
|
Plug 'junegunn/goyo.vim'
|
|
|
|
Plug 'PotatoesMaster/i3-vim-syntax'
|
|
|
|
Plug 'jreybert/vimagit'
|
2019-11-23 20:02:19 +00:00
|
|
|
Plug 'lukesmithxyz/vimling'
|
2019-01-04 00:06:34 +00:00
|
|
|
Plug 'vimwiki/vimwiki'
|
2019-01-19 15:19:10 +00:00
|
|
|
Plug 'bling/vim-airline'
|
|
|
|
Plug 'tpope/vim-commentary'
|
2019-05-28 14:28:24 +00:00
|
|
|
Plug 'kovetskiy/sxhkd-vim'
|
2019-01-04 00:06:34 +00:00
|
|
|
call plug#end()
|
|
|
|
|
2019-01-19 15:19:10 +00:00
|
|
|
set bg=light
|
2019-03-20 18:44:26 +00:00
|
|
|
set go=a
|
2019-01-19 15:19:10 +00:00
|
|
|
set mouse=a
|
|
|
|
set nohlsearch
|
2019-11-23 20:35:16 +00:00
|
|
|
set clipboard+=unnamedplus
|
2019-03-11 20:44:20 +00:00
|
|
|
|
2019-01-04 00:06:34 +00:00
|
|
|
" Some basics:
|
2019-03-11 20:44:47 +00:00
|
|
|
nnoremap c "_c
|
2019-01-04 00:06:34 +00:00
|
|
|
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:
|
2019-02-02 13:21:19 +00:00
|
|
|
map <leader>f :Goyo \| set bg=light \| set linebreak<CR>
|
2019-01-04 00:06:34 +00:00
|
|
|
|
|
|
|
" Spell-check set to <leader>o, 'o' for 'orthography':
|
|
|
|
map <leader>o :setlocal spell! spelllang=en_us<CR>
|
|
|
|
|
|
|
|
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
|
|
|
|
set splitbelow splitright
|
|
|
|
|
2019-01-19 15:19:10 +00:00
|
|
|
" Nerd tree
|
2019-03-11 20:42:15 +00:00
|
|
|
map <leader>n :NERDTreeToggle<CR>
|
2019-01-19 15:19:10 +00:00
|
|
|
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
|
|
|
|
2019-02-02 13:20:58 +00:00
|
|
|
" vimling:
|
|
|
|
nm <leader>d :call ToggleDeadKeys()<CR>
|
|
|
|
imap <leader>d <esc>:call ToggleDeadKeys()<CR>a
|
|
|
|
nm <leader>i :call ToggleIPA()<CR>
|
|
|
|
imap <leader>i <esc>:call ToggleIPA()<CR>a
|
|
|
|
nm <leader>q :call ToggleProse()<CR>
|
|
|
|
|
2019-01-04 00:06:34 +00:00
|
|
|
" Shortcutting split navigation, saving a keypress:
|
|
|
|
map <C-h> <C-w>h
|
|
|
|
map <C-j> <C-w>j
|
|
|
|
map <C-k> <C-w>k
|
|
|
|
map <C-l> <C-w>l
|
|
|
|
|
|
|
|
" Check file in shellcheck:
|
|
|
|
map <leader>s :!clear && shellcheck %<CR>
|
|
|
|
|
|
|
|
" Open my bibliography file in split
|
|
|
|
map <leader>b :vsp<space>$BIB<CR>
|
|
|
|
map <leader>r :vsp<space>$REFER<CR>
|
|
|
|
|
|
|
|
" Replace all is aliased to S.
|
|
|
|
nnoremap S :%s//g<Left><Left>
|
|
|
|
|
|
|
|
" Compile document, be it groff/LaTeX/markdown/etc.
|
2019-01-19 15:19:10 +00:00
|
|
|
map <leader>c :w! \| !compiler <c-r>%<CR>
|
2019-01-04 00:06:34 +00:00
|
|
|
|
|
|
|
" Open corresponding .pdf/.html or preview
|
|
|
|
map <leader>p :!opout <c-r>%<CR><CR>
|
|
|
|
|
|
|
|
" 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'}
|
2019-05-28 14:29:45 +00:00
|
|
|
map <leader>v :VimwikiIndex
|
2019-11-23 20:35:16 +00:00
|
|
|
let g:vimwiki_list = [{'path': '~/vimwiki', 'syntax': 'markdown', 'ext': '.md'}]
|
2019-01-04 00:06:34 +00:00
|
|
|
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
|
|
|
|
|
2019-11-23 20:02:19 +00:00
|
|
|
" Copy selected text to system clipboard:
|
2019-01-04 00:06:34 +00:00
|
|
|
vnoremap <C-c> "+y
|
|
|
|
map <C-p> "+P
|
|
|
|
|
2019-11-23 20:35:16 +00:00
|
|
|
" Save file as sudo on files that require root permission
|
|
|
|
cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!
|
|
|
|
|
2019-01-04 00:06:34 +00:00
|
|
|
" Enable Goyo by default for mutt writting
|
|
|
|
autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80
|
2019-05-28 14:29:45 +00:00
|
|
|
autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo | set bg=light
|
2019-11-23 20:02:19 +00:00
|
|
|
autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x!<CR>
|
|
|
|
autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q!<CR>
|
2019-01-04 00:06:34 +00:00
|
|
|
|
|
|
|
" Automatically deletes all trailing whitespace on save.
|
|
|
|
autocmd BufWritePre * %s/\s\+$//e
|
|
|
|
|
2019-05-28 14:29:45 +00:00
|
|
|
" When shortcut files are updated, renew bash and ranger configs with new material:
|
2019-11-23 20:02:19 +00:00
|
|
|
autocmd BufWritePost files,directories !shortcuts
|
2019-01-04 00:06:34 +00:00
|
|
|
" Run xrdb whenever Xdefaults or Xresources are updated.
|
2019-03-11 20:42:15 +00:00
|
|
|
autocmd BufWritePost *Xresources,*Xdefaults !xrdb %
|
2019-05-28 14:29:45 +00:00
|
|
|
" Update binds when sxhkdrc is updated.
|
|
|
|
autocmd BufWritePost *sxhkdrc !pkill -USR1 sxhkd
|