summaryrefslogtreecommitdiff
path: root/.config/nvim/init.vim
blob: ed6d1ba7c4064c1e70db51badd2945c58c78c27c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
let mapleader =","

if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim"'))
	echo "Downloading junegunn/vim-plug to manage plugins..."
	silent !mkdir -p ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/
	silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autoload/plug.vim
	autocmd VimEnter * PlugInstall
endif

call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"'))
Plug 'bling/vim-airline'
Plug 'vimwiki/vimwiki'
Plug 'junegunn/goyo.vim'
Plug 'ap/vim-css-color'
Plug 'tomasr/molokai'
Plug 'michal-h21/vim-zettel'
Plug 'michal-h21/vimwiki-sync'
call plug#end()

set title
set go=a
set mouse=a
"set nohlsearch
set clipboard+=unnamedplus
set noshowmode
set noruler
set laststatus=0
set noshowcmd
set scrolloff=7
set noswapfile
set nobackup

colorscheme bloomberg
" make it so colorscheme respect xcompmgr
hi Normal ctermbg=NONE
hi NonText ctermbg=NONE


" 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
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
	set splitbelow splitright
" Automatically deletes all trailing whitespace and newlines at end of file on save  & reset cursor position.
 	autocmd BufWritePre * let currPos = getpos(".")
	autocmd BufWritePre * %s/\s\+$//e
	autocmd BufWritePre * %s/\n\+\%$//e
	autocmd BufWritePre *.[ch] %s/\%$/\r/e " add trailing newline for ANSI C standard
	autocmd BufWritePre *neomutt* %s/^--$/-- /e " dash-dash-space signature delimiter in emails
  	autocmd BufWritePre * cal cursor(currPos[1], currPos[2])
" When shortcut files are updated, renew configs with new material:
	autocmd BufWritePost bm-files,bm-dirs !shortcuts
" Run xrdb whenever Xdefaults or Xresources are updated.
	autocmd BufRead,BufNewFile Xresources,Xdefaults,xresources,xdefaults set filetype=xdefaults
	autocmd BufWritePost Xresources,Xdefaults,xresources,xdefaults !xrdb %
" Ensure files are read the way I want
	let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'}
" Each path becomes its own wiki
	let g:vimwiki_list = [
			\{'path': '~/.local/share/vimwiki', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Finance', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Finance/Fundamentals', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Finance/Research', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Finance/Research/Tickers', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Technology', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/Technology/Gentoo', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/vimwiki/👁️', 'syntax': 'markdown', 'ext': '.md'},
			\{'path': '~/.local/share/Cuisine', 'syntax': 'markdown', 'ext': '.md'}]

	let g:vimwiki_sync_commit_message = 'Auto from nzxt - %c'

	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
" Runs a script that cleans out tex build files whenever I close out of a .tex file.
	autocmd VimLeave *.tex !texclear %
" Save file as sudo on files that require root permission
	cabbrev w!! execute 'silent! write !sudo tee % >/dev/null' <bar> edit!

	" Bindings
" Spell-check set to <leader>o, 'o' for 'orthography':
	map <leader>o :setlocal spell! spelllang=en_us<CR>
" Compile document, be it groff/LaTeX/markdown/etc.
	map <leader>c :w! \| !compiler "<c-r>%"<CR>
" Open corresponding .pdf/.html or preview
	map <leader>p :!opout <c-r>%<CR><CR>
" Goyo plugin makes text more readable when writing prose:
	map <leader>f :Goyo \| set bg=light \| set linebreak<CR>
" Enable Goyo by default for mutt writing
	"autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80
	"autocmd BufRead,BufNewFile /tmp/neomutt* :Goyo
	"autocmd BufRead,BufNewFile /tmp/neomutt* map ZZ :Goyo\|x!<CR>
	"autocmd BufRead,BufNewFile /tmp/neomutt* map ZQ :Goyo\|q!<CR>