" use Vim mode instead of pure Vi, must be the first instruction " wrapped in conditional to avoid side effects when already set if &compatible set nocompatible endif " configure plugins using vim-plug " https://github.com/junegunn/vim-plug call plug#begin('~/.cache/nvim/plugged') " helpers Plug 'farmergreg/vim-lastplace' " intelligently reopen files at last edit position Plug 'junegunn/fzf' " fuzzy finder Plug 'junegunn/fzf.vim' " fuzzy finder for vim Plug 'ntpeters/vim-better-whitespace' " highlight trailing whitespace, :StripWhitespace to remove Plug 'PeterRincker/vim-searchlight' " highlight current search match differently Plug 'tpope/vim-sensible' " defaults everyone can agree on Plug 'tpope/vim-sleuth' " heuristically set buffer options Plug 'vim-airline/vim-airline' " fancy statusline " languages Plug 'blankname/vim-fish' " fish Plug 'rust-lang/rust.vim' " rust Plug 'udalov/kotlin-vim' " kotlin call plug#end() " Quickly edit/reload this configuration file " To return to previous file, type ':edit #' nnoremap gev :edit $MYVIMRC nnoremap gsv :source $MYVIMRC " hide line numbers at startup, toggle with F2 set nonumber norelativenumber nnoremap :set number! relativenumber! " highlight the cursor line, toggle with F3 nnoremap :set cursorline! " show the effects of a command incrementally, as you type set inccommand=nosplit " clear highlighting with escape key nnoremap :noh " fzf settings let g:fzf_command_prefix = 'Fzf' let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } } nmap (fzf-maps-n) xmap (fzf-maps-x) omap (fzf-maps-o) nnoremap :FzfFiles nnoremap fc :FzfCommits nnoremap ff :FzfFiles nnoremap fh :FzfHistory nnoremap fr :FzfRg " disable match highlighting let g:loaded_matchparen=1 " write settings set confirm " confirm :q in case of unsaved changes " clipboard settings set clipboard=unnamedplus " enable copy/paste/yank to and from Vim/Neovim " disable cursor-styling " https://github.com/neovim/neovim/wiki/FAQ#how-to-change-cursor-shape-in-the-terminal set guicursor= autocmd OptionSet guicursor noautocmd set guicursor= " paste settings (in Neovim, use plain insert mode) if !has('nvim') set pastetoggle= endif