" install vim-plug let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif " setup plugins call plug#begin() Plug 'preservim/nerdtree' Plug 'ryanoasis/vim-devicons' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'prabirshrestha/vim-lsp' Plug 'mattn/vim-lsp-settings' Plug 'prabirshrestha/asyncomplete.vim' Plug 'prabirshrestha/asyncomplete-lsp.vim' call plug#end() " general settings syntax on set tabstop=4 set shiftwidth=4 set expandtab set number relativenumber " required for vim-devicons to work properly set encoding=UTF-8 " vim-airline settings let g:airline_theme='papercolor' " NERDTree settings let g:NERDTreeShowHidden=1 nnoremap :NERDTreeToggle " set up vim-lsp let g:lsp_diagnostics_echo_cursor = 1 " set up vim-lsp-settings let g:lsp_settings= { \ 'clangd': { \ 'cmd': ['/opt/homebrew/Cellar/llvm/19.1.6/bin/clangd'], \ } \} " set up autocomplete tabing inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? asyncomplete#close_popup() : "\" " set up automatic braces inoremap { {}ko inoremap ( ()i inoremap [ []i inoremap " ""i " set up bracketed paste if !has('gui_running') && &term =~ '^\%(screen\|tmux\)' " Better mouse support, see :help 'ttymouse' set ttymouse=sgr " Enable true colors, see :help xterm-true-color let &termguicolors = v:true let &t_8f = "\[38;2;%lu;%lu;%lum" let &t_8b = "\[48;2;%lu;%lu;%lum" " Enable bracketed paste mode, see :help xterm-bracketed-paste let &t_BE = "\[?2004h" let &t_BD = "\[?2004l" let &t_PS = "\[200~" let &t_PE = "\[201~" " Enable focus event tracking, see :help xterm-focus-event let &t_fe = "\[?1004h" let &t_fd = "\[?1004l" execute "set =\[I" execute "set =\[O" " Enable modified arrow keys, see :help arrow_modifiers execute "silent! set =\[@;*A" execute "silent! set =\[@;*B" execute "silent! set =\[@;*C" execute "silent! set =\[@;*D" endif