1
0
mirror of https://git.decapod.one/brethil/dotfiles synced 2024-11-24 20:41:31 +01:00
dotfiles/vim/vimrc

118 lines
3.6 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let g:uname = system('uname | tr -d "\n"') " Get platform name (stripping the trailing newline)
" Install all plugins
source $DOTFILES/vim/plugs.vim
" Sanity
set encoding=utf-8
scriptencoding utf-8
"" Style
" enable truecolor mode
if has("termguicolors")
set termguicolors
else
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
endif
set background=dark
let g:gruvbox_contrast_dark='hard'
let g:gruvbox_sign_column='bg0'
" Show some gui colors in term
let g:gruvbox_guisp_fallback='bg'
colorscheme gruvbox
" General stuff
set nowrap
set mouse=a
set mousemodel=popup_setpos " allow for ALE code actions
set relativenumber number
set foldlevelstart=3 foldmethod=indent nofoldenable "without foldenable all folds are open at startup"
set ttymouse=xterm2 " fix mouse when used in tmux/byobu https://unix.stackexchange.com/q/50733
set shell=zsh
"set shellcmdflag=-ilc " make builtin shell interactive
set nobackup nowb noswapfile " no need for backups of every file
set history=10000
set list listchars=tab:\ ,trail:•,extends:#,nbsp:.
set splitbelow splitright
set autoread
" Don't redraw while executing macros (good performance config)
set lazyredraw
set ignorecase smartcase " ignore case on search but be smart about it
set hlsearch "highlight search results (using *)
set expandtab shiftwidth=4 tabstop=4 "always use spaces
" Completion menu config (see :h completopt)
set completeopt=menu,menuone,noselect,noinsert
" Show completion suggestions in popups instead of preview window
set completeopt+=popup
" Highlight the line the cursor is on
set cursorline
" Minimum fold size
set foldminlines=3
autocmd FileType qf,ll setlocal wrap "quickfix,loclist
autocmd FileType markdown setlocal wrap spell spelllang=it,en
autocmd FileType yaml,yml setlocal shiftwidth=2 softtabstop=2 expandtab
autocmd FileType vue setlocal shiftwidth=2 softtabstop=2 expandtab
autocmd FileType go setlocal noexpandtab makeprg=go\ build
autocmd FileType rust set makeprg=cargo\ build
autocmd FileType python set keywordprg="pydoc"
syntax match jsonComment "//.*"
syntax match jsonComment "\(/\*\)\|\(\*/\)"
hi def link jsonComment Comment
au BufRead dvc.yaml let b:ale_fix_on_save=0
au BufRead *.dvc let b:ale_fix_on_save=0
au BufRead *.dvc set filetype=yaml
au BufRead,BufNewFile */playbooks/*.yml set filetype=yaml.ansible
au BufRead,BufNewFile */.github/*/*.y{,a}ml
\ let b:ale_linters = {'yaml': ['actionlint'] }
au BufRead,BufNewFile rules.v[46] *.rules setlocal filetype=iptables
autocmd! bufwritepost ~/.vimrc source ~/.vimrc
autocmd! bufwritepost $DOTFILES/vim/vimrc source ~/.vimrc
autocmd! bufwritepost $DOTFILES/vim/shortcuts.vim source ~/.vimrc
autocmd! bufwritepost $DOTFILES/vim/plugs.vim PlugInstall
autocmd! bufwritepost $DOTFILES/vim/plugs.vim PlugUpdate
if has('persistent_undo')
let undo_dir=$HOME . "/.vim/undo"
if !isdirectory(undo_dir)
call mkdir(undo_dir , "p", 0o700)
endif
let &undodir=undo_dir
set undofile
endif
" Return to last edit position when opening files (from amix's vimrc)
au BufReadPost * if ! exists('b:dotgitFolder') | if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" set a marker to avoid returning to the previous position in .git folders
" (avoids returning to previous position for COMMIT_EDITMSG etc )
au BufReadPost */.git/* let b:dotgitFolder = 1
" Bash like keys for the command line
cnoremap <C-A> <Home>
cnoremap <C-E> <End>
cnoremap <C-K> <C-U>
cnoremap <C-P> <Up>
cnoremap <C-N> <Down>
source $DOTFILES/vim/plugins_config.vim
source $DOTFILES/vim/shortcuts.vim
source $DOTFILES/vim/functions.vim