From 782a0827399417c37d60790fa7fbc83daeda2bdb Mon Sep 17 00:00:00 2001 From: Tucker Johnson Date: Thu, 6 Feb 2025 07:35:31 -0500 Subject: [PATCH 1/1] init --- .gitignore | 6 +++ ftplugin/groff.vim | 1 + ftplugin/lilypond.vim | 1 + ftplugin/markdown.vim | 8 ++++ ftplugin/supercollider.vim | 37 ++++++++++++++ init.vim | 98 ++++++++++++++++++++++++++++++++++++++ shortcuts.vim | 8 ++++ 7 files changed, 159 insertions(+) create mode 100644 .gitignore create mode 100644 ftplugin/groff.vim create mode 100644 ftplugin/lilypond.vim create mode 100644 ftplugin/markdown.vim create mode 100644 ftplugin/supercollider.vim create mode 100644 init.vim create mode 100644 shortcuts.vim diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a9d9156 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +autoload/ +plugged/ +!init.vim +!shortcuts.vim +!ftplugin/*.vim +!lua/*.lua diff --git a/ftplugin/groff.vim b/ftplugin/groff.vim new file mode 100644 index 0000000..9e56fb5 --- /dev/null +++ b/ftplugin/groff.vim @@ -0,0 +1 @@ +map R :vsp$REFER diff --git a/ftplugin/lilypond.vim b/ftplugin/lilypond.vim new file mode 100644 index 0000000..ffb218f --- /dev/null +++ b/ftplugin/lilypond.vim @@ -0,0 +1 @@ +autocmd FileType lilypond setlocal commentstring=%\ %s diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim new file mode 100644 index 0000000..0e2a9ca --- /dev/null +++ b/ftplugin/markdown.vim @@ -0,0 +1,8 @@ +" splits +map T :80vsp$TODO +map C :vsp$CALENDAR + +" to-do lists +imap o-[] +nmap o-[] +nmap :.s/\-\[\]/\-\[x\]/ diff --git a/ftplugin/supercollider.vim b/ftplugin/supercollider.vim new file mode 100644 index 0000000..984aae7 --- /dev/null +++ b/ftplugin/supercollider.vim @@ -0,0 +1,37 @@ +autocmd FileType scnvim setlocal wrap + +lua << EOF +local scnvim = require 'scnvim' +local map = scnvim.map +local map_expr = scnvim.map_expr + +scnvim.setup({ + keymaps = { + [''] = { + map('editor.send_block', 'n'), + map('editor.send_selection', 'x'), + }, + [''] = map('postwin.toggle'), + [''] = map('postwin.toggle', 'i'), + [''] = map('postwin.clear', {'n', 'i'}), + [''] = map('signature.show', {'n', 'i'}), + [''] = map('sclang.hard_stop', {'n', 'x', 'i'}), + ['ST'] = map('sclang.start'), + ['SP'] = map('sclang.stop'), + ['SK'] = map('sclang.recompile'), + ['BS'] = map_expr('s.boot'), + ['FA'] = map_expr('s.freeAll'), + ['KA'] = map_expr('Server.killAll'), + [''] = map_expr('s.meter'), + }, + editor = { + highlight = { + color = 'IncSearch', + }, + }, + postwin = { + highlight = true, + size = 80, + }, +}) +EOF diff --git a/init.vim b/init.vim new file mode 100644 index 0000000..6d9f1c2 --- /dev/null +++ b/init.vim @@ -0,0 +1,98 @@ +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 + +map ,, :keepp /<++>ca< + +call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) +Plug 'tribela/vim-transparent' +Plug 'sainnhe/gruvbox-material' +Plug 'tpope/vim-surround' +Plug 'tommcdo/vim-express' +Plug 'preservim/nerdtree' +Plug 'vimwiki/vimwiki' +Plug 'vim-airline/vim-airline' +Plug 'tpope/vim-commentary' +Plug 'ap/vim-css-color' +Plug 'davidgranstrom/scnvim' +call plug#end() + +set title +set bg=dark +set go=a +set nohlsearch +syntax on +set clipboard+=unnamedplus +set noshowmode +set noruler +set nowrap +set laststatus=0 +set noshowcmd +set tabstop=4 +set shiftwidth=4 +set expandtab +set mouse= + +let g:gruvbox_material_better_performance = 1 +let g:gruvbox_material_ui_contrast = 1 +let g:gruvbox_material_foreground = 'original' + +colorscheme gruvbox-material + +nnoremap c "_c +set nocompatible +filetype plugin on +set encoding=utf-8 +set number relativenumber +set wildmode=longest,list,full +autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o +" Perform dot commands over visual blocks: +vnoremap . :normal . +" Spell-check set to 'o' for 'orthography': +map o :setlocal spell! spelllang=en_us + +" splits +set splitbelow splitright +map h +map j +map k +map l + +" Nerd tree +let NERDTreeMinimalUI=1 +map n :NERDTreeToggle +let g:NERDTreeChDirMode = 2 +autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif + +" Replace all +nnoremap S :%s//g + +" Compile and viewing +map c :w! \| !compiler "%:p" +map p :!opout "%:p" + +" Reading Files +let g:vimwiki_ext2syntax = {'.Rmd': 'markdown', '.rmd': 'markdown','.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} +let g:vimwiki_list = [{'path': '~/.local/share/nvim/vimwiki', 'syntax': 'markdown', 'ext': '.md'}] +autocmd BufRead,BufNewFile *.ms,*.me,*.mom,*.man set filetype=groff + +" Sudo file saves +cabbrev w!! execute 'silent! write !sudo tee % >/dev/null' edit! + +" remove trailing whitespace and newlines on write +autocmd BufWritePre * let currPos = getpos(".") +autocmd BufWritePre * %s/\s\+$//e +autocmd BufWritePre * %s/\n\+\%$//e +autocmd BufWritePre *.[ch] %s/\%$/\r/e +autocmd BufWritePre * cal cursor(currPos[1], currPos[2]) + +" 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 % + +silent! source ~/.config/nvim/shortcuts.vim diff --git a/shortcuts.vim b/shortcuts.vim new file mode 100644 index 0000000..f9fdccc --- /dev/null +++ b/shortcuts.vim @@ -0,0 +1,8 @@ +cmap ;cac ~/.cache +cmap ;cf ~/.config +cmap ;dl ~/Downloads +cmap ;h ~/ +cmap ;d ~/Documents +cmap ;ls ~/.local/share +cmap ;lb ~/.local/bin +cmap ;rr ~/.local/src -- 2.39.5