commit 70e536931d83f3a130d56c2bfdfd86da4b1f8221
parent 73ed6170d7d6eff6a81f146376ed086fab85410f
Author: Bharatvaj Hemanth <bharatvaj@yahoo.com>
Date: Mon, 21 Apr 2025 01:16:09 +0530
parent 73ed6170d7d6eff6a81f146376ed086fab85410f
Author: Bharatvaj Hemanth <bharatvaj@yahoo.com>
Date: Mon, 21 Apr 2025 01:16:09 +0530
Add pfs.cmd for searching through passwords Update voom.cmd to check for existing repos before cloning Replace USERPROFILE with XDG_ROOT in setup.cmd Add iabbrev file for openscad Use vsplit when editing configuration files Remove the annoying c-f and c-b buffer change binds Fix the environment variable name of xdg cache path Fix SaveAndBuild() in vim. It was trying 'make' instead of 'Make' even if vim-dispatch was installled Use FixedSys font for vim GUI in Windows
13 files changed, 214 insertions(+), 126 deletions(-)
diff --git a/.config/cmd/setup.cmd b/.config/cmd/setup.cmd @@ -62,7 +62,7 @@ call :add_path %USERPROFILE%\.local\bin\cmd rem Apply config patches rem TODO Use mklink instead of xcopy, it will prevent overriding changed files in the destination dir. -xcopy /Y %USERPROFILE%\.config\cmd\patch %USERPROFILE%\ /S /E +xcopy /Y %XDG_ROOT%\.config\cmd\patch %XDG_ROOT%\ /S /E mkdir %SYSTEMDRIVE%\bin if EXIST "%SCOOP%\apps\busybox\current\busybox.exe" (
diff --git a/.config/profile.cmd b/.config/profile.cmd @@ -11,5 +11,7 @@ doskey rm=del $* doskey clear=cls doskey cat=type $* doskey hb=sh %USERPROFILE%\.local\bin\sh\hb $* +doskey d=curl -fLO $* +doskey x=7z x $* if exist "%XDG_CONFIG_HOME%\cmd\userenv.cmd" @call %XDG_CONFIG_HOME%\cmd\userenv.cmd
diff --git a/.config/vim/ftplugin/cpp.vim b/.config/vim/ftplugin/cpp.vim @@ -1,10 +1,10 @@ augroup CppIAbbrevs autocmd! autocmd FileType c,cpp :iabbrev main@ int main(int argc, char* argv[]) {<cr><cr>}<up> - autocmd FileType c,cpp :iabbrev fun@ <esc>bvedivoid <C-o>P() {<cr><cr>}<up> + autocmd FileType c,cpp :iabbrev f@ <esc>bvedivoid <C-o>P() {<cr><cr>}<up> autocmd FileType c,cpp :iabbrev p@ printf("\n");<esc>4hi autocmd FileType c,cpp :iabbrev r@ return;<left> autocmd FileType c,cpp :iabbrev i@ #include <><left> - autocmd FileType c,cpp :iabbrev for@ <esc>bvedifor(int <c-o>P=0; <c-o>P < n; <c-o>P++) {<cr><cr>}<up> + autocmd FileType c,cpp :iabbrev l@ <esc>Bvedifor(int <c-o>P=0; <c-o>P < n; <c-o>P++) {<cr><cr>}<up> augroup END
diff --git a/.config/vim/ftplugin/openscad.vim b/.config/vim/ftplugin/openscad.vim @@ -0,0 +1,10 @@ +augroup OpenscadIAbbrevs + autocmd! + autocmd FileType scad :iabbrev function@ function {<cr><cr>}<up> + autocmd FileType scad :iabbrev fun@ <esc>bvedivoid <C-o>P() {<cr><cr>}<up> + autocmd FileType scad :iabbrev p@ printf("\n");<esc>4hi + autocmd FileType scad :iabbrev r@ return;<left> + autocmd FileType scad :iabbrev i@ #include <><left> + autocmd FileType scad :iabbrev for@ <esc>bvedifor(int <c-o>P=0; <c-o>P < n; <c-o>P++) {<cr><cr>}<up> +augroup END +
diff --git a/.gitignore b/.gitignore @@ -25,3 +25,5 @@ !.local/bin/sh/** !.local/share/ + +*.exe
diff --git a/.local/bin/cmd/pfs.cmd b/.local/bin/cmd/pfs.cmd @@ -0,0 +1,36 @@ +@echo off +setlocal + +if "%FUZZER%" == "" ( + echo Environment variable FUZZER not set + exit /b 1 +) + +if "%PASSWORD_STORE_DIR%" == "" ( + set PASSWORD_STORE_DIR="%USERPROFILE%\.local\share\pass\" +) + +if not exist "%PASSWORD_STORE_DIR%" ( + echo %PASSWORD_STORE_DIR% not set + exit /b 1 +) + +for /f %%i in ('"gopass ls -f | %FUZZER%"') do ( + set selected_pass=%%i +) + +if "%selected_pass%" equ "" ( + exit /b +) + +if "%1" equ "" ( + if "%selected_pass:~0,5%" equ "totp/" ( + gopass otp -c %selected_pass% + ) else ( + gopass show -c %selected_pass% + ) +) else ( + gopass %1 %selected_pass% +) + +endlocal
diff --git a/.local/bin/cmd/voom.cmd b/.local/bin/cmd/voom.cmd @@ -1,4 +1,5 @@ @echo off +setlocal enabledelayedexpansion rem TODO Follow the official path preference of airblade/voom rem TODO Remove plugins from pack when change is made in the plugins file @@ -8,5 +9,12 @@ if NOT EXIST %VIM_PLUGIN_PATH% ( ) cd %VIM_PLUGIN_PATH% for /f "tokens=*" %%i in ('type %USERPROFILE%\.local\share\vim\plugins ^| findstr /v "^#"') do ( - git clone https://github.com/%%i + for /f "delims=/ tokens=2" %%a in ("%%i") do set gpath=%%a + if not exist !gpath!/.git ( + git clone https://github.com/%%i + ) ) + +vim -c "helptags ALL" -c quit >nul 2>&1 + +endlocal
diff --git a/.local/share/vim/keybindings.vim b/.local/share/vim/keybindings.vim @@ -2,8 +2,8 @@ nnoremap <leader>co :copen<cr> nnoremap <leader>cd :cdo<space>s/ nnoremap <leader>cs :cdo<space>s/ -nnoremap <leader>ec :edit $HOME/.vimrc<cr> -nnoremap <leader>ek :edit $XDG_DATA_HOME/vim/keybindings.vim<cr> +nnoremap <leader>ec :vsplit $HOME/.vimrc<cr> +nnoremap <leader>ek :vsplit $XDG_DATA_HOME/vim/keybindings.vim<cr> nnoremap <leader>et :set expandtab<cr> nnoremap <leader>fa :find * nnoremap <leader>ff :find * @@ -21,6 +21,8 @@ nnoremap <leader>tt :tabnew<cr> nnoremap <leader>ta :tab * nnoremap <leader>vg :vimgrep<space> nnoremap <leader>/ :cdo %s/ +nnoremap <leader>cd :cd %:p:h<cr> +nnoremap <leader>qd :cdo s/ " Buffer Creation nnoremap <leader>sc :source $XDG_CONFIG_HOME/vim/vimrc<cr> @@ -55,15 +57,14 @@ endfunction nnoremap <c-z> :call SaveAndSuspend()<cr> inoremap <c-z> :call SaveAndSuspend()<cr> -nnoremap <c-f> :bnext<cr> -nnoremap <c-b> :bprevious<cr> - " Accessible completions inoremap <c-f> <c-x><c-f> inoremap <c-l> <c-x><c-l> " Emacs line navigation in insert mode inoremap <c-a> <c-o>0 inoremap <c-e> <c-o>A +inoremap <c-k> <c-o>D + " Behave vim nnoremap Y y$ nnoremap Q :noh<cr> @@ -74,7 +75,7 @@ nnoremap <leader>oh :grepadd /:: % nnoremap <leader>fb :b * -nnoremap <c-p> :call FZYFiles()<cr> +nnoremap <c-/> :call FZYFiles()<cr> " TODO reflect on whether <leader><leader> is productive, I keep hitting it " accidentally "nnoremap <leader><leader> :Rg<cr> @@ -125,7 +126,6 @@ nnoremap <CR> :noh<CR><CR>:<backspace> nnoremap <leader>cc :ChecklistToggleCheckbox<cr> nnoremap <leader>ct :ChecklistToggleCheckbox<cr> nnoremap <leader>ce :ChecklistEnableCheckbox<cr> -"nnoremap <leader>cd :ChecklistDisableCheckbox<cr> let g:gutentags_file_list_command = 'rg --files' @@ -145,32 +145,49 @@ fun! GotoWindow(id) call win_gotoid(a:id) endfun + +fun! StartDebugging() + doautocmd User DebuggingStarted + :call vimspector#Launch()<CR> +endfun + +" Easy save +nnoremap <esc>s :w<cr> + +" Fly through windows +nnoremap <esc>h <c-w>h +nnoremap <esc>j <c-w>j +nnoremap <esc>k <c-w>k +nnoremap <esc>l <c-w>l + " Debugger remaps -nnoremap <leader>dd :call vimspector#Launch()<CR> +nnoremap <F5> :call StartDebugging()<cr> nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR> nnoremap <leader>dt :call GotoWindow(g:vimspector_session_windows.tagpage)<CR> nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR> nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR> nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR> nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR> -nnoremap <leader>de :call vimspector#Reset()<CR> +nnoremap <S-F5> :call vimspector#Reset()<CR> nnoremap <leader>dtcb :call vimspector#CleanLineBreakpoint()<CR> -nmap <leader>dl <Plug>VimspectorStepInto -nmap <leader>dj <Plug>VimspectorStepOver -nmap <leader>dk <Plug>VimspectorStepOut -nmap <leader>d_ <Plug>VimspectorRestart -nnoremap <leader>d<space> :call vimspector#Continue()<CR> +fun! SetupDebuggingKeymaps() + nmap <c-n> <Plug>VimspectorStepOver + nmap <c-i> <Plug>VimspectorStepInto + nmap <m-i> <Plug>VimspectorStepOut + nmap <c-s-r> <Plug>VimspectorRestart + nmap <F5> :call vimspector#Continue()<CR> +endfun + +augroup debugmode + autocmd User DebuggingStarted :call SetupDebuggingKeymaps() +augroup END nmap <leader>drc <Plug>VimspectorRunToCursor nmap <leader>dbp <Plug>VimspectorToggleBreakpoint nmap <leader>dcbp <Plug>VimspectorToggleConditionalBreakpoint -" nb -" TODO open a fuzzy finder quickly. Even better use fuzzy finder without chdir -nnoremap <leader>nb :chdir $NB_PATH<cr> - nnoremap cn *``cgn nnoremap cN *``cgN let g:mc = "y/\\V\<C-r>=escape(@\", '/')\<CR>\<CR>"
diff --git a/.local/share/vim/plugin.vim b/.local/share/vim/plugin.vim @@ -59,8 +59,12 @@ endfunction " Run Make function SaveAndBuild() - wall + wall + if exists(":Make") Make + else + make + endif endfunction function QuickUnderline(n)
diff --git a/.local/share/vim/plugins b/.local/share/vim/plugins @@ -4,43 +4,53 @@ tpope/vim-fugitive tpope/vim-surround tpope/vim-unimpaired tpope/vim-repeat -Bestoa/SearchComplete tpope/vim-projectionist junegunn/goyo.vim AndrewRadev/tagalong.vim +jpalardy/vim-slime +Shougo/vimproc.vim +yuratomo/dbg.vim +PreciousChicken/vim-groff-viewer +hattya/vcvars.vim +mbbill/undotree +chrisbra/csv.vim +ldrumm/compiler-explorer.vim +vim-scripts/todo-txt.vim +yegappan/mru +907th/vim-auto-save +#yegappan/searchcomplete +# https://git.sr.ht/~torresjrjr/birck.vim +# mfussenegger/nvim-dap +# neovim/nvim-lspconfig +# preservim/tagbar +# puremourning/vimspector +# rcarriga/nvim-dap-ui +# terrortylor/nvim-comment +# xolox/vim-easytags +# xolox/vim-misc #ap/vim-css-color +#Bestoa/SearchComplete +#bfrg/vim-fzy #cfdrake/vim-pbxproj -#ervandew/supertab -#vim-scripts/vimacs -#vim-scripts/SearchComplete #christoomey/vim-tmux-navigator +#ervandew/supertab #evansalter/vim-checklist #ferranpm/vim-maildir +#gfontenot/vim-xcode #https://github.com/bfrg/vim-jqplay +#jerrymarino/xcodebuild.vim #joereynolds/vim-minisnip/ +#kana/vim-submode +#keith/swift.vim #nachumk/systemverilog.vim #notmuch-vim/notmuch-vim #ntpeters/vim-better-whitespace.git +#omniSharp/omnisharp-vim #radenling/vim-dispatch-neovim #tommcdo/vim-ninja-feet.git #torrancew/vim-openscad -#yegappan/mru - #vim-scripts/gitignore -#kana/vim-submode -#omniSharp/omnisharp-vim -#bfrg/vim-fzy -#jerrymarino/xcodebuild.vim -#gfontenot/vim-xcode -#keith/swift.vim - -# https://git.sr.ht/~torresjrjr/birck.vim -# rcarriga/nvim-dap-ui -# mfussenegger/nvim-dap -# terrortylor/nvim-comment -# neovim/nvim-lspconfig -# puremourning/vimspector -# xolox/vim-misc -# xolox/vim-easytags -# preservim/tagbar +#vim-scripts/SearchComplete +#vim-scripts/vimacs +#https://git.sr.ht/~ackyshake/VimCompletesMe.vim
diff --git a/.local/share/vim/vimrc b/.local/share/vim/vimrc @@ -1,13 +1,11 @@ set packpath^=$XDG_DATA_HOME/vim let g:minisnip_dir=$XDG_DATA_HOME . '/vim/minisnip' +source $XDG_DATA_HOME/vim/keybindings.vim +set packpath^=$XDG_DATA_HOME/vim -set nocursorline set background=dark source $XDG_DATA_HOME/vim/hyper-red.vim -set noexpandtab - -set path+=** -set wildignore+=**/out/** +let g:birck_default_chan="irc.libera.chat"
diff --git a/.profile b/.profile @@ -88,5 +88,6 @@ HISTTIMEFORMAT="%F %T " HISTCONTROL=erasedups . "${XDG_CONFIG_HOME}/sh/functions" +. "${XDG_CONFIG_HOME}/sh/aliases" [ -f "${XDG_CONFIG_HOME}/sh/unstaged" ] && . "${XDG_CONFIG_HOME}/sh/unstaged"
diff --git a/.vimrc b/.vimrc @@ -1,48 +1,34 @@ -syntax on indent off +syntax on + +" Handle XDG_ missing gracefully +if empty("$XDG_CACHE_HOME") + let $XDG_CACHE_HOME=$HOME/.cache +endif if has("&viminfofile") - set viminfofile=$XDG_CACHE_DIR/vim/viminfo + set viminfofile=$XDG_CACHE_HOME/vim/viminfo endif -" reject netrw, embrace ls -"let loaded_netrwPlugin = 1 - -set complete-=i -set foldmethod=marker -set foldmarker={,} -set foldlevel=20 -set foldopen-=search - -" Debug -let g:termdebug_config = {'sign': '>>', 'winbar': 0, 'wide':163} - " General -set nocompatible -set mouse= -set cursorline -if has('cursorlineopt') - set cursorlineopt=number -endif +set ai set exrc - -" Turn backup off -set nobackup -set nowb -set noswapfile - -" Map leader to space -nnoremap <space> <Nop> -let mapleader = " " - -" Enable hidden buffers set hidden - -" Disable auto fixing end of line -" Useful when opening binary files +set mouse= +set nocompatible +set noexpandtab set nofixendofline - -" Disable vim intro message set shortmess=Iat -set shortmess-=F + +" Turn backup off +"set nobackup +"set nowb +"set noswapfile + +if v:version >= 901 + set cursorline + set cursorlineopt=number + set display=lastline + set smoothscroll +endif " Search set hlsearch @@ -55,11 +41,6 @@ set tabstop=4 set shiftwidth=4 set expandtab -" Netrw customization -let g:netrw_banner = 0 -let g:netrw_liststyle = 3 -let g:netrw_fastbrowse= 2 - " Disable status set laststatus=1 @@ -67,31 +48,48 @@ set nolazyredraw set ttyfast set nospell +" Netrw customization +let g:netrw_banner = 0 +let g:netrw_liststyle = 3 +let g:netrw_fastbrowse= 2 +let g:netrw_preview = 1 +let g:netrw_winsize = 20 -" Common vimrc source $XDG_DATA_HOME/vim/vimrc +au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif -source $XDG_DATA_HOME/vim/keybindings.vim +let g:loaded_vimballPlugin = 1 +let g:loaded_vimball = 1 +let g:loaded_getscriptPlugin = 1 -set packpath^=$XDG_DATA_HOME/vim +let maplocalleader=" " +set complete-=i +set foldmethod=marker +set foldmarker={,} +set foldlevel=20 +set foldopen-=search + +" Debug +let g:termdebug_config = {'sign': '>>', 'winbar': 0, 'wide':163} function! FZYFiles() abort - let l:tempname = tempname() - " fzf | awk '{ print $1":1:0" }' > file - execute 'silent !git ls-files --recurse-submodules | fzf > ' . fnameescape(l:tempname) + let l:tempname = tempname() + " fzf | awk '{ print $1":1:0" }' > file + execute 'silent !git ls-files --recurse-submodules | fzf > ' . fnameescape(l:tempname) let l:tcontents = join(readfile(l:tempname)) - try + try " TODO Add option to add multiple files to argslist "execute 'argadd ' . l:tcontents let bufnr = bufadd(l:tcontents) call bufload(bufnr) "call setbufline(bufnr, 1, ['some', 'text']) - execute 'edit ' . l:tcontents - redraw! - finally - call delete(l:tempname) - endtry + execute 'edit ' . l:tcontents + redraw! + finally + call delete(l:tempname) + endtry endfunction + let g:lsc_server_commands = {'cpp': 'clangd --log=error'} let g:lsc_auto_map = { \ 'GoToDefinition': '<C-]>', @@ -111,21 +109,20 @@ let g:lsc_enable_diagnostics = v:true let g:lsc_reference_highlights = v:false let g:lsc_trace_level = 'off' +set synmaxcol=128 +set runtimepath^='$XDG_CONFIG_HOME/vim' +set runtimepath+='$XDG_DATA_HOME/vim' +set runtimepath+='$XDG_CONFIG_HOME/vim/after' + +let g:netrw_home = $XDG_DATA_HOME . "/vim" +call mkdir($XDG_DATA_HOME . "/vim/spell", 'p') +set viewdir=$XDG_DATA_HOME/vim/view | call mkdir(&viewdir, 'p') + +set backupdir=$XDG_CACHE_HOME/vim/backup | call mkdir(&backupdir, 'p') +set directory=$XDG_CACHE_HOME/vim/swap | call mkdir(&directory, 'p') +set undodir=$XDG_CACHE_HOME/vim/undo | call mkdir(&undodir, 'p') + function! s:load_plugins(t) abort - set synmaxcol=128 - " Use XDG Paths for vim - " TODO compile hard constants somewhere based on OS - set runtimepath^='$XDG_CONFIG_HOME/vim' - set runtimepath+='$XDG_DATA_HOME/vim' - set runtimepath+='$XDG_CONFIG_HOME/vim/after' - - let g:netrw_home = $XDG_DATA_HOME . "/vim" - call mkdir($XDG_DATA_HOME . "/vim/spell", 'p') - set viewdir=$XDG_DATA_HOME/vim/view | call mkdir(&viewdir, 'p') - - set backupdir=$XDG_CACHE_HOME/vim/backup | call mkdir(&backupdir, 'p') - set directory=$XDG_CACHE_HOME/vim/swap | call mkdir(&directory, 'p') - set undodir=$XDG_CACHE_HOME/vim/undo | call mkdir(&undodir, 'p') packadd vim-tmux-navigator packadd vim-commentary packadd vim-surround @@ -151,21 +148,24 @@ augroup user_cmds autocmd VimEnter * call timer_start(20, function('s:load_plugins')) augroup END +source $XDG_CONFIG_HOME/vim/ftplugin/cpp.vim +source $XDG_DATA_HOME/vim/plugin.vim + if has("gui") set guioptions= + set mouse=a + if has("win32") + set guifont=FixedSys:h11:cANSI:qDRAFT + colorscheme default + set background=light + endif endif if has("win32") -set shell=cmd + set shell=cmd set shellquote=\" " shellxquote must be a literal space character. set shellxquote= else - set shell=sh + set shell=sh endif - -" TODO load this automatically -source $XDG_CONFIG_HOME/vim/ftplugin/cpp.vim -source $XDG_DATA_HOME/vim/plugin.vim - -let g:birck_default_chan="irc.libera.chat"