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 :NERDTreeToggle 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 packadd! gruvbox colorscheme gruvbox set bg=dark packadd! vim-log-highlighting " tagbar, press F8 nmap :TagbarToggle " packadd! ale packloadall " Load all of the helptags now, after plugins have been loaded. " All messages and errors will be ignored. silent! helptags ALL " ---------- Code 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=300 endfunction call AutoHighlightToggle() " ----------- Code Completion let g:ale_enabled = 1 let g:ale_hover_enabled = 1 " nmap gr :ALEFindReferences " nmap K :ALEHover " set omnifunc=syntaxcomplete#Complete set omnifunc=ale#completion#Complete let g:ale_completion_enabled=1 let g:ale_set_balloons=1 set completeopt+=menuone,noselect,noinsert autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif