И это всё МОЁ

Предлагайте плагины и настройки:


call plug#begin('~/.vim/plugged')
" Automatically install missing plugins on startup
autocmd VimEnter *
\ if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
\| PlugInstall --sync | q
\| endif

Plug 'tpope/vim-sensible'
Plug 'morhetz/gruvbox'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'preservim/nerdtree'
" yay -S fzf
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
" linting
Plug 'dense-analysis/ale'
" quoting
Plug 'tpope/vim-surround'
" search and replace in files
" yay -S ack
Plug 'mileszs/ack.vim'
" highlight brackets
Plug 'frazrepo/vim-rainbow'
" git helper
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'editorconfig/editorconfig-vim'

function! BuildYCM(info)
if a:info.status == 'installed' || a:info.force
!./install.py --ts-completer
endif
endfunction

" autocomplete
" yay -S cmake
Plug 'ycm-core/YouCompleteMe', { 'do': function('BuildYCM') }
Plug 'preservim/nerdcommenter'
call plug#end()

" use system clipboard
set clipboard+=unnamedplus

" indention
set ts=2 sw=2 sts=2 et

" text search
set hlsearch ignorecase incsearch smartcase

" show line numbers
set relativenumber

" highlight cursor line
set cursorline

let mapleader=" "

" window navigation
nmap <C-h> <C-w>h
nmap <C-j> <C-w>j
nmap <C-k> <C-w>k
nmap <C-l> <C-w>l

silent! nmap <C-p> :NERDTreeToggle<CR>
silent! map <F2> :NERDTreeFind<CR>

cnoreabbrev Ack Ack!
nnoremap <Leader>a :Ack!<Space>

" Edit vimr configuration file
nnoremap <Leader>ve :e $MYVIMRC<CR>
" Reload vimr configuration file
nnoremap <Leader>vr :source $MYVIMRC<CR>

" color mode
set termguicolors

" color theme
colorscheme gruvbox
set background=dark

" airline theme
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
let g:airline_theme='gruvbox'

" NerdTree
let g:NERDTreeMapActivateNode="<F2>"
let g:NERDTreeMapPreview="<F3>"

let g:rainbow_active = 1

" YouCompleteMe
let g:ycm_add_preview_to_completeopt = 1
let g:ycm_autoclose_preview_window_after_completion = 1

nnoremap <leader>d :YcmCompleter GetDoc<CR>
nnoremap <leader>j :YcmCompleter GoTo<CR>
" /YouCompleteMe

" NerdCommenter
" Create default mappings
let g:NERDCreateDefaultMappings = 1

" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1

" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs = 1

" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign = 'left'

" Set a language to use its alternate delimiters by default
let g:NERDAltDelims_java = 1

" Add your own custom formats or override the defaults
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }

" Allow commenting and inverting empty lines (useful when commenting a region)
let g:NERDCommentEmptyLines = 1

" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace = 1

" Enable NERDCommenterToggle to check all selected lines is commented or not
let g:NERDToggleCheckAllLines = 1
" /NerdCommenter