From 8c12d7db633cc421cd96690d077461cf45195334 Mon Sep 17 00:00:00 2001 From: sadbeast Date: Thu, 30 May 2024 00:47:47 +0000 Subject: oh no what have i done --- home/sadbeast/features/vimrc | 219 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 home/sadbeast/features/vimrc (limited to 'home/sadbeast/features/vimrc') diff --git a/home/sadbeast/features/vimrc b/home/sadbeast/features/vimrc new file mode 100644 index 0000000..f48b364 --- /dev/null +++ b/home/sadbeast/features/vimrc @@ -0,0 +1,219 @@ +set nocompatible +set encoding=utf-8 +set wildmenu +set showcmd +set hlsearch +" Use visual bell instead of beeping when doing something wrong +set visualbell + +" No delay when leaving insert mode +set ttimeoutlen=0 + +" And reset the terminal code for the visual bell. If visualbell is set, and +" this line is also included, vim will neither flash nor beep. If visualbell +" is unset, this does nothing. +set t_vb= +set backspace=indent,eol,start +set autoindent +set nostartofline +set ruler +set confirm +" Quickly time out on keycodes, but never time out on mappings +set notimeout ttimeout ttimeoutlen=200 +set pastetoggle= +" automatically leave paste mode so I don't forget +autocmd InsertLeave * set nopaste +" Indentation settings for using 4 spaces instead of tabs. +" Do not change 'tabstop' from its default value of 8 with this setup. +set shiftwidth=4 +set softtabstop=4 +set expandtab +" Don't update the screen when executing macros +set lazyredraw + +" Easier to reach than \ +let mapleader=" " + +" fzf +nmap p :Files +nmap bb :Buffers + +" dadbod +autocmd FileType sql let b:dispatch = 'pgcli %' +vnoremap d :DB +nmap d :DB + +set formatoptions=ctqrn1 + +" Show matching brackets. +set showmatch + +" Bracket blinking. +set matchtime=5 + +" start scrolling when we're 8 lines away from margins +set scrolloff=8 +set sidescrolloff=15 +set sidescroll=1 + +set noswapfile +set nobackup +set nowb + +" Automatically insert the current comment leader after hitting 'o' or 'O' in Normal mode. +"set fo+=o +" Do not automatically insert a comment leader after an enter +"set fo-=r +" Do no auto-wrap text using textwidth (does not apply to comments) +"set fo-=t + +set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/vendor/*,*/bin/*,*/node_modules/* + +" quicker async update time +set updatetime=100 + +" taller vertical bar for vsplits +set fillchars+=vert:│ + +set ttymouse = "sgr"; + +" Enable 24-bit colors +set termguicolors +let &t_8f = "\[38:2::%lu:%lu:%lum" +let &t_8b = "\[48:2::%lu:%lu:%lum" + +" Workaround bug in vim, where it incorrectly thinks modifyOtherKeys level 2 is +" enabled, even when it's not. The snippets below ensure modifyOtherKeys=2 is +" enabled. https://github.com/vim/vim/issues/9014 +let &t_TI = "\[>4;2m" +let &t_TE = "\[>4;m" + +set undodir=~/.vim/backups +set undofile + +" When opening a file, always jump to the last cursor position +autocmd BufReadPost * +\ if line("'\"") > 0 && line ("'\"") <= line("$") | +\ exe "normal g'\"" | +\ endif + +" remove annoying help window +inoremap +nnoremap +vnoremap + +" better window navigation +nnoremap j +nnoremap k +nnoremap h +nnoremap l + +" quickfix +nnoremap :cnext +nnoremap :cprevious + +" command line autocomplete +set wildchar= wildmenu wildmode=full + +" scroll through buffers +noremap :bp +noremap :bn + +" show menu to switch buffers +set wildcharm= +nnoremap :b + +" unhighlight search results +noremap / :nohls + +" reselect visual block after indent/outdent +vnoremap < >gv + +" force saving files that require root permission +cmap w!! %!sudo tee > /dev/null % + +" Close the current buffer and move to the previous one +" This replicates the idea of closing a tab +nmap bq :bp bd # + +colorscheme base16-default-dark + +let g:termdebug_popup = 0 +let g:termdebug_wide = 163 + +" vim-lsp +function! s:on_lsp_buffer_enabled() abort + setlocal omnifunc=lsp#complete + setlocal signcolumn=yes + if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif + nmap gd (lsp-definition) + nmap gs (lsp-document-symbol-search) + nmap gS (lsp-workspace-symbol-search) + nmap gr (lsp-references) + nmap gi (lsp-implementation) + nmap gt (lsp-type-definition) + nmap rn (lsp-rename) + nmap [g (lsp-previous-diagnostic) + nmap ]g (lsp-next-diagnostic) + nmap K (lsp-hover) + " nnoremap lsp#scroll(+4) + " nnoremap lsp#scroll(-4) + + let g:lsp_format_sync_timeout = 1000 + autocmd! BufWritePre *.rs,*.go call execute('LspDocumentFormatSync') + + " refer to doc to add more commands +endfunction + +augroup lsp_install + au! + " call s:on_lsp_buffer_enabled only for languages that has the server registered. + autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() +augroup END + +"if executable('solargraph') +" " gem install solargraph +" au User lsp_setup call lsp#register_server({ +" \ 'name': 'solargraph', +" \ 'cmd': {server_info->[&shell, &shellcmdflag, 'solargraph stdio']}, +" \ 'initialization_options': {"diagnostics": "true"}, +" \ 'whitelist': ['ruby'], +" \ }) +"endif + +" asyncomplete +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? asyncomplete#close_popup() : "\" + +imap (asyncomplete_force_refresh) + +" vim-vsnip +" Expand +imap vsnip#expandable() ? '(vsnip-expand)' : '' +smap vsnip#expandable() ? '(vsnip-expand)' : '' + +" Expand or jump +imap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' +smap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' + +" Copilot ugh +let g:copilot_node_command = "node" + +" vim-test +let test#strategy = "dispatch" +nmap t :TestNearest +nmap T :TestFile +nmap a :TestSuite +nmap l :TestLast +nmap g :TestVisit + +function! DxTransform(cmd) abort + return './dx/exec '.a:cmd +endfunction + +let g:test#custom_transformations = {'dx': function('DxTransform')} +autocmd BufRead,BufNewFile */network_insights/** let g:test#transformation = 'dx' + +set t_Co=256 -- cgit v1.2.3