summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornic <ra@afu.re>2024-01-06 12:24:08 -0500
committernic <ra@afu.re>2024-01-06 12:24:08 -0500
commit2b088b332ed493e2fb3282003fb56adabc6dcaf7 (patch)
tree8f5284915c1873b0410b13a9877fd3af126a69d8
parent84ee878342ebfa109ac547b91616eabbd7bfd30a (diff)
Add Neovim config
-rw-r--r--.config/nvim/init.vim86
1 files changed, 86 insertions, 0 deletions
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
new file mode 100644
index 0000000..732ff43
--- /dev/null
+++ b/.config/nvim/init.vim
@@ -0,0 +1,86 @@
+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'
+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 molokai
+" make it so theme as no black background like default
+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'}
+ let g:vimwiki_list = [{'path': '~/Documents/vimwiki', '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
+
+" Runs a script that cleans out tex build files whenever I close out of a .tex file.
+ autocmd VimLeave *.tex !texclear %
+" Save file as doas? on files that require root permission
+" cabbrev w!! execute 'silent! write !doas 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>