set nocompatible set backspace=start,eol,indent set hidden set hlsearch syntax on filetype plugin on set tabstop=4 shiftwidth=4 autoindent smartindent expandtab set mouse=v """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Numbering of lines " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " set relativenumber set number """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Runtimepath variables " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " call -> set rtp? show the runtime path let $RTP=split(&runtimepath, ',')[0] let $RC="$HOME/.vimrc" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Move Swap,Backup and undo files into .vim directory " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set directory^=$HOME/.vim/.swap// set backupdir^=$HOME/.vim/.backup// set undodir^=$HOME/.vim/.undo// """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Split to the right and below " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set splitbelow set splitright """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Folding " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set foldenable foldlevelstart=20 foldmethod=indent """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Rebind shortcut to switch splits " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" nmap h nmap j nmap k nmap l """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Finding files " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set path+=** set wildmenu set wildmode=longest:full,full """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Create Tags thorugh :MakeTags " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" command! MakeTags !ctags -R . set autochdir set tags=tags; """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Execute Python Scripts " Press F9 to run Python script " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" autocmd FileType python map :w:exec '!python3' shellescape(@%, 1) autocmd FileType python imap :w:exec '!python3' shellescape(@%, 1) """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " File browsing through a tree on the left side " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:netrw_banner=0 let g:netrw_browse_split=4 let g:netrw_altv=1 let g:netrw_liststyle=3 let g:netrw_list_hide=netrw_gitignore#Hide() let g:netrw_list_hide.=',\(\^\|\s\s\)\zs\.\S\+' map :Lex vertical resize 30 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Cursorline on the cursor " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set cursorline hi CursorLine cterm=NONE ctermbg=darkgrey ctermfg=white """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Status Line on the bottom " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Statusline " function! gitbranch() " return system("git rev-parse --abbrev-ref head 2>/dev/null | tr -d '\n'") " endfunction " " function! statuslinegit() " let l:branchname = gitbranch() " return strlen(l:branchname) > 0?' '.l:branchname.' ':'' " endfunction function! UpdateGitBranch() let l:branchname = system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") let b:branchstatus = strlen(l:branchname) > 0? ' '.l:branchname.' ':'' endfunction augroup UPDATE_GITBRANCH " clear previous commands autocmd! " Update git branch autocmd BufWritePre * :call UpdateGitBranch() autocmd BufReadPost * :call UpdateGitBranch() autocmd BufEnter * :call UpdateGitBranch() augroup end set laststatus=2 set statusline= set statusline+=%#PmenuSel# " set statusline+=%{StatuslineGit()} set statusline+=%{b:branchstatus} set statusline+=%#BufTabLineCurrent# set statusline+=\ %M set statusline+=\ %r set statusline+=\ %F set statusline+=%= "Right side settings set statusline+=\ %y set statusline+=%#CursorColumn# set statusline+=\ %{&fileencoding?&fileencoding:&encoding} set statusline+=\[%{&fileformat}\] set statusline+=\ %c:%l/%L set statusline+=\ %p%% set statusline+=\ [%n] """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Colors " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set termguicolors " colorscheme gruvbox colorscheme catppuccin_macchiato set bg=dark " tmux color correction if exists('+termguicolors') let &t_8f = "\[38;2;%lu;%lu;%lum" let &t_8b = "\[48;2;%lu;%lu;%lum" set termguicolors endif """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " tagbar, press F8 " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" nmap :TagbarToggle """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Selection Highlighting " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " hlsearch colors highlight Search ctermbg=black ctermfg=darkgrey ctermbg=grey " Highlight all instances of word under cursor, when idle. function! AutoHighlightToggle() let @/ = '' augroup auto_highlight au! au CursorHold * let @/ = '\V\<'.escape(expand(''), '\').'\>' augroup end setl updatetime=500 endfunction call AutoHighlightToggle() """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Code Completion " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:ale_enabled = 1 let g:ale_hover_enabled = 1 " nmap gr :ALEFindReferences " nmap K :ALEHover set completeopt+=menuone set completeopt+=noselect set completeopt+=noinsert set shortmess+=c " Shut off completion messages set belloff+=ctrlg " Add only if Vim beeps during completion let g:mucomplete#enable_auto_at_startup = 1 let g:mucomplete#completion_delay = 1 set omnifunc=syntaxcomplete#Complete " set omnifunc=ale#completion#Complete "set omnifunc=ale#completion#OmniFunc "let g:ale_completion_enabled=1 "function! OpenCompletion() " if !pumvisible() && ((v:char >= 'a' && v:char <= 'z') || (v:char >= 'A' && v:char <= 'Z')) " call feedkeys("\\", "n") " endif "endfunction " "autocmd InsertCharPre * call OpenCompletion() let g:ale_set_balloons=1 " "set completeopt+=longest,menu,menuone,preview,noselect,noinsert "" set completeopt+=menuone,noselect,noinsert "" autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Remove conceal from Markdown when Insert mode is set " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" autocmd InsertEnter *.{markdown,md} set conceallevel=0 autocmd InsertLeave *.{markdown,md} set conceallevel=2 autocmd InsertEnter *.{json} set conceallevel=0 autocmd InsertLeave *.{json} set conceallevel=2 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Load all packages and activate tags " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" packadd! vim-polyglot packadd! vim-log-highlighting packloadall " Load all of the helptags now, after plugins have been loaded. " All messages and errors will be ignored. silent! helptags ALL silent! helptags ALE silent! helptags vim-gitgutter/doc