diff options
| author | nic <ra@afu.re> | 2025-05-17 14:28:16 -0400 |
|---|---|---|
| committer | nic <ra@afu.re> | 2025-05-17 14:28:16 -0400 |
| commit | ba77fe79478b16615741389786d0209f524e52fd (patch) | |
| tree | a84c926543d140d16fc49eaebd84cdf2e0e4f0e0 | |
| parent | bea9c142d337163f963b7e000db6738510a52991 (diff) | |
Nvim config rewrite in Lua
| -rw-r--r-- | .config/nvim/init.lua | 111 | ||||
| -rw-r--r-- | .config/nvim/init.vim | 101 | ||||
| -rw-r--r-- | .config/wget/wgetrc | 1 |
3 files changed, 112 insertions, 101 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..e02a957 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,111 @@ +vim.g.mapleader = "," + +-- Auto-install vim-plug if not present +local install_path = vim.fn.stdpath('config')..'/autoload/plug.vim' +if vim.fn.empty(vim.fn.glob(install_path)) > 0 then + print("Downloading junegunn/vim-plug to manage plugins...") + vim.fn.system({ + 'curl', '-fLo', install_path, '--create-dirs', + 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' + }) + vim.cmd('autocmd VimEnter * PlugInstall') +end + +-- Plugin declarations in pure Lua +local Plug = vim.fn['plug#'] +vim.call('plug#begin', vim.fn.stdpath('config')..'/plugged') +Plug('bling/vim-airline') +Plug('ap/vim-css-color') +Plug('vimwiki/vimwiki') +Plug('michal-h21/vimwiki-sync') +vim.call('plug#end') + +-- General settings +vim.opt.title = true +vim.opt.mouse = "a" +vim.opt.clipboard:append("unnamedplus") +vim.opt.showmode = false +vim.opt.ruler = false +vim.opt.laststatus = 0 +vim.opt.showcmd = false +vim.opt.scrolloff = 7 +vim.opt.swapfile = false +vim.opt.backup = false + +vim.cmd('colorscheme bloomberg') +--vim.cmd('hi Normal ctermbg=NONE') +--vim.cmd('hi NonText ctermbg=NONE') + +-- Basics +vim.keymap.set('n', 'c', '"_c') +vim.cmd('filetype plugin on') +vim.cmd('syntax on') +vim.opt.encoding = "utf-8" +vim.opt.number = true +vim.opt.relativenumber = true +-- Enable autocmpletion: +vim.opt.wildmode = "longest,list,full" +-- Disable automatic commenting on new line +vim.opt.formatoptions:remove({'c', 'r', 'o'}) +-- Splits open at the bottom and right, which is non-retarded, unlike vim defaults. +vim.opt.splitbelow = true +vim.opt.splitright = true + +-- Autocommands +-- Automatically deletes all trailing whitespace and newlines at end of file on save & reset cursor position. +vim.api.nvim_create_augroup('Format', {clear = true}) +vim.api.nvim_create_autocmd('BufWritePre', { + group = 'Format', + pattern = '*', + callback = function() + local pos = vim.fn.getpos('.') + vim.cmd([[silent! keeppatterns %s/\s\+$//e]]) + vim.cmd([[silent! keeppatterns %s/\n\+\%$//e]]) + local fname = vim.fn.expand('%') + if fname:match('%.c$') or fname:match('%.h$') then + vim.cmd([[silent! keeppatterns %s/\%$/\r/e]]) + end + if fname:match('neomutt') then + vim.cmd([[silent! keeppatterns %s/^--$/-- /e]]) + end + vim.fn.cursor(pos[2], pos[3]) + end +}) +-- When shortcut files are updated, renew configs with new material: +vim.api.nvim_create_autocmd("BufWritePost", { pattern = { "bm-files", "bm-dirs" }, command = "!shortcuts" }) +-- Run xrdb whenever Xdefaults or Xresources are updated. +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = { "Xresources", "Xdefaults", "xresources", "xdefaults" }, command = "set filetype=xdefaults" }) +vim.api.nvim_create_autocmd("BufWritePost", { pattern = { "Xresources", "Xdefaults", "xresources", "xdefaults" }, command = "!xrdb %" }) + +-- Vimwiki configuration +vim.g.vimwiki_ext2syntax = {['.Rmd'] = 'markdown', ['.rmd'] = 'markdown', ['.md'] = 'markdown', ['.markdown'] = 'markdown', ['.mdown'] = 'markdown'} + +vim.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/cs', syntax = 'markdown', ext = '.md'}, + {path = '~/.local/share/vimwiki/cs/Gentoo', syntax = 'markdown', ext = '.md'}, + {path = '~/.local/share/vimwiki/arcana', syntax = 'markdown', ext = '.md'}, + {path = '~/.local/share/Cuisine', syntax = 'markdown', ext = '.md'} +} + +vim.g.vimwiki_sync_commit_message = 'Auto from nzxt - %c' + +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = { "/tmp/calcurse*", "~/.calcurse/notes/*" }, command = "set filetype=markdown" }) +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = { "*.ms", "*.me", "*.mom", "*.man" }, command = "set filetype=groff" }) +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = "*.tex", command = "set filetype=tex" }) +-- Runs a script that cleans out tex build files whenever I close out of a .tex file. +vim.api.nvim_create_autocmd("VimLeave", { pattern = "*.tex", command = "!texclear %" }) +-- Save file as sudo on files that require root permission +vim.cmd([[cabbrev w!! execute 'silent! write !sudo tee % >/dev/null' \| edit!]]) + +-- Bindings +-- Spell-check set to <leader>o, 'o' for 'orthography' +vim.keymap.set("n", "<leader>o", ":setlocal spell! spelllang=en_us<CR>", { desc = "Toggle spell-check (en_us)" }) +-- Compile document, be it groff/LaTeX/markdown/etc. +vim.keymap.set("n", "<leader>c", ':w! | !compiler "%"<CR>', { desc = "Compile document, be it groff/LaTeX/markdown/etc." }) +-- Open corresponding .pdf/.html or preview +vim.keymap.set("n", "<leader>p", ':!opout "%"<CR><CR>', { desc = "Open PDF/HTML/preview for current file" }) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index ed6d1ba..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,101 +0,0 @@ -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> diff --git a/.config/wget/wgetrc b/.config/wget/wgetrc new file mode 100644 index 0000000..4fd7999 --- /dev/null +++ b/.config/wget/wgetrc @@ -0,0 +1 @@ +hsts-file=~/.cache/wget-hsts |
