dotfiles-server/.vim/vimrc

109 lines
2.3 KiB
VimL

" =====================================
" -- Plugin management --
" =====================================
call plug#begin()
" Theme
Plug 'morhetz/gruvbox'
" Status line
Plug 'itchyny/lightline.vim'
" File manager
Plug 'lambdalisue/vim-fern'
" Comment remap
Plug 'tpope/vim-commentary'
" Git diff viewer
Plug 'airblade/vim-gitgutter'
" Git integration
Plug 'tpope/vim-fugitive'
" Git diff Lightline integration
Plug 'niklaas/lightline-gitdiff'
call plug#end()
" =====================================
" -- Behavior --
" =====================================
" Disable mode in command line
set noshowmode
set laststatus=2
" Line numbers
set number
set relativenumber
" Cursor line highlight
set cursorline
" Mouse support
set mouse=a
" Terminal title
set title
" Auto reload changes
set autoread
" Indentation
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
" Backup/info files
set nobackup
set noswapfile
set viminfofile=~/.vim/viminfo
" Performance
set ttyfast
set lazyredraw
" Split behavior
set splitbelow
set splitright
" Visual bell
set novisualbell
" =====================================
" -- Theme options --
" =====================================
" Color scheme
set background=dark
colorscheme gruvbox
hi Normal guibg=NONE ctermbg=NONE
" Lightline theme
let g:lightline = {
\ 'colorscheme': 'gruvbox',
\ 'active': {
\ 'left': [['mode', 'paste'], ['gitbranch', 'readonly', 'filename', 'modified'], ['gitdiff']],
\ 'right': [['lineinfo'], ['percent'], ['filetype']]
\ },
\ 'component_function': {
\ 'gitbranch': 'fugitive#head',
\ },
\ 'component_expand': {
\ 'gitdiff': 'lightline#gitdiff#get',
\ },
\ 'component_type': {
\ 'gitdiff': 'middle',
\ },
\ }
let g:lightline#gitdiff#indicator_added = '+ '
let g:lightline#gitdiff#indicator_deleted = '- '
let g:lightline#gitdiff#indicator_modified = '~ '
" =====================================
" -- Remaps --
" ====================================
" Leader options
let mapleader=' '
nnoremap <Space> <Nop>
" File manager
nnoremap <Leader>pf :Fern .<CR>
nnoremap <Leader>pr :Fern %:h<CR>
" Buffer management
nnoremap <Leader>nw :bnext<CR>
nnoremap <Leader>nq :bprev<CR>
nnoremap <Leader>nc :bd<CR>
" Moving visual block
vnoremap J :m '>+1<CR>gv=gv
vnoremap K :m '<-2<CR>gv=gv