From c4093d24014f32ea317513810d1de63437592444 Mon Sep 17 00:00:00 2001 From: mrjk Date: Wed, 23 Jul 2025 03:23:48 -0400 Subject: [PATCH] update: system vimrc --- roles/os_tweaks/files/vimrc | 110 +++++++++++++++++++++++++++++++++--- 1 file changed, 102 insertions(+), 8 deletions(-) diff --git a/roles/os_tweaks/files/vimrc b/roles/os_tweaks/files/vimrc index ecae374..b23b8bd 100644 --- a/roles/os_tweaks/files/vimrc +++ b/roles/os_tweaks/files/vimrc @@ -1,24 +1,118 @@ +" Jeznet config (Based on Debian) +" ============================================================================== +" Source: https://gist.github.com/mrjk/1d146a701b201e77279ea4e7c5d075a5 +" Last update: 2025/07/23 +" +" This file is heavily inspirated from Debian +" /usr/share/vim/vim91/defaults.vim . It is a sane global vim +" config for every users that doesn't have a vimrc. +" +" Main vimrc config paths: +" debian: /etc/vim/vimrc.local +" rhel: /etc/vimrc.local +" +" Installation at the end of system vimrc: +" " Source a global configuration file if available +" if filereadable("/etc/vim/vimrc.local") +" source /etc/vim/vimrc.local +" endif +" +" Debian vim files: +" /usr/share/vim/vim90/defaults.vim +" /usr/share/vim/vim90/debian.vim -" Base options -set showcmd " Show (partial) command in status line. -set showmatch " Show matching brackets. -set incsearch " Incremental search + +" General +" --------------------------------------- + +" Disable vim configs auto-loading +let g:skip_defaults_vim = 1 + +set nocompatible " Enable full vim instead of vi +set ttimeout " Enable time out for key codes +set ttimeoutlen=100 " Wait up to 100ms after Esc for special key +set scrolloff=5 " Ensure before/after lines after context set autowrite " Automatically save before commands like :next and :make +set incsearch " Incremental search + +" Edition settings +set backspace=indent,eol,start " Allow smart backspace +set history=200 " keep 200 lines of command line history +set nrformats-=octal " Disable incremnt for octal values + + +" Display +" --------------------------------------- + +" Display options +set showcmd " Show (partial) command in status line +set showmatch " Show matching brackets +set wildmenu " display completion matches in a status line set ttymouse= " Disable mouse tty set mouse= " Disable mouse for good " Color support syntax on set background=dark -set nu -" Enable indentation rules per files -filetype plugin indent on +" Set numbering +set nu " Enable line numbering +set numberwidth=1 " Line numbering min width " Vim sane tabs set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab -set backspace=indent,eol,start " Proper backspace behavior. + + +" Advanced +" --------------------------------------- + +" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, +" so that you can undo CTRL-U after inserting a line break. +" Revert with ":iunmap ". +inoremap u + +" Only do this part when Vim was compiled with the +eval feature. +if 1 + " Enable indentation rules per files + filetype plugin indent on +endif + + +" Autostart +" --------------------------------------- + +if 1 + " Put these in an autocmd group, so that you can revert them with: + " ":augroup vimStartup | exe 'au!' | augroup END" + augroup vimStartup + au! + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid, when inside an event handler + " (happens when dropping a file on gvim) and for a commit message (it's + " likely a different one than last time). + autocmd BufReadPost * + \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' + \ | exe "normal! g`\"" + \ | endif + + augroup END +endif + + +" Helpers +" --------------------------------------- + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +" Revert with: ":delcommand DiffOrig". +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif +