dotfiles/.config/nvim/init.vim

90 lines
2.2 KiB
VimL

" defines plugin directory
" Install plugins from vim with :PlugInstall
call plug#begin('~/.local/share/nvim/plugged')
" Base
Plug 'tpope/vim-sensible'
Plug 'tpope/vim-commentary'
" Language Integration
Plug 'stephpy/vim-yaml'
" Design
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" Colorschemes
Plug 'phanviet/vim-monokai-pro'
Plug 'Nequo/vim-allomancer'
Plug 'nightsense/cosmic_latte'
call plug#end()
" PLUGIN CONFIGURATION
let g:airline_extensions = []
let g:airline_powerline_fonts=1
let g:airline_theme='raven'
" VIM SETTINGS
" set truecolor (neovim)
set termguicolors
" many of these come from
" http://stevelosh.com/blog/2010/09/coming-home-to-vim/
" sets tabs to be 4 characters, expanded into spaces, but still removable with
" one press of backspace.
" great explanation: http://vimcasts.org/transcripts/2/en/
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
" shows linenumbers relative to the one you are on, for easy movement and
" dNUMBERd deletions
set relativenumber
" keeps an undofile next to files so that you can even undo if vim is closed
" in between
set undofile
" ignores case by default but will use case when search is specifically not
" all lowercased
set ignorecase
set smartcase
" whenever vim loses focus, save
au FocusLost * :wa
" KEYBINDINGS
"
" set our leader key to space since with hjkl, space is largely useless
let mapleader = "\<Space>"
" set jk to escape, in case capslock is not mapped to escape on the system
inoremap jk <ESC>
" remove search highlights by pressing space+/ - the key for searching the
" first place
nnoremap <leader>/ :noh<cr>
" move around between matching brackets with tab
nnoremap <tab> %
nnoremap <tab> %
" select the whole buffer with <leader>-a
map <leader>a ggVG
" quickly edit vimrc and source it on saving, useful for testing
map <leader>V :vsp ~/.config/nvim/init.vim<cr>
au BufWritePost init.vim so ~/.config/nvim/init.vim
" get rid of the help message popping up when I miss esc and hit F1
nnoremap <F1> <ESC>
inoremap <F1> <ESC>
vnoremap <F1> <ESC>
" remove all trailing whitespaces
nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR>
" 'open new tab' with leader-t (opens new buffer and switches to it)
nnoremap <leader>t <C-w>v<C-w><C-w>