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 "set noswapfile " 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 " Tags command! MakeTags !ctags -R . set autochdir set tags=tags; " 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 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 set cursorline hi CursorLine cterm=NONE ctermbg=darkgrey ctermfg=white " 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] "packadd! indentLine "let g: indentLine_char = '⦙' " let g:vimspector_enable_mappings = 'HUMAN' " packadd! vimspector set termguicolors " colorscheme gruvbox colorscheme catppuccin_macchiato set bg=dark packadd! vim-log-highlighting " 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 packloadall " Load all of the helptags now, after plugins have been loaded. " All messages and errors will be ignored. silent! helptags ALL