From 566c51c4d643c29e2c9b3b8ebfcbd45dbf83d331 Mon Sep 17 00:00:00 2001 From: Andrejus Date: Tue, 23 Dec 2025 12:56:22 +0200 Subject: [PATCH] feat: vimrc --- .gitignore | 4 ++ files/home/.vimrc | 146 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 files/home/.vimrc diff --git a/.gitignore b/.gitignore index 0c1de35..940053a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,7 @@ temp # setup files **/autoload **/pypoetry + +# darwin +.DS_Store + diff --git a/files/home/.vimrc b/files/home/.vimrc new file mode 100644 index 0000000..97751ed --- /dev/null +++ b/files/home/.vimrc @@ -0,0 +1,146 @@ +let mapleader = " " + +set number relativenumber +set ignorecase smartcase incsearch hlsearch +set autoindent expandtab tabstop=4 shiftwidth=4 softtabstop=4 +set scrolloff=8 wildmenu showcmd laststatus=2 +set hidden +set noswapfile nobackup undofile +let s:undo_dir = expand('~/.vim/undodir') +if !isdirectory(s:undo_dir) + call mkdir(s:undo_dir, 'p') +endif +set undodir=~/.vim/undodir +set undolevels=1000 +set undoreload=10000 +set belloff=all +set noerrorbells + +set lazyredraw +set synmaxcol=500 +set redrawtime=500 +set maxmempattern=5000 +set nomodeline +set noshowmatch +silent! set diffopt+=vertical,algorithm:histogram,indent-heuristic,iwhite,foldcolumn:0 + +if executable('rg') + set grepprg=rg\ --vimgrep\ --smart-case\ --hidden\ -g\ '!.git' + set grepformat=%f:%l:%c:%m +endif +set path+=** +set wildignore+=**/node_modules/**,**/.git/**,**/vendor/** +set wildignore+=**/tmp/**,**/dist/**,**/build/**,**/__pycache__/**,**/*.pyc + +augroup filetypes + autocmd! + autocmd FileType gitcommit setlocal spell spelllang=en_gb textwidth=72 colorcolumn=50,72 + autocmd FileType go setlocal noexpandtab softtabstop=0 + autocmd FileType markdown,text setlocal spell spelllang=en_gb wrap + autocmd FileType python setlocal textwidth=88 colorcolumn=88 + autocmd FileType typescript,typescriptreact setlocal syntax=javascript + autocmd FileType qf nnoremap q :cclose +augroup END + +augroup quickfix + autocmd! + autocmd QuickFixCmdPost [^l]* cwindow +augroup END + +let g:netrw_banner = 0 +let g:netrw_liststyle = 3 +let g:netrw_browse_split = 4 + +set background=dark + +if $COLORTERM ==# 'truecolor' || $COLORTERM ==# '24bit' + set termguicolors +endif + +highlight clear +if exists("syntax_on") + syntax reset +endif + +highlight Normal guifg=#CCE0D0 guibg=NONE +highlight LineNr guifg=#808080 guibg=NONE +highlight CursorLineNr guifg=#FCFC38 guibg=NONE gui=bold +highlight StatusLine guifg=#CCE0D0 guibg=#000080 gui=bold +highlight StatusLineNC guifg=#808080 guibg=#000080 gui=NONE +highlight VertSplit guifg=#808080 guibg=NONE +highlight ColorColumn guibg=#703014 + +highlight Comment guifg=#808080 gui=italic +highlight Constant guifg=#F88C14 +highlight String guifg=#2CB494 +highlight Number guifg=#F88C14 +highlight Identifier guifg=NONE +highlight Function guifg=#0C48CC gui=bold +highlight Statement guifg=#4068D4 +highlight Keyword guifg=#4068D4 +highlight Type guifg=#2CB494 +highlight Special guifg=#88409C +highlight PreProc guifg=#F88C14 +highlight Error guifg=#F40404 guibg=NONE gui=bold,underline +highlight Todo guifg=#FCFC38 guibg=NONE gui=bold + +highlight Search guifg=#3C3C3C guibg=#FCFC38 +highlight IncSearch guifg=#3C3C3C guibg=#F88C14 + +highlight DiffAdd guifg=NONE guibg=#2CB494 +highlight DiffDelete guifg=NONE guibg=#F40404 +highlight DiffChange guifg=NONE guibg=#0C48CC +highlight DiffText guifg=NONE guibg=#88409C gui=bold + +highlight diffAdded guifg=#2CB494 gui=bold +highlight diffRemoved guifg=#F40404 gui=bold +highlight diffFile guifg=#0C48CC gui=bold +highlight diffIndexLine guifg=#88409C +highlight diffLine guifg=#00E4FC +highlight diffSubname guifg=#F88C14 + +highlight SpellBad guifg=#F40404 gui=undercurl guisp=#F40404 +highlight SpellCap guifg=#FCFC38 gui=undercurl guisp=#FCFC38 +highlight SpellRare guifg=#88409C gui=undercurl guisp=#88409C + +highlight Visual guibg=#4068D4 + +highlight Pmenu guifg=#CCE0D0 guibg=#000080 +highlight PmenuSel guifg=#3C3C3C guibg=#2CB494 gui=bold + +highlight QuickFixLine guibg=#4068D4 gui=bold + +function! GitRoot() + let l:root = systemlist('git rev-parse --show-toplevel')[0] + if v:shell_error == 0 && isdirectory(l:root) + execute 'silent cd' fnameescape(l:root) + echo 'Project Root: ' . l:root + else + echo 'Not in a git repository' + endif +endfunction + +function! OpenScratch() + split | noswapfile hide enew + setlocal buftype=nofile bufhidden=hide localindentkeys= + nnoremap q :q +endfunction + +nnoremap gr :call GitRoot() +nnoremap s :call OpenScratch() +nnoremap t :!ctags -R . +nnoremap :nohlsearch +nnoremap dw :set diffopt+=iwhite +nnoremap dW :set diffopt-=iwhite + +nnoremap ]c ]czz +nnoremap [c [czz +nnoremap ]q :cnextzz +nnoremap [q :cprevzz +nnoremap :cnext +nnoremap :cprev + +nnoremap g :silent grep! +vnoremap g "zy:silent grep! "z"" +nnoremap / :grep +